import { not, stateIn } from "xstate";
import { CallContext } from "./types";
/**
* 시그널링이 준비된 상태인지 확인
*/
export const isSignalingReady = stateIn("session.signaling.connected");
/**
* 종료가 가능한 상태인지 확인
*/
export const canDisconnect = not(stateIn("session.flow.idle"));
/**
* 미디어 스트림이 준비되었는지 확인
*/
export const hasLocalStream = ({ context }: { context: CallContext }) => {
return context.localStream !== null;
};
/**
* 원격 스트림이 준비되었는지 확인
*/
export const hasRemoteStream = ({ context }: { context: CallContext }) => {
return context.remoteStream !== null;
};
/**
* 재시도 가능 여부 확인
*/
export const canMatching = ({ context }: { context: CallContext }) => {
return context.matchRequest !== null;
};