1
1
/* eslint-disable react/jsx-props-no-spreading */
2
2
import {
3
- Accordion ,
4
- AccordionDetails ,
5
- AccordionSummary ,
6
- Autocomplete ,
7
3
Button ,
8
4
CardContent ,
9
5
Container ,
@@ -13,7 +9,7 @@ import {
13
9
import { ipcRenderer } from 'electron' ;
14
10
import { useSnackbar } from 'notistack' ;
15
11
import React , { FC , useEffect , useState } from 'react' ;
16
- import { CheckCircle , ChevronDown } from 'react-feather' ;
12
+ import { CheckCircle } from 'react-feather' ;
17
13
import { useParams } from 'react-router-dom' ;
18
14
19
15
import {
@@ -25,10 +21,11 @@ import {
25
21
VIEW_CONNECTION_LIST ,
26
22
} from '../../shared/constants' ;
27
23
import { Connection , Record , Selector } from '../../shared/pb/api' ;
28
- import { formatTag } from '../../shared/validators' ;
29
24
import AdvancedConnectionSettings from '../components/AdvancedConnectionSettings' ;
25
+ import AdvancedSettingsAccordion from '../components/AdvancedSettingsAccordion' ;
30
26
import BeforeBackActionDialog from '../components/BeforeBackActionDialog' ;
31
27
import StyledCard from '../components/StyledCard' ;
28
+ import TagSelector from '../components/TagSelector' ;
32
29
import TextField from '../components/TextField' ;
33
30
34
31
interface Props {
@@ -51,7 +48,6 @@ const ConnectForm: FC<Props> = () => {
51
48
const [ tags , setTags ] = useState < string [ ] > ( [ ] ) ;
52
49
const [ connection , setConnection ] = useState ( initialConnData ) ;
53
50
const [ originalConnection , setOriginalConnection ] = useState ( initialConnData ) ;
54
- const [ tagOptions , setTagOptions ] = useState ( [ ] as string [ ] ) ;
55
51
const handleSubmit = ( evt : React . FormEvent ) : void => {
56
52
evt . preventDefault ( ) ;
57
53
} ;
@@ -72,12 +68,6 @@ const ConnectForm: FC<Props> = () => {
72
68
setOriginalConnection ( conn || initialConnData ) ;
73
69
}
74
70
} ) ;
75
- ipcRenderer . once ( GET_UNIQUE_TAGS , ( _ , args ) => {
76
- if ( args . tags && ! args . err ) {
77
- setTagOptions ( args . tags ) ;
78
- }
79
- } ) ;
80
- ipcRenderer . send ( GET_UNIQUE_TAGS ) ;
81
71
82
72
if ( connectionID ) {
83
73
ipcRenderer . send ( GET_RECORDS , {
@@ -99,8 +89,6 @@ const ConnectForm: FC<Props> = () => {
99
89
} ) ;
100
90
} ;
101
91
102
- const saveTags = ( arr : string [ ] ) : void => setTags ( arr . map ( formatTag ) ) ;
103
-
104
92
const saveDestination = ( value : string ) : void => {
105
93
setConnection ( {
106
94
...connection ,
@@ -209,62 +197,18 @@ const ConnectForm: FC<Props> = () => {
209
197
/>
210
198
</ Grid >
211
199
< Grid item xs = { 12 } >
212
- < Autocomplete
213
- multiple
214
- id = "tags-outlined"
215
- options = { tagOptions }
216
- value = { tags || [ ] }
217
- onChange = { ( _ , arr ) => {
218
- saveTags ( arr ) ;
219
- } }
220
- renderInput = { ( params ) => (
221
- < TextField
222
- { ...params }
223
- variant = "outlined"
224
- label = "Tags..."
225
- placeholder = "Tags"
226
- onKeyDown = { ( e ) => {
227
- const element = e . target as HTMLInputElement ;
228
- const { value } = element ;
229
- if ( e . key === 'Enter' && value . trim ( ) ) {
230
- saveTags ( tags . concat ( value ) ) ;
231
- }
232
- } }
233
- />
234
- ) }
235
- />
200
+ < TagSelector tags = { tags } onChangeTags = { setTags } />
236
201
</ Grid >
237
202
</ Grid >
238
203
</ CardContent >
239
204
</ StyledCard >
240
205
241
- < Accordion
242
- sx = { {
243
- backgroundColor : 'background.paper' ,
244
- marginTop : 2 ,
245
- paddingLeft : 2 ,
246
- paddingRight : 2 ,
247
- borderRadius : 4 ,
248
- '&:before' : {
249
- display : 'none' ,
250
- } ,
251
- } }
252
- square = { false }
253
- >
254
- < AccordionSummary
255
- expandIcon = { < ChevronDown /> }
256
- aria-controls = "advanced-settings-content"
257
- id = "advanced-settings-header"
258
- >
259
- < Typography variant = "h5" > Advanced Settings</ Typography >
260
- </ AccordionSummary >
261
- < AccordionDetails >
262
- < AdvancedConnectionSettings
263
- connection = { connection }
264
- onChangeConnection = { setConnection }
265
- />
266
- </ AccordionDetails >
267
- </ Accordion >
206
+ < AdvancedSettingsAccordion >
207
+ < AdvancedConnectionSettings
208
+ connection = { connection }
209
+ onChangeConnection = { setConnection }
210
+ />
211
+ </ AdvancedSettingsAccordion >
268
212
269
213
< Grid
270
214
container
0 commit comments