«Назад» из документа возвращает панель «Первичные документы» организации (#197, AURORA-1682) #198

Merged
aep merged 4 commits from feat/197-back-to-primary-docs into main 2026-10-27 22:12:10 +03:00
Owner

Closes #197. Jira: AURORA-1682 (замечание тестирования 16.10.2026, п. 1; чек-лист Циликова 23.10.2026, строка 9 — AURORA-1865).

Что было

Панель «Первичные документы» открывалась локальным состоянием страницы консолидации. «Назад» из документа монтирует страницу заново — панель закрыта, для следующего документа её надо открывать снова.

Что сделано (только web/, API без изменений)

  • Открытая панель живёт в адресе экрана консолидации: ?entity=<id ЮЛ> рядом с ?version=. Открытие и закрытие панели заменяют запись истории (как выбор версии).
  • «Назад» из документа, открытого из панели (в т. ч. после переключения 2–3 документов в списке «Документ»), возвращает на консолидацию с той же версией и открытой панелью той же организации. Прямая ссылка на документ и переключатель (AURORA-1692) — как прежде.
  • utils/consolidations.ts: panelEntity / withPanelEntity + тест; ConsolidationsList.tsx — панель по ?entity=; ConsoleLegalEntities.tsx — передаёт id ЮЛ строки.
  • OpenSpec change back-to-primary-docs: MODIFIED document-review-ui «Переключатель документа», ADDED primary-files-ui «Открытая панель в адресе экрана консолидации».

Пояснение по фронту (простыми словами)

Раньше «панель открыта» хранилось в памяти компонента страницы — при уходе на документ компонент уничтожался, и это знание пропадало. Теперь оно записано в адрес страницы, а браузер при «Назад» возвращает адрес целиком — страница видит entity= и открывает панель сама. Ещё одна деталь: организация панели попадает в общий стор приложения чуть позже первой отрисовки, поэтому панель открывается только когда стор уже совпал с адресом — иначе на долю секунды мелькнула бы прошлая организация.

Проверка

  • Браузер (headless Chromium, стенд РБ 2024 К3, сборка ветки на :3001): организация «Пекарня Счастливочная» → документ ОСВ → 2 переключения → «Назад» — /groups/…?version=…&entity=…, панель той же организации открыта; закрыть панель → entity убран; «Назад» браузера → /groups, панель не открывается. Тот же сценарий на main (:3000): после «Назад» панели нет — ошибка воспроизводится. Экран сверен с макетом [39].
  • make check-full (worktree, ARM_KA_DOCS/DBML/COMPOSE_FILE — абсолютные пути): rc=0 — ruff «All checks passed!», mypy «no issues found in 221 source files», unit 1907 passed, statements-check 0 (25b2bb8), dbml-check ок, integration 1177 passed, e2e 1 skipped (профиль services не подн��т), docker-build ок, web-check (biome 235 files, tsc, build) ок.
  • web/: npm test 391 passed; npm run lint — 0 errors (16 прежних warnings), Prettier чистый.

Rulings I made

  • R-1 (design #1): панель — в адресе ?entity=, а не в сторе/sessionStorage.
  • R-2 (design #2): открытие/закрытие — replace: true.
  • R-3 (design #3): режим «Все документы организации» в адрес не входит.
  • R-4 (design #4): панель открыта только при совпадении ЮЛ стора с адресом.

Находки

Маркер Суть Статус
O-1 web/node_modules основного checkout неполный (нет бинарника biome, pdfjs.test.ts падает с DOMMatrix is not defined); в worktree поставлен свой npm install — 391/391 rejected: окружение, не код

Deferred нет.

🤖 Generated with Claude Code

Closes #197. Jira: AURORA-1682 (замечание тестирования 16.10.2026, п. 1; чек-лист Циликова 23.10.2026, строка 9 — AURORA-1865). ## Что было Панель «Первичные документы» открывалась локальным состоянием страницы консолидации. «Назад» из документа монтирует страницу заново — панель закрыта, для следующего документа её надо открывать снова. ## Что сделано (только `web/`, API без изменений) - Открытая панель живёт в адресе экрана консолидации: `?entity=<id ЮЛ>` рядом с `?version=`. Открытие и закрытие панели заменяют запись истории (как выбор версии). - «Назад» из документа, открытого из панели (в т. ч. после переключения 2–3 документов в списке «Документ»), возвращает на консолидацию с той же версией и открытой панелью той же организации. Прямая ссылка на документ и переключатель (AURORA-1692) — как прежде. - `utils/consolidations.ts`: `panelEntity` / `withPanelEntity` + тест; `ConsolidationsList.tsx` — панель по `?entity=`; `ConsoleLegalEntities.tsx` — передаёт id ЮЛ строки. - OpenSpec change `back-to-primary-docs`: MODIFIED `document-review-ui` «Переключатель документа», ADDED `primary-files-ui` «Открытая панель в адресе экрана консолидации». ## Пояснение по фронту (простыми словами) Раньше «панель открыта» хранилось в памяти компонента страницы — при уходе на документ компонент уничтожался, и это знание пропадало. Теперь оно записано в адрес страницы, а браузер при «Назад» возвращает адрес целиком — страница видит `entity=` и открывает панель сама. Ещё одна деталь: организация панели попадает в общий стор приложения чуть позже первой отрисовки, поэтому панель открывается только когда стор уже совпал с адресом — иначе на долю секунды мелькнула бы прошлая организация. ## Проверка - Браузер (headless Chromium, стенд РБ 2024 К3, сборка ветки на :3001): организация «Пекарня Счастливочная» → документ ОСВ → 2 переключения → «Назад» — `/groups/…?version=…&entity=…`, панель той же организации открыта; закрыть панель → `entity` убран; «Назад» браузера → `/groups`, панель не открывается. Тот же сценарий на main (:3000): после «Назад» панели нет — ошибка воспроизводится. Экран сверен с макетом [39]. - `make check-full` (worktree, `ARM_KA_DOCS`/`DBML`/`COMPOSE_FILE` — абсолютные пути): rc=0 — ruff «All checks passed!», mypy «no issues found in 221 source files», unit 1907 passed, statements-check 0 (25b2bb8), dbml-check ок, integration 1177 passed, e2e 1 skipped (профиль services не подн��т), docker-build ок, web-check (biome 235 files, tsc, build) ок. - `web/`: `npm test` 391 passed; `npm run lint` — 0 errors (16 прежних warnings), Prettier чистый. ## Rulings I made - R-1 (design #1): панель — в адресе `?entity=`, а не в сторе/sessionStorage. - R-2 (design #2): открытие/закрытие — `replace: true`. - R-3 (design #3): режим «Все документы организации» в адрес не входит. - R-4 (design #4): панель открыта только при совпадении ЮЛ стора с адресом. ## Находки | Маркер | Суть | Статус | |---|---|---| | O-1 | `web/node_modules` основного checkout неполный (нет бинарника biome, `pdfjs.test.ts` падает с `DOMMatrix is not defined`); в worktree поставлен свой `npm install` — 391/391 | rejected: окружение, не код | Deferred нет. 🤖 Generated with [Claude Code](https://claude.com/claude-code)
aep added 2 commits 2026-10-27 22:06:21 +03:00
Открытая панель «Первичные документы» живёт в адресе экрана консолидации (?entity=<id ЮЛ> рядом с ?version=),
открытие и закрытие заменяют запись истории. «Назад» из документа, открытого из панели, возвращает на консолидацию
с той же версией и панелью той же организации; переключатель документа (AURORA-1692) и прямая ссылка — как прежде.

- utils/consolidations.ts: panelEntity / withPanelEntity + тест;
- ConsolidationsList: панель открыта по ?entity=, когда ЮЛ из адреса уже в сторе (без мелькания прежнего ЮЛ);
- ConsoleLegalEntities: onDrawerOpen(id ЮЛ строки);
- change back-to-primary-docs: MODIFIED document-review-ui «Переключатель документа», ADDED primary-files-ui
  «Открытая панель в адресе экрана консолидации».

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
aep added 2 commits 2026-10-27 22:11:58 +03:00
aep merged commit ec783c8ec0 into main 2026-10-27 22:12:10 +03:00
Sign in to join this conversation.
No Reviewers
No Label
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: RSHB/arm-core#198
No description provided.