"use client"; import { useState, useEffect, ChangeEvent } from "react"; import { useRouter } from "next/navigation"; import Layout from "@/components/kokonutui/layout"; import { Button } from "@/components/ui/button"; import { Input } from "@/components/ui/input"; import { Textarea } from "@/components/ui/textarea"; import { Save, Send, Key, MessageSquare, Shield } from "lucide-react"; import { apiRequest } from "@/lib/storeHelper"; import { toast, Toaster } from "sonner"; import BroadcastDialog from "@/components/broadcast-dialog"; // ✅ Define the Storefront Type interface Storefront { pgpKey: string; welcomeMessage: string; telegramToken: string; } export default function StorefrontPage() { const router = useRouter(); const [storefront, setStorefront] = useState({ pgpKey: "", welcomeMessage: "", telegramToken: "", }); const [broadcastOpen, setBroadcastOpen] = useState(false); const [loading, setLoading] = useState(true); const [saving, setSaving] = useState(false); // ✅ Fetch Storefront Data useEffect(() => { const fetchStorefront = async () => { try { setLoading(true); const data: Storefront = await apiRequest("/storefront"); setStorefront(data); } catch (error) { toast.error("Failed to load storefront data."); } finally { setLoading(false); } }; fetchStorefront(); }, []); // ✅ Handle Form Input Changes const handleInputChange = (e: ChangeEvent) => { setStorefront({ ...storefront, [e.target.name]: e.target.value }); }; // ✅ Save Storefront Changes const saveStorefront = async () => { try { setSaving(true); await apiRequest("/storefront", "PUT", storefront); toast.success("Storefront updated successfully!"); } catch (error) { toast.error("Failed to update storefront."); } finally { setSaving(false); } }; return ( {/* ✅ Dark Themed Toaster for Notifications */} {/* Broadcast Dialog Component */}
{/* PGP Key Section */}

PGP Encryption Key