refactor(web): finding 9 - simplify useBuilderSidebar selector

Remove generic selector overload from useBuilderSidebar; callers
destructure the full return object instead of using a selector that
provides no meaningful benefit (state is rebuilt on every render).

Claude-Session: https://claude.ai/code/session_012Bnvt1MghwHj4qQRxuQUGa
This commit is contained in:
Amruth Pillai
2026-07-04 21:28:59 +02:00
parent 9b9d5c833c
commit 376977a9f7
5 changed files with 11 additions and 19 deletions
@@ -30,7 +30,7 @@ import {
DropdownMenuTrigger,
} from "@reactive-resume/ui/components/dropdown-menu";
import { useDialogStore } from "@/dialogs/store";
import { useCurrentResume, usePatchResume, useSaveStatus } from "@/features/resume/builder/draft";
import { useCurrentResume, usePatchResume, useResumeStore } from "@/features/resume/builder/draft";
import { useResumeExport } from "@/features/resume/export/use-resume-export";
import { useConfirm } from "@/hooks/use-confirm";
import { getResumeErrorMessage } from "@/libs/error-message";
@@ -43,7 +43,7 @@ export function BuilderHeader() {
const resume = useCurrentResume();
const name = resume.name;
const isLocked = resume.isLocked;
const toggleSidebar = useBuilderSidebar((state) => state.toggleSidebar);
const { toggleSidebar } = useBuilderSidebar();
// Equal-width flex-1 side groups keep the center title group truly centered regardless of the
// wider Download button on the right.
@@ -149,7 +149,7 @@ function ResumeDownloadButton() {
}
function SaveStatusIndicator() {
const status = useSaveStatus();
const status = useResumeStore((state) => state.saveStatus);
if (status === "idle") return null;
const { icon, label } = match(status)