export default function useFocusMode()

in app/hooks/useFocusMode.tsx [13:36]


export default function useFocusMode() {
  const chime: ChimeSdkWrapper | null = useContext(getChimeContext());
  const [focusMode, setFocusMode] = useState(false);
  const [state] = useContext(getUIStateContext());
  useEffect(() => {
    const callback = (message: DataMessage) => {
      if (state.classMode === ClassMode.Teacher) {
        return;
      }
      const { focus } = message.json();
      chime?.audioVideo?.realtimeSetCanUnmuteLocalAudio(!focus);
      if (focus) {
        chime?.audioVideo?.realtimeMuteLocalAudio();
      }
      setFocusMode(!!focus);
    };
    const focusMessageUpdateCallback = { topic: MessageTopic.Focus, callback };
    chime?.subscribeToMessageUpdate(focusMessageUpdateCallback);
    return () => {
      chime?.unsubscribeFromMessageUpdate(focusMessageUpdateCallback);
    };
  }, []);
  return focusMode;
}