fix(ui): shared UserCell для display UUID actor'ов везде
Browser QA на staging показал что UUID actor'а render'ится raw во многих местах кроме drawer (MR !158 — там был inline fix): - /reviews Records tab — column AUTHOR - /reviews Schemas tab — column AUTHOR - /audit log — column USER 77ec2cc8-98e3-4d70-8037-94038fcbde67 — нечитаемо для оператора. Тот же паттерн что я делал в MR !158, теперь shared helper: src/lib/useUserDisplay.tsx: - useUserDisplay(uuid) hook — returns { display, isMe, fullId } - UserCell component — readonly cell с title=fullId tooltip - Match current user (JWT sub claim) → 'Я • <preferred_username>' - Other user → short UUID (8 chars) + full в title - null/undefined → 'anonymous' Применено: - reviews.tsx:334,625 — records + schemas table AUTHOR cells - audit.tsx:476 — USER cell - SchemaDraftDrawer.tsx — refactor (был inline в MR !158 → теперь shared) TODO Phase 1d: backend endpoint /admin/users/{sub}/display чтобы и для не-current-user отображать username.
This commit is contained in:
@@ -28,6 +28,7 @@ import {
|
||||
XIcon,
|
||||
} from '@phosphor-icons/react'
|
||||
import { buildAuditExportUrl, useAudit, useDictionaries } from '@/api/queries'
|
||||
import { UserCell } from '@/lib/useUserDisplay'
|
||||
import type { AuditAction, AuditEntry, AuditFilters } from '@/api/client'
|
||||
import { localTzOffset, parseFormDate } from '@/lib/dates'
|
||||
|
||||
@@ -473,7 +474,7 @@ function AuditRow({ row }: { row: AuditEntry }) {
|
||||
<TableCell>
|
||||
<span className=" text-mono">{row.businessKey ?? '—'}</span>
|
||||
</TableCell>
|
||||
<TableCell>{row.userId ?? 'anonymous'}</TableCell>
|
||||
<TableCell><UserCell uuid={row.userId} /></TableCell>
|
||||
<TableCell>
|
||||
{row.userScope ? <Badge variant="info">{row.userScope}</Badge> : null}
|
||||
</TableCell>
|
||||
|
||||
Reference in New Issue
Block a user