"use client"; import { useState } from "react"; import { Button } from "@/components/ui/button"; import { Textarea } from "@/components/ui/textarea"; import { Dialog, DialogContent, DialogHeader, DialogTitle, DialogFooter } from "@/components/ui/dialog"; import { Send } from "lucide-react"; import { toast } from "sonner"; import { apiRequest } from "@/lib/storeHelper"; interface BroadcastDialogProps { open: boolean; setOpen: (open: boolean) => void; } export default function BroadcastDialog({ open, setOpen }: BroadcastDialogProps) { const [broadcastMessage, setBroadcastMessage] = useState(""); const [isSending, setIsSending] = useState(false); const sendBroadcast = async () => { if (!broadcastMessage.trim()) { toast.warning("Broadcast message cannot be empty."); return; } try { setIsSending(true); const response = await apiRequest("/storefront/broadcast", "POST", { message: broadcastMessage }); if (response.error) throw new Error(response.error); toast.success(`Broadcast sent to ${response.totalUsers} users!`); setBroadcastMessage(""); setOpen(false); } catch (error) { toast.error("Failed to send broadcast message."); } finally { setIsSending(false); } }; return ( Global Broadcast Message