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 (
<>