Skip to content

Commit 3893665

Browse files
committed
fix: loading flickering with old data present
This fixes the flickering and unnecessary reloads on repeated navigation to the Advisories and Packages pages, by using layout effects to force loading before paint.
1 parent 00b0c9a commit 3893665

2 files changed

Lines changed: 5 additions & 6 deletions

File tree

src/SmartComponents/Advisories/Advisories.js

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
import { Main } from '@redhat-cloud-services/frontend-components/Main';
2-
import React, { Fragment, useEffect } from 'react';
2+
import React, { Fragment, useEffect, useLayoutEffect } from 'react';
33
import { useDispatch, useSelector } from 'react-redux';
44
import messages from '../../Messages';
55
import publishDateFilter from '../../PresentationalComponents/Filters/PublishDateFilter';
@@ -69,7 +69,7 @@ const Advisories = () => {
6969

7070
const [isRemediationLoading, setRemediationLoading] = React.useState(false);
7171

72-
useEffect(() => {
72+
useLayoutEffect(() => {
7373
if (firstMount) {
7474
apply(decodeQueryparams('?' + searchParams.toString()));
7575
setFirstMount(false);

src/SmartComponents/Packages/Packages.js

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
import { Main } from '@redhat-cloud-services/frontend-components/Main';
2-
import React, { useEffect } from 'react';
2+
import React, { useEffect, useLayoutEffect } from 'react';
33
import { useDispatch, useSelector } from 'react-redux';
44
import messages from '../../Messages';
55
import packagesListStatusFilter from '../../PresentationalComponents/Filters/PackagesListStatusFilter';
@@ -17,7 +17,6 @@ import {
1717
usePerPageSelect,
1818
useSetPage,
1919
useSortColumn,
20-
useDeepCompareEffect,
2120
} from '../../Utilities/hooks';
2221
import { intl } from '../../Utilities/IntlProvider';
2322
import { useChrome } from '@redhat-cloud-services/frontend-components/useChrome';
@@ -39,15 +38,15 @@ const Packages = () => {
3938
const metadata = useSelector(({ PackagesListStore }) => PackagesListStore.metadata);
4039
const queryParams = useSelector(({ PackagesListStore }) => PackagesListStore.queryParams);
4140

42-
useDeepCompareEffect(() => {
41+
useLayoutEffect(() => {
4342
if (firstMount) {
4443
apply(decodeQueryparams('?' + searchParams.toString()));
4544
setFirstMount(false);
4645
} else {
4746
setSearchParams(encodeURLParams(queryParams));
4847
dispatch(fetchPackagesAction(queryParams));
4948
}
50-
}, [queryParams, firstMount]);
49+
}, [JSON.stringify(queryParams), firstMount]);
5150

5251
function apply(params) {
5352
dispatch(changePackagesListParams(params));

0 commit comments

Comments
 (0)