@@ -44,6 +44,10 @@ class UiTab extends React.Component {
44
44
}
45
45
ipc . addListener ( 'APP_SETTING_DONE' , this . handleSettingDone )
46
46
ipc . addListener ( 'APP_SETTING_ERROR' , this . handleSettingError )
47
+
48
+ this . handleSlider ( null , 1 )
49
+ this . handleSlider ( null , 2 )
50
+
47
51
}
48
52
49
53
componentWillUnmount ( ) {
@@ -65,6 +69,10 @@ class UiTab extends React.Component {
65
69
const newConfig = {
66
70
ui : {
67
71
theme : this . refs . uiTheme . value ,
72
+ enableScheduleTheme : this . refs . enableScheduleTheme . value ,
73
+ scheduledTheme : this . refs . uiScheduledTheme . value ,
74
+ scheduleStart : this . refs . scheduleStart . value ,
75
+ scheduleEnd : this . refs . scheduleEnd . value ,
68
76
language : this . refs . uiLanguage . value ,
69
77
defaultNote : this . refs . defaultNote . value ,
70
78
showCopyNotification : this . refs . showCopyNotification . checked ,
@@ -162,18 +170,43 @@ class UiTab extends React.Component {
162
170
} , 2000 ) ( )
163
171
}
164
172
165
- handleSlider ( number ) {
173
+ /**
174
+ * Gets the total number of minutes and returns a string in the HH:MM format
175
+ * @param {Number } time total number of minutes
176
+ */
177
+ formatTime ( time ) {
178
+ let hour = Math . floor ( time / 60 )
179
+ let minute = time % 60
180
+
181
+ if ( hour < 10 ) {
182
+ hour = '0' + hour
183
+ }
184
+
185
+ if ( minute < 10 ) {
186
+ minute = '0' + minute
187
+ }
188
+
189
+ return `${ hour } :${ minute } `
190
+ }
191
+
192
+ handleSlider ( e , number ) {
166
193
const sliderID = 'rs-range-line-' + number
167
194
const bulletID = 'rs-bullet-' + number
168
195
169
196
const rangeSlider = document . getElementById ( sliderID )
170
197
const rangeBullet = document . getElementById ( bulletID )
171
198
172
199
if ( rangeSlider && rangeBullet ) {
173
- rangeBullet . innerHTML = Math . floor ( rangeSlider . value / 60 ) + ':' + rangeSlider . value % 60
200
+ rangeBullet . innerHTML = this . formatTime ( rangeSlider . value )
174
201
const bulletPosition = ( rangeSlider . value / rangeSlider . max )
175
202
rangeBullet . style . left = ( bulletPosition * 578 ) + 'px'
176
203
}
204
+
205
+ if ( e ) {
206
+ this . handleUIChange ( e )
207
+ } else {
208
+ console . log ( 'HEY' )
209
+ }
177
210
}
178
211
179
212
render ( ) {
@@ -212,17 +245,48 @@ class UiTab extends React.Component {
212
245
</ select >
213
246
</ div >
214
247
</ div >
248
+ < div styleName = 'group-header2' >
249
+ { i18n . __ ( 'Theme Schedule' ) }
250
+ </ div >
251
+ < div styleName = 'group-checkBoxSection' >
252
+ < label >
253
+ < input onChange = { ( e ) => this . handleUIChange ( e ) }
254
+ checked = { this . state . config . ui . enableScheduleTheme }
255
+ ref = 'enableScheduleTheme'
256
+ type = 'checkbox'
257
+ />
258
+ { i18n . __ ( 'Enable Scheduled Themes' ) }
259
+ </ label >
260
+ </ div >
261
+ < div styleName = 'group-section' >
262
+ < div styleName = 'group-section-label' >
263
+ { i18n . __ ( 'Scheduled Theme' ) }
264
+ </ div >
265
+ < div styleName = 'group-section-control' >
266
+ < select value = { config . ui . scheduledTheme }
267
+ onChange = { ( e ) => this . handleUIChange ( e ) }
268
+ ref = 'uiScheduledTheme'
269
+ >
270
+ < option value = 'default' > { i18n . __ ( 'Default' ) } </ option >
271
+ < option value = 'white' > { i18n . __ ( 'White' ) } </ option >
272
+ < option value = 'solarized-dark' > { i18n . __ ( 'Solarized Dark' ) } </ option >
273
+ < option value = 'monokai' > { i18n . __ ( 'Monokai' ) } </ option >
274
+ < option value = 'dracula' > { i18n . __ ( 'Dracula' ) } </ option >
275
+ < option value = 'dark' > { i18n . __ ( 'Dark' ) } </ option >
276
+ </ select >
277
+ </ div >
278
+ </ div >
215
279
< div styleName = 'group-section' >
216
280
< div styleName = 'container' >
217
281
< div styleName = 'range-slider' id = 'firstRow' >
218
- < span id = 'rs-bullet-1' styleName = 'rs-label' > 00:00 </ span >
219
- < input id = 'rs-range-line-1' styleName = 'rs-range' type = 'range' value = { config . ui . scheduleStart } min = '0' max = '1440' step = '5'
220
- onChange = { ( ) => this . handleSlider ( 1 ) } />
282
+ < span id = 'rs-bullet-1' styleName = 'rs-label' > { this . formatTime ( config . ui . scheduleStart ) } </ span >
283
+ < input id = 'rs-range-line-1' styleName = 'rs-range' type = 'range' value = { config . ui . scheduleStart } min = '0' max = '1440' step = '5' ref = 'scheduleStart'
284
+ onChange = { ( e ) => this . handleSlider ( e , 1 ) } />
221
285
</ div >
222
286
< div styleName = 'range-slider' id = 'secondRow' >
223
- < span id = 'rs-bullet-2' styleName = 'rs-label' > 24:00 </ span >
224
- < input id = 'rs-range-line-2' styleName = 'rs-range' type = 'range' value = { config . ui . scheduleEnd } min = '0' max = '1440' step = '5'
225
- onInput = { ( ) => this . handleSlider ( 2 ) } />
287
+ < span id = 'rs-bullet-2' styleName = 'rs-label' > { this . formatTime ( config . ui . scheduleEnd ) } </ span >
288
+ < input id = 'rs-range-line-2' styleName = 'rs-range' type = 'range' value = { config . ui . scheduleEnd } min = '0' max = '1440' step = '5' ref = 'scheduleEnd'
289
+ onChange = { ( e ) => this . handleSlider ( e , 2 ) } />
226
290
</ div >
227
291
< div styleName = 'box-minmax' >
228
292
< span > 00:00</ span > < span > 24:00</ span >
0 commit comments