UNPKG

@stanfordspezi/spezi-web-design-system

Version:

Stanford Biodesign Digital Health Spezi Web Design System

36 lines (35 loc) 1.12 kB
import { InitialState } from '../misc'; /** * Handles open/close or similar boolean states. * Mainly aims to improve readability. * * @example * ```tsx * const modal = useOpenState() * <button onClick={modal.open} /> * <Modal isOpen={modal.isOpen} /> * ``` * */ export declare const useOpenState: (initialValue?: InitialState<boolean>) => { isOpen: boolean; setIsOpen: import('react').Dispatch<import('react').SetStateAction<boolean>>; close: () => void; open: () => void; toggle: () => void; }; /** * Implements a stateful open/closed mechanism that preserves component state between transitions. * * @remarks * This pattern is particularly useful in scenarios requiring: * - A boolean flag to control visibility (open/closed state) * - Separate state to determine opened entity * - Saving state even after closing, which prevents flickering during exit animations */ export declare const useStatefulOpenState: <T>(initialStateValue?: T, initialValue?: InitialState<boolean>) => { isOpen: boolean; close: () => void; open: (state: T) => void; state: T | undefined; };