Path: blob/main/components/dashboard/src/data/maintenance-mode/maintenance-notification-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";9import { MaintenanceNotification } from "@gitpod/gitpod-protocol";1011export const maintenanceNotificationQueryKey = (orgId: string) => ["maintenance-notification", orgId];1213export const useMaintenanceNotification = () => {14const { data: org } = useCurrentOrg();1516const { data, isLoading } = useQuery<MaintenanceNotification>(17maintenanceNotificationQueryKey(org?.id || ""),18async () => {19if (!org?.id) return { enabled: false };2021try {22const response = await organizationClient.getMaintenanceNotification({23organizationId: org.id,24});25return {26enabled: response.isEnabled,27message: response.message,28};29} catch (error) {30console.error("Failed to fetch maintenance notification settings", error);31return { enabled: false };32}33},34{35enabled: !!org?.id,36staleTime: 30 * 1000, // 30 seconds37refetchInterval: 60 * 1000, // 1 minute38},39);4041return {42isNotificationEnabled: data?.enabled || false,43notificationMessage: data?.message,44isLoading,45};46};474849