diff --git a/dailyjs/shared/contexts/CallProvider.js b/dailyjs/shared/contexts/CallProvider.js index 1fa331a..b884666 100644 --- a/dailyjs/shared/contexts/CallProvider.js +++ b/dailyjs/shared/contexts/CallProvider.js @@ -33,7 +33,7 @@ export const CallProvider = ({ const [preJoinNonAuthorized, setPreJoinNonAuthorized] = useState(false); // Daily CallMachine hook (primarily handles status of the call) - const { daily, leave, join, state } = useCallMachine({ + const { daily, leave, state, setRedirectOnLeave } = useCallMachine({ domain, room, token, @@ -71,10 +71,10 @@ export const CallProvider = ({ addFakeParticipant, preJoinNonAuthorized, leave, - join, videoQuality, setVideoQuality, setBandwidth, + setRedirectOnLeave, subscribeToTracksAutomatically, }} > diff --git a/dailyjs/shared/contexts/useCallMachine.js b/dailyjs/shared/contexts/useCallMachine.js index 542be7d..848e1fd 100644 --- a/dailyjs/shared/contexts/useCallMachine.js +++ b/dailyjs/shared/contexts/useCallMachine.js @@ -38,7 +38,7 @@ export const useCallMachine = ({ }) => { const [daily, setDaily] = useState(null); const [state, setState] = useState(CALL_STATE_READY); - const [redirectOnLeave, setRedirectOnLeave] = useState(true); + const [redirectOnLeave, setRedirectOnLeave] = useState(false); const url = useMemo( () => (domain && room ? `https://${domain}.daily.co/${room}` : null), @@ -245,8 +245,9 @@ export const useCallMachine = ({ break; case 'left-meeting': daily.destroy(); - if (!redirectOnLeave) return; - setState(CALL_STATE_REDIRECTING); + setState( + !redirectOnLeave ? CALL_STATE_ENDED : CALL_STATE_REDIRECTING + ); break; case 'error': switch (ev?.error?.type) { diff --git a/dailyjs/shared/hooks/useCallUI.js b/dailyjs/shared/hooks/useCallUI.js index b8feaec..45ecc3f 100644 --- a/dailyjs/shared/hooks/useCallUI.js +++ b/dailyjs/shared/hooks/useCallUI.js @@ -48,15 +48,19 @@ export const useCallUI = ({ ); case CALL_STATE_LOBBY: return haircheck ? haircheck() : ; - case CALL_STATE_REDIRECTING: - window.location = redirectUrl; - break; + case CALL_STATE_JOINED: return room ? ( room() ) : ( ); + case CALL_STATE_REDIRECTING: + if (!redirectUrl) { + break; + } + window.location = redirectUrl; + break; case CALL_STATE_ENDED: return callEnded ? ( callEnded()