Skip to content

Commit

Permalink
fix participant state init
Browse files Browse the repository at this point in the history
Adds started-camera and access-state-updated as events to initialize local participant state. This allows support for join -> leave -> haircheck flows.
  • Loading branch information
Regaddi committed Jul 14, 2022
1 parent 55fcff3 commit eacc5d1
Showing 1 changed file with 10 additions and 16 deletions.
26 changes: 10 additions & 16 deletions src/DailyParticipants.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -82,13 +82,7 @@ export const DailyParticipants: React.FC<React.PropsWithChildren<{}>> = ({
({ set }) =>
async (participants: DailyParticipantsObject) => {
set(localIdState, participants.local.session_id);
set(participantsState, (prev) =>
[...prev, ...Object.values(participants)].filter(
(participant, idx, arr) =>
arr.findIndex((p) => p.session_id === participant.session_id) ==
idx
)
);
set(participantsState, Object.values(participants));
},
[]
);
Expand All @@ -108,15 +102,15 @@ export const DailyParticipants: React.FC<React.PropsWithChildren<{}>> = ({
clearInterval(interval);
};
}, [daily, initParticipants]);
useDailyEvent(
'joining-meeting',
useCallback(() => {
if (!daily) return;
const participants = daily?.participants();
if (!participants.local) return;
initParticipants(participants);
}, [daily, initParticipants])
);
const handleInitEvent = useCallback(() => {
if (!daily) return;
const participants = daily?.participants();
if (!participants.local) return;
initParticipants(participants);
}, [daily, initParticipants]);
useDailyEvent('started-camera', handleInitEvent);
useDailyEvent('access-state-updated', handleInitEvent);
useDailyEvent('joining-meeting', handleInitEvent);
useDailyEvent(
'joined-meeting',
useCallback(
Expand Down

0 comments on commit eacc5d1

Please sign in to comment.