auto refresh tasks waiting for my groups on homepage

This commit is contained in:
burnettk 2022-11-25 02:34:25 -05:00
parent 2cdd0d0259
commit f4d40a72dc
1 changed files with 20 additions and 13 deletions

View File

@ -7,6 +7,7 @@ import {
convertSecondsToFormattedDateTime, convertSecondsToFormattedDateTime,
getPageInfoFromSearchParams, getPageInfoFromSearchParams,
modifyProcessIdentifierForPathParam, modifyProcessIdentifierForPathParam,
refreshAtInterval,
} from '../helpers'; } from '../helpers';
import HttpService from '../services/HttpService'; import HttpService from '../services/HttpService';
import { PaginationObject } from '../interfaces'; import { PaginationObject } from '../interfaces';
@ -14,6 +15,8 @@ import TableCellWithTimeAgoInWords from './TableCellWithTimeAgoInWords';
const PER_PAGE_FOR_TASKS_ON_HOME_PAGE = 5; const PER_PAGE_FOR_TASKS_ON_HOME_PAGE = 5;
const paginationQueryParamPrefix = 'tasks_waiting_for_my_groups'; const paginationQueryParamPrefix = 'tasks_waiting_for_my_groups';
const REFRESH_INTERVAL = 5;
const REFRESH_TIMEOUT = 600;
export default function TasksWaitingForMyGroups() { export default function TasksWaitingForMyGroups() {
const [searchParams] = useSearchParams(); const [searchParams] = useSearchParams();
@ -21,20 +24,24 @@ export default function TasksWaitingForMyGroups() {
const [pagination, setPagination] = useState<PaginationObject | null>(null); const [pagination, setPagination] = useState<PaginationObject | null>(null);
useEffect(() => { useEffect(() => {
const { page, perPage } = getPageInfoFromSearchParams( const getTasks = () => {
searchParams, const { page, perPage } = getPageInfoFromSearchParams(
PER_PAGE_FOR_TASKS_ON_HOME_PAGE, searchParams,
undefined, PER_PAGE_FOR_TASKS_ON_HOME_PAGE,
paginationQueryParamPrefix undefined,
); paginationQueryParamPrefix
const setTasksFromResult = (result: any) => { );
setTasks(result.results); const setTasksFromResult = (result: any) => {
setPagination(result.pagination); setTasks(result.results);
setPagination(result.pagination);
};
HttpService.makeCallToBackend({
path: `/tasks/for-my-groups?per_page=${perPage}&page=${page}`,
successCallback: setTasksFromResult,
});
}; };
HttpService.makeCallToBackend({ getTasks();
path: `/tasks/for-my-groups?per_page=${perPage}&page=${page}`, refreshAtInterval(REFRESH_INTERVAL, REFRESH_TIMEOUT, getTasks);
successCallback: setTasksFromResult,
});
}, [searchParams]); }, [searchParams]);
const buildTable = () => { const buildTable = () => {