UNPKG

prostgles-client

Version:

Reactive client for Postgres

32 lines (31 loc) 1.13 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.useEffectAsync = void 0; const reactImports_1 = require("../hooks/reactImports"); const { useRef } = reactImports_1.reactImports; const useEffectDeep_1 = require("./useEffectDeep"); const useEffectAsync = (effect, inputs) => { const onCleanup = useRef({ cleanup: undefined, effect, cleanupEffect: undefined, }); onCleanup.current.effect = effect; (0, useEffectDeep_1.useEffectDeep)(() => { effect().then((result) => { if (typeof result === "function") { onCleanup.current.cleanup = result; if (onCleanup.current.cleanupEffect === effect) { result(); } } }); return () => { var _a, _b; onCleanup.current.cleanupEffect = effect; (_b = (_a = onCleanup.current).cleanup) === null || _b === void 0 ? void 0 : _b.call(_a); }; // eslint-disable-next-line react-hooks/exhaustive-deps }, inputs); }; exports.useEffectAsync = useEffectAsync;