"use client" import { useMutation, useQuery, useQueryClient } from "@tanstack/react-query" import { apiClient } from "@/lib/api/client" import type { ApiOrgSettingsPutRequest, ApiOrgSettingsResponse, } from "@/lib/api/admin-org-types" import { useAuthReady } from "@/lib/api/use-auth-ready" import { adminScopesFromToken, isPlatformAdminFromToken } from "@/lib/auth/admin" import { useAuthStore } from "@/lib/api/auth-store" export const ORG_SETTINGS_QUERY_KEY = ["admin", "org-settings"] as const export function useOrgSettings() { const { ready, authenticated } = useAuthReady() const token = useAuthStore((s) => s.accessToken) const scopes = adminScopesFromToken(token) const isAdmin = isPlatformAdminFromToken(token) || scopes.read return useQuery({ queryKey: ORG_SETTINGS_QUERY_KEY, queryFn: () => apiClient.get("/admin/org/settings"), staleTime: 60_000, enabled: ready && authenticated && isAdmin, retry: 1, }) } export function useUpdateOrgSettings() { const queryClient = useQueryClient() return useMutation({ mutationFn: (body: ApiOrgSettingsPutRequest) => apiClient.put("/admin/org/settings", body), onSuccess: (data) => { queryClient.setQueryData(ORG_SETTINGS_QUERY_KEY, data) }, }) }