Параллельные шаги (#3)
Co-authored-by: gorbenko.pavel <gorbenko.pavel@tansu.kz> Reviewed-on: http://git.tnsu.kz/timur.gorodetskiy/request-portal/pulls/3
This commit was merged in pull request #3.
This commit is contained in:
@@ -11,6 +11,13 @@ import styles from './SearchView.module.scss';
|
||||
|
||||
const PAGE_SIZE = 20;
|
||||
|
||||
// Автообновление открытых таблиц: раз в 10 минут перечитываем данные, чтобы
|
||||
// вкладка, оставленная открытой надолго, не показывала устаревший список.
|
||||
// Обновление фоновое — строки с экрана не пропадают и перерисовываются, только
|
||||
// если данные реально изменились (см. pageSignature).
|
||||
const AUTO_REFRESH_MS = 10 * 60 * 1000;
|
||||
|
||||
|
||||
export interface ISearchViewProps {
|
||||
context: WebPartContext;
|
||||
/** Клик по строке — открыть заявку (в выезжающей панели). */
|
||||
@@ -169,9 +176,13 @@ export const SearchView: React.FC<ISearchViewProps> = ({ context, onOpen }) => {
|
||||
const unsubscribe = onRequestsChanged(() => {
|
||||
load().catch(() => undefined);
|
||||
});
|
||||
const timer = window.setInterval(() => {
|
||||
if (!document.hidden) load().catch(() => undefined);
|
||||
}, AUTO_REFRESH_MS);
|
||||
return () => {
|
||||
cancelled = true;
|
||||
unsubscribe();
|
||||
window.clearInterval(timer);
|
||||
};
|
||||
}, [context, types, debouncedQuery, page]);
|
||||
|
||||
|
||||
Reference in New Issue
Block a user