useEmbeddedCloseHandler.ts20 lines · main
| 1 | import { 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 | */ |
| 8 | export 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 | } |