From a014c040c5a69b0f8eb1dba7ec5e36bada5417ff Mon Sep 17 00:00:00 2001 From: Amit Date: Wed, 6 Sep 2023 17:28:32 +0530 Subject: [PATCH] Added Action Icon Button on Cluster Detail Page --- portal/v2/src/Kubeconfig.tsx | 75 ------------------------------------ 1 file changed, 75 deletions(-) delete mode 100644 portal/v2/src/Kubeconfig.tsx diff --git a/portal/v2/src/Kubeconfig.tsx b/portal/v2/src/Kubeconfig.tsx deleted file mode 100644 index 94c47ba8984..00000000000 --- a/portal/v2/src/Kubeconfig.tsx +++ /dev/null @@ -1,75 +0,0 @@ -import { IconButton, TooltipHost } from "@fluentui/react" -import { AxiosResponse } from "axios" -import { RequestKubeconfig } from "./Request" -import { MutableRefObject, useEffect, useLayoutEffect } from "react" -import { useState } from "react" -import { useRef } from "react" -import { forwardRef } from "react" -import { parse as parseContentDisposition } from "content-disposition" - -type KubeconfigButtonProps = { - csrfToken: MutableRefObject - resourceId: string -} - -type FileDownload = { - name: string - content: string -} - -export const KubeconfigButton = forwardRef( - ({ csrfToken, resourceId }) => { - const [data, setData] = useState({ name: "", content: "" }) - const [error, setError] = useState(null) - const [fetching, setFetching] = useState("DONE") - const buttonRef = useRef(null) - - useEffect(() => { - const onData = (result: AxiosResponse | null) => { - if (result?.status === 200) { - const blob = new Blob([result.request.response]) - const fileDownloadUrl = URL.createObjectURL(blob) - const filename = parseContentDisposition(result.headers["content-disposition"] || '').parameters - .filename - setData({ content: fileDownloadUrl, name: filename }) - } else { - setError(result) - } - setFetching("DONE") - } - - if (fetching === "") { - setFetching("FETCHING") - RequestKubeconfig(csrfToken.current, resourceId).then(onData) - } - }, [fetching, error, data, resourceId, csrfToken]) - - useLayoutEffect(() => { - if (data.content && buttonRef && buttonRef.current) { - buttonRef.current.href = data.content - buttonRef.current.download = data.name - buttonRef.current.click() - URL.revokeObjectURL(data.content) - data.content = "" - } - }, [data]) - - return ( - <> - - setFetching("")} - /> - - dl - - - - ) - } -) - -KubeconfigButton.displayName = "kubeconfigbutton"