UNPKG

@yamada-ui/react

Version:

React UI components of the Yamada, by the Yamada, for the Yamada built with React and Emotion

43 lines (39 loc) 1.12 kB
"use client"; const require_rolldown_runtime = require('../../_virtual/rolldown_runtime.cjs'); const require_effect = require('../../utils/effect.cjs'); const require_hooks_use_boolean_index = require('../use-boolean/index.cjs'); let react = require("react"); react = require_rolldown_runtime.__toESM(react); //#region src/hooks/use-processing/index.ts /** * `useProcessing` is a custom hook for handling processing states. * * @see https://yamada-ui.com/docs/hooks/use-processing */ const useProcessing = (init) => { const [loading, { off, on }] = require_hooks_use_boolean_index.useBoolean(init); const countRef = (0, react.useRef)(0); const start = (0, react.useCallback)(() => { countRef.current += 1; on(); }, [on]); const finish = (0, react.useCallback)(() => { countRef.current -= 1; if (countRef.current <= 0) off(); }, [off]); require_effect.useUnmountEffect(() => { countRef.current = 0; }); return (0, react.useMemo)(() => ({ finish, loading, start }), [ finish, loading, start ]); }; //#endregion exports.useProcessing = useProcessing; //# sourceMappingURL=index.cjs.map