import type { FC } from 'react'; import React, { useCallback, useState } from 'react'; import { useTranslation } from 'next-i18next'; import { useMaintenanceModeActions } from '~/client/services/maintenance-mode'; import { toastError, toastSuccess } from '~/client/util/toastr'; import { useIsMaintenanceMode } from '~/states/global'; import { ConfirmModal } from './ConfirmModal'; export const MaintenanceMode: FC = () => { const { t } = useTranslation(); const isMaintenanceMode = useIsMaintenanceMode(); const { start: startMaintenanceMode, end: endMaintenanceMode } = useMaintenanceModeActions(); const [isModalOpen, setModalOpen] = useState(false); const openModal = useCallback(() => { setModalOpen(true); }, []); const closeModal = useCallback(() => { setModalOpen(false); }, []); const onConfirmHandler = useCallback(async () => { closeModal(); try { if (isMaintenanceMode) { endMaintenanceMode(); } else { startMaintenanceMode(); } } catch (err) { toastError( isMaintenanceMode ? t('admin:maintenance_mode.failed_to_end_maintenance_mode') : t('admin:maintenance_mode.failed_to_start_maintenance_mode'), ); } toastSuccess( isMaintenanceMode ? t('admin:maintenance_mode.successfully_ended_maintenance_mode') : t('admin:maintenance_mode.successfully_started_maintenance_mode'), ); }, [ isMaintenanceMode, closeModal, startMaintenanceMode, endMaintenanceMode, t, ]); return (
closeModal()} />

{t('admin:maintenance_mode.description')} error {t('admin:maintenance_mode.supplymentary_message_to_start')}

); };