From 34398a578b2d87b079731f046af6e27590e1b609 Mon Sep 17 00:00:00 2001 From: Amruth Pillai Date: Sat, 4 Jul 2026 21:29:32 +0200 Subject: [PATCH] refactor(web): finding 8 - inline 7 one-caller alias hooks from draft.ts useInitializeResumeStore, useMergeResumeMetadata, useSaveStatus, useCanUndo, useCanRedo, useUndoResume, useRedoResume each had exactly one caller. Inline useResumeStore selectors at call sites and remove the wrappers. Skipped usePatchResume (4 callers). Claude-Session: https://claude.ai/code/session_012Bnvt1MghwHj4qQRxuQUGa --- apps/web/src/features/resume/builder/draft.ts | 28 ------------------- .../builder/$resumeId/-components/dock.tsx | 17 ++++------- 2 files changed, 5 insertions(+), 40 deletions(-) diff --git a/apps/web/src/features/resume/builder/draft.ts b/apps/web/src/features/resume/builder/draft.ts index 29bcd28f5..e1911b161 100644 --- a/apps/web/src/features/resume/builder/draft.ts +++ b/apps/web/src/features/resume/builder/draft.ts @@ -516,18 +516,10 @@ export const usePreviewPausedStore = create()((set) => ({ setPaused: (paused) => set({ paused }), })); -export function useInitializeResumeStore() { - return useResumeStore((state) => state.initialize); -} - function useResetResumeStore() { return useResumeStore((state) => state.reset); } -export function useMergeResumeMetadata() { - return useResumeStore((state) => state.mergeResumeMetadata); -} - export function usePatchResume() { return useResumeStore((state) => state.patchResume); } @@ -566,26 +558,6 @@ export function useIsResumeLocked(): boolean { return useBuilderResumeSelector((resume) => resume.isLocked) ?? false; } -export function useSaveStatus(): SaveStatus { - return useResumeStore((state) => state.saveStatus); -} - -export function useCanUndo(): boolean { - return useResumeStore((state) => state.canUndo); -} - -export function useCanRedo(): boolean { - return useResumeStore((state) => state.canRedo); -} - -export function useUndoResume() { - return useResumeStore((state) => state.undo); -} - -export function useRedoResume() { - return useResumeStore((state) => state.redo); -} - export function useUpdateResumeData() { const queryClient = useQueryClient(); const params = useParams({ strict: false }) as { resumeId?: string }; diff --git a/apps/web/src/routes/builder/$resumeId/-components/dock.tsx b/apps/web/src/routes/builder/$resumeId/-components/dock.tsx index b12edbb29..fe9539ffe 100644 --- a/apps/web/src/routes/builder/$resumeId/-components/dock.tsx +++ b/apps/web/src/routes/builder/$resumeId/-components/dock.tsx @@ -28,14 +28,7 @@ import { } from "@reactive-resume/ui/components/dropdown-menu"; import { Tooltip, TooltipContent, TooltipTrigger } from "@reactive-resume/ui/components/tooltip"; import { cn } from "@reactive-resume/utils/style"; -import { - isEditableElementFocused, - useCanRedo, - useCanUndo, - useCurrentResume, - useRedoResume, - useUndoResume, -} from "@/features/resume/builder/draft"; +import { isEditableElementFocused, useCurrentResume, useResumeStore } from "@/features/resume/builder/draft"; import { authClient } from "@/libs/auth/client"; type BuilderDockProps = { @@ -51,10 +44,10 @@ export function BuilderDock({ pageLayout, onTogglePageLayout }: BuilderDockProps const [_, copyToClipboard] = useCopyToClipboard(); const { zoomIn, zoomOut, resetTransform } = useControls(); - const canUndo = useCanUndo(); - const canRedo = useCanRedo(); - const undo = useUndoResume(); - const redo = useRedoResume(); + const canUndo = useResumeStore((state) => state.canUndo); + const canRedo = useResumeStore((state) => state.canRedo); + const undo = useResumeStore((state) => state.undo); + const redo = useResumeStore((state) => state.redo); useHotkey("Mod+0", () => resetTransform()); // App-level undo/redo of resume state, scoped to the builder. Mod maps to Cmd (mac) / Ctrl (win/linux).