"use client"; import * as React from "react"; import { cn } from "./lib/utils"; export interface FeedbackWidgetProps extends Omit, "onSubmit"> { onSubmit?: (message: string, mood: "good" | "bad") => void; position?: "bottom-right" | "bottom-left"; } export function FeedbackWidget({ onSubmit, position = "bottom-right", className, ...props }: FeedbackWidgetProps) { const [open, setOpen] = React.useState(false); const [mood, setMood] = React.useState<"good" | "bad" | null>(null); const [message, setMessage] = React.useState(""); const [sent, setSent] = React.useState(false); const send = () => { if (!mood) return; onSubmit?.(message.trim(), mood); setSent(true); setTimeout(() => { setOpen(false); setSent(false); setMood(null); setMessage(""); }, 1400); }; return (
{open ? (
Ticket feedback
{sent ? (

Stamped. Thank you!

) : ( <>
{(["good", "bad"] as const).map((m) => ( ))}