From 7234b5667ba6bfcfdf85066cf94e1db8d3524565 Mon Sep 17 00:00:00 2001 From: Danielle Maywood Date: Tue, 30 Jun 2026 17:22:28 +0100 Subject: [PATCH] fix(site): autosave personal model overrides toggle (#26871) --- ...PersonalModelOverridesSettings.stories.tsx | 20 ++-- .../AdminPersonalModelOverridesSettings.tsx | 102 +++++------------- 2 files changed, 36 insertions(+), 86 deletions(-) diff --git a/site/src/pages/AISettingsPage/CoderAgentsPage/components/AdminPersonalModelOverridesSettings.stories.tsx b/site/src/pages/AISettingsPage/CoderAgentsPage/components/AdminPersonalModelOverridesSettings.stories.tsx index 4ee4e75d12..235b8bf008 100644 --- a/site/src/pages/AISettingsPage/CoderAgentsPage/components/AdminPersonalModelOverridesSettings.stories.tsx +++ b/site/src/pages/AISettingsPage/CoderAgentsPage/components/AdminPersonalModelOverridesSettings.stories.tsx @@ -110,7 +110,9 @@ export const Saving: Story = { }); expect(toggle).toBeDisabled(); - expect(canvas.getByRole("button", { name: /save/i })).toBeDisabled(); + expect( + canvas.queryByRole("button", { name: "Save" }), + ).not.toBeInTheDocument(); }, }; @@ -136,16 +138,14 @@ export const SavesChangedSetting: Story = { name: "Allow personal model overrides", }); await userEvent.click(toggle); - const saveButton = await canvas.findByRole("button", { name: "Save" }); + await waitFor(() => { - expect(saveButton).toBeEnabled(); - }); - await userEvent.click(saveButton); - await waitFor(() => { - expect(args.onSaveAdminSetting).toHaveBeenCalledWith( - { allow_users: true }, - expect.anything(), - ); + expect(args.onSaveAdminSetting).toHaveBeenCalledWith({ + allow_users: true, + }); }); + expect( + canvas.queryByRole("button", { name: "Save" }), + ).not.toBeInTheDocument(); }, }; diff --git a/site/src/pages/AISettingsPage/CoderAgentsPage/components/AdminPersonalModelOverridesSettings.tsx b/site/src/pages/AISettingsPage/CoderAgentsPage/components/AdminPersonalModelOverridesSettings.tsx index 84a4b6a33f..2ba61f5cdd 100644 --- a/site/src/pages/AISettingsPage/CoderAgentsPage/components/AdminPersonalModelOverridesSettings.tsx +++ b/site/src/pages/AISettingsPage/CoderAgentsPage/components/AdminPersonalModelOverridesSettings.tsx @@ -1,14 +1,8 @@ -import { useFormik } from "formik"; import type { FC } from "react"; import type * as TypesGen from "#/api/typesGenerated"; import { ErrorAlert } from "#/components/Alert/ErrorAlert"; import { Button } from "#/components/Button/Button"; -import { Spinner } from "#/components/Spinner/Spinner"; import { Switch } from "#/components/Switch/Switch"; -import { - TemporarySavedState, - useTemporarySavedState, -} from "#/components/TemporarySavedState/TemporarySavedState"; interface MutationCallbacks { onSuccess?: () => void; @@ -41,45 +35,22 @@ export const AdminPersonalModelOverridesSettings: FC< isSavingAdminSetting, isSaveAdminSettingError, }) => { - const { isSavedVisible, showSavedState } = useTemporarySavedState(); const hasLoadedAdminSettings = adminSettings !== undefined; const hasAdminSettingsError = adminSettingsError != null; - const form = useFormik({ - enableReinitialize: true, - initialValues: { - allow_users: adminSettings?.allow_users ?? false, - }, - onSubmit: (values, { resetForm }) => { - onSaveAdminSetting( - { - allow_users: values.allow_users, - }, - { - onSuccess: () => { - showSavedState(); - resetForm({ values }); - }, - }, - ); - }, - }); const isDisabled = isSavingAdminSetting || !hasLoadedAdminSettings; - const showSave = form.dirty || isSavingAdminSetting || isSavedVisible; - const showStatusArea = - hasAdminSettingsError || !hasLoadedAdminSettings || isSaveAdminSettingError; + const allowsUsers = adminSettings?.allow_users ?? false; return ( -
{ - void form.setFieldValue("allow_users", checked); + onSaveAdminSetting({ allow_users: checked }); }} aria-label="Allow personal model overrides" type="button" @@ -93,54 +64,33 @@ export const AdminPersonalModelOverridesSettings: FC<
- {showSave && ( -
- {isSavedVisible ? ( - - ) : ( + {hasAdminSettingsError && ( +
+ + {onRetryAdminSettings && ( )}
)} - {showStatusArea && ( -
- {hasAdminSettingsError && ( -
- - {onRetryAdminSettings && ( - - )} -
- )} - {!hasAdminSettingsError && !hasLoadedAdminSettings && ( -

- Loading personal model override settings... -

- )} - {isSaveAdminSettingError && ( -

- Failed to save personal model override settings. -

- )} -
+ {!hasAdminSettingsError && !hasLoadedAdminSettings && ( +

+ Loading personal model override settings... +

)} - + {isSaveAdminSettingError && ( +

+ Failed to save personal model override settings. +

+ )} +
); };