maintenance-mode.ts 907 B

12345678910111213141516171819202122232425262728293031
  1. import { useCallback } from 'react';
  2. import { useSetAtom } from 'jotai';
  3. import { _atomsForMaintenanceMode } from '../../states/global';
  4. import { apiv3Post } from '../util/apiv3-client';
  5. const { isMaintenanceModeAtom } = _atomsForMaintenanceMode;
  6. /**
  7. * Maintenance Mode Actions
  8. */
  9. export type MaintenanceModeActions = {
  10. start: () => Promise<void>;
  11. end: () => Promise<void>;
  12. };
  13. export const useMaintenanceModeActions = (): MaintenanceModeActions => {
  14. const setIsMaintenanceMode = useSetAtom(isMaintenanceModeAtom);
  15. const start = useCallback(async () => {
  16. await apiv3Post('/app-settings/maintenance-mode', { flag: true });
  17. setIsMaintenanceMode(true);
  18. }, [setIsMaintenanceMode]);
  19. const end = useCallback(async () => {
  20. await apiv3Post('/app-settings/maintenance-mode', { flag: false });
  21. setIsMaintenanceMode(false);
  22. }, [setIsMaintenanceMode]);
  23. return { start, end };
  24. };