From 7c1b807e5ebb7f7e21b5a1e5a384af5449d863f7 Mon Sep 17 00:00:00 2001
From: Leonid Pershin
Date: Sat, 25 Jul 2026 19:17:00 +0300
Subject: [PATCH] Enhance UploadToShowDialog: add 'apply to all' functionality
for batch show assignment, improve UI layout for better user experience, and
update translations for new options.
---
.../admin/media/UploadToShowDialog.tsx | 27 ++++++++++++++++---
frontend/src/shared/lib/i18n.ts | 2 ++
2 files changed, 25 insertions(+), 4 deletions(-)
diff --git a/frontend/src/features/admin/media/UploadToShowDialog.tsx b/frontend/src/features/admin/media/UploadToShowDialog.tsx
index 9d1e0b9..639dcf0 100644
--- a/frontend/src/features/admin/media/UploadToShowDialog.tsx
+++ b/frontend/src/features/admin/media/UploadToShowDialog.tsx
@@ -46,6 +46,10 @@ export function UploadToShowDialog({ files, onClose }: { files: File[]; onClose:
const assignment = (name: string): string =>
name in overrides ? overrides[name] : (matchedByName.get(name) ?? '')
+ /** Проставить одно шоу (или «в библиотеку») всем файлам разом. */
+ const applyToAll = (showId: string) =>
+ setOverrides(Object.fromEntries(files.map((f) => [f.name, showId])))
+
// Предпросмотр: что распарсим для каждого файла при текущих настройках, в порядке добавления.
const previews = useMemo(() => {
const opts = {
@@ -104,11 +108,26 @@ export function UploadToShowDialog({ files, onClose }: { files: File[]; onClose:
)}
-
+
{t('admin.media.toShowPreview')}
-
- {t('admin.media.toShowMatched', { matched: matchedCount, total: files.length })}
-
+
+
+ {t('admin.media.toShowMatched', { matched: matchedCount, total: files.length })}
+
+
+
{previews.map((p) => {
diff --git a/frontend/src/shared/lib/i18n.ts b/frontend/src/shared/lib/i18n.ts
index 83cd197..a3af50e 100644
--- a/frontend/src/shared/lib/i18n.ts
+++ b/frontend/src/shared/lib/i18n.ts
@@ -134,6 +134,7 @@ const resources = {
toShowPreview: 'Что распознаем',
toShowRecognized: 'распознано {{recognized}} из {{total}}',
toShowMatched: 'шоу распознано у {{matched}} из {{total}}',
+ applyToAll: 'Задать всем…',
toShowUnknown: '—',
toShowConfirm: 'Загрузить и добавить',
uploaded: 'Файл загружен, идёт обработка',
@@ -474,6 +475,7 @@ const resources = {
toShowPreview: 'What we detect',
toShowRecognized: '{{recognized}} of {{total}} recognized',
toShowMatched: 'show detected for {{matched}} of {{total}}',
+ applyToAll: 'Set for all…',
toShowUnknown: '—',
toShowConfirm: 'Upload and add',
uploaded: 'File uploaded, processing started',