diff --git a/frontend/src/pages/AccessConsolePage.tsx b/frontend/src/pages/AccessConsolePage.tsx index ee415c9..72af8a7 100644 --- a/frontend/src/pages/AccessConsolePage.tsx +++ b/frontend/src/pages/AccessConsolePage.tsx @@ -11,6 +11,8 @@ import { VisitRequestDetailDialog } from '../components/VisitRequestDetailDialog const hasEnteredToday = (r: AccessRecord) => Boolean(r.checkInAt); const hasExitedToday = (r: AccessRecord) => Boolean(r.checkOutAt); +const actionLabel = (visitorName: string, zoneName?: string) => + zoneName ? `${visitorName} (${zoneName})` : visitorName; function accessBadge(record: AccessRecord): { className: string; label: string } { if (record.inside) { @@ -78,14 +80,14 @@ export const AccessConsolePage: React.FC = () => { const forceCheckIn = (id: number) => wrap(async () => { const res = await checkIn({ visitRequestId: id, gateId: 'STAFF' }); - setNotice(`${res.visitorName} — ${res.message}`); + setNotice(`${actionLabel(res.visitorName, res.zoneName)} — ${res.message}`); loadRecords(); }); const forceCheckOut = (id: number) => wrap(async () => { const res = await checkOut({ visitRequestId: id }); - setNotice(`${res.visitorName} — ${res.message}`); + setNotice(`${actionLabel(res.visitorName, res.zoneName)} — ${res.message}`); loadRecords(); }); diff --git a/frontend/src/pages/KioskPage.tsx b/frontend/src/pages/KioskPage.tsx index 0f7dac8..18dc47a 100644 --- a/frontend/src/pages/KioskPage.tsx +++ b/frontend/src/pages/KioskPage.tsx @@ -5,6 +5,9 @@ import { formatVisitRange } from '../status'; import { useQrScanner } from '../useQrScanner'; import { playChime } from '../chime'; +const actionLabel = (visitorName: string, zoneName?: string) => + zoneName ? `${visitorName} (${zoneName})` : visitorName; + function extractQrToken(raw: string): string { const text = raw.trim(); if (!text) return ''; @@ -65,7 +68,7 @@ export const KioskPage: React.FC = () => { try { const r = dir === 'in' ? await publicCheckIn(token) : await publicCheckOut(token); playChime(); - setResult(`${r.visitorName} — ${r.message}`); + setResult(`${actionLabel(r.visitorName, r.zoneName)} — ${r.message}`); setToken(null); setPass(null); } catch (e) { diff --git a/frontend/src/types.ts b/frontend/src/types.ts index 2a66972..a4ee644 100644 --- a/frontend/src/types.ts +++ b/frontend/src/types.ts @@ -230,6 +230,7 @@ export interface AccessRecord { export interface AccessAction { visitRequestId: number; visitorName: string; + zoneName?: string; direction: 'IN' | 'OUT'; eventAt: string; gateOpened: boolean; diff --git a/server/routes/business.ts b/server/routes/business.ts index a699afd..6c9da6a 100644 --- a/server/routes/business.ts +++ b/server/routes/business.ts @@ -716,6 +716,7 @@ export function createBusinessRouter(deps: BusinessRouterDeps = { query }): Rout ok(res, { visitRequestId: id, visitorName: visit.visitor_name, + zoneName: visit.zone_name ?? undefined, direction, eventAt: new Date().toISOString(), gateOpened: true,