@@ -25,6 +25,24 @@ import { ConfirmDialog } from '../../common';
25
25
import ResourceTable from '../../common/Resource/ResourceTable' ;
26
26
import RecentClusters from './RecentClusters' ;
27
27
28
+ /**
29
+ * Gets the origin of a cluster.
30
+ *
31
+ * @param cluster
32
+ * @returns A description of where the cluster is picked up from: dynamic, in-cluster, or from a kubeconfig file.
33
+ */
34
+ function getOrigin ( cluster : Cluster ) : string {
35
+ if ( cluster . meta_data ?. source === 'kubeconfig' ) {
36
+ const kubeconfigPath = process . env . KUBECONFIG ?? '~/.kube/config' ;
37
+ return `Kubeconfig: ${ kubeconfigPath } ` ;
38
+ } else if ( cluster . meta_data ?. source === 'dynamic_cluster' ) {
39
+ return t ( 'translation|Plugin' ) ;
40
+ } else if ( cluster . meta_data ?. source === 'in_cluster' ) {
41
+ return t ( 'translation|In-cluster' ) ;
42
+ }
43
+ return 'Unknown' ;
44
+ }
45
+
28
46
function ContextMenu ( { cluster } : { cluster : Cluster } ) {
29
47
const { t } = useTranslation ( [ 'translation' ] ) ;
30
48
const history = useHistory ( ) ;
@@ -33,8 +51,8 @@ function ContextMenu({ cluster }: { cluster: Cluster }) {
33
51
const menuId = useId ( 'context-menu' ) ;
34
52
const [ openConfirmDialog , setOpenConfirmDialog ] = React . useState ( false ) ;
35
53
36
- function removeCluster ( cluster : Cluster ) {
37
- deleteCluster ( cluster . name || '' )
54
+ function removeCluster ( cluster : Cluster , removeKubeconfig ?: boolean ) {
55
+ deleteCluster ( cluster . name || '' , removeKubeconfig )
38
56
. then ( config => {
39
57
dispatch ( setConfig ( config ) ) ;
40
58
} )
@@ -92,7 +110,8 @@ function ContextMenu({ cluster }: { cluster: Cluster }) {
92
110
>
93
111
< ListItemText > { t ( 'translation|Settings' ) } </ ListItemText >
94
112
</ MenuItem >
95
- { helpers . isElectron ( ) && cluster . meta_data ?. source === 'dynamic_cluster' && (
113
+
114
+ { helpers . isElectron ( ) && (
96
115
< MenuItem
97
116
onClick = { ( ) => {
98
117
setOpenConfirmDialog ( true ) ;
@@ -109,13 +128,18 @@ function ContextMenu({ cluster }: { cluster: Cluster }) {
109
128
handleClose = { ( ) => setOpenConfirmDialog ( false ) }
110
129
onConfirm = { ( ) => {
111
130
setOpenConfirmDialog ( false ) ;
112
- removeCluster ( cluster ) ;
131
+ if ( cluster . meta_data ?. source !== 'dynamic_cluster' ) {
132
+ removeCluster ( cluster , true ) ;
133
+ } else {
134
+ removeCluster ( cluster ) ;
135
+ }
113
136
} }
114
137
title = { t ( 'translation|Delete Cluster' ) }
115
138
description = { t (
116
- 'translation|Are you sure you want to remove the cluster "{{ clusterName }}"? ' ,
139
+ 'translation|This action will delete cluster "{{ clusterName }}" from {{ source }}. ' ,
117
140
{
118
141
clusterName : cluster . name ,
142
+ source : getOrigin ( cluster ) ,
119
143
}
120
144
) }
121
145
/>
@@ -239,24 +263,6 @@ function HomeComponent(props: HomeComponentProps) {
239
263
. sort ( ) ;
240
264
}
241
265
242
- /**
243
- * Gets the origin of a cluster.
244
- *
245
- * @param cluster
246
- * @returns A description of where the cluster is picked up from: dynamic, in-cluster, or from a kubeconfig file.
247
- */
248
- function getOrigin ( cluster : Cluster ) : string {
249
- if ( cluster . meta_data ?. source === 'kubeconfig' ) {
250
- const kubeconfigPath = process . env . KUBECONFIG ?? '~/.kube/config' ;
251
- return `Kubeconfig: ${ kubeconfigPath } ` ;
252
- } else if ( cluster . meta_data ?. source === 'dynamic_cluster' ) {
253
- return t ( 'translation|Plugin' ) ;
254
- } else if ( cluster . meta_data ?. source === 'in_cluster' ) {
255
- return t ( 'translation|In-cluster' ) ;
256
- }
257
- return 'Unknown' ;
258
- }
259
-
260
266
const memoizedComponent = React . useMemo (
261
267
( ) => (
262
268
< PageGrid >
0 commit comments