import { ButtonGroup, Button, Box, Accordion } from '@rocket.chat/fuselage'; import { Page, PageHeader, PageScrollableContentWithShadow, PageFooter } from '@rocket.chat/ui-client'; import { useToastMessageDispatch, useTranslation, useEndpoint, useUserPreference, useSetting } from '@rocket.chat/ui-contexts'; import { useForm, FormProvider } from 'react-hook-form'; import PreferencesConversationTranscript from './PreferencesConversationTranscript'; import { PreferencesGeneral } from './PreferencesGeneral'; type FormData = { omnichannelTranscriptPDF: boolean; omnichannelTranscriptEmail: boolean; }; const OmnichannelPreferencesPage = () => { const t = useTranslation(); const dispatchToastMessage = useToastMessageDispatch(); const alwaysSendEmailTranscript = useSetting('Livechat_transcript_send_always', false); const omnichannelTranscriptPDF = useUserPreference('omnichannelTranscriptPDF') ?? false; const omnichannelTranscriptEmail = useUserPreference('omnichannelTranscriptEmail') ?? false; const omnichannelHideConversationAfterClosing = useUserPreference('omnichannelHideConversationAfterClosing') ?? true; const methods = useForm({ defaultValues: { omnichannelTranscriptPDF, omnichannelTranscriptEmail: alwaysSendEmailTranscript || omnichannelTranscriptEmail, omnichannelHideConversationAfterClosing, }, }); const { handleSubmit, formState: { isDirty }, reset, } = methods; const saveFn = useEndpoint('POST', '/v1/users.setPreferences'); const handleSave = async (data: FormData) => { try { await saveFn({ data }); reset(data); dispatchToastMessage({ type: 'success', message: t('Preferences_saved') }); } catch (error) { dispatchToastMessage({ type: 'error', message: error }); } }; return ( ); }; export default OmnichannelPreferencesPage;