@yamada-ui/react
Version:
React UI components of the Yamada, by the Yamada, for the Yamada built with React and Emotion
30 lines (26 loc) • 971 B
JavaScript
"use client";
const require_rolldown_runtime = require('../../_virtual/rolldown_runtime.cjs');
const require_effect = require('../../utils/effect.cjs');
let react = require("react");
react = require_rolldown_runtime.__toESM(react);
//#region src/hooks/use-mounted/index.ts
function useMounted({ delay = 0, state = false } = {}) {
const mountedRef = (0, react.useRef)(false);
const [mounted, setMounted] = (0, react.useState)(false);
require_effect.useSafeLayoutEffect(() => {
mountedRef.current = true;
let timeoutId = null;
if (state) if (delay > 0) timeoutId = setTimeout(() => setMounted(true), delay);
else setMounted(true);
return () => {
mountedRef.current = false;
if (state) setMounted(false);
if (timeoutId) clearTimeout(timeoutId);
};
}, [delay, state]);
if (state) return mounted;
else return (0, react.useCallback)(() => mountedRef.current, []);
}
//#endregion
exports.useMounted = useMounted;
//# sourceMappingURL=index.cjs.map