Files
video-gen/video-gen-admin/node_modules/@rc-component/select/lib/hooks/useOpen.d.ts
T
2026-05-25 17:08:18 +08:00

19 lines
919 B
TypeScript

export declare const macroTask: (fn: VoidFunction, times?: number) => void;
/**
* Trigger by latest open call, if nextOpen is undefined, means toggle.
* `weak` means this call can be ignored if previous call exists.
*/
export type TriggerOpenType = (nextOpen?: boolean, config?: {
cancelFun?: () => boolean;
}) => void;
/**
* When `open` is controlled, follow the controlled value;
* Otherwise use uncontrolled logic.
* Setting `open` takes effect immediately,
* but setting it to `false` is delayed via MessageChannel.
*
* SSR handling: During SSR, `open` is always false to avoid Portal issues.
* On client-side hydration, it syncs with the actual open state.
*/
export default function useOpen(defaultOpen: boolean, propOpen: boolean, onOpen: (nextOpen: boolean) => void, postOpen: (nextOpen: boolean) => boolean): [rawOpen: boolean, open: boolean, toggleOpen: TriggerOpenType, lockOptions: boolean];