@ozen-ui/kit
Version:
React component library
32 lines (31 loc) • 1.03 kB
JavaScript
import { __read } from "tslib";
import { useEffect, useState } from 'react';
import { useStoredValue } from '../../../hooks/useStoredValue';
export var useBottomSheetBaseVisibility = function (_a) {
var isAnimating = _a.isAnimating, isOpen = _a.isOpen;
var _b = __read(useState(isOpen), 2), isVisible = _b[0], setIsVisible = _b[1];
var isFirstRender = useStoredValue(true);
var isClosingStarted = useStoredValue(false);
useEffect(function () {
if (isOpen) {
isClosingStarted.current = false;
setIsVisible(true);
return;
}
if (isFirstRender.current) {
return;
}
isClosingStarted.current = true;
}, [isOpen]);
useEffect(function () {
if (!isClosingStarted.current || isAnimating) {
return;
}
isClosingStarted.current = false;
setIsVisible(false);
}, [isAnimating]);
useEffect(function () {
isFirstRender.current = false;
}, []);
return isVisible;
};