1
+ import { getKvData , saveKvData } from "@/functions/localstorage" ;
2
+ import httpRequest from "axios" ;
3
+ import { useEffect , useState } from "react" ;
4
+ import KeyVaultsDetail from "./table/listkv" ;
5
+ import { findKv , findName } from "@/functions" ;
6
+ import CompareKv from "./kvValues" ;
7
+
8
+ const KeyVaultTab = ( props : any ) => {
9
+ const { workLoadOne, workLoadTwo, loading } = props ;
10
+ const [ keyVaults , setData ] = useState < any | null > ( [ ] ) ;
11
+ const [ kvKeys , setKvKeys ] = useState < any > ( [ ] ) ;
12
+ const [ kvSelected , setKvSelected ] = useState ( "" ) ;
13
+ const [ selectedKey , setSelectedKey ] = useState ( [ ] ) ;
14
+
15
+ const getKeyVaults = async ( props : any ) => {
16
+ let queryString = [
17
+ props . workLoadOne ? `workload1=${ props . workLoadOne } ` : '' ,
18
+ props . workLoadTwo ? `workload2=${ props . workLoadTwo } ` : ''
19
+ ] . filter ( Boolean ) . join ( '&' ) ;
20
+ try {
21
+ const response = await httpRequest . get ( `/api/keyvault?` ) ;
22
+ // saveDeploymentsData(response.data);
23
+ setData ( response . data ) ;
24
+ saveKvData ( response . data ) ;
25
+ // setDataDiff(findDifferentNamesInList(response.data as unknown as any));
26
+
27
+ // if (response && response.data && response.data.length > 0) {
28
+ // props.closeLoading(false);ss
29
+ // }
30
+ } catch ( error ) {
31
+ console . error ( 'Error fetching deployments:' , error ) ;
32
+ props . closeLoading ( false ) ;
33
+ }
34
+
35
+ } ;
36
+
37
+ const setKeyName = ( e : any ) => {
38
+ setKvSelected ( e . target . value ) ;
39
+ }
40
+ const getFromLc = ( ) => {
41
+ const kvData = getKvData ( ) ;
42
+ const getKeys = kvData [ 0 ] ;
43
+ setKvKeys ( Object . keys ( getKeys ) . map ( ( item ) => item ) ) ;
44
+ setData ( kvData ) ;
45
+ }
46
+
47
+ useEffect ( ( ) => {
48
+ getFromLc ( ) ;
49
+ } , [ ] ) ;
50
+
51
+ if ( ! keyVaults . length || ! kvKeys . length ) {
52
+ return ;
53
+ }
54
+ return (
55
+ < >
56
+ < div >
57
+ < select onChange = { setKeyName } className = "p-2 text-l bg-gray-100 rounded-lg" >
58
+ < option value = "" > Choose Keys </ option >
59
+ {
60
+ kvKeys && kvKeys . map ( ( keys : string , index : number ) => (
61
+ < option value = { keys } key = { index } > { keys } </ option >
62
+ ) )
63
+ }
64
+ </ select >
65
+ < CompareKv selectedKey = { kvSelected } deployments = { keyVaults } />
66
+ </ div >
67
+ < div className = "flex flex-row p-2 gap-8" >
68
+ {
69
+ keyVaults . map ( ( deployment : any , index : number ) => (
70
+ < div key = { index } className = "flex flex-col gap-2" >
71
+
72
+ < h3 className = "font-bold flex-row text-l p-2" >
73
+ { `${ index + 1 } .` } < span className = "text-blue-500" > { index == 0 ? findKv ( workLoadOne || workLoadTwo ) : findKv ( workLoadTwo ) } </ span > < small className = "text-sm" > ({ index == 0 ? workLoadOne || workLoadTwo : workLoadTwo } )</ small >
74
+ < small className = "text-xs font-light text-green-500" > { loading ? "Loading..." : "" } </ small >
75
+ </ h3 >
76
+ < div className = "flex flex-col gap-2" >
77
+ < KeyVaultsDetail deployments = { deployment } title = "Keys" />
78
+ </ div >
79
+ </ div >
80
+ ) )
81
+ }
82
+ </ div >
83
+ </ >
84
+
85
+ )
86
+ }
87
+
88
+ export default KeyVaultTab ;
0 commit comments