"use client" import { useState, useMemo } from "react" import Link from "next/link" import { MaintenanceStatusBadge, PriorityBadge } from "@/components/dashboard/maintenance-status-badge" import { EmptyState } from "@/components/shared/empty-state" import { formatDate } from "@/lib/utils" import { Wrench, SlidersHorizontal } from "lucide-react" import { Select } from "@/components/ui/select" export function MaintenanceList({ requests, properties }: { requests: any[]; properties: any[] }) { const [propertyId, setPropertyId] = useState("") const [status, setStatus] = useState("") const filtered = useMemo(() => requests.filter((r) => { if (propertyId && r.property_id !== propertyId) return false if (status && r.status !== status) return false return true }), [requests, propertyId, status]) const open = requests.filter((r) => r.status === "open").length const inProgress = requests.filter((r) => r.status === "in_progress").length const resolved = requests.filter((r) => r.status === "resolved").length return (
{/* Stats */}
{[ { label: "Open", value: open, color: "text-amber-400", dot: "bg-amber-500" }, { label: "In Progress", value: inProgress, color: "text-blue-400", dot: "bg-blue-500" }, { label: "Resolved", value: resolved, color: "text-emerald-400", dot: "bg-emerald-500" }, ].map((s) => (

{s.label}

{s.value}

))}
{/* Filters */}
{(propertyId || status) && ( )} {filtered.length} result{filtered.length !== 1 ? "s" : ""}
{!filtered.length ? ( ) : (
{filtered.map((req: any) => (

{req.title}

{req.description && (

{req.description}

)}
{req.property?.name && {req.property.name}} {req.unit && · Unit {req.unit.unit_number}} {req.tenant && · {req.tenant.first_name} {req.tenant.last_name}} · {formatDate(req.created_at)}
))}
)}
) }