dispatch page
This commit is contained in:
@@ -15,14 +15,16 @@ import {
|
||||
Clock,
|
||||
ArrowUpRight,
|
||||
} from 'lucide-react';
|
||||
import { useOrderSummary, useTenantInfo, useTenantLocations, useInvoiceInsight } from '../services/queries';
|
||||
import { DEFAULT_TENANT_ID, DEFAULT_CONFIG_ID } from '../services/api';
|
||||
import { useFiestaLocationSummary } from '../services/fiestaQueries';
|
||||
import { useOrderSummary, useTenantInfo, useInvoiceInsight } from '../services/queries';
|
||||
import { DEFAULT_CONFIG_ID } from '../services/api';
|
||||
import { useFiestaLocationSummary, useFiestaTenantLocations } from '../services/fiestaQueries';
|
||||
import { FIESTA_TENANT_ID } from '../services/fiestaApi';
|
||||
|
||||
interface DashboardViewProps {
|
||||
searchQuery: string;
|
||||
isCoimbatoreView: boolean;
|
||||
/** Fiesta merchant tenant to scope live store summaries to. */
|
||||
tenantId?: number;
|
||||
}
|
||||
|
||||
const ymd = (d: Date) =>
|
||||
@@ -30,20 +32,23 @@ const ymd = (d: Date) =>
|
||||
|
||||
const str = (v: unknown): string => (v == null ? '' : String(v));
|
||||
|
||||
export default function DashboardView({ searchQuery }: DashboardViewProps) {
|
||||
export default function DashboardView({ searchQuery, tenantId = FIESTA_TENANT_ID }: DashboardViewProps) {
|
||||
// Live data — month-to-date order summary + tenant identity + store locations.
|
||||
const today = new Date();
|
||||
const monthStart = new Date(today.getFullYear(), today.getMonth(), 1);
|
||||
const fromdate = ymd(monthStart);
|
||||
const todate = ymd(today);
|
||||
|
||||
const summaryQ = useOrderSummary(DEFAULT_TENANT_ID, fromdate, todate, DEFAULT_CONFIG_ID);
|
||||
const tenantQ = useTenantInfo(DEFAULT_TENANT_ID);
|
||||
const locationsQ = useTenantLocations(DEFAULT_TENANT_ID);
|
||||
const insightQ = useInvoiceInsight(DEFAULT_TENANT_ID);
|
||||
// All scoped to the signed-in merchant's tenant. Store locations come from the
|
||||
// Fiesta source (the single source of truth used across the app) — it's already
|
||||
// deduped and stripped of test rows, unlike the raw Hasura tenant-locations feed.
|
||||
const summaryQ = useOrderSummary(tenantId, fromdate, todate, DEFAULT_CONFIG_ID);
|
||||
const tenantQ = useTenantInfo(tenantId);
|
||||
const locationsQ = useFiestaTenantLocations(tenantId);
|
||||
const insightQ = useInvoiceInsight(tenantId);
|
||||
|
||||
const s = summaryQ.data;
|
||||
const tenantName = str(tenantQ.data?.tenantname) || s?.tenantname || `Tenant ${DEFAULT_TENANT_ID}`;
|
||||
const tenantName = str(tenantQ.data?.tenantname) || s?.tenantname || `Tenant ${tenantId}`;
|
||||
|
||||
// Revenue + profit come from the live invoice/financial insight. The endpoint
|
||||
// returns two distinct figures (revenue and profit); we surface both rather than
|
||||
@@ -54,7 +59,7 @@ export default function DashboardView({ searchQuery }: DashboardViewProps) {
|
||||
const monthlyRevenue = insight ? insight.revenue : null;
|
||||
const monthlyProfit = insight ? insight.profit : null;
|
||||
|
||||
const locSummaryQ = useFiestaLocationSummary(FIESTA_TENANT_ID);
|
||||
const locSummaryQ = useFiestaLocationSummary(tenantId);
|
||||
const summaries = locSummaryQ.data ?? [];
|
||||
|
||||
// Region fulfillment — live month-to-date delivered ÷ total orders for the tenant.
|
||||
|
||||
Reference in New Issue
Block a user