1
1
import { useState } from 'react'
2
2
3
- import {
4
- getBrowserTimezone ,
5
- getTimezoneLabel ,
6
- getTimezoneOffset ,
7
- getTimezones ,
8
- } from 'lib/dates.js'
9
- import { Checkbox } from 'lib/ui/Checkbox.js'
10
3
import { ContentHeader } from 'lib/ui/layout/ContentHeader.js'
11
- import { handleString } from 'lib/ui/TextField/TextField .js'
4
+ import { TimezonePicker } from 'lib/ui/TimezonePicker/TimezonePicker .js'
12
5
13
6
interface AccessCodeFormTimezonePickerProps {
14
7
value : string
@@ -21,44 +14,19 @@ export function AccessCodeFormTimezonePicker({
21
14
value,
22
15
onClose,
23
16
} : AccessCodeFormTimezonePickerProps ) : JSX . Element {
24
- const [ manualTimezoneEnabled , setManualTimezoneEnabled ] = useState ( false )
25
-
26
- const isBrowserTimezone = value === getBrowserTimezone ( )
27
- const isManualTimezone = ! isBrowserTimezone || manualTimezoneEnabled
28
-
29
- const handleChangeManualTimezone = ( enabled : boolean ) : void => {
30
- setManualTimezoneEnabled ( enabled )
31
- if ( ! enabled ) {
32
- onChange ( getBrowserTimezone ( ) )
33
- }
34
- }
35
-
36
- const title = isManualTimezone ? t . titleManual : t . titleAuto
17
+ const [ title , setTitle ] = useState ( t . titleAuto )
37
18
38
19
return (
39
- < div className = 'seam-timezone-picker' >
20
+ < div className = 'seam-access-code- timezone-picker' >
40
21
< ContentHeader title = { title } onBack = { onClose } />
41
22
< div className = 'seam-content' >
42
- < Checkbox
43
- label = { t . setTimezoneManuallyLabel }
44
- checked = { ! isManualTimezone }
45
- onChange = { ( manual ) => {
46
- handleChangeManualTimezone ( ! manual )
23
+ < TimezonePicker
24
+ value = { value }
25
+ onChange = { onChange }
26
+ onManualTimezoneSelected = { ( manualTimezoneSelected ) => {
27
+ setTitle ( manualTimezoneSelected ? t . titleManual : t . titleAuto )
47
28
} }
48
- className = 'seam-manual-timezone-checkbox'
49
29
/>
50
-
51
- < select
52
- value = { value }
53
- onChange = { handleString ( onChange ) }
54
- className = 'seam-timezone-select'
55
- >
56
- { getTimezones ( ) . map ( ( timezone ) => (
57
- < option value = { timezone } key = { timezone } >
58
- { t . utc } { getTimezoneOffset ( timezone ) } { getTimezoneLabel ( timezone ) }
59
- </ option >
60
- ) ) }
61
- </ select >
62
30
</ div >
63
31
</ div >
64
32
)
0 commit comments