useEmbeddedCloseHandler.ts 552 B

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