'use client'; import { useState } from 'react'; import { useRouter } from 'next/navigation'; import Link from 'next/link'; import api from '@/lib/api'; import { ArrowLeftIcon } from '@/components/ui/Icons'; const REMINDER_OPTIONS = [ { label: 'No reminder', value: 0 }, { label: '5 minutes before', value: 5 }, { label: '10 minutes before', value: 10 }, { label: '15 minutes before', value: 15 }, { label: '30 minutes before', value: 30 }, { label: '1 hour before', value: 60 }, ]; function localDatetimeDefault(): string { const now = new Date(); now.setMinutes(now.getMinutes() + 60, 0, 0); const pad = (n: number) => String(n).padStart(2, '0'); return `${now.getFullYear()}-${pad(now.getMonth() + 1)}-${pad(now.getDate())}T${pad(now.getHours())}:${pad(now.getMinutes())}`; } export default function NewTaskPage() { const router = useRouter(); const [title, setTitle] = useState(''); const [description, setDescription] = useState(''); const [scheduledDatetime, setScheduledDatetime] = useState(localDatetimeDefault); const [reminderMinutes, setReminderMinutes] = useState(15); const [isSubmitting, setIsSubmitting] = useState(false); const [error, setError] = useState(''); const handleSubmit = async (e: React.FormEvent) => { e.preventDefault(); if (!title.trim()) { setError('Title is required.'); return; } if (!scheduledDatetime) { setError('Date and time are required.'); return; } setIsSubmitting(true); setError(''); try { await api.tasks.create({ title: title.trim(), description: description.trim() || undefined, scheduled_datetime: scheduledDatetime, reminder_minutes_before: reminderMinutes, }); router.push('/dashboard/tasks'); } catch (err) { console.error('Failed to create task:', err); setError('Failed to create task. Please try again.'); setIsSubmitting(false); } }; return (