diff --git a/.claude/launch.json b/.claude/launch.json index 8673898..a092f53 100644 --- a/.claude/launch.json +++ b/.claude/launch.json @@ -4,14 +4,43 @@ { "name": "design", "runtimeExecutable": "python", - "runtimeArgs": ["-m", "http.server", "8765", "--bind", "127.0.0.1", "--directory", "docs"], + "runtimeArgs": [ + "-m", + "http.server", + "8765", + "--bind", + "127.0.0.1", + "--directory", + "docs" + ], "port": 8765 }, { "name": "web", "runtimeExecutable": "pnpm", - "runtimeArgs": ["--filter", "@pipu/web", "dev"], + "runtimeArgs": [ + "--filter", + "@pipu/web", + "dev" + ], "port": 5173 + }, + { + "name": "web-fake", + "runtimeExecutable": "pnpm", + "runtimeArgs": [ + "--filter", + "@pipu/web", + "exec", + "vite", + "--port", + "4173", + "--strictPort" + ], + "env": { + "VITE_E2E": "1" + }, + "port": 4173 } ] -} +} \ No newline at end of file diff --git a/apps/web/src/pages/admin/UploadQueuePage.tsx b/apps/web/src/pages/admin/UploadQueuePage.tsx index 1b5208f..8b66963 100644 --- a/apps/web/src/pages/admin/UploadQueuePage.tsx +++ b/apps/web/src/pages/admin/UploadQueuePage.tsx @@ -585,7 +585,7 @@ export function UploadSettingsSection() { return (

{t('uploads.settings_title')}

-
+
setForm({ ...form, queue: v })} inputMode="decimal" /> setForm({ ...form, maxFile: v })} inputMode="decimal" /> -

{t('uploads.set_note')}

diff --git a/apps/web/src/pages/uploads/uploads.module.css b/apps/web/src/pages/uploads/uploads.module.css index cceef70..7eaaf02 100644 --- a/apps/web/src/pages/uploads/uploads.module.css +++ b/apps/web/src/pages/uploads/uploads.module.css @@ -239,6 +239,48 @@ gap: 12px; } +/* Настройки очереди: подпись, поле и подсказка каждой ячейки — в общих строках, чтобы поля стояли на одном + уровне, даже когда подпись переносится. */ +.settingsGrid { + display: grid; + grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)); + column-gap: 12px; + row-gap: 6px; +} + +.settingsGrid > * { + display: grid; + grid-row: span 3; + grid-template-rows: subgrid; + gap: 6px; + min-width: 0; + margin-bottom: 10px; +} + +.settingsGrid select { + width: 100%; + min-width: 0; +} + +.settingsGrid > * > :first-child { + align-self: end; +} + +.settingsLabel { + font-size: 13px; + font-weight: 600; + color: var(--text2); +} + +.settingsCheck { + grid-row: 2; + display: flex; + align-items: center; + gap: 8px; + min-height: 48px; + font-size: 14px; +} + .textarea { width: 100%; min-height: 72px;