@@ -7,32 +7,48 @@ import {
7
7
DialogTrigger ,
8
8
} from '@/components/ui/dialog' ;
9
9
import { FiSettings } from 'react-icons/fi' ;
10
- import {
11
- variableArrayToMap ,
12
- VariableEditor ,
13
- variableMapToArray ,
14
- } from '@/components/shared/settings/VariableTab/VariableEditor' ;
15
10
import { Tabs , TabsList , TabsTrigger , TabsContent } from '@/components/ui/tabs' ;
16
11
import { Button } from '@/components/ui/button' ;
17
12
import * as React from 'react' ;
18
13
import { useState } from 'react' ;
19
- import { selectVariables , useVariableActions , useVariableStore } from '@/state/variableStore' ;
14
+ import {
15
+ selectCollectionVariables ,
16
+ selectEnvironmentVariables ,
17
+ useVariableActions ,
18
+ useVariableStore ,
19
+ } from '@/state/variableStore' ;
20
+ import { CollectionVariableTab } from '@/components/shared/settings/variableTabs/CollectionVariableTab' ;
21
+ import {
22
+ variableArrayToMap ,
23
+ variableMapToArray ,
24
+ } from '@/components/shared/settings/variableTabs/helper/EditVariableHelper' ;
25
+ import { EnvironmentVariableTab } from '@/components/shared/settings/variableTabs/EnvironmentVariableTab' ;
20
26
21
27
export const SettingsModal = ( ) => {
22
- const { setVariables } = useVariableActions ( ) ;
23
- const variables = useVariableStore ( ( state ) => selectVariables ( state ) ) ;
24
- const [ editorVariables , setEditorVariables ] = useState ( variableMapToArray ( variables ) ) ;
28
+ const actions = useVariableActions ( ) ;
29
+ const collectionStoreVariables = useVariableStore ( ( state ) => selectCollectionVariables ( state ) ) ;
30
+ const environmentStoreVariables = useVariableStore ( ( state ) => selectEnvironmentVariables ( state ) ) ;
31
+
32
+ const [ collectionVariables , setCollectionVariables ] = useState (
33
+ variableMapToArray ( collectionStoreVariables )
34
+ ) ;
35
+ const [ environmentVariables , setEnvironmentVariables ] = useState ( environmentStoreVariables ) ;
25
36
const [ isValid , setValid ] = useState ( false ) ;
26
- const [ isOpen , setOpen ] = useState ( false ) ;
37
+ const [ isOpen , setOpen ] = useState ( true ) ;
27
38
28
39
const save = async ( ) => {
29
- console . info ( 'Saving variables:' , editorVariables ) ;
30
- await setVariables ( variableArrayToMap ( editorVariables ) ) ;
40
+ await actions . setCollectionVariables ( variableArrayToMap ( collectionVariables ) ) ;
41
+ await setEnvironmentVariables ( environmentVariables ) ;
31
42
setOpen ( false ) ;
32
43
} ;
33
44
45
+ const apply = async ( ) => {
46
+ await actions . setCollectionVariables ( variableArrayToMap ( v ) ) ;
47
+ await setEnvironmentVariables ( environmentVariables ) ;
48
+ } ;
49
+
34
50
const cancel = ( ) => {
35
- setEditorVariables ( variableMapToArray ( variables ) ) ;
51
+ setCollectionVariables ( variableMapToArray ( collectionStoreVariables ) ) ;
36
52
setOpen ( false ) ;
37
53
} ;
38
54
@@ -45,15 +61,23 @@ export const SettingsModal = () => {
45
61
< DialogHeader className = "mt-auto" >
46
62
< DialogTitle > Settings</ DialogTitle >
47
63
</ DialogHeader >
48
- < Tabs defaultValue = "variables " className = "h-[calc(50vh)]" >
64
+ < Tabs defaultValue = "collectionVariables " className = "h-[calc(50vh)]" >
49
65
< TabsList >
50
- < TabsTrigger value = "variables" > Variables</ TabsTrigger >
66
+ < TabsTrigger value = "collectionVariables" > CollectionVariables</ TabsTrigger >
67
+ < TabsTrigger value = "environmentVariables" > EnvironmentVariables</ TabsTrigger >
51
68
</ TabsList >
52
- < TabsContent value = "variables" className = "max-h-[50vh] overflow-y-auto" >
53
- < VariableEditor
54
- variables = { editorVariables }
69
+ < TabsContent value = "collectionVariables" className = "max-h-[50vh] overflow-y-auto" >
70
+ < CollectionVariableTab
71
+ variables = { collectionVariables }
72
+ onValidChange = { setValid }
73
+ onVariablesChange = { setCollectionVariables }
74
+ />
75
+ </ TabsContent >
76
+ < TabsContent value = "environmentVariables" className = "max-h-[50vh] overflow-y-auto" >
77
+ < EnvironmentVariableTab
78
+ environments = { environmentVariables }
55
79
onValidChange = { setValid }
56
- onVariablesChange = { setEditorVariables }
80
+ onVariablesChange = { setCollectionVariables } // TODO is wrong
57
81
/>
58
82
</ TabsContent >
59
83
</ Tabs >
@@ -66,6 +90,14 @@ export const SettingsModal = () => {
66
90
>
67
91
< span className = "leading-4 font-bold" > Save</ span >
68
92
</ Button >
93
+ < Button
94
+ className = "mt-0 ml-0 mr-0 mb-0"
95
+ onClick = { apply }
96
+ disabled = { ! isValid }
97
+ variant = { isValid ? 'secondary' : 'secondaryDisable' }
98
+ >
99
+ < span className = "leading-4 font-bold" > Apply</ span >
100
+ </ Button >
69
101
< Button className = "mt-0 mr-2 mb-0" onClick = { cancel } variant = "destructive" >
70
102
< span className = "leading-4 font-bold" > Cancel</ span >
71
103
</ Button >
0 commit comments