"use client"; import { useState } from "react"; import { AdminButton } from "@/components/admin/design-system"; // Icon components const Icons = { x: (className: string) => ( ), layers: (className: string) => ( ), }; type Props = { initialName?: string; initialDescription?: string; onSave: (name: string, description: string) => Promise; onClose: () => void; }; export default function SegmentEditModal({ initialName = "", initialDescription = "", onSave, onClose }: Props) { const [name, setName] = useState(initialName); const [description, setDescription] = useState(initialDescription); const [saving, setSaving] = useState(false); async function handleSave() { if (!name.trim()) return; setSaving(true); await onSave(name.trim(), description.trim()); setSaving(false); } return ( {/* Backdrop */} {/* Modal */} {/* Header */} {Icons.layers("h-5 w-5 text-white")} {initialName ? "Update Segment" : "Save Segment"} {initialName ? "Update segment details" : "Create a new audience segment"} {Icons.x("h-5 w-5")} {/* Content */} Segment Name setName(e.target.value)} onKeyDown={(e) => e.key === "Enter" && handleSave()} placeholder="e.g. Fort Pierce Regulars" className="w-full border border-[var(--admin-border)] rounded-lg px-3 py-2.5 text-sm bg-white text-[var(--admin-text-primary)] focus:ring-2 focus:ring-[var(--admin-accent)] focus:border-[var(--admin-accent)] outline-none" /> Description (optional) setDescription(e.target.value)} placeholder="e.g. Customers who pick up at the Fort Pierce stop regularly" rows={3} className="w-full border border-[var(--admin-border)] rounded-lg px-3 py-2.5 text-sm bg-white text-[var(--admin-text-primary)] resize-none focus:ring-2 focus:ring-[var(--admin-accent)] focus:border-[var(--admin-accent)] outline-none" /> {/* Footer */} Cancel {saving ? "Saving…" : "Save Segment"} ); }
{initialName ? "Update segment details" : "Create a new audience segment"}