// Copyright 2021 Signal Messenger, LLC // SPDX-License-Identifier: AGPL-3.0-only import { useEffect } from 'react'; import { usePrevious } from './usePrevious'; type RemoteParticipant = { hasRemoteVideo: boolean; presenting: boolean; title: string; uuid?: string; }; export function useActivateSpeakerViewOnPresenting({ remoteParticipants, switchToPresentationView, switchFromPresentationView, }: { remoteParticipants: ReadonlyArray; switchToPresentationView: () => void; switchFromPresentationView: () => void; }): void { const presenterUuid = remoteParticipants.find( participant => participant.presenting )?.uuid; const prevPresenterUuid = usePrevious(presenterUuid, presenterUuid); useEffect(() => { if (prevPresenterUuid !== presenterUuid && presenterUuid) { switchToPresentationView(); } else if (prevPresenterUuid && !presenterUuid) { switchFromPresentationView(); } }, [ presenterUuid, prevPresenterUuid, switchToPresentationView, switchFromPresentationView, ]); }