всякие статусы лишние убраны
This commit is contained in:
@@ -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 => {
|
||||
|
||||
Reference in New Issue
Block a user