@@ -16,6 +16,7 @@ import { useTheme } from "next-themes";
1616import { useLayoutEffect , useState } from "react" ;
1717import { toast } from "sonner" ;
1818import type { ThirdwebClient } from "thirdweb" ;
19+ import { submitProductFeedback } from "@/actions/product-feedback" ;
1920import { reportProductFeedback } from "@/analytics/report" ;
2021import { Button } from "@/components/ui/button" ;
2122import { NavLink } from "@/components/ui/NavLink" ;
@@ -43,6 +44,7 @@ export function MobileBurgerMenuButton(
4344 const [ isMenuOpen , setIsMenuOpen ] = useState ( false ) ;
4445 const [ showFeedbackSection , setShowFeedbackSection ] = useState ( false ) ;
4546 const [ modalFeedback , setModalFeedback ] = useState ( "" ) ;
47+ const [ isSubmitting , setIsSubmitting ] = useState ( false ) ;
4648 const { setTheme, theme } = useTheme ( ) ;
4749 const ensQuery = useEns ( {
4850 addressOrEnsName :
@@ -51,7 +53,7 @@ export function MobileBurgerMenuButton(
5153 } ) ;
5254 // const [isCMDSearchModalOpen, setIsCMDSearchModalOpen] = useState(false);
5355
54- const handleModalSubmit = ( e ?: React . FormEvent ) => {
56+ const handleModalSubmit = async ( e ?: React . FormEvent ) => {
5557 e ?. preventDefault ( ) ;
5658
5759 // Report feedback to PostHog
@@ -60,6 +62,18 @@ export function MobileBurgerMenuButton(
6062 source : "mobile" ,
6163 } ) ;
6264
65+ setIsSubmitting ( true ) ;
66+ const result = await submitProductFeedback ( {
67+ feedback : modalFeedback ,
68+ source : "mobile" ,
69+ } ) ;
70+ setIsSubmitting ( false ) ;
71+
72+ if ( ! result . ok ) {
73+ toast . error ( result . error ) ;
74+ return ;
75+ }
76+
6377 // Show success notification
6478 toast . success ( "Feedback submitted successfully!" , {
6579 description : "Thank you for your feedback. We'll review it shortly." ,
@@ -281,8 +295,10 @@ export function MobileBurgerMenuButton(
281295 </ button >
282296 < button
283297 type = "submit"
284- disabled = { ! modalFeedback . trim ( ) }
285- aria-disabled = { ! modalFeedback . trim ( ) }
298+ disabled = { ! modalFeedback . trim ( ) || isSubmitting }
299+ aria-disabled = {
300+ ! modalFeedback . trim ( ) || isSubmitting
301+ }
286302 className = "flex-1 bg-primary text-primary-foreground px-3 py-2 rounded-full font-sans text-sm hover:bg-primary/90 transition-colors disabled:opacity-50"
287303 >
288304 Submit
0 commit comments