diff --git a/web/src/app/settings/page.tsx b/web/src/app/settings/page.tsx index 14670a5..1a52f98 100644 --- a/web/src/app/settings/page.tsx +++ b/web/src/app/settings/page.tsx @@ -2,7 +2,8 @@ import { useState, useEffect } from 'react'; import Link from 'next/link'; -import { ArrowLeft, Volume2, Bell, Palette, Trash2, Minimize2, User, LogOut } from 'lucide-react'; +import { ArrowLeft, Volume2, Bell, Palette, Trash2, Minimize2, User, LogOut, MessageSquarePlus } from 'lucide-react'; +import { feedbackClient } from '@/lib/feedback'; import { URGENCY_ORDER, getUrgencyConfig } from '@/lib/urgency'; import { previewSound } from '@/lib/sounds'; import { getNotificationPermission, requestNotificationPermission } from '@/lib/notifications'; @@ -33,6 +34,10 @@ export default function SettingsPage() { const [showChangePw, setShowChangePw] = useState(false); const [showDeleteAccount, setShowDeleteAccount] = useState(false); const [deleteConfirmPw, setDeleteConfirmPw] = useState(''); + const [feedbackType, setFeedbackType] = useState<'bug' | 'feature' | 'praise'>('feature'); + const [feedbackText, setFeedbackText] = useState(''); + const [feedbackSubmitting, setFeedbackSubmitting] = useState(false); + const [feedbackSuccess, setFeedbackSuccess] = useState(false); useEffect(() => { setMounted(true); @@ -489,6 +494,74 @@ export default function SettingsPage() { + {/* Feedback */} +
+

+ Feedback +

+
+ {feedbackSuccess ? ( +

+ Thank you for your feedback! +

+ ) : ( +
+
+ {(['feature', 'bug', 'praise'] as const).map((t) => ( + + ))} +
+