роутинг пагинации
This commit is contained in:
@@ -2,7 +2,15 @@ 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, persistOwnTab, persistOwnStatus, useRoute, NavSection, OwnTab } from '../shared/routing';
|
||||
import {
|
||||
navigate,
|
||||
persistOwnTab,
|
||||
persistOwnStatus,
|
||||
persistPage,
|
||||
useRoute,
|
||||
NavSection,
|
||||
OwnTab,
|
||||
} from '../shared/routing';
|
||||
import { onRequestsChanged, emitRequestsChanged } from '../shared/requestEvents';
|
||||
import { confirmDiscardFormChanges, markFormClean, markFormDirty } from '../shared/unsavedChanges';
|
||||
import { SideNav } from './SideNav/SideNav';
|
||||
@@ -131,7 +139,18 @@ const RequestPortal: React.FC<IRequestPortalProps> = ({ hasTeamsContext, context
|
||||
const setOwnStatus = (ownStatus: string): void => {
|
||||
const normalized = ownStatus || undefined;
|
||||
persistOwnStatus(normalized);
|
||||
navigate({ mode: 'submit', nav: 'own', ownTab: 'created', ownStatus: normalized });
|
||||
// Смена фильтра — другой набор заявок, поэтому явно с первой страницы
|
||||
// (и запоминаем именно её, иначе вернувшись сюда попали бы на старую).
|
||||
persistPage({ mode: 'submit', nav: 'own', ownTab: 'created' }, 1);
|
||||
navigate({ mode: 'submit', nav: 'own', ownTab: 'created', ownStatus: normalized, page: 1 });
|
||||
};
|
||||
|
||||
// Смена страницы сохраняет ВЕСЬ остальной маршрут (в т.ч. открытую заявку),
|
||||
// меняется только номер: так «назад» возвращает на прежнюю страницу, а
|
||||
// ссылку со страницей можно передать.
|
||||
const setPage = (page: number): void => {
|
||||
persistPage(route, page);
|
||||
navigate({ ...route, page });
|
||||
};
|
||||
// Клик по строке таблицы. СВОЯ заявка в незавершённом статусе (черновик,
|
||||
// возвращённая, отклонённая) открывается на редактирование, всё остальное —
|
||||
@@ -221,6 +240,8 @@ const RequestPortal: React.FC<IRequestPortalProps> = ({ hasTeamsContext, context
|
||||
{route.nav === 'search' && (
|
||||
<SearchView
|
||||
context={context}
|
||||
page={route.page ?? 1}
|
||||
onPageChange={setPage}
|
||||
onOpen={openRequest}
|
||||
/>
|
||||
)}
|
||||
@@ -239,6 +260,8 @@ const RequestPortal: React.FC<IRequestPortalProps> = ({ hasTeamsContext, context
|
||||
}
|
||||
statusFilter={route.ownStatus ?? ''}
|
||||
onStatusFilterChange={setOwnStatus}
|
||||
page={route.page ?? 1}
|
||||
onPageChange={setPage}
|
||||
onOpen={openRequest}
|
||||
/>
|
||||
)}
|
||||
|
||||
Reference in New Issue
Block a user