diff --git a/openspec/changes/back-to-primary-docs/design.md b/openspec/changes/back-to-primary-docs/design.md new file mode 100644 index 0000000..899cc10 --- /dev/null +++ b/openspec/changes/back-to-primary-docs/design.md @@ -0,0 +1,20 @@ +## Context + +AURORA-1682, RSHB/arm-core#197. Панель «Первичные документы» открывалась локальным состоянием `ConsolidationPage` +(`drawerOpen`), ЮЛ панели — в сторе (`current_legal_entity_id`). «Назад» из документа (`navigate(-1)`) монтирует страницу +консолидации заново, и панель закрыта. + +## Decisions made without discussion + +- **2026-10-27, R-1.** Открытая панель хранится в адресе (`?entity=`), а не в сторе или sessionStorage. + Обоснование: выбранная версия уже живёт в `?version=` (ConsoleTable), история браузера сама возвращает адрес с панелью, + а ссылку с панелью можно переслать. Цена ошибки: если параметр не нужен в адресе — заменить на состояние в сторе + (правка в `ConsolidationsList.tsx` и двух функциях `utils/consolidations.ts`). +- **2026-10-27, R-2.** Открытие и закрытие панели заменяют запись истории (`replace: true`), как выбор версии. Обоснование: + иначе «Назад» браузера после закрытия панели снова открывал бы её. Цена ошибки: низкая — одна опция `setSearchParams`. +- **2026-10-27, R-3.** Режим «Все документы организации» в адрес не входит: после «Назад» панель открыта столом + консолидации. Обоснование: в задаче речь о возврате к панели организации; переключатель и без того сбрасывается при каждом + открытии панели. Цена ошибки: низкая — добавить второй параметр адреса. +- **2026-10-27, R-4.** Панель открывается, только когда ЮЛ из адреса уже в сторе (`current_legal_entity_id === entity`). + Обоснование: стор обновляется эффектом после первого рендера — без условия панель на мгновение показала бы прежнее ЮЛ и + запросила бы его файлы. Цена ошибки: нет (поведение для пользователя то же).