Skip to content

Commit 3996cf7

Browse files
authored
🐛 Re-enable fetching applications after application import (#1856)
After successful import re-enable useFetchApplications() hook for the next 15 seconds. Resolves: https://issues.redhat.com/browse/MTA-2451 Signed-off-by: Radoslaw Szwajkowski <[email protected]>
1 parent 8b13af6 commit 3996cf7

File tree

2 files changed

+13
-25
lines changed

2 files changed

+13
-25
lines changed

client/src/app/pages/applications/applications-table/applications-table.tsx

+9-23
Original file line numberDiff line numberDiff line change
@@ -66,7 +66,6 @@ import { checkAccess } from "@app/utils/rbac-utils";
6666
import WarningTriangleIcon from "@patternfly/react-icons/dist/esm/icons/warning-triangle-icon";
6767

6868
// Hooks
69-
import { useQueryClient } from "@tanstack/react-query";
7069
import {
7170
deserializeFilterUrlParams,
7271
useLocalTableControls,
@@ -108,6 +107,7 @@ import { KebabDropdown } from "@app/components/KebabDropdown";
108107
import { useFetchArchetypes } from "@app/queries/archetypes";
109108
import { ApplicationFormModal } from "../components/application-form";
110109
import { ManageColumnsToolbar } from "./components/manage-columns-toolbar";
110+
import dayjs from "dayjs";
111111

112112
export const ApplicationsTable: React.FC = () => {
113113
const { t } = useTranslation();
@@ -207,12 +207,17 @@ export const ApplicationsTable: React.FC = () => {
207207
const [reviewToDiscard, setReviewToDiscard] =
208208
React.useState<Application | null>(null);
209209

210+
const [endOfAppImportPeriod, setEndOfAppImportPeriod] = useState<dayjs.Dayjs>(
211+
dayjs()
212+
);
213+
210214
const {
211215
data: applications,
212216
isFetching: isFetchingApplications,
213217
error: applicationsFetchError,
214-
refetch: fetchApplications,
215-
} = useFetchApplications(!hasActiveTasks);
218+
} = useFetchApplications(() =>
219+
hasActiveTasks || dayjs().isBefore(endOfAppImportPeriod) ? 5000 : false
220+
);
216221

217222
const { assessments, isFetching: isFetchingAssessments } =
218223
useFetchAssessments();
@@ -498,8 +503,6 @@ export const ApplicationsTable: React.FC = () => {
498503
isSelectionEnabled: true,
499504
});
500505

501-
const queryClient = useQueryClient();
502-
503506
const {
504507
currentPageItems,
505508
numRenderedColumns,
@@ -559,10 +562,6 @@ export const ApplicationsTable: React.FC = () => {
559562
tasksWriteAccess = checkAccess(userScopes, tasksWriteScopes),
560563
reviewsWriteAccess = checkAccess(userScopes, reviewsWriteScopes);
561564

562-
const areAppsInWaves = selectedRows.some(
563-
(application) => application.migrationWave !== null
564-
);
565-
566565
const importDropdownItems = importWriteAccess
567566
? [
568567
<DropdownItem
@@ -1131,19 +1130,6 @@ export const ApplicationsTable: React.FC = () => {
11311130
documentId={taskToView?.task}
11321131
onClose={() => setTaskToView(undefined)}
11331132
/>
1134-
<Modal
1135-
isOpen={isApplicationImportModalOpen}
1136-
variant="medium"
1137-
title={t("dialog.title.importApplicationFile")}
1138-
onClose={() => setIsApplicationImportModalOpen((current) => !current)}
1139-
>
1140-
<ImportApplicationsForm
1141-
onSaved={() => {
1142-
setIsApplicationImportModalOpen(false);
1143-
fetchApplications();
1144-
}}
1145-
/>
1146-
</Modal>
11471133
<Modal
11481134
isOpen={isDependenciesModalOpen}
11491135
variant="medium"
@@ -1168,7 +1154,7 @@ export const ApplicationsTable: React.FC = () => {
11681154
<ImportApplicationsForm
11691155
onSaved={() => {
11701156
setIsApplicationImportModalOpen(false);
1171-
fetchApplications();
1157+
setEndOfAppImportPeriod(dayjs().add(15, "s"));
11721158
}}
11731159
/>
11741160
</Modal>

client/src/app/queries/applications.ts

+4-2
Original file line numberDiff line numberDiff line change
@@ -32,13 +32,15 @@ interface DownloadOptions {
3232
mimeType: MimeType;
3333
}
3434

35-
export const useFetchApplications = (refetchDisabled: boolean = false) => {
35+
export const useFetchApplications = (
36+
refetchInterval: number | false | (() => number | false) = 5000
37+
) => {
3638
const queryClient = useQueryClient();
3739
const { isLoading, error, refetch, data } = useQuery({
3840
initialData: [],
3941
queryKey: [ApplicationsQueryKey],
4042
queryFn: getApplications,
41-
refetchInterval: !refetchDisabled ? 5000 : false,
43+
refetchInterval: refetchInterval,
4244
onSuccess: () => {
4345
queryClient.invalidateQueries([assessmentsByItemIdQueryKey]);
4446
},

0 commit comments

Comments
 (0)