import { useEffect, useState } from 'react'; import clsx from 'clsx'; import { useAppSelector } from '@akinon/next/redux/hooks'; import { useLocalization } from '@akinon/next/hooks'; import { Price, Icon } from '@theme/components'; import type { RootState } from '@theme/redux/store'; import OnePageSummary from './one-page-summary'; import type { SectionId } from './hooks/use-section-state'; interface MobileSummarySheetProps { onEditSection: (section: SectionId) => void; showReview?: boolean; } const MobileSummarySheet = ({ onEditSection, showReview = true }: MobileSummarySheetProps) => { const { t } = useLocalization(); const [isOpen, setIsOpen] = useState(false); const preOrder = useAppSelector( (state: RootState) => state.checkout.preOrder ); useEffect(() => { if (!isOpen) return undefined; const onKey = (event: KeyboardEvent) => { if (event.key === 'Escape') setIsOpen(false); }; document.addEventListener('keydown', onKey); const previousOverflow = document.body.style.overflow; document.body.style.overflow = 'hidden'; return () => { document.removeEventListener('keydown', onKey); document.body.style.overflow = previousOverflow; }; }, [isOpen]); if (!preOrder) return null; const paymentName = preOrder.payment_option?.name; return ( <> {isOpen && ( {isOpen && ( )} ); }; export default MobileSummarySheet;