"use client"; import { useState } from "react"; import type { Segment } from "@/actions/harvest-reach/segments"; import { AdminButton, AdminIconButton, AdminSearchInput } from "@/components/admin/design-system"; // Icon components const Icons = { Plus: ({ className }: { className: string }) => ( ), trash: (className: string) => ( ), }; type Props = { segments: Segment[]; activeSegmentId?: string; onSelect: (segment: Segment) => void; onNew: () => void; onDelete: (segmentId: string) => void; }; export default function SegmentListSidebar({ segments, activeSegmentId, onSelect, onNew, onDelete }: Props) { const [search, setSearch] = useState(""); const [confirmDelete, setConfirmDelete] = useState(null); const filtered = segments.filter((s) => s.name.toLowerCase().includes(search.toLowerCase()) ); return (

Saved Segments

setSearch(e.target.value)} />
{filtered.length === 0 && (

{search ? "No segments match." : "No saved segments yet."}

)} {filtered.map((segment) => (
{confirmDelete === segment.id ? (

Delete "{segment.name}"?

{ onDelete(segment.id); setConfirmDelete(null); }} fullWidth > Delete setConfirmDelete(null)} fullWidth > Cancel
) : (
onSelect(segment)} className={`px-3 py-2.5 rounded-xl cursor-pointer flex items-center justify-between gap-2 transition-all ${ activeSegmentId === segment.id ? "bg-[var(--admin-accent-light)] border border-[var(--admin-accent)]" : "hover:bg-[var(--admin-card-hover)] border border-transparent" }`} >

{segment.name}

{segment.description && (

{segment.description}

)}
)}
))}
); }