@ozen-ui/kit
Version:
React component library
35 lines (34 loc) • 1.39 kB
JavaScript
Object.defineProperty(exports, "__esModule", { value: true });
exports.useBottomSheetBaseReady = void 0;
var tslib_1 = require("tslib");
var react_1 = require("react");
var useStoredValue_1 = require("../../../../hooks/useStoredValue");
var useBottomSheetBaseReady = function () {
var _a = tslib_1.__read((0, react_1.useState)(false), 2), isReady = _a[0], setReady = _a[1];
var isReadyMap = (0, useStoredValue_1.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 = (0, react_1.useCallback)(function (key) {
var _a;
setIsReadyMap(tslib_1.__assign(tslib_1.__assign({}, isReadyMap.current), (_a = {}, _a[key] = false, _a)));
return function () {
var _a;
if (isReadyMap.current[key]) {
return;
}
setIsReadyMap(tslib_1.__assign(tslib_1.__assign({}, isReadyMap.current), (_a = {}, _a[key] = true, _a)));
};
}, []);
return { isReady: isReady, registerReady: registerReady };
};
exports.useBottomSheetBaseReady = useBottomSheetBaseReady;
;