fix(wireguard): расширить мобильные панели и сохранить видимость кнопок

This commit is contained in:
Denozordec committed 2026-10-08 22:50:50 +07:00
1 parent ae0162db53
commit bf43263e43
16 files changed
+440 -8

No files matched your search

+12
View File
@@ -485,3 +485,15 @@ Runtime backend/frontend3722fad, локальное меню ещё не раз
Итоговый observer exit0, afterBrowser пуст на обеих сторонах; selected WG/peers/IP/routes/IPv4 Firewall baseline совпал. Fallback удаления не понадобился; эфемерный контейнер удалён, остались три основные Compose-службы. DB controls до/после servers2/speedHistory9/retention14/migrations9 совпали, audit revisions намеренно сохранены. Приватный baseline с возможными ключами чужой конфигурации не скачивался и не коммитился. [Smoke](ux-ui/acceptance/deploy-browser-6a46fb1-2026-10-08.json): dashboard/servers/uptime/settings/filters/alerts200,320px fit, JS/API errors0.
[Мобильная форма создания](ux-ui/screens/wg-ui-create-server2-6a46fb1-320-2026-10-08.png) просмотрена, без ключей. Выявлена отдельная UX-недоработка: WireGuard create/peer/import используют обычный w-full, который не переопределяет data-side width общего Sheet; мобильная панель фактически240px при320px, footer сжат. Следующий12.5.63 — точные responsive width overrides по существующему GRE образцу, проверка полной ширины/кнопок в обеих темах и профильные UI проверки. Export/import, throughput, IPv6, внешние failures/RBAC/multi-instance, Telegram/Portal и остальные интеграционные ограничения остаются открытыми. Пользовательское правило настоящих VPN объектов сохраняется. Локальный коммит без push.
## 12.5.63 — полная ширина мобильных WireGuard Sheets (2026-10-08)
В components/wireguard/wg-create-sheet.tsx, wg-peer-sheet.tsx и wg-import-sheet.tsx заменены только width utilities на data-[side=right]:w-full и data-[side=right]:sm:max-w-md/lg. Это существующий GRE образец: одинаковые data-side modifiers корректно переопределяют default ширину установленного Sheet. Создание/пир наsm имеют448px, импорт512px; доsm панели занимают полную ширину экрана. Содержимое форм, API, footer composition и общие primitives не менялись.
[Светлая тема](ux-ui/acceptance/wg-sheets-layout-light-2026-10-08.json), [тёмная тема](ux-ui/acceptance/wg-sheets-layout-dark-2026-10-08.json): временный локальный Playwright visual harness, три панели ×320/640/1280px × две темы —18 комбинаций passed. Actual bounding width равна320/448/512px; все footer buttons находятся внутри панели, scrollWidth не превышает clientWidth, page overflow отсутствует. Tab идёт по ожидаемым полям, Escape закрывает панель. HTTP API подменён, реальные RouterOS операции в этой проверке не выполнялись.
Мобильные скриншоты: [создание dark](ux-ui/screens/wg-create-dark-full-width-320-2026-10-08.png), [создание light](ux-ui/screens/wg-create-light-full-width-320-2026-10-08.png), [пир dark](ux-ui/screens/wg-peer-dark-full-width-320-2026-10-08.png), [пир light](ux-ui/screens/wg-peer-light-full-width-320-2026-10-08.png), [импорт light](ux-ui/screens/wg-import-light-full-width-320-2026-10-08.png), [импорт dark](ux-ui/screens/wg-import-dark-full-width-320-2026-10-08.png). Create dark/peer dark/import light визуально просмотрены: текст действий читается полностью, IP/endpoint имеют достаточную ширину; ключи в снимках не заполнялись.
Profile wireguard-links.spec.ts --grep импорт/создание сохраняет форму —5/5 passed: interface,interface DTO,peer, импорт без подтверждённого результата и pending/retry. Сохранение ввода, API ошибки/неподтверждённые ответы и ожидание результата сохранились. Scoped TypeScript выполнен после остановки Next, ESLint трёх изменённых компонентов и ReUI checklist passed. Полная регрессия не повторялась для трёх responsive class overrides.
Изменение локальное: удалённый runtime backend3722fad/frontend6a46fb1 healthy остаётся прежним. Следующий12.5.64 — frontend production Docker deploy и live мобильные create/peer/import панели на новой собственной WG паре; real UI lifecycle/связность и очистка, baseline. Просмотр импортной формы не будет заявляться как проверенный настоящий import. Import/export, throughput/IPv6/внешние failures/RBAC/multi-instance/Telegram/Portal и другие внешние ограничения открыты. Правило пользователя создавать настоящие VPN объекты сохраняется. Локальный коммит без push.