Skip to content

Commit 55ece93

Browse files
committed
add workspace deletion dialog
1 parent e80e88e commit 55ece93

File tree

1 file changed

+34
-18
lines changed

1 file changed

+34
-18
lines changed

site/src/pages/TemplateSettingsPage/TemplateSchedulePage/TemplateScheduleForm.tsx

Lines changed: 34 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
import TextField from "@mui/material/TextField"
22
import { Template, UpdateTemplateMeta } from "api/typesGenerated"
33
import { FormikTouched, useFormik } from "formik"
4-
import { FC, ChangeEvent } from "react"
4+
import { FC, ChangeEvent, useState } from "react"
55
import { getFormHelpers } from "utils/formUtils"
66
import * as Yup from "yup"
77
import i18next from "i18next"
@@ -19,6 +19,7 @@ import Link from "@mui/material/Link"
1919
import Checkbox from "@mui/material/Checkbox"
2020
import FormControlLabel from "@mui/material/FormControlLabel"
2121
import Switch from "@mui/material/Switch"
22+
import { ConfirmDialog } from "components/Dialogs/ConfirmDialog/ConfirmDialog"
2223

2324
const TTLHelperText = ({
2425
ttl,
@@ -145,24 +146,28 @@ export const TemplateScheduleForm: FC<TemplateScheduleForm> = ({
145146
},
146147
validationSchema,
147148
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,
162166

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+
}
166171
},
167172
initialTouched,
168173
})
@@ -172,6 +177,8 @@ export const TemplateScheduleForm: FC<TemplateScheduleForm> = ({
172177
)
173178
const { t } = useTranslation("templateSettingsPage")
174179
const styles = useStyles()
180+
const [isInactivityDialogOpen, setIsInactivityDialogOpen] =
181+
useState<boolean>(false)
175182

176183
const handleToggleFailureCleanup = async (e: ChangeEvent) => {
177184
form.handleChange(e)
@@ -390,6 +397,15 @@ export const TemplateScheduleForm: FC<TemplateScheduleForm> = ({
390397
isLoading={isSubmitting}
391398
submitDisabled={!form.isValid || !form.dirty}
392399
/>
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+
/>
393409
</HorizontalForm>
394410
)
395411
}

0 commit comments

Comments
 (0)