diff --git a/site/src/pages/UserSettingsPage/SchedulePage/ScheduleForm.tsx b/site/src/pages/UserSettingsPage/SchedulePage/ScheduleForm.tsx index fecce0561a..0fcf3c75eb 100644 --- a/site/src/pages/UserSettingsPage/SchedulePage/ScheduleForm.tsx +++ b/site/src/pages/UserSettingsPage/SchedulePage/ScheduleForm.tsx @@ -1,7 +1,5 @@ -import MenuItem from "@mui/material/MenuItem"; -import TextField from "@mui/material/TextField"; import { type FormikContextType, useFormik } from "formik"; -import { type FC, useEffect, useState } from "react"; +import { type FC, useEffect, useId, useState } from "react"; import * as Yup from "yup"; import type { UpdateUserQuietHoursScheduleRequest, @@ -11,6 +9,15 @@ import { Alert } from "#/components/Alert/Alert"; import { ErrorAlert } from "#/components/Alert/ErrorAlert"; import { Button } from "#/components/Button/Button"; import { Form, FormFields } from "#/components/Form/Form"; +import { FormField } from "#/components/FormField/FormField"; +import { Label } from "#/components/Label/Label"; +import { + Select, + SelectContent, + SelectItem, + SelectTrigger, + SelectValue, +} from "#/components/Select/Select"; import { Spinner } from "#/components/Spinner/Spinner"; import { getFormHelpers } from "#/utils/formUtils"; import { quietHoursDisplay, timeToCron, validTime } from "#/utils/schedule"; @@ -80,6 +87,9 @@ export const ScheduleForm: FC = ({ }); const getFieldHelpers = getFormHelpers(form, submitError); const browserLocale = navigator.language || "en-US"; + const timezoneId = useId(); + const timezoneField = getFieldHelpers("timezone"); + const fieldsDisabled = isLoading || !initialValues.user_can_set; return (
@@ -101,46 +111,63 @@ export const ScheduleForm: FC = ({ )} -
- + - - {timeZones.map((zone) => ( - - {zone} - - ))} - +
+ + + {timezoneField.error && ( + + {timezoneField.helperText} + + )} +
+
+ {}, + onBlur: () => {}, + error: false, + }} + label="Next occurrence" + disabled + /> +
- - -
- diff --git a/site/src/pages/UserSettingsPage/SchedulePage/SchedulePage.test.tsx b/site/src/pages/UserSettingsPage/SchedulePage/SchedulePage.test.tsx index fd0873bb5d..05965bcfdc 100644 --- a/site/src/pages/UserSettingsPage/SchedulePage/SchedulePage.test.tsx +++ b/site/src/pages/UserSettingsPage/SchedulePage/SchedulePage.test.tsx @@ -139,7 +139,7 @@ describe("SchedulePage", () => { const timeInput = screen.getByLabelText("Start time"); expect(timeInput).toBeDisabled(); const timezoneDropdown = screen.getByLabelText("Timezone"); - expect(timezoneDropdown).toHaveClass("Mui-disabled"); + expect(timezoneDropdown).toBeDisabled(); const updateButton = screen.getByText("Update schedule"); expect(updateButton).toBeDisabled(); });