diff --git a/src/components/ReminderSettingsCard.tsx b/src/components/ReminderSettingsCard.tsx index 1024fb6..4b7a100 100644 --- a/src/components/ReminderSettingsCard.tsx +++ b/src/components/ReminderSettingsCard.tsx @@ -1,15 +1,21 @@ 'use client'; -import { useState } from 'react'; import { Card, CardContent, CardHeader, CardTitle } from '@/components/ui/card'; import { Button } from '@/components/ui/button'; -import { Input } from '@/components/ui/input'; import { Label } from '@/components/ui/label'; import { ReminderSettings } from '@/lib/storage'; import { useNotifications } from '@/hooks/useNotifications'; import { useTheme } from '@/lib/theme-context'; import { Bell, BellOff, BellRing, Check, X } from 'lucide-react'; +import { + Select, + SelectContent, + SelectItem, + SelectTrigger, + SelectValue, +} from '@/components/ui/select'; + interface ReminderSettingsCardProps { settings: ReminderSettings; onSettingsChange: (settings: ReminderSettings) => void; @@ -21,7 +27,14 @@ export function ReminderSettingsCard({ }: ReminderSettingsCardProps) { const { theme } = useTheme(); const { isSupported, permission, requestPermission } = useNotifications(settings); - const [localTime, setLocalTime] = useState(settings.reminderTime); + + // Parse current time for initial state + const [hours, minutes] = settings.reminderTime.split(':').map(Number); + const currentAmpm = hours >= 12 ? 'PM' : 'AM'; + const currentHour12 = hours % 12 || 12; // Convert 0 -> 12, 13 -> 1, etc. + + const hourString = currentHour12.toString().padStart(2, '0'); + const minuteString = minutes.toString().padStart(2, '0'); const handleToggle = async () => { if (!settings.enabled && permission !== 'granted') { @@ -35,11 +48,16 @@ export function ReminderSettingsCard({ }); }; - const handleTimeChange = (newTime: string) => { - setLocalTime(newTime); + const updateTime = (newHourStr: string, newMinuteStr: string, newAmpmStr: string) => { + let h = parseInt(newHourStr); + if (newAmpmStr === 'PM' && h !== 12) h += 12; + if (newAmpmStr === 'AM' && h === 12) h = 0; + + const timeString = `${h.toString().padStart(2, '0')}:${newMinuteStr}`; + onSettingsChange({ ...settings, - reminderTime: newTime, + reminderTime: timeString, }); }; @@ -57,6 +75,10 @@ export function ReminderSettingsCard({ const permissionStatus = getPermissionStatus(); + // Generate options + const hoursOptions = Array.from({ length: 12 }, (_, i) => (i + 1).toString().padStart(2, '0')); + const minutesOptions = Array.from({ length: 12 }, (_, i) => (i * 5).toString().padStart(2, '0')); + return (
@@ -110,16 +130,65 @@ export function ReminderSettingsCard({ {/* Time Picker */} {settings.enabled && (
-