"use client";
import { useQuery } from "@tanstack/react-query";
import Link from "next/link";
import { deliveryApi } from "@/modules/delivery/services/delivery-api";
import { useTenantId } from "@/hooks/useTenantId";
import { useDeliveryCapabilities, useDeliveryMetrics } from "@/modules/delivery/hooks/useDeliveryCapabilities";
import { DeliveryPageLoader, DeliveryPageError } from "@/modules/delivery/pages/shared";
import { PageHeader, StatCard, Card, CardContent, Button, Badge } from "@/components/ds";
import { DeliveryBreadcrumbs } from "@/modules/delivery/components/DeliveryBreadcrumbs";
export const ExecutiveDashboard = function DeliveryExecutiveDashboard() {
const { tenantId } = useTenantId();
const caps = useDeliveryCapabilities();
const metrics = useDeliveryMetrics();
const countsQ = useQuery({
queryKey: ["delivery", tenantId, "dashboard-counts"],
queryFn: async () => {
const [orgs, hubs, drivers] = await Promise.all([
deliveryApi.organizations.list(tenantId!, { page: 1, page_size: 500 }),
deliveryApi.hubs.list(tenantId!, { page: 1, page_size: 500 }),
deliveryApi.drivers.list(tenantId!, { page: 1, page_size: 500 }),
]);
const driverItems = Array.isArray(drivers) ? drivers : drivers.items;
return {
organizations: orgs.length,
hubs: hubs.length,
drivers: driverItems.length,
driversActive: driverItems.filter((d) => d.status === "active").length,
};
},
enabled: !!tenantId,
});
if (!tenantId || countsQ.isLoading || caps.isLoading) return ;
if (countsQ.error) return countsQ.refetch()} />;
const c = countsQ.data!;
return (
Torbat Driver v{caps.data?.version}}
/>
{metrics.data ? (
فاز {metrics.data.phase} — {metrics.data.note}
) : null}
);
};
export default ExecutiveDashboard;