From b987f33a671c4aeefba943344c4f7c19e22bd28b Mon Sep 17 00:00:00 2001 From: "sp.wack" <83104063+amanape@users.noreply.github.com> Date: Wed, 29 Jan 2025 15:42:20 +0400 Subject: [PATCH] chore: Remove settings local storage logic (#6504) --- .../features/sidebar/sidebar.test.tsx | 21 ----- frontend/__tests__/utils/storage.test.ts | 28 ------ frontend/src/api/open-hands.ts | 2 +- .../components/features/sidebar/sidebar.tsx | 8 +- .../account-settings-form.tsx | 2 +- .../shared/modals/settings/settings-form.tsx | 8 +- .../shared/modals/settings/settings-modal.tsx | 2 +- frontend/src/context/settings-context.tsx | 27 +----- .../src/hooks/mutation/use-save-settings.ts | 7 +- frontend/src/hooks/query/use-settings.ts | 4 +- .../src/hooks/use-maybe-migrate-settings.ts | 52 ----------- frontend/src/mocks/handlers.ts | 7 +- frontend/src/routes/_oh/route.tsx | 3 - frontend/src/services/settings.ts | 89 +------------------ frontend/src/types/settings.ts | 35 ++++++++ frontend/src/utils/settings-utils.ts | 13 +-- frontend/src/utils/storage.tsx | 11 --- frontend/tests/conversation-panel.test.ts | 1 - frontend/tests/redirect.spec.ts | 1 - frontend/tests/settings.spec.ts | 1 - 20 files changed, 56 insertions(+), 266 deletions(-) delete mode 100644 frontend/__tests__/utils/storage.test.ts delete mode 100644 frontend/src/hooks/use-maybe-migrate-settings.ts create mode 100644 frontend/src/types/settings.ts delete mode 100644 frontend/src/utils/storage.tsx diff --git a/frontend/__tests__/components/features/sidebar/sidebar.test.tsx b/frontend/__tests__/components/features/sidebar/sidebar.test.tsx index e3114e004ab2..7a16ad2313e4 100644 --- a/frontend/__tests__/components/features/sidebar/sidebar.test.tsx +++ b/frontend/__tests__/components/features/sidebar/sidebar.test.tsx @@ -135,27 +135,6 @@ describe("Sidebar", () => { }); describe("Settings Modal", () => { - it("should open the settings modal if the settings version is out of date", async () => { - const user = userEvent.setup(); - localStorage.clear(); - - const { rerender } = renderSidebar(); - - const settingsModal = await screen.findByTestId("ai-config-modal"); - expect(settingsModal).toBeInTheDocument(); - - const saveSettingsButton = await within(settingsModal).findByTestId( - "save-settings-button", - ); - await user.click(saveSettingsButton); - - expect(screen.queryByTestId("ai-config-modal")).not.toBeInTheDocument(); - - rerender(); - - expect(screen.queryByTestId("ai-config-modal")).not.toBeInTheDocument(); - }); - it("should open the settings modal if the user clicks the settings button", async () => { const user = userEvent.setup(); renderSidebar(); diff --git a/frontend/__tests__/utils/storage.test.ts b/frontend/__tests__/utils/storage.test.ts deleted file mode 100644 index 378dc51abf45..000000000000 --- a/frontend/__tests__/utils/storage.test.ts +++ /dev/null @@ -1,28 +0,0 @@ -import { beforeEach, describe, expect, it, vi, type Mock } from "vitest"; -import { getCachedConfig } from "../../src/utils/storage"; - -describe("getCachedConfig", () => { - beforeEach(() => { - // Clear all instances and calls to constructor and all methods - Storage.prototype.getItem = vi.fn(); - }); - - it("should return an empty object when local storage is null or undefined", () => { - (Storage.prototype.getItem as Mock).mockReturnValue(null); - expect(getCachedConfig()).toEqual({}); - - (Storage.prototype.getItem as Mock).mockReturnValue(undefined); - expect(getCachedConfig()).toEqual({}); - }); - - it("should return an empty object when local storage has invalid JSON", () => { - (Storage.prototype.getItem as Mock).mockReturnValue("invalid JSON"); - expect(getCachedConfig()).toEqual({}); - }); - - it("should return parsed object when local storage has valid JSON", () => { - const validJSON = '{"key":"value"}'; - (Storage.prototype.getItem as Mock).mockReturnValue(validJSON); - expect(getCachedConfig()).toEqual({ key: "value" }); - }); -}); diff --git a/frontend/src/api/open-hands.ts b/frontend/src/api/open-hands.ts index 58e1ddbb2d47..eee669b30ade 100644 --- a/frontend/src/api/open-hands.ts +++ b/frontend/src/api/open-hands.ts @@ -13,7 +13,7 @@ import { GetTrajectoryResponse, } from "./open-hands.types"; import { openHands } from "./open-hands-axios"; -import { ApiSettings } from "#/services/settings"; +import { ApiSettings } from "#/types/settings"; class OpenHands { /** diff --git a/frontend/src/components/features/sidebar/sidebar.tsx b/frontend/src/components/features/sidebar/sidebar.tsx index 044aa4846b49..2b39e66c269c 100644 --- a/frontend/src/components/features/sidebar/sidebar.tsx +++ b/frontend/src/components/features/sidebar/sidebar.tsx @@ -30,9 +30,7 @@ export function Sidebar() { const { data: config } = useConfig(); const { data: settings, isError: settingsError } = useSettings(); const { mutateAsync: logout } = useLogout(); - - const { saveUserSettings, isUpToDate: settingsAreUpToDate } = - useCurrentSettings(); + const { saveUserSettings } = useCurrentSettings(); const [accountSettingsModalOpen, setAccountSettingsModalOpen] = React.useState(false); @@ -63,8 +61,6 @@ export function Sidebar() { posthog.reset(); }; - const showSettingsModal = !settingsAreUpToDate || settingsModalIsOpen; - return ( <>