import React, { useMemo } from 'react'; import FocusTrap from 'focus-trap-react'; import { Box, Button, config, Dialog, Header, Icon, IconButton, Icons, Line, Overlay, OverlayBackdrop, OverlayCenter, Text, } from 'folds'; import { stopPropagation } from '../../../utils/keyboard'; import { useReminders } from '../../../hooks/useReminders'; import { useModalStyle } from '../../../hooks/useModalStyle'; type RemindMeDialogProps = { roomId: string; eventId: string; previewText: string; onClose: () => void; }; function getPresets(): Array<{ label: string; ms: number }> { const tomorrow = new Date(); tomorrow.setDate(tomorrow.getDate() + 1); tomorrow.setHours(9, 0, 0, 0); const timeLabel = tomorrow.toLocaleTimeString([], { hour: '2-digit', minute: '2-digit' }); return [ { label: 'In 20 minutes', ms: 20 * 60_000 }, { label: 'In 1 hour', ms: 60 * 60_000 }, { label: 'In 3 hours', ms: 3 * 60 * 60_000 }, { label: `Tomorrow at ${timeLabel}`, ms: tomorrow.getTime() - Date.now() }, ]; } export function RemindMeDialog({ roomId, eventId, previewText, onClose }: RemindMeDialogProps) { const modalStyle = useModalStyle(320); const { addReminder } = useReminders(); const presets = useMemo(() => getPresets(), []); const handlePick = async (ms: number) => { await addReminder({ roomId, eventId, timestamp: Date.now() + ms, message: previewText || 'Reminder', }); onClose(); }; return ( }>
Remind Me
{previewText && ( <> {previewText} )} {presets.map((p) => ( ))}
); }