From 0242ca85fffe1ecf088f6d165fd4a2ef0753ea39 Mon Sep 17 00:00:00 2001 From: saravanakumardb1 Date: Sat, 18 Apr 2026 17:58:06 -0700 Subject: [PATCH] feat(web): TODO-002 feedback form in settings page via @bytelyst/feedback-client --- web/src/app/settings/page.tsx | 75 ++++++++++++++++++++++++++++++++++- 1 file changed, 74 insertions(+), 1 deletion(-) 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) => ( + + ))} +
+