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; };