import { useMutation, useQuery, useQueryClient } from "@tanstack/react-query"; import { useTranslation } from "react-i18next"; import { toast } from "sonner"; import { manualPaymentSettingsService, type ManualPaymentSettings, } from "@/services/manualPaymentSettings.service"; import { useErrorHandler } from "@/shared/hooks/useErrorHandler"; export const MANUAL_PAYMENT_SETTINGS_KEY = ["manualPaymentSettings"]; export const useManualPaymentSettingsQuery = () => useQuery({ queryKey: MANUAL_PAYMENT_SETTINGS_KEY, queryFn: () => manualPaymentSettingsService.get(), staleTime: 60_000, }); export const useUpdateManualPaymentSettings = () => { const queryClient = useQueryClient(); const { t } = useTranslation(); const { handleError } = useErrorHandler(t); return useMutation({ mutationFn: ( patch: Partial>, ) => manualPaymentSettingsService.update(patch), onSuccess: (data) => { queryClient.setQueryData(MANUAL_PAYMENT_SETTINGS_KEY, data); // The Manual Payments worklist only lists enabled currencies. queryClient.invalidateQueries({ queryKey: ["invoices"] }); toast.success( t("manualPaymentSettings.updated", "Manual payment settings updated"), ); }, onError: handleError, }); };