"use client"; import { useState } from "react"; import { Business } from "@/types"; // Ensure Business type is compatible or inferred import { BusinessTable } from "@/components/dashboard/business-table"; import { BusinessDetailModal } from "@/components/dashboard/business-detail-modal"; import { Button } from "@/components/ui/button"; import { adminBulkDeleteBusinesses } from "@/app/admin/actions/business"; import { Trash2 } from "lucide-react"; import { toast } from "sonner"; import { Card, CardContent, CardHeader, CardTitle } from "@/components/ui/card"; interface AdminBusinessViewProps { initialBusinesses: Business[]; } export function AdminBusinessView({ initialBusinesses }: AdminBusinessViewProps) { const [businesses, setBusinesses] = useState(initialBusinesses); const [selectedIds, setSelectedIds] = useState([]); const [selectedBusiness, setSelectedBusiness] = useState(null); const [isModalOpen, setIsModalOpen] = useState(false); const handleDeleteSelected = async () => { if (!confirm(`Delete ${selectedIds.length} businesses?`)) return; try { await adminBulkDeleteBusinesses(selectedIds); setBusinesses(prev => prev.filter(b => !selectedIds.includes(b.id))); setSelectedIds([]); toast.success("Deleted successfully"); } catch { toast.error("Failed to delete"); } }; const handleViewDetails = (business: Business) => { setSelectedBusiness(business); setIsModalOpen(true); }; return (

Businesses

Manage scraped leads and business data

{selectedIds.length > 0 && ( )}
All Leads ({businesses.length}) {}} // Admin doesn't send emails from here typically selectedIds={selectedIds} onSelectionChange={setSelectedIds} /> setIsModalOpen(false)} />
); }