useEmbeddedCloseHandler.ts20 lines · main
1import { useCallback } from 'react'
2
3/**
4 * Returns a close handler for embedded vs standalone dropdown/sheet usage.
5 * When embedded, uses the provided onClose callback (or no-op if not provided).
6 * When standalone, returns a function that calls setOpen(false).
7 */
8export function useEmbeddedCloseHandler(
9 embedded: boolean,
10 onClose?: () => void,
11 setOpen?: (open: boolean) => void
12): () => void {
13 return useCallback(() => {
14 if (embedded) {
15 onClose?.()
16 } else {
17 setOpen?.(false)
18 }
19 }, [embedded, onClose, setOpen])
20}