@ozen-ui/kit
Version:
React component library
31 lines (30 loc) • 1.15 kB
JavaScript
import { __assign, __read } from "tslib";
import { useCallback, useState } from 'react';
import { useStoredValue } from '../../../../hooks/useStoredValue';
export var useBottomSheetBaseReady = function () {
var _a = __read(useState(false), 2), isReady = _a[0], setReady = _a[1];
var isReadyMap = useStoredValue({});
var setIsReadyMap = function (map) {
isReadyMap.current = map;
var states = Object.values(isReadyMap.current);
if (states.length === 0) {
return;
}
var isReady = states.every(function (state) { return !!state; });
if (isReady) {
setReady(true);
}
};
var registerReady = useCallback(function (key) {
var _a;
setIsReadyMap(__assign(__assign({}, isReadyMap.current), (_a = {}, _a[key] = false, _a)));
return function () {
var _a;
if (isReadyMap.current[key]) {
return;
}
setIsReadyMap(__assign(__assign({}, isReadyMap.current), (_a = {}, _a[key] = true, _a)));
};
}, []);
return { isReady: isReady, registerReady: registerReady };
};