@carbon/react
Version:
React components for the Carbon Design System
29 lines (27 loc) • 828 B
JavaScript
/**
* Copyright IBM Corp. 2016, 2026
*
* This source code is licensed under the Apache-2.0 license found in the
* LICENSE file in the root directory of this source tree.
*/
import { useEffect, useMemo, useState } from "react";
//#region src/components/ComposedModal/useComposedModalState.ts
/**
* Copyright IBM Corp. 2016, 2025
*
* This source code is licensed under the Apache-2.0 license found in the
* LICENSE file in the root directory of this source tree.
*/
const useComposedModalState = (open) => {
const [isOpen, setIsOpen] = useState(!!open);
const [wasOpen, setWasOpen] = useState(!!open);
useEffect(() => {
if (open !== wasOpen) {
setIsOpen(!!open);
setWasOpen(!!open);
}
}, [open, wasOpen]);
return useMemo(() => [isOpen, setIsOpen], [isOpen]);
};
//#endregion
export { useComposedModalState };