{"version":3,"file":"useMutateWithToast.mjs","sources":["../../../../../../../../web/src/adminPortal/utils/useMutateWithToast.ts"],"sourcesContent":["import { useCallback } from 'react';\n\nimport { useToast } from '../components/Toast';\n\nexport interface MutationOptions {\n  errorMessage?: string | ((e: unknown) => string);\n}\n\nexport type MutationFn<T, TReturn> = (properties: T, options?: MutationOptions) => Promise<TReturn>;\n\nexport const useMutateWithToast = <TParams, TReturn = void>(callback: (params: TParams) => Promise<TReturn>) => {\n  const { openToast } = useToast();\n\n  const mutate = useCallback<MutationFn<TParams, TReturn>>(\n    async (properties, { errorMessage } = {}) => {\n      try {\n        return await callback(properties);\n      } catch (e) {\n        if (errorMessage) {\n          openToast({ type: 'error', text: typeof errorMessage === 'function' ? errorMessage(e) : errorMessage });\n        }\n        throw e;\n      }\n    },\n    [callback, openToast],\n  );\n\n  return { mutate };\n};\n"],"names":["useMutateWithToast","callback","openToast","useToast","mutate","useCallback","properties","errorMessage","e","type","text"],"mappings":";;;;;AAUO,MAAMA,qBAAqB,CAA0BC,QAAAA,GAAAA;IAC1D,MAAM,EAAEC,SAAS,EAAE,GAAGC,QAAAA,EAAAA;IAEtB,MAAMC,MAAAA,GAASC,EACb,OAAOC,UAAAA,EAAY,EAAEC,YAAY,EAAE,GAAG,EAAE,GAAA;QACtC,IAAI;AACF,YAAA,OAAO,MAAMN,QAAAA,CAASK,UAAAA,CAAAA;AACxB,QAAA,CAAA,CAAE,OAAOE,CAAAA,EAAG;AACV,YAAA,IAAID,YAAAA,EAAc;gBAChBL,SAAAA,CAAU;oBAAEO,IAAAA,EAAM,OAAA;AAASC,oBAAAA,IAAAA,EAAM,OAAOH,YAAAA,KAAiB,UAAA,GAAaA,YAAAA,CAAaC,CAAAA,CAAAA,GAAKD;AAAa,iBAAA,CAAA;AACvG,YAAA;YACA,MAAMC,CAAAA;AACR,QAAA;IACF,CAAA,EACA;AAACP,QAAAA,QAAAA;AAAUC,QAAAA;AAAU,KAAA,CAAA;IAGvB,OAAO;AAAEE,QAAAA;AAAO,KAAA;AAClB;;;;"}