fix(admin-ui): хвосты — 404 на CREATE-черновиках + Radix DialogTitle warning

1. reviews.tsx: ReviewDrawer звал useLiveRecord для ЛЮБОГО черновика,
   включая CREATE. У CREATE-черновика live-записи нет по определению →
   GET /dictionaries/{id}/records/{key} → 404 (красный шум в консоли на
   каждый CREATE-draft). Теперь для CREATE запрос не запускается, блок
   «текущая версия» показывает «нет текущей версии».

2. modal.tsx: Modal рендерил DialogTitle только при наличии prop title.
   Без title Radix писал в консоль «DialogContent requires a DialogTitle»
   + warning про aria-describedby. Теперь Modal всегда рендерит DialogTitle
   (sr-only fallback) и гасит aria-describedby когда описания нет.
This commit is contained in:
Zimin A.N.
2026-05-21 16:05:09 +03:00
parent 7621f0a95f
commit 2a82a875c8
2 changed files with 19 additions and 4 deletions
+7 -3
View File
@@ -614,9 +614,13 @@ function ReviewDrawer({ draftId, onClose }: DrawerProps) {
const currentSub = auth.user?.profile?.sub
const draftQ = useDraft(draftId)
const draft = draftQ.data
// CREATE-черновик не имеет live-записи по определению — не пробуем её
// загружать (GET /dictionaries/{id}/records/{key} → 404, красный шум в
// консоли на каждый CREATE-draft). Для UPDATE/CLOSE — грузим как раньше.
const isCreateDraft = draft?.operation === 'CREATE'
const liveQ = useLiveRecord(
draft ? draft.dictionaryId : undefined,
draft ? draft.businessKey : undefined,
draft && !isCreateDraft ? draft.dictionaryId : undefined,
draft && !isCreateDraft ? draft.businessKey : undefined,
)
const approveMut = useApproveDraft()
const rejectMut = useRejectDraft()
@@ -810,7 +814,7 @@ function ReviewDrawer({ draftId, onClose }: DrawerProps) {
{t('reviews.drawer.live')}
</p>
{liveQ.isLoading && <LoadingBlock size="sm" label={t('loading')} />}
{liveQ.data === null && (
{(liveQ.data === null || isCreateDraft) && (
<p className="text-cell text-mute italic">
{t('reviews.drawer.noLive')}
</p>