/* eslint-disable no-case-declarations */ import React, { useCallback } from 'react'; import { HMSRoleChangeRequest, HMSRoomState, selectRoomState, useCustomEvent, useHMSStore } from '@100mslive/react-sdk'; // @ts-ignore: No implicit Any import { ToastManager } from '../Toast/ToastManager'; import { AutoplayBlockedModal } from './AutoplayBlockedModal'; import { ChatNotifications } from './ChatNotifications'; import { DeviceChangeNotifications } from './DeviceChangeNotifications'; import { DeviceInUseError } from './DeviceInUseError'; import { ErrorNotifications } from './ErrorNotifications'; import { HandRaisedNotifications } from './HandRaisedNotifications'; import { InitErrorModal } from './InitErrorModal'; import { MessageNotifications } from './MessageNotifications'; import { PeerNotifications } from './PeerNotifications'; import { PermissionErrorNotificationModal } from './PermissionErrorModal'; import { PollNotificationModal } from './PollNotificationModal'; import { ReconnectNotifications } from './ReconnectNotifications'; import { RoleChangeNotification } from './RoleChangeNotification'; import { TrackBulkUnmuteModal } from './TrackBulkUnmuteModal'; import { TrackNotifications } from './TrackNotifications'; import { TrackUnmuteModal } from './TrackUnmuteModal'; import { TranscriptionNotifications } from './TranscriptionNotifications'; // @ts-ignore: No implicit Any import { useIsNotificationDisabled } from '../AppData/useUISettings'; import { ROLE_CHANGE_DECLINED } from '../../common/constants'; export function Notifications() { const roomState = useHMSStore(selectRoomState); const isNotificationDisabled = useIsNotificationDisabled(); const handleRoleChangeDenied = useCallback((request: HMSRoleChangeRequest & { peerName: string }) => { ToastManager.addToast({ title: `${request.peerName} denied your request to join the ${request.role.name} role`, variant: 'error', }); }, []); useCustomEvent({ type: ROLE_CHANGE_DECLINED, onEvent: handleRoleChangeDenied }); if (isNotificationDisabled) { return null; } return ( <> {roomState === HMSRoomState.Connected ? : null} ); }