From 604655ef5ba69f169a10e66ef9c7a74ecd84b166 Mon Sep 17 00:00:00 2001 From: Claude Date: Fri, 30 Jan 2026 11:29:05 +0000 Subject: [PATCH] refactor: remove unused compactModeKinds from app state The compactModeKinds feature was partially implemented but never used: - Settings dialog allowed configuration but the value was never consumed - REQ viewer uses --view flag for compact mode, not this state value Removed: - compactModeKinds from GrimoireState type and initial state - setCompactModeKinds logic function and state hook callback - Compact Events section from SettingsDialog (now shows placeholder) - compactModeKinds from AppearanceSettings in settings service - Migration now strips compactModeKinds if present instead of adding it https://claude.ai/code/session_01DiWUxiS5BAzU9mrKvCUuMW --- src/components/SettingsDialog.tsx | 89 +++---------------------------- src/core/logic.ts | 13 ----- src/core/state.ts | 9 ---- src/lib/migrations.ts | 12 ++--- src/services/settings.ts | 3 -- src/types/app.ts | 1 - 6 files changed, 10 insertions(+), 117 deletions(-) diff --git a/src/components/SettingsDialog.tsx b/src/components/SettingsDialog.tsx index 7224aa7..7bfa8e8 100644 --- a/src/components/SettingsDialog.tsx +++ b/src/components/SettingsDialog.tsx @@ -1,6 +1,3 @@ -import { useGrimoire } from "@/core/state"; -import { Button } from "@/components/ui/button"; -import { Badge } from "@/components/ui/badge"; import { Dialog, DialogContent, @@ -8,10 +5,7 @@ import { DialogHeader, DialogTitle, } from "@/components/ui/dialog"; -import { Tabs, TabsContent, TabsList, TabsTrigger } from "@/components/ui/tabs"; -import { X } from "lucide-react"; -import { KindSelector } from "./KindSelector"; -import { getKindName } from "@/constants/kinds"; +import { Settings } from "lucide-react"; interface SettingsDialogProps { open: boolean; @@ -22,90 +16,19 @@ export default function SettingsDialog({ open, onOpenChange, }: SettingsDialogProps) { - const { state, setCompactModeKinds } = useGrimoire(); - const compactKinds = state.compactModeKinds || []; - - const removeKind = (kindToRemove: number) => { - setCompactModeKinds(compactKinds.filter((k) => k !== kindToRemove)); - }; - - const addKind = (kind: number) => { - if (!compactKinds.includes(kind)) { - setCompactModeKinds([...compactKinds, kind].sort((a, b) => a - b)); - } - }; - return ( - - + + Settings Manage your workspace preferences. -
- -
- - - Appearance - - {/* Future tabs can be added here */} - -
- -
- - {/* Section: Compact Events */} -
-
-

Compact Events

-

- Select event kinds to display in a compact format within - timelines and feeds. -

-
- -
- -
- -
-
- {compactKinds.length === 0 && ( - - No compact kinds configured. - - )} - {compactKinds.map((kind) => ( - - - {kind} - - {getKindName(kind)} - - - ))} -
-
-
-
-
-
+
+ +

Settings coming soon.

diff --git a/src/core/logic.ts b/src/core/logic.ts index 83aff8f..29c14bc 100644 --- a/src/core/logic.ts +++ b/src/core/logic.ts @@ -551,19 +551,6 @@ export const reorderWorkspaces = ( }; }; -/** - * Updates the list of event kinds that should be displayed in compact mode. - */ -export const setCompactModeKinds = ( - state: GrimoireState, - kinds: number[], -): GrimoireState => { - return { - ...state, - compactModeKinds: kinds, - }; -}; - /** * Clears the currently active spellbook tracking. */ diff --git a/src/core/state.ts b/src/core/state.ts index 6775b1f..9feea0e 100644 --- a/src/core/state.ts +++ b/src/core/state.ts @@ -26,7 +26,6 @@ const initialState: GrimoireState = { insertionPosition: "second", autoPreset: undefined, }, - compactModeKinds: [6, 7, 16, 9735], workspaces: { default: { id: "default", @@ -326,13 +325,6 @@ export const useGrimoire = () => { [setState], ); - const setCompactModeKinds = useCallback( - (kinds: number[]) => { - setState((prev) => Logic.setCompactModeKinds(prev, kinds)); - }, - [setState], - ); - const loadSpellbook = useCallback( (spellbook: ParsedSpellbook) => { setState((prev) => SpellbookManager.loadSpellbook(prev, spellbook)); @@ -409,7 +401,6 @@ export const useGrimoire = () => { applyPresetLayout, updateWorkspaceLabel, reorderWorkspaces, - setCompactModeKinds, loadSpellbook, clearActiveSpellbook, switchToTemporary, diff --git a/src/lib/migrations.ts b/src/lib/migrations.ts index a8bdcee..283f917 100644 --- a/src/lib/migrations.ts +++ b/src/lib/migrations.ts @@ -105,12 +105,13 @@ const migrations: Record = { __version: 9, }; }, - // Migration from v9 to v10 - adds compactModeKinds + // Migration from v9 to v10 - version bump (compactModeKinds removed) 9: (state: any) => { + // Remove compactModeKinds if it exists (no longer used) + const { compactModeKinds: _, ...rest } = state; return { - ...state, + ...rest, __version: 10, - compactModeKinds: [6, 7, 16, 9735], }; }, }; @@ -142,11 +143,6 @@ export function validateState(state: any): state is GrimoireState { return false; } - // compactModeKinds must be an array if present - if (state.compactModeKinds && !Array.isArray(state.compactModeKinds)) { - return false; - } - // Windows must be an object if (typeof state.windows !== "object") { return false; diff --git a/src/services/settings.ts b/src/services/settings.ts index b0f45fa..56eceea 100644 --- a/src/services/settings.ts +++ b/src/services/settings.ts @@ -29,8 +29,6 @@ export interface AppearanceSettings { theme: "light" | "dark" | "system"; /** Show client tags in event UI */ showClientTags: boolean; - /** Event kinds to render in compact mode */ - compactModeKinds: number[]; /** Font size multiplier (0.8 = 80%, 1.0 = 100%, 1.2 = 120%) */ fontSizeMultiplier: number; /** Enable UI animations */ @@ -149,7 +147,6 @@ const DEFAULT_POST_SETTINGS: PostSettings = { const DEFAULT_APPEARANCE_SETTINGS: AppearanceSettings = { theme: "dark", showClientTags: true, - compactModeKinds: [6, 7, 16, 9735], // reactions, reposts, zaps fontSizeMultiplier: 1.0, animationsEnabled: true, accentHue: 280, // Purple diff --git a/src/types/app.ts b/src/types/app.ts index ff449c8..97ee235 100644 --- a/src/types/app.ts +++ b/src/types/app.ts @@ -119,7 +119,6 @@ export interface GrimoireState { relays?: RelayInfo[]; blossomServers?: string[]; }; - compactModeKinds?: number[]; locale?: { locale: string; language: string;