From 64bd34659023a785164fd73935e95dc3c569a978 Mon Sep 17 00:00:00 2001 From: AbhishekA1509 Date: Mon, 1 Jun 2026 19:13:37 +0530 Subject: [PATCH 1/2] fix: refactor abort controller initialization and handle download logic in ExportToCsv component --- .../Components/ExportToCsv/ExportToCsv.tsx | 25 ++++++++++++------- 1 file changed, 16 insertions(+), 9 deletions(-) diff --git a/src/Shared/Components/ExportToCsv/ExportToCsv.tsx b/src/Shared/Components/ExportToCsv/ExportToCsv.tsx index 99118972c..06f4f7a17 100644 --- a/src/Shared/Components/ExportToCsv/ExportToCsv.tsx +++ b/src/Shared/Components/ExportToCsv/ExportToCsv.tsx @@ -24,12 +24,13 @@ const ExportToCsv = ({ downloadRequestId, }: ExportToCsvProps) => { const csvRef = useRef(null) - const abortControllerRef = useRef(new AbortController()) + const abortControllerRef = useRef(null) const [dataToExport, setDataToExport] = useState>>([]) const [confirmationModalType, setConfirmationModalType] = useState<'default' | 'custom' | null>(null) const [isLoading, setIsLoading] = useState(false) const [dataFetchError, setDataFetchError] = useState(null) + const [pendingDownload, setPendingDownload] = useState(false) const handleInitiateDownload = async () => { if (disabled) { @@ -41,8 +42,7 @@ const ExportToCsv = ({ setDataFetchError(null) const data = await apiPromise({ signal: abortControllerRef.current.signal }) setDataToExport(data) - - csvRef.current?.link?.click() + setPendingDownload(true) } catch (error) { if (!getIsRequestAborted(error)) { showError(error) @@ -64,12 +64,12 @@ const ExportToCsv = ({ } } - useEffect( - () => () => { - abortControllerRef.current.abort() - }, - [], - ) + useEffect(() => { + abortControllerRef.current = new AbortController() + return () => { + abortControllerRef.current?.abort() + } + }, []) useEffect(() => { if (!isNullOrUndefined(downloadRequestId)) { @@ -78,6 +78,13 @@ const ExportToCsv = ({ } }, [downloadRequestId]) + useEffect(() => { + if (pendingDownload) { + csvRef.current?.link?.click() + setPendingDownload(false) + } + }, [pendingDownload]) + const handleCancelRequest = () => { abortControllerRef.current.abort() abortControllerRef.current = new AbortController() From 02596161e80687642aab777b13b5d265128c745b Mon Sep 17 00:00:00 2001 From: AbhishekA1509 Date: Mon, 1 Jun 2026 19:14:56 +0530 Subject: [PATCH 2/2] fix: update version to 4.0.6 in package.json and package-lock.json --- package-lock.json | 4 ++-- package.json | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/package-lock.json b/package-lock.json index 6f625182f..f9a3739f4 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "@devtron-labs/devtron-fe-common-lib", - "version": "4.0.5", + "version": "4.0.6", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "@devtron-labs/devtron-fe-common-lib", - "version": "4.0.5", + "version": "4.0.6", "hasInstallScript": true, "license": "ISC", "dependencies": { diff --git a/package.json b/package.json index fcae80a0a..e02781801 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@devtron-labs/devtron-fe-common-lib", - "version": "4.0.5", + "version": "4.0.6", "description": "Supporting common component library", "type": "module", "main": "dist/index.js",