import { withUtils, type SWRResponseWithUtils } from '@growi/core/dist/swr'; import { apiv3Post } from '~/client/util/apiv3-client'; import { useStaticSWR } from './use-static-swr'; type maintenanceModeUtils = { start(): Promise, end(): Promise, } export const useIsMaintenanceMode = (initialData?: boolean): SWRResponseWithUtils => { const swrResult = useStaticSWR('isMaintenanceMode', initialData, { fallbackData: false }); const utils = { start: async() => { const { mutate } = swrResult; await apiv3Post('/app-settings/maintenance-mode', { flag: true }); mutate(true); }, end: async() => { const { mutate } = swrResult; await apiv3Post('/app-settings/maintenance-mode', { flag: false }); mutate(false); }, }; return withUtils(swrResult, utils); };