import { useMutation, useQuery, useQueryClient } from "@tanstack/react-query"; import { useTranslation } from "react-i18next"; import { toast } from "sonner"; import { exchangeSettingsService } from "@/services/exchangeSettings.service"; import { useErrorHandler } from "@/shared/hooks/useErrorHandler"; const QUERY_KEY = ["exchangeSettings"]; /** One row per foreign currency (USD, DJF, …) — see `exchangeSettingsService.list`. */ export const useExchangeSettingsQuery = () => useQuery({ queryKey: QUERY_KEY, queryFn: () => exchangeSettingsService.list(), // Feed health is only interesting while it is being looked at. staleTime: 30_000, refetchOnWindowFocus: true, }); export const useSetExchangeFallbackRate = () => { const queryClient = useQueryClient(); const { t } = useTranslation(); const { handleError } = useErrorHandler(t); return useMutation({ mutationFn: ({ currency, rate }: { currency: string; rate: number }) => exchangeSettingsService.setFallbackRate(currency, rate), onSuccess: () => { queryClient.invalidateQueries({ queryKey: QUERY_KEY }); toast.success( t("exchangeSettings.updated", "Fallback exchange rate updated"), ); }, onError: handleError, }); };