From d200260497a5acc59ee250393cdc44971f336588 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D0=90=D0=BB=D0=B5=D0=BA=D1=81=D0=B5=D0=B9=20=D0=A1=D0=B0?= =?UTF-8?q?=D0=B1=D0=B8=D0=BB=D0=B8=D0=BD?= Date: Thu, 16 Jul 2026 14:08:25 +0300 Subject: [PATCH] =?UTF-8?q?fix(audit):=20=D0=B1=D0=B5=D0=B7=D0=BE=D0=BF?= =?UTF-8?q?=D0=B0=D1=81=D0=BD=D1=8B=D0=B9=20=D1=80=D0=B5=D0=BD=D0=B4=D0=B5?= =?UTF-8?q?=D1=80=20reason/entity=5Fid=20=D0=B8=D0=B7=20legacy=20API.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: Cursor --- src/pages/audit/AuditPage.tsx | 26 ++++++++++++++++++++++++-- 1 file changed, 24 insertions(+), 2 deletions(-) diff --git a/src/pages/audit/AuditPage.tsx b/src/pages/audit/AuditPage.tsx index e1b7c2a..de3b842 100644 --- a/src/pages/audit/AuditPage.tsx +++ b/src/pages/audit/AuditPage.tsx @@ -51,6 +51,25 @@ const entityTypeBadgeVariant = (type: string) => { const isBadValue = (val: unknown) => val === '-' || val === 'undefined' || val === '' || val === null || val === undefined; +const asAuditText = (val: unknown): string => { + if (isBadValue(val)) return '-'; + if (typeof val === 'string') return val; + if (typeof val === 'object' && val !== null && 'reason' in val) { + const nested = (val as { reason?: unknown }).reason; + return typeof nested === 'string' ? nested : '-'; + } + return String(val); +}; + +const asEntityId = (val: unknown): string => { + if (typeof val === 'string') return val; + if (typeof val === 'object' && val !== null && 'id' in val) { + const id = (val as { id?: unknown }).id; + return typeof id === 'string' ? id : String(id ?? ''); + } + return String(val ?? ''); +}; + const toDateInput = (iso: string | undefined): string => { if (!iso) return ''; return iso.slice(0, 10); @@ -167,7 +186,10 @@ const AuditPage: React.FC = () => { header: t('audit.name'), enableSorting: false, cell: ({ row }) => ( - + ), }, { accessorKey: 'timestamp', header: t('common.date'), enableSorting: true }, @@ -177,7 +199,7 @@ const AuditPage: React.FC = () => { header: t('common.reason'), enableSorting: false, cell: ({ getValue }) => { - const reason = getValue(); + const reason = asAuditText(getValue()); return {reason}; }, },