"use client";
import { useMemo, useState } from "react";
import { useTranslations } from "next-intl";
import { useQuery } from "@tanstack/react-query";
import { PageShell } from "@/components/layout/page-shell";
import { StatusBadge } from "@/components/shared/status-badge";
import { TableToolbar, matchesSearch } from "@/components/table/table-toolbar";
import { TablePanel } from "@/components/table/table-panel";
import { useAuth } from "@/providers/auth-provider";
import { mockApi } from "@/lib/api/mock-client";
import { formatDate, formatEtb } from "@/lib/format";
import { Link } from "@/i18n/routing";
import { Button } from "@/components/ui/button";
import {
Table,
TableBody,
TableCell,
TableHead,
TableHeader,
TableRow,
} from "@/components/ui/table";
import { ArrowLeft } from "lucide-react";
export default function MemberOrdersPage() {
const t = useTranslations();
const { user } = useAuth();
const memberId = user?.memberId ?? "mem_001";
const [search, setSearch] = useState("");
const [statusFilter, setStatusFilter] = useState("all");
const { data: orders, isLoading } = useQuery({
queryKey: ["member-orders", memberId],
queryFn: () => mockApi.getMemberOrders(memberId),
enabled: !!user,
});
const filtered = useMemo(() => {
return (orders ?? []).filter((order) => {
if (statusFilter !== "all" && order.status !== statusFilter) return false;
return matchesSearch([order.id, order.status], search);
});
}, [orders, search, statusFilter]);
if (!user) return null;
return (