UNPKG

autumn-js

Version:
95 lines (91 loc) 2.11 kB
"use client"; import { useAutumnBase } from "./chunk-BMS5CSTF.mjs"; import { handleCheck, openDialog } from "./chunk-HNIQ4O6H.mjs"; import { useAutumnContext } from "./chunk-OYO7LPVB.mjs"; // src/libraries/react/hooks/useEntityBase.tsx import useSWR from "swr"; import { useContext } from "react"; var useEntityBase = ({ entityId, params, AutumnContext }) => { const { client } = useContext(AutumnContext); const queryKey = ["entity", entityId, params?.expand]; const context = useAutumnContext({ AutumnContext, name: "useEntity" }); const fetchEntity = async () => { if (!entityId) { return null; } const { data: data2, error: error2 } = await client.entities.get(entityId, params); if (error2) { throw error2; } if (!data2) { return null; } return data2; }; const { data, error, isLoading, mutate } = useSWR(queryKey, fetchEntity, { fallbackData: null, shouldRetryOnError: false, onErrorRetry: (error2, key, config) => { if (error2.code == "entity_not_found") { return false; } return true; } }); const { attach: attachAutumn, cancel: cancelAutumn, track: trackAutumn } = useAutumnBase({ context, client }); const check = (params2) => { const result = handleCheck({ customer: data, params: params2, isEntity: true }); openDialog({ result: result.data, params: params2, context }); return result; }; const attach = (params2) => attachAutumn({ ...params2, entityId: entityId || void 0 }); const cancel = (params2) => cancelAutumn({ ...params2, entityId: entityId || void 0 }); const track = (params2) => trackAutumn({ ...params2, entityId: entityId || void 0 }); if (!entityId) { return { entity: null, isLoading: false, error: null, refetch: mutate, check, attach, cancel, track }; } return { entity: error ? null : data, isLoading, error, refetch: mutate, check, attach, cancel, track }; }; export { useEntityBase };