всякие статусы лишние убраны

This commit is contained in:
gorbenko.pavel
2026-08-10 17:36:55 +05:00
parent b4b40ce235
commit 3dd4195539
4 changed files with 167 additions and 21 deletions
@@ -7,6 +7,9 @@ import {
persistOwnTab,
persistOwnStatus,
persistPage,
storedOwnStatus,
storedOwnTab,
storedPageFor,
useRoute,
NavSection,
OwnTab,
@@ -118,22 +121,40 @@ const RequestPortal: React.FC<IRequestPortalProps> = ({ hasTeamsContext, context
// таблица на него подписана и перечитает данные фоном, не убирая с экрана
// текущие строки (см. RequestsTableView/SearchView).
if (nav === route.nav && route.mode === 'submit') emitRequestsChanged();
// Подвкладку/фильтр «Моих заявок» здесь передавать не нужно: при переходе
// ИЗ другого раздела route.ownTab всё равно undefined (parseRoute заполняет
// его только когда nav==='own'), а при возврате на уже открытую «own» их
// подхватит storage-фолбэк в parseRoute — то же самое значение, которое
// пользователь выбирал последним (см. persistOwnTab/gotoOwnTab).
navigate({ mode: 'submit', nav });
// Всё восстанавливаемое состояние раздела передаём ЯВНО, из запомненного.
// parseRoute подставил бы его и сам, но тогда оно осталось бы только в
// состоянии и не попало бы в адрес: ссылка на раздел вела бы на первую
// страницу без фильтра, а на экране была бы открыта другая.
//
// Брать route.ownTab/route.ownStatus здесь нельзя: при переходе ИЗ другого
// раздела они undefined (parseRoute заполняет их только при nav==='own'),
// и явная передача сбросила бы выбор пользователя.
if (nav === 'own') {
const ownTab = storedOwnTab();
navigate({
mode: 'submit',
nav,
ownTab,
ownStatus: storedOwnStatus(ownTab),
page: storedPageFor('own', ownTab),
});
return;
}
navigate({ mode: 'submit', nav, page: storedPageFor(nav) });
};
const gotoOwnTab = (ownTab: OwnTab): void => {
// ownStatus здесь НЕ передаём (даже для 'created'!) — по той же причине,
// что и в goto() выше: он подхватится storage-фолбэком в parseRoute. Если
// передать route.ownStatus явно, при переходе с ДРУГОЙ подвкладки он всегда
// undefined (сейчас мы не на 'created'), и фильтр на «Инициированных»
// выглядел бы каждый раз сброшенным — ровно тот баг, который тут был.
// Фильтр и страница — из запомненного для ЭТОЙ подвкладки (см. goto выше о
// том, почему не из route). На вкладках с решениями фильтра нет по смыслу —
// storedOwnStatus сам вернёт undefined.
persistOwnTab(ownTab);
navigate({ mode: 'submit', nav: 'own', ownTab });
navigate({
mode: 'submit',
nav: 'own',
ownTab,
ownStatus: storedOwnStatus(ownTab),
page: storedPageFor('own', ownTab),
});
};
const setOwnStatus = (ownStatus: string): void => {