Reference in New Issue
Block a user
Delete Branch "fix/325-mobile-390"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Summary
Хвост #291 (мобильный адаптив 390px). При ревизии оказалось, что 3 из 5 пунктов уже закрыты в develop (апстрим + смерженный #292); один — реальный баг, починен здесь; один — мелкая полировка, вынесен на визуальное решение человека.
По пунктам
/settings/membersза краем — УЖЕ пофикшено (без изменений).workspace-members-table.tsx:57иworkspace-invites-table.tsxуже оборачивают таблицу в<Table.ScrollContainer minWidth={600}>; #292 к тому же сворачивает навбар <992px именно чтобы таблица не клипалась. Колонки достижимы горизонтальным скроллом.home-tabs.tsx:22иspace-home-tabs.tsxуже даютTabs.ListсоflexWrap:"nowrap"; overflowX:"auto"— табы скроллятся, а не режутся.recent-changes.tsx:41уже в<Table.ScrollContainer minWidth={500}>;home.module.cssубирает боковые паддинги на телефоне.handleCreateнавигировал на новую страницу, но не закрывал drawer — он оставался поверх редактора. ДобавилsetMobileSidebar(false)послеnavigate, зеркалит закрытие drawer при тапе по строке дерева. No-op на десктопе.AppShell.Navbar, который OVERLAY-ит контент (не сдвигает/не клипает) — это уже «правильный оверлей». Не хватает только затемняющего backdrop, но MantineAppShellего намеренно не даёт, и в клиенте НЕТ существующего паттерна overlay/backdrop под этот кейс. Добавление кастомного<Overlay>требует z-index-координации с fixed-навбаром, которую без визуальной проверки на 390px не подтвердить. Вынес как мелкий human-visual polish (кандидат оставить #325 открытым под этот пункт или отдельным follow-up).How verified
tsc --noEmit— чисто.vitest run— 96 файлов, 887 passed | 1 expected-fail, 0 failures (148 tree-тестов зелёные).Ограничение честно: в репозитории нет visual/screenshot-тулинга (скриншоты #291 были из внешнего fleet-тулинга). Пиксельный рендер #1/#2/#3, остаточный ~4px overflow в #3, решение по backdrop (#4) и визуальное подтверждение, что после фикса #5 drawer действительно закрывается и открывает редактор — требуют человеческого прохода на 390px.
Checklist
🤖 Generated with Claude Code
On mobile the "create page" action is triggered from inside the off-canvas sidebar drawer (the space sidebar "+" and temporary-note buttons, and the tree-row "add subpage"). handleCreate navigated to the new page's editor route but never closed that drawer, so it stayed open on top of the freshly created page — the editor was hidden behind the page tree ("as if the page didn't open", #325 item 5). Close the mobile sidebar (`setMobileSidebar(false)`) right after navigating, mirroring the existing drawer-close on a tree-row tap (space-tree-row). Placing it in handleCreate covers all three create entry points in one spot. It is a no-op on desktop, where the mobile-sidebar atom is already false and only governs the sub-992px collapsed state — desktop behavior is unchanged. Verified: `tsc --noEmit` clean; client vitest 887 passed | 1 expected-fail. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>Готово к ревью (review/needs). Ревизия хвоста #291 на 390px: пункты 1/2/3 уже закрыты в develop (проверил кодом — Table.ScrollContainer + tabs overflow-x), пункт 5 (Create page не открывал редактор на мобайле) — реальный баг, починен одной строкой (закрываю mobile drawer после navigate, зеркалит клик по строке дерева, no-op на десктопе). Пункт 4 (backdrop у drawer) оставил как мелкую полировку — нет существующего overlay-паттерна в клиенте, требует визуального решения. tsc чисто, client vitest 887 зелёных. ВАЖНО: визуального тулинга (скриншоты 390px) в репо нет — пиксельный проход по #1/#2/#3/#4 и подтверждение #5 нужны глазами человека; отметил это в теле PR чеклистом.
Ревью — #334 (мобильный адаптив 390px: Create page открывает редактор; ревизия хвоста #291), round 1, head
52beae85, base developf5d19f97Вердикт: PASS — чинящее изменение одно и корректное:
use-tree-mutation.tsпослеnavigate(pageUrl)вhandleCreateзакрывает off-canvas drawer (setMobileSidebar(false)), из-за которого на мобайле только что созданная страница оставалась за открытым сайдбаром. Готово к мержу.Проверено по коду:
mobileSidebarAtomреально существует по импортируемому пути (components/layouts/global/hooks/atoms/sidebar-atom.ts, дефолтfalse);useSetAtom— верный write-only хук; dep-массивuseCallbackкорректно дополненsetMobileSidebar.space-tree-row.tsx:150при клике по строке дерева тоже гаситmobileSidebarAtom(тот же атом) — консистентно. No-op на десктопе (атом ужеfalse).Объективка запущена мной (head
52beae85):tsc --noEmit→ 0 ошибок (импорт и атом резолвятся).vitest run src/features/page/tree→ 148 passed (7 файлов) — регрессий в дереве нет.Информационно (НЕ блокирует, не задачи): кодер честно отметил, что визуального/скриншот-тулинга 390px в репо нет — пиксельное подтверждение #1/#2/#3 (уже закрыты в develop), фактическое закрытие drawer после фикса #5 глазами, и решение по #4 (backdrop у drawer, оставлен как полировка) требуют человеческого визуального прохода. Код-часть (#5) корректна и самодостаточна; эти пункты — вне объективной проверки и на усмотрение человека, мерж #5 они не держат.