@@ -17,7 +17,7 @@ import relativeTime from "dayjs/plugin/relativeTime"
17
17
import timezone from "dayjs/plugin/timezone"
18
18
import utc from "dayjs/plugin/utc"
19
19
import { FormikTouched , useFormik } from "formik"
20
- import { defaultSchedule } from "pages/WorkspaceSchedulePage/schedule"
20
+ import { defaultSchedule , emptySchedule } from "pages/WorkspaceSchedulePage/schedule"
21
21
import { defaultTTL } from "pages/WorkspaceSchedulePage/ttl"
22
22
import { ChangeEvent , FC } from "react"
23
23
import * as Yup from "yup"
@@ -52,6 +52,7 @@ export const Language = {
52
52
daySaturdayLabel : "Saturday" ,
53
53
startTimeLabel : "Start time" ,
54
54
startTimeHelperText : "Your workspace will automatically start at this time." ,
55
+ noStartTimeHelperText : "Your workspace will not automatically start." ,
55
56
timezoneLabel : "Timezone" ,
56
57
ttlLabel : "Time until shutdown (hours)" ,
57
58
ttlCausesShutdownHelperText : "Your workspace will shut down" ,
@@ -205,17 +206,23 @@ export const WorkspaceScheduleForm: FC<React.PropsWithChildren<WorkspaceSchedule
205
206
206
207
const handleToggleAutoStart = async ( e : ChangeEvent ) => {
207
208
form . handleChange ( e )
208
- // if enabling from empty values, fill with defaults
209
- if ( ! form . values . autoStartEnabled && ! form . values . startTime ) {
209
+ if ( form . values . autoStartEnabled ) {
210
+ // disable autostart, clear values
211
+ await form . setValues ( { ...form . values , autoStartEnabled : false , ...emptySchedule } )
212
+ } else {
213
+ // enable autostart, fill with defaults
210
214
await form . setValues ( { ...form . values , autoStartEnabled : true , ...defaultSchedule ( ) } )
211
215
}
212
216
}
213
217
214
218
const handleToggleAutoStop = async ( e : ChangeEvent ) => {
215
219
form . handleChange ( e )
216
- // if enabling from empty values, fill with defaults
217
- if ( ! form . values . autoStopEnabled && ! form . values . ttl ) {
218
- await form . setFieldValue ( "ttl" , defaultTTL )
220
+ if ( form . values . autoStopEnabled ) {
221
+ // disable autostop, set TTL 0
222
+ await form . setValues ( { ...form . values , autoStopEnabled : false , ttl : 0 } )
223
+ } else {
224
+ // enable autostop, fill with default TTL
225
+ await form . setValues ( { ...form . values , autoStopEnabled : true , ttl : defaultTTL } )
219
226
}
220
227
}
221
228
@@ -237,7 +244,12 @@ export const WorkspaceScheduleForm: FC<React.PropsWithChildren<WorkspaceSchedule
237
244
label = { Language . startSwitch }
238
245
/>
239
246
< TextField
240
- { ...formHelpers ( "startTime" , Language . startTimeHelperText ) }
247
+ { ...formHelpers (
248
+ "startTime" ,
249
+ form . values . autoStartEnabled
250
+ ? Language . startTimeHelperText
251
+ : Language . noStartTimeHelperText ,
252
+ ) }
241
253
disabled = { isLoading || ! form . values . autoStartEnabled }
242
254
InputLabelProps = { {
243
255
shrink : true ,
0 commit comments