diff --git a/package-lock.json b/package-lock.json index 77731c8fb..7d8105878 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "@devtron-labs/devtron-fe-common-lib", - "version": "4.0.4-pre-0", + "version": "4.0.6-pre-0", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "@devtron-labs/devtron-fe-common-lib", - "version": "4.0.4-pre-0", + "version": "4.0.6-pre-0", "hasInstallScript": true, "license": "ISC", "dependencies": { diff --git a/package.json b/package.json index 258a5b087..ea7a6bc5e 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@devtron-labs/devtron-fe-common-lib", - "version": "4.0.4-pre-0", + "version": "4.0.6-pre-0", "description": "Supporting common component library", "type": "module", "main": "dist/index.js", diff --git a/src/Pages-Devtron-2.0/Shared/Routes/routes.ts b/src/Pages-Devtron-2.0/Shared/Routes/routes.ts index 68735bbd7..d934bc467 100644 --- a/src/Pages-Devtron-2.0/Shared/Routes/routes.ts +++ b/src/Pages-Devtron-2.0/Shared/Routes/routes.ts @@ -288,6 +288,11 @@ export const BASE_ROUTES = { ROOT: 'cluster-env', MANAGE_CATEGORIES: 'manage-categories', }, + NODE_AUTOSCALER: { + ROOT: 'node-autoscaler', + CREATE_PROFILE: 'create-profile', + EDIT_PROFILE: 'edit/:profileId', + }, DOCKER: 'docker', PROJECTS: 'projects', AUTH: { 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() diff --git a/src/index.ts b/src/index.ts index 676540a79..2ded316da 100644 --- a/src/index.ts +++ b/src/index.ts @@ -190,6 +190,10 @@ export interface customEnv { FEATURE_ATHENA_DEBUG_MODE_ENABLE?: boolean /** Org ID for grafana */ GRAFANA_ORG_ID?: number + /** + * @default false + */ + FEATURE_NODE_AUTOSCALER_ENABLE?: boolean } declare global {