import React from 'react'; import { INDEXES } from 'App/constants/zindex'; import { Loader, Icon } from 'UI'; import { Button } from 'antd'; import { PlayerContext } from 'App/components/Session/playerContext'; import { useStore } from 'App/mstore'; import { observer } from 'mobx-react-lite'; import { useTranslation } from 'react-i18next'; import { TFunction } from 'i18next'; interface Props { userDisplayName: string; getWindowType: () => WindowType | null; } export enum WindowType { Call, Control, Record, } enum Actions { CallEnd, ControlEnd, RecordingEnd, } const WIN_VARIANTS = (t: TFunction) => ({ [WindowType.Call]: { text: t('to accept the call'), icon: 'call' as const, action: Actions.CallEnd, iconColor: 'teal', }, [WindowType.Control]: { text: t('to accept remote control request'), icon: 'remote-control' as const, action: Actions.ControlEnd, iconColor: 'teal', }, [WindowType.Record]: { text: t('to accept recording request'), icon: 'record-circle' as const, iconColor: 'red', action: Actions.RecordingEnd, }, }); function RequestingWindow({ getWindowType }: Props) { const { t } = useTranslation(); const { sessionStore } = useStore(); const { userDisplayName } = sessionStore.current; const windowType = getWindowType(); if (!windowType) return; const { player } = React.useContext(PlayerContext); const { assistManager: { initiateCallEnd, releaseRemoteControl, stopRecording }, } = player; const actions = { [Actions.CallEnd]: initiateCallEnd, [Actions.ControlEnd]: releaseRemoteControl, [Actions.RecordingEnd]: stopRecording, }; return (
{t('Waiting for')}{' '} {userDisplayName}
{WIN_VARIANTS(t)[windowType].text}
); } export default observer(RequestingWindow);