| 12345678910111213141516171819202122232425262728293031 |
- 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<void>,
- end(): Promise<void>,
- }
- export const useIsMaintenanceMode = (initialData?: boolean): SWRResponseWithUtils<maintenanceModeUtils, boolean> => {
- const swrResult = useStaticSWR<boolean, Error>('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<maintenanceModeUtils, boolean>(swrResult, utils);
- };
|