1
1
import TextField from "@mui/material/TextField"
2
2
import { Template , UpdateTemplateMeta } from "api/typesGenerated"
3
3
import { FormikTouched , useFormik } from "formik"
4
- import { FC , ChangeEvent } from "react"
4
+ import { FC , ChangeEvent , useState } from "react"
5
5
import { getFormHelpers } from "utils/formUtils"
6
6
import * as Yup from "yup"
7
7
import i18next from "i18next"
@@ -19,6 +19,7 @@ import Link from "@mui/material/Link"
19
19
import Checkbox from "@mui/material/Checkbox"
20
20
import FormControlLabel from "@mui/material/FormControlLabel"
21
21
import Switch from "@mui/material/Switch"
22
+ import { ConfirmDialog } from "components/Dialogs/ConfirmDialog/ConfirmDialog"
22
23
23
24
const TTLHelperText = ( {
24
25
ttl,
@@ -145,24 +146,28 @@ export const TemplateScheduleForm: FC<TemplateScheduleForm> = ({
145
146
} ,
146
147
validationSchema,
147
148
onSubmit : ( formData ) => {
148
- // on submit, convert from hours => ms
149
- onSubmit ( {
150
- default_ttl_ms : formData . default_ttl_ms
151
- ? formData . default_ttl_ms * MS_HOUR_CONVERSION
152
- : undefined ,
153
- max_ttl_ms : formData . max_ttl_ms
154
- ? formData . max_ttl_ms * MS_HOUR_CONVERSION
155
- : undefined ,
156
- failure_ttl_ms : formData . failure_ttl_ms
157
- ? formData . failure_ttl_ms * MS_DAY_CONVERSION
158
- : undefined ,
159
- inactivity_ttl_ms : formData . inactivity_ttl_ms
160
- ? formData . inactivity_ttl_ms * MS_DAY_CONVERSION
161
- : undefined ,
149
+ if ( form . values . inactivity_cleanup_enabled ) {
150
+ setIsInactivityDialogOpen ( true )
151
+ } else {
152
+ // on submit, convert from hours => ms
153
+ onSubmit ( {
154
+ default_ttl_ms : formData . default_ttl_ms
155
+ ? formData . default_ttl_ms * MS_HOUR_CONVERSION
156
+ : undefined ,
157
+ max_ttl_ms : formData . max_ttl_ms
158
+ ? formData . max_ttl_ms * MS_HOUR_CONVERSION
159
+ : undefined ,
160
+ failure_ttl_ms : formData . failure_ttl_ms
161
+ ? formData . failure_ttl_ms * MS_DAY_CONVERSION
162
+ : undefined ,
163
+ inactivity_ttl_ms : formData . inactivity_ttl_ms
164
+ ? formData . inactivity_ttl_ms * MS_DAY_CONVERSION
165
+ : undefined ,
162
166
163
- allow_user_autostart : formData . allow_user_autostart ,
164
- allow_user_autostop : formData . allow_user_autostop ,
165
- } )
167
+ allow_user_autostart : formData . allow_user_autostart ,
168
+ allow_user_autostop : formData . allow_user_autostop ,
169
+ } )
170
+ }
166
171
} ,
167
172
initialTouched,
168
173
} )
@@ -172,6 +177,8 @@ export const TemplateScheduleForm: FC<TemplateScheduleForm> = ({
172
177
)
173
178
const { t } = useTranslation ( "templateSettingsPage" )
174
179
const styles = useStyles ( )
180
+ const [ isInactivityDialogOpen , setIsInactivityDialogOpen ] =
181
+ useState < boolean > ( false )
175
182
176
183
const handleToggleFailureCleanup = async ( e : ChangeEvent ) => {
177
184
form . handleChange ( e )
@@ -390,6 +397,15 @@ export const TemplateScheduleForm: FC<TemplateScheduleForm> = ({
390
397
isLoading = { isSubmitting }
391
398
submitDisabled = { ! form . isValid || ! form . dirty }
392
399
/>
400
+ < ConfirmDialog
401
+ type = "delete"
402
+ open = { isInactivityDialogOpen }
403
+ onConfirm = { form . handleSubmit }
404
+ onClose = { ( ) => setIsInactivityDialogOpen ( false ) }
405
+ title = "Delete inactive workspaces"
406
+ confirmText = "Delete Workspaces"
407
+ description = "There are workspaces that already match this filter and will be deleted upon form submission. Are you sure you want to proceed?"
408
+ />
393
409
</ HorizontalForm >
394
410
)
395
411
}
0 commit comments