Skip to content

Commit ef6be22

Browse files
committed
PR feedback
1 parent e7b6f89 commit ef6be22

File tree

3 files changed

+35
-39
lines changed

3 files changed

+35
-39
lines changed

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

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@ import Checkbox from "@mui/material/Checkbox"
1717
import FormControlLabel from "@mui/material/FormControlLabel"
1818
import Switch from "@mui/material/Switch"
1919
import { InactivityDialog } from "./InactivityDialog"
20-
import { useWorkspacesData } from "./useWorkspacesData"
20+
import { useWorkspacesToBeDeleted } from "./useWorkspacesToBeDeleted"
2121
import { TemplateScheduleFormValues, getValidationSchema } from "./formHelpers"
2222
import { TTLHelperText } from "./TTLHelperText"
2323

@@ -94,7 +94,7 @@ export const TemplateScheduleForm: FC<TemplateScheduleForm> = ({
9494
const { t } = useTranslation("templateSettingsPage")
9595
const styles = useStyles()
9696

97-
const workspacesToBeDeletedToday = useWorkspacesData(form.values)
97+
const workspacesToBeDeletedToday = useWorkspacesToBeDeleted(form.values)
9898

9999
const [isInactivityDialogOpen, setIsInactivityDialogOpen] =
100100
useState<boolean>(false)

site/src/pages/TemplateSettingsPage/TemplateSchedulePage/TemplateScheduleForm/useWorkspacesData.ts

Lines changed: 0 additions & 37 deletions
This file was deleted.
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,33 @@
1+
import { useQuery } from "@tanstack/react-query"
2+
import { getWorkspaces } from "api/api"
3+
import { compareAsc, add, endOfToday } from "date-fns"
4+
import { WorkspaceStatus, Workspace } from "api/typesGenerated"
5+
import { TemplateScheduleFormValues } from "./formHelpers"
6+
7+
const inactiveStatuses: WorkspaceStatus[] = [
8+
"stopped",
9+
"canceled",
10+
"failed",
11+
"deleted",
12+
]
13+
14+
export const useWorkspacesToBeDeleted = (
15+
formValues: TemplateScheduleFormValues,
16+
) => {
17+
const { data: workspacesData } = useQuery({
18+
queryKey: ["workspaces"],
19+
queryFn: () => getWorkspaces({}),
20+
enabled: formValues.inactivity_cleanup_enabled,
21+
})
22+
return workspacesData?.workspaces?.filter((workspace: Workspace) => {
23+
const isInactive = inactiveStatuses.includes(workspace.latest_build.status)
24+
25+
const proposedDeletion = add(new Date(workspace.last_used_at), {
26+
days: formValues.inactivity_ttl_ms,
27+
})
28+
29+
if (isInactive && compareAsc(proposedDeletion, endOfToday()) < 1) {
30+
return workspace
31+
}
32+
})
33+
}

0 commit comments

Comments
 (0)