Co-authored-by: gorbenko.pavel <gorbenko.pavel@tansu.kz> Reviewed-on: http://git.tnsu.kz/timur.gorodetskiy/request-portal/pulls/10
This commit was merged in pull request #10.
This commit is contained in:
@@ -101,6 +101,11 @@ const ROUTE_CHANGE_EVENT = 'rp-route-change';
|
||||
// вернувшись обратно, фильтр каждый раз сбрасывался на «Все статусы».
|
||||
const OWN_TAB_STORAGE_KEY = 'rp-own-tab';
|
||||
const OWN_STATUS_STORAGE_KEY = 'rp-own-status';
|
||||
// Раздел бокового меню — тем же приёмом: запоминается только по явному клику
|
||||
// (см. persistNav в goto() RequestPortal.tsx), чтобы заход на портал без
|
||||
// rpnav в адресе открывал тот раздел, на котором остановились в прошлый раз,
|
||||
// а не всегда «Новую заявку».
|
||||
const NAV_STORAGE_KEY = 'rp-nav';
|
||||
// Страница запоминается ОТДЕЛЬНО ДЛЯ КАЖДОЙ таблицы (см. viewKeyOf): один общий
|
||||
// номер переносился бы между разделами, где у каждого свой объём данных, —
|
||||
// уйдя со страницы 3 «Моих заявок» в «На согласовании», где страница всего
|
||||
@@ -246,17 +251,45 @@ export function persistOwnStatus(ownStatus: string | undefined): void {
|
||||
}
|
||||
}
|
||||
|
||||
function readStoredNav(): NavSection {
|
||||
try {
|
||||
const raw = window.localStorage.getItem(NAV_STORAGE_KEY);
|
||||
return raw === 'approvals' ||
|
||||
raw === 'execution' ||
|
||||
raw === 'rework' ||
|
||||
raw === 'own' ||
|
||||
raw === 'search' ||
|
||||
raw === 'new'
|
||||
? raw
|
||||
: 'new';
|
||||
} catch {
|
||||
return 'new';
|
||||
}
|
||||
}
|
||||
|
||||
/** Запомнить раздел бокового меню — вызывать только при явном выборе пользователя. */
|
||||
export function persistNav(nav: NavSection): void {
|
||||
try {
|
||||
window.localStorage.setItem(NAV_STORAGE_KEY, nav);
|
||||
} catch {
|
||||
// localStorage недоступен (приватный режим и т.п.) — просто не сохраняем.
|
||||
}
|
||||
}
|
||||
|
||||
function parseNav(raw: string | undefined): NavSection {
|
||||
if (
|
||||
raw === 'approvals' ||
|
||||
raw === 'execution' ||
|
||||
raw === 'rework' ||
|
||||
raw === 'own' ||
|
||||
raw === 'search'
|
||||
raw === 'search' ||
|
||||
raw === 'new'
|
||||
) {
|
||||
return raw;
|
||||
}
|
||||
return 'new';
|
||||
// В адресе раздела нет (rpnav отсутствует, в т.ч. при заходе на портал по
|
||||
// голой ссылке) — открываем запомненный раздел, а не всегда «Новую заявку».
|
||||
return readStoredNav();
|
||||
}
|
||||
|
||||
function parseOwnTab(raw: string | undefined): OwnTab {
|
||||
|
||||
Reference in New Issue
Block a user