пофикшен персист
This commit is contained in:
@@ -2,7 +2,7 @@ import * as React from 'react';
|
||||
import styles from './RequestPortal.module.scss';
|
||||
import type { IRequestPortalProps } from './IRequestPortalProps';
|
||||
import { IconSprite } from '../shared/ui/Icon/IconSprite';
|
||||
import { navigate, persistOwnSelection, useRoute, NavSection, OwnTab } from '../shared/routing';
|
||||
import { navigate, persistOwnTab, persistOwnStatus, useRoute, NavSection, OwnTab } from '../shared/routing';
|
||||
import { onRequestsChanged, emitRequestsChanged } from '../shared/requestEvents';
|
||||
import { confirmDiscardFormChanges, markFormClean, markFormDirty } from '../shared/unsavedChanges';
|
||||
import { SideNav } from './SideNav/SideNav';
|
||||
@@ -114,21 +114,23 @@ const RequestPortal: React.FC<IRequestPortalProps> = ({ hasTeamsContext, context
|
||||
// ИЗ другого раздела route.ownTab всё равно undefined (parseRoute заполняет
|
||||
// его только когда nav==='own'), а при возврате на уже открытую «own» их
|
||||
// подхватит storage-фолбэк в parseRoute — то же самое значение, которое
|
||||
// пользователь выбирал последним (см. persistOwnSelection/gotoOwnTab).
|
||||
// пользователь выбирал последним (см. persistOwnTab/gotoOwnTab).
|
||||
navigate({ mode: 'submit', nav });
|
||||
};
|
||||
|
||||
const gotoOwnTab = (ownTab: OwnTab): void => {
|
||||
// Фильтр по статусу относится только к «Инициированным» — на других
|
||||
// подвкладках отбор задаёт сама вкладка, поэтому фильтр туда не тащим.
|
||||
const ownStatus = ownTab === 'created' ? route.ownStatus : undefined;
|
||||
persistOwnSelection(ownTab, ownStatus);
|
||||
navigate({ mode: 'submit', nav: 'own', ownTab, ownStatus });
|
||||
// ownStatus здесь НЕ передаём (даже для 'created'!) — по той же причине,
|
||||
// что и в goto() выше: он подхватится storage-фолбэком в parseRoute. Если
|
||||
// передать route.ownStatus явно, при переходе с ДРУГОЙ подвкладки он всегда
|
||||
// undefined (сейчас мы не на 'created'), и фильтр на «Инициированных»
|
||||
// выглядел бы каждый раз сброшенным — ровно тот баг, который тут был.
|
||||
persistOwnTab(ownTab);
|
||||
navigate({ mode: 'submit', nav: 'own', ownTab });
|
||||
};
|
||||
|
||||
const setOwnStatus = (ownStatus: string): void => {
|
||||
const normalized = ownStatus || undefined;
|
||||
persistOwnSelection('created', normalized);
|
||||
persistOwnStatus(normalized);
|
||||
navigate({ mode: 'submit', nav: 'own', ownTab: 'created', ownStatus: normalized });
|
||||
};
|
||||
// Клик по строке таблицы. СВОЯ заявка в незавершённом статусе (черновик,
|
||||
|
||||
Reference in New Issue
Block a user