Path: blob/main/components/dashboard/src/data/maintenance-mode/maintenance-mode-query.ts
2501 views
/**1* Copyright (c) 2025 Gitpod GmbH. All rights reserved.2* Licensed under the GNU Affero General Public License (AGPL).3* See License.AGPL.txt in the project root for license information.4*/56import { useQuery } from "@tanstack/react-query";7import { useCurrentOrg } from "../organizations/orgs-query";8import { organizationClient } from "../../service/public-api";910export const maintenanceModeQueryKey = (orgId: string) => ["maintenance-mode", orgId];1112export const useMaintenanceMode = () => {13const { data: org } = useCurrentOrg();1415const { data: isMaintenanceMode = false, isLoading } = useQuery(16maintenanceModeQueryKey(org?.id || ""),17async () => {18if (!org?.id) return false;1920try {21const response = await organizationClient.getOrganizationMaintenanceMode({22organizationId: org.id,23});24return response.enabled;25} catch (error) {26console.error("Failed to fetch maintenance mode status", error);27return false;28}29},30{31enabled: !!org?.id,32staleTime: 30 * 1000, // 30 seconds33refetchInterval: 60 * 1000, // 1 minute34},35);3637return {38isMaintenanceMode,39isLoading,40};41};424344