import clsx from "clsx"; import { usePlausible } from "next-plausible"; import Script from "next/script"; import { useEffect, useRef, useState } from "react"; declare global { interface Window { formbricks: any; } } export default function FeedbackButton() { const plausible = usePlausible(); const [isOpen, setIsOpen] = useState(false); const feedbackRef = useRef(null); useEffect(() => { // Close the feedback form if the user clicks outside of it function handleClickOutside(event: any) { if (feedbackRef.current && !feedbackRef.current.contains(event.target)) { if (isOpen) setIsOpen(false); } } // Bind the event listener document.addEventListener("mousedown", handleClickOutside); return () => { // Unbind the event listener on clean up document.removeEventListener("mousedown", handleClickOutside); }; }, [feedbackRef, isOpen]); return ( <>
{ e.stopPropagation(); }} ref={feedbackRef}>
); }