/* eslint-disable react-hooks/exhaustive-deps */ import clsx from 'clsx'; import { useBlocker } from 'react-router'; import { JSX, Fragment, ReactNode, useCallback } from 'react'; import { Dialog, Transition, DialogPanel, DialogTitle, TransitionChild } from '@headlessui/react'; export interface BottomSheetProps { open: boolean; onClose: () => void; afterLeave?: () => void; children: ReactNode; title?: string | JSX.Element; description?: string | JSX.Element; centeredTitle?: boolean; } const BottomSheet = ({ open, onClose, afterLeave, children, title, centeredTitle, description }: BottomSheetProps) => { const whenToBlock = useCallback(() => open, [open]); const blocker = useBlocker(whenToBlock); const handleClose = useCallback(() => { blocker?.reset?.(); onClose(); }, []); return ( ); }; export { BottomSheet };