The communications platform that puts data protection first.
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
Rocket.Chat/apps/meteor/client/hooks/useVoipWarningModal.tsx

30 lines
1.0 KiB

import { useEffectEvent } from '@rocket.chat/fuselage-hooks';
import { useRole, useRoute, useSetModal } from '@rocket.chat/ui-contexts';
import { useMemo } from 'react';
import { useHasLicenseModule } from './useHasLicenseModule';
import TeamsVoipConfigModal from '../views/room/contextualBar/TeamsVoipConfigModal';
export const useVoipWarningModal = (): (() => void) => {
const setModal = useSetModal();
const isAdmin = useRole('admin');
const { data: hasModule = false } = useHasLicenseModule('teams-voip');
const teamsVoipSettingsRoute = useRoute('admin-settings');
const handleClose = useEffectEvent(() => setModal(null));
const handleRedirectToConfiguration = useEffectEvent(() => {
handleClose();
teamsVoipSettingsRoute.push({
group: 'VoIP_TeamCollab',
});
});
return useMemo(
() => (): void =>
setModal(
<TeamsVoipConfigModal hasModule={hasModule} onClose={handleClose} onConfirm={handleRedirectToConfiguration} isAdmin={isAdmin} />,
),
[handleClose, handleRedirectToConfiguration, isAdmin, setModal, hasModule],
);
};