chore: remove unused dependencies and update locale references in resume components

This commit is contained in:
Amruth Pillai
2026-05-08 13:01:18 +02:00
parent 7c08007a9d
commit d9e3289f69
108 changed files with 223 additions and 358 deletions
@@ -2,13 +2,11 @@ import type { ResumeData } from "@reactive-resume/schema/resume/data";
import type { QueryClient, QueryKey } from "@tanstack/react-query";
import type { WritableDraft } from "immer";
import { t } from "@lingui/core/macro";
import { useQuery, useQueryClient } from "@tanstack/react-query";
import { useQueryClient } from "@tanstack/react-query";
import { useParams } from "@tanstack/react-router";
import { debounce } from "es-toolkit";
import isDeepEqual from "fast-deep-equal";
import { useCallback, useEffect } from "react";
import { toast } from "sonner";
import { temporal } from "zundo";
import { immer } from "zustand/middleware/immer";
import { create } from "zustand/react";
import { orpc } from "@/libs/orpc/client";
@@ -40,8 +38,6 @@ type ResumeStoreActions = {
type ResumeStore = ResumeStoreState & ResumeStoreActions;
type PartializedState = { data: ResumeData | null };
type Runtime = {
abortController: AbortController;
queryClient?: QueryClient;
@@ -50,8 +46,6 @@ type Runtime = {
beforeUnloadHandler?: () => void;
};
const HISTORY_LIMIT = 100;
const GROUPED_HISTORY_MS = 250;
const SAVE_DEBOUNCE_MS = 500;
const runtimes = new Map<string, Runtime>();
@@ -141,81 +135,66 @@ function syncCurrentResume(id: string) {
}
export const useResumeStore = create<ResumeStore>()(
temporal(
immer((set, get) => ({
resume: null,
resumeId: undefined,
isReady: false,
immer((set, get) => ({
resume: null,
resumeId: undefined,
isReady: false,
initialize: (resume) => {
set((state) => {
state.resume = resume;
state.resumeId = resume?.id;
state.isReady = resume !== null;
});
useResumeStore.temporal.getState().clear();
},
reset: () => {
set((state) => {
state.resume = null;
state.resumeId = undefined;
state.isReady = false;
});
useResumeStore.temporal.getState().clear();
},
patchResume: (fn) => {
set((state) => {
if (!state.resume) return;
fn(state.resume as WritableDraft<Resume>);
});
},
mergeResumeMetadata: (resume) => {
set((state) => {
if (!state.resume || state.resume.id !== resume.id) return;
state.resume.name = resume.name;
state.resume.slug = resume.slug;
state.resume.tags = resume.tags;
state.resume.isLocked = resume.isLocked;
state.resume.hasPassword = resume.hasPassword;
state.resume.isPublic = resume.isPublic;
});
},
updateResumeData: (fn) => {
const currentResume = get().resume;
if (!currentResume) return;
if (currentResume.isLocked) {
lockedToastId = toast.error(t`This resume is locked and cannot be updated.`, {
id: lockedToastId,
});
return;
}
set((state) => {
if (!state.resume) return;
fn(state.resume.data as WritableDraft<ResumeData>);
});
syncCurrentResume(currentResume.id);
},
})),
{
partialize: (state): PartializedState => ({ data: state.resume?.data ?? null }),
equality: (pastState, currentState) => isDeepEqual(pastState, currentState),
limit: HISTORY_LIMIT,
handleSet: (handleSet) =>
debounce((state: Parameters<typeof handleSet>[0], replace?: Parameters<typeof handleSet>[1]) => {
handleSet(state as never, replace as never);
}, GROUPED_HISTORY_MS) as typeof handleSet,
initialize: (resume) => {
set((state) => {
state.resume = resume;
state.resumeId = resume?.id;
state.isReady = resume !== null;
});
},
),
reset: () => {
set((state) => {
state.resume = null;
state.resumeId = undefined;
state.isReady = false;
});
},
patchResume: (fn) => {
set((state) => {
if (!state.resume) return;
fn(state.resume as WritableDraft<Resume>);
});
},
mergeResumeMetadata: (resume) => {
set((state) => {
if (!state.resume || state.resume.id !== resume.id) return;
state.resume.name = resume.name;
state.resume.slug = resume.slug;
state.resume.tags = resume.tags;
state.resume.isLocked = resume.isLocked;
state.resume.hasPassword = resume.hasPassword;
state.resume.isPublic = resume.isPublic;
});
},
updateResumeData: (fn) => {
const currentResume = get().resume;
if (!currentResume) return;
if (currentResume.isLocked) {
lockedToastId = toast.error(t`This resume is locked and cannot be updated.`, {
id: lockedToastId,
});
return;
}
set((state) => {
if (!state.resume) return;
fn(state.resume.data as WritableDraft<ResumeData>);
});
syncCurrentResume(currentResume.id);
},
})),
);
export function useInitializeResumeStore() {
@@ -250,36 +229,8 @@ export function useCurrentBuilderResumeSelector<T>(selector: (resume: Resume) =>
return selected;
}
/**
* Reads the resume from the builder store when editing, and from query cache
* for non-builder/public routes.
*/
export function useResume(): Resume | undefined {
const params = useParams({ strict: false }) as {
resumeId?: string;
username?: string;
slug?: string;
};
const builderResume = useResumeStore((state) => {
if (!params.resumeId || !state.resume || state.resume.id !== params.resumeId) return undefined;
return state.resume;
});
const byIdQuery = useQuery({
...orpc.resume.getById.queryOptions({ input: { id: params.resumeId ?? "" } }),
enabled: !!params.resumeId,
});
const bySlugQuery = useQuery({
...orpc.resume.getBySlug.queryOptions({
input: { username: params.username ?? "", slug: params.slug ?? "" },
}),
enabled: !!(!params.resumeId && params.username && params.slug),
});
if (params.resumeId) return builderResume ?? (byIdQuery.data as Resume | undefined);
return bySlugQuery.data as Resume | undefined;
return useBuilderResumeSelector((resume) => resume);
}
export function useCurrentResume(): Resume {
@@ -289,23 +240,7 @@ export function useCurrentResume(): Resume {
}
export function useResumeData(): ResumeData | undefined {
const params = useParams({ strict: false }) as { resumeId?: string; username?: string; slug?: string };
const builderData = useBuilderResumeSelector((resume) => resume.data);
const byIdQuery = useQuery({
...orpc.resume.getById.queryOptions({ input: { id: params.resumeId ?? "" } }),
enabled: !!params.resumeId,
});
const bySlugQuery = useQuery({
...orpc.resume.getBySlug.queryOptions({
input: { username: params.username ?? "", slug: params.slug ?? "" },
}),
enabled: !!(!params.resumeId && params.username && params.slug),
});
if (params.resumeId) return builderData ?? (byIdQuery.data as Resume | undefined)?.data;
return (bySlugQuery.data as Resume | undefined)?.data;
return useBuilderResumeSelector((resume) => resume.data);
}
export function useUpdateResumeData() {
@@ -4,9 +4,9 @@ import { AnimatePresence, motion } from "motion/react";
import { useEffect, useRef, useState } from "react";
import { cn } from "@reactive-resume/utils/style";
import { useLocalizedResumeDocument } from "@/libs/resume/pdf-document";
import { useResumeData } from "./builder-resume-draft";
import { PdfCanvasDocument, PdfCanvasPage } from "./pdf-canvas";
import { ResumePreviewLoader } from "./preview.shared";
import { useResumeData } from "./use-resume";
type PreviewPdf = {
file: Blob;
+1 -1
View File
@@ -34,7 +34,7 @@ import {
} from "@reactive-resume/ui/components/input-group";
import { generateId, generateRandomName, slugify } from "@reactive-resume/utils/string";
import { ChipInput } from "@/components/input/chip-input";
import { usePatchResume } from "@/components/resume/use-resume";
import { usePatchResume } from "@/components/resume/builder-resume-draft";
import { useFormBlocker } from "@/hooks/use-form-blocker";
import { authClient } from "@/libs/auth/client";
import { getResumeErrorMessage } from "@/libs/error-message";
@@ -17,7 +17,7 @@ import { Input } from "@reactive-resume/ui/components/input";
import { Switch } from "@reactive-resume/ui/components/switch";
import { RichInput } from "@/components/input/rich-input";
import { URLInput } from "@/components/input/url-input";
import { useUpdateResumeData } from "@/components/resume/use-resume";
import { useUpdateResumeData } from "@/components/resume/builder-resume-draft";
import { useDialogStore } from "@/dialogs/store";
import { useFormBlocker } from "@/hooks/use-form-blocker";
import { makeSectionItem } from "@/libs/resume/make-section-item";
@@ -16,7 +16,7 @@ import { FormControl, FormItem, FormLabel, FormMessage } from "@reactive-resume/
import { Switch } from "@reactive-resume/ui/components/switch";
import { RichInput } from "@/components/input/rich-input";
import { URLInput } from "@/components/input/url-input";
import { useUpdateResumeData } from "@/components/resume/use-resume";
import { useUpdateResumeData } from "@/components/resume/builder-resume-draft";
import { useDialogStore } from "@/dialogs/store";
import { useFormBlocker } from "@/hooks/use-form-blocker";
import { makeSectionItem } from "@/libs/resume/make-section-item";
@@ -14,7 +14,7 @@ import {
} from "@reactive-resume/ui/components/dialog";
import { FormControl, FormItem, FormLabel, FormMessage } from "@reactive-resume/ui/components/form";
import { RichInput } from "@/components/input/rich-input";
import { useUpdateResumeData } from "@/components/resume/use-resume";
import { useUpdateResumeData } from "@/components/resume/builder-resume-draft";
import { useDialogStore } from "@/dialogs/store";
import { useFormBlocker } from "@/hooks/use-form-blocker";
import { makeSectionItem } from "@/libs/resume/make-section-item";
@@ -19,7 +19,7 @@ import {
import { FormControl, FormItem, FormLabel, FormMessage } from "@reactive-resume/ui/components/form";
import { Input } from "@reactive-resume/ui/components/input";
import { generateId } from "@reactive-resume/utils/string";
import { useUpdateResumeData } from "@/components/resume/use-resume";
import { useUpdateResumeData } from "@/components/resume/builder-resume-draft";
import { Combobox } from "@/components/ui/combobox";
import { useDialogStore } from "@/dialogs/store";
import { useFormBlocker } from "@/hooks/use-form-blocker";
@@ -16,7 +16,7 @@ import { FormControl, FormItem, FormLabel, FormMessage } from "@reactive-resume/
import { Switch } from "@reactive-resume/ui/components/switch";
import { RichInput } from "@/components/input/rich-input";
import { URLInput } from "@/components/input/url-input";
import { useUpdateResumeData } from "@/components/resume/use-resume";
import { useUpdateResumeData } from "@/components/resume/builder-resume-draft";
import { useDialogStore } from "@/dialogs/store";
import { useFormBlocker } from "@/hooks/use-form-blocker";
import { makeSectionItem } from "@/libs/resume/make-section-item";
@@ -20,7 +20,7 @@ import { Switch } from "@reactive-resume/ui/components/switch";
import { generateId } from "@reactive-resume/utils/string";
import { RichInput } from "@/components/input/rich-input";
import { URLInput } from "@/components/input/url-input";
import { useUpdateResumeData } from "@/components/resume/use-resume";
import { useUpdateResumeData } from "@/components/resume/builder-resume-draft";
import { useDialogStore } from "@/dialogs/store";
import { useFormBlocker } from "@/hooks/use-form-blocker";
import { makeSectionItem } from "@/libs/resume/make-section-item";
@@ -19,7 +19,7 @@ import { cn } from "@reactive-resume/utils/style";
import { ChipInput } from "@/components/input/chip-input";
import { ColorPicker } from "@/components/input/color-picker";
import { IconPicker } from "@/components/input/icon-picker";
import { useUpdateResumeData } from "@/components/resume/use-resume";
import { useUpdateResumeData } from "@/components/resume/builder-resume-draft";
import { useDialogStore } from "@/dialogs/store";
import { useFormBlocker } from "@/hooks/use-form-blocker";
import { makeSectionItem } from "@/libs/resume/make-section-item";
@@ -15,7 +15,7 @@ import {
} from "@reactive-resume/ui/components/dialog";
import { FormControl, FormDescription, FormItem, FormLabel, FormMessage } from "@reactive-resume/ui/components/form";
import { Slider } from "@reactive-resume/ui/components/slider";
import { useUpdateResumeData } from "@/components/resume/use-resume";
import { useUpdateResumeData } from "@/components/resume/builder-resume-draft";
import { useDialogStore } from "@/dialogs/store";
import { useFormBlocker } from "@/hooks/use-form-blocker";
import { makeSectionItem } from "@/libs/resume/make-section-item";
@@ -26,7 +26,7 @@ import { cn } from "@reactive-resume/utils/style";
import { ColorPicker } from "@/components/input/color-picker";
import { IconPicker } from "@/components/input/icon-picker";
import { URLInput } from "@/components/input/url-input";
import { useUpdateResumeData } from "@/components/resume/use-resume";
import { useUpdateResumeData } from "@/components/resume/builder-resume-draft";
import { useDialogStore } from "@/dialogs/store";
import { useFormBlocker } from "@/hooks/use-form-blocker";
import { makeSectionItem } from "@/libs/resume/make-section-item";
@@ -16,7 +16,7 @@ import { FormControl, FormItem, FormLabel, FormMessage } from "@reactive-resume/
import { Switch } from "@reactive-resume/ui/components/switch";
import { RichInput } from "@/components/input/rich-input";
import { URLInput } from "@/components/input/url-input";
import { useUpdateResumeData } from "@/components/resume/use-resume";
import { useUpdateResumeData } from "@/components/resume/builder-resume-draft";
import { useDialogStore } from "@/dialogs/store";
import { useFormBlocker } from "@/hooks/use-form-blocker";
import { makeSectionItem } from "@/libs/resume/make-section-item";
@@ -16,7 +16,7 @@ import { FormControl, FormItem, FormLabel, FormMessage } from "@reactive-resume/
import { Switch } from "@reactive-resume/ui/components/switch";
import { RichInput } from "@/components/input/rich-input";
import { URLInput } from "@/components/input/url-input";
import { useUpdateResumeData } from "@/components/resume/use-resume";
import { useUpdateResumeData } from "@/components/resume/builder-resume-draft";
import { useDialogStore } from "@/dialogs/store";
import { useFormBlocker } from "@/hooks/use-form-blocker";
import { makeSectionItem } from "@/libs/resume/make-section-item";
@@ -16,7 +16,7 @@ import { FormControl, FormItem, FormLabel, FormMessage } from "@reactive-resume/
import { Switch } from "@reactive-resume/ui/components/switch";
import { RichInput } from "@/components/input/rich-input";
import { URLInput } from "@/components/input/url-input";
import { useUpdateResumeData } from "@/components/resume/use-resume";
import { useUpdateResumeData } from "@/components/resume/builder-resume-draft";
import { useDialogStore } from "@/dialogs/store";
import { useFormBlocker } from "@/hooks/use-form-blocker";
import { makeSectionItem } from "@/libs/resume/make-section-item";
@@ -21,7 +21,7 @@ import { cn } from "@reactive-resume/utils/style";
import { ChipInput } from "@/components/input/chip-input";
import { ColorPicker } from "@/components/input/color-picker";
import { IconPicker } from "@/components/input/icon-picker";
import { useUpdateResumeData } from "@/components/resume/use-resume";
import { useUpdateResumeData } from "@/components/resume/builder-resume-draft";
import { useDialogStore } from "@/dialogs/store";
import { useFormBlocker } from "@/hooks/use-form-blocker";
import { makeSectionItem } from "@/libs/resume/make-section-item";
@@ -14,7 +14,7 @@ import {
} from "@reactive-resume/ui/components/dialog";
import { FormControl, FormItem, FormLabel, FormMessage } from "@reactive-resume/ui/components/form";
import { RichInput } from "@/components/input/rich-input";
import { useUpdateResumeData } from "@/components/resume/use-resume";
import { useUpdateResumeData } from "@/components/resume/builder-resume-draft";
import { useDialogStore } from "@/dialogs/store";
import { useFormBlocker } from "@/hooks/use-form-blocker";
import { makeSectionItem } from "@/libs/resume/make-section-item";
@@ -16,7 +16,7 @@ import { FormControl, FormItem, FormLabel, FormMessage } from "@reactive-resume/
import { Switch } from "@reactive-resume/ui/components/switch";
import { RichInput } from "@/components/input/rich-input";
import { URLInput } from "@/components/input/url-input";
import { useUpdateResumeData } from "@/components/resume/use-resume";
import { useUpdateResumeData } from "@/components/resume/builder-resume-draft";
import { useDialogStore } from "@/dialogs/store";
import { useFormBlocker } from "@/hooks/use-form-blocker";
import { makeSectionItem } from "@/libs/resume/make-section-item";
@@ -10,14 +10,14 @@ import { HoverCard, HoverCardContent, HoverCardTrigger } from "@reactive-resume/
import { ScrollArea } from "@reactive-resume/ui/components/scroll-area";
import { cn } from "@reactive-resume/utils/style";
import { CometCard } from "@/components/animation/comet-card";
import { useResume, useUpdateResumeData } from "@/components/resume/use-resume";
import { useCurrentResume, useUpdateResumeData } from "@/components/resume/builder-resume-draft";
import { useDialogStore } from "@/dialogs/store";
import { templates } from "./data";
export function TemplateGalleryDialog(_: DialogProps<"resume.template.gallery">) {
const closeDialog = useDialogStore((state) => state.closeDialog);
const resume = useResume();
const selectedTemplate = resume?.data.metadata.template;
const resume = useCurrentResume();
const selectedTemplate = resume.data.metadata.template;
const updateResumeData = useUpdateResumeData();
function onSelectTemplate(template: Template) {
@@ -23,7 +23,7 @@ import { Tooltip, TooltipContent, TooltipTrigger } from "@reactive-resume/ui/com
import { downloadWithAnchor, generateFilename } from "@reactive-resume/utils/file";
import { buildDocx } from "@reactive-resume/utils/resume/docx";
import { cn } from "@reactive-resume/utils/style";
import { useCurrentResume } from "@/components/resume/use-resume";
import { useCurrentResume } from "@/components/resume/builder-resume-draft";
import { authClient } from "@/libs/auth/client";
import { createResumePdfBlob } from "@/libs/resume/pdf-document";
@@ -21,7 +21,7 @@ import {
DropdownMenuSeparator,
DropdownMenuTrigger,
} from "@reactive-resume/ui/components/dropdown-menu";
import { useCurrentResume, usePatchResume } from "@/components/resume/use-resume";
import { useCurrentResume, usePatchResume } from "@/components/resume/builder-resume-draft";
import { useDialogStore } from "@/dialogs/store";
import { useConfirm } from "@/hooks/use-confirm";
import { getResumeErrorMessage } from "@/libs/error-message";
@@ -3,7 +3,7 @@ import type z from "zod";
import { Trans } from "@lingui/react/macro";
import { AnimatePresence, Reorder } from "motion/react";
import { cn } from "@reactive-resume/utils/style";
import { useCurrentResume, useUpdateResumeData } from "@/components/resume/use-resume";
import { useCurrentResume, useUpdateResumeData } from "@/components/resume/builder-resume-draft";
import { SectionBase } from "../shared/section-base";
import { SectionAddItemButton, SectionItem } from "../shared/section-item";
@@ -4,7 +4,7 @@ import { basicsSchema } from "@reactive-resume/schema/resume/data";
import { FormControl, FormItem, FormLabel, FormMessage } from "@reactive-resume/ui/components/form";
import { Input } from "@reactive-resume/ui/components/input";
import { URLInput } from "@/components/input/url-input";
import { useCurrentBuilderResumeSelector, useUpdateResumeData } from "@/components/resume/use-resume";
import { useCurrentBuilderResumeSelector, useUpdateResumeData } from "@/components/resume/builder-resume-draft";
import { useAppForm } from "@/libs/tanstack-form";
import { SectionBase } from "../shared/section-base";
import { CustomFieldsSection } from "./custom-fields";
@@ -3,7 +3,7 @@ import type z from "zod";
import { Trans } from "@lingui/react/macro";
import { AnimatePresence, Reorder } from "motion/react";
import { cn } from "@reactive-resume/utils/style";
import { useCurrentResume, useUpdateResumeData } from "@/components/resume/use-resume";
import { useCurrentResume, useUpdateResumeData } from "@/components/resume/builder-resume-draft";
import { SectionBase } from "../shared/section-base";
import { SectionAddItemButton, SectionItem } from "../shared/section-item";
@@ -32,7 +32,7 @@ import {
} from "@reactive-resume/ui/components/dropdown-menu";
import { stripHtml } from "@reactive-resume/utils/string";
import { cn } from "@reactive-resume/utils/style";
import { useCurrentResume, useUpdateResumeData } from "@/components/resume/use-resume";
import { useCurrentResume, useUpdateResumeData } from "@/components/resume/builder-resume-draft";
import { useDialogStore } from "@/dialogs/store";
import { useConfirm } from "@/hooks/use-confirm";
import { getSectionTitle } from "@/libs/resume/section";
@@ -3,7 +3,7 @@ import type z from "zod";
import { Trans } from "@lingui/react/macro";
import { AnimatePresence, Reorder } from "motion/react";
import { cn } from "@reactive-resume/utils/style";
import { useCurrentResume, useUpdateResumeData } from "@/components/resume/use-resume";
import { useCurrentResume, useUpdateResumeData } from "@/components/resume/builder-resume-draft";
import { SectionBase } from "../shared/section-base";
import { SectionAddItemButton, SectionItem } from "../shared/section-item";
@@ -4,7 +4,7 @@ import { plural } from "@lingui/core/macro";
import { Trans } from "@lingui/react/macro";
import { AnimatePresence, Reorder } from "motion/react";
import { cn } from "@reactive-resume/utils/style";
import { useCurrentResume, useUpdateResumeData } from "@/components/resume/use-resume";
import { useCurrentResume, useUpdateResumeData } from "@/components/resume/builder-resume-draft";
import { SectionBase } from "../shared/section-base";
import { SectionAddItemButton, SectionItem } from "../shared/section-item";
@@ -3,7 +3,7 @@ import type z from "zod";
import { Trans } from "@lingui/react/macro";
import { AnimatePresence, Reorder } from "motion/react";
import { cn } from "@reactive-resume/utils/style";
import { useCurrentResume, useUpdateResumeData } from "@/components/resume/use-resume";
import { useCurrentResume, useUpdateResumeData } from "@/components/resume/builder-resume-draft";
import { SectionBase } from "../shared/section-base";
import { SectionAddItemButton, SectionItem } from "../shared/section-item";
@@ -3,7 +3,7 @@ import type z from "zod";
import { Trans } from "@lingui/react/macro";
import { AnimatePresence, Reorder } from "motion/react";
import { cn } from "@reactive-resume/utils/style";
import { useCurrentResume, useUpdateResumeData } from "@/components/resume/use-resume";
import { useCurrentResume, useUpdateResumeData } from "@/components/resume/builder-resume-draft";
import { SectionBase } from "../shared/section-base";
import { SectionAddItemButton, SectionItem } from "../shared/section-item";
@@ -17,7 +17,7 @@ import {
InputGroupText,
} from "@reactive-resume/ui/components/input-group";
import { ColorPicker } from "@/components/input/color-picker";
import { useCurrentResume, useUpdateResumeData } from "@/components/resume/use-resume";
import { useCurrentResume, useUpdateResumeData } from "@/components/resume/builder-resume-draft";
import { getReadableErrorMessage } from "@/libs/error-message";
import { orpc } from "@/libs/orpc/client";
import { useAppForm } from "@/libs/tanstack-form";
@@ -3,7 +3,7 @@ import type z from "zod";
import { Trans } from "@lingui/react/macro";
import { AnimatePresence, Reorder } from "motion/react";
import { cn } from "@reactive-resume/utils/style";
import { useCurrentResume, useUpdateResumeData } from "@/components/resume/use-resume";
import { useCurrentResume, useUpdateResumeData } from "@/components/resume/builder-resume-draft";
import { SectionBase } from "../shared/section-base";
import { SectionAddItemButton, SectionItem } from "../shared/section-item";
@@ -3,7 +3,7 @@ import type z from "zod";
import { Trans } from "@lingui/react/macro";
import { AnimatePresence, Reorder } from "motion/react";
import { cn } from "@reactive-resume/utils/style";
import { useCurrentResume, useUpdateResumeData } from "@/components/resume/use-resume";
import { useCurrentResume, useUpdateResumeData } from "@/components/resume/builder-resume-draft";
import { SectionBase } from "../shared/section-base";
import { SectionAddItemButton, SectionItem } from "../shared/section-item";
@@ -3,7 +3,7 @@ import type z from "zod";
import { Trans } from "@lingui/react/macro";
import { AnimatePresence, Reorder } from "motion/react";
import { cn } from "@reactive-resume/utils/style";
import { useCurrentResume, useUpdateResumeData } from "@/components/resume/use-resume";
import { useCurrentResume, useUpdateResumeData } from "@/components/resume/builder-resume-draft";
import { SectionBase } from "../shared/section-base";
import { SectionAddItemButton, SectionItem } from "../shared/section-item";
@@ -3,7 +3,7 @@ import type z from "zod";
import { Trans } from "@lingui/react/macro";
import { AnimatePresence, Reorder } from "motion/react";
import { cn } from "@reactive-resume/utils/style";
import { useCurrentResume, useUpdateResumeData } from "@/components/resume/use-resume";
import { useCurrentResume, useUpdateResumeData } from "@/components/resume/builder-resume-draft";
import { SectionBase } from "../shared/section-base";
import { SectionAddItemButton, SectionItem } from "../shared/section-item";
@@ -3,7 +3,7 @@ import type z from "zod";
import { Trans } from "@lingui/react/macro";
import { AnimatePresence, Reorder } from "motion/react";
import { cn } from "@reactive-resume/utils/style";
import { useCurrentResume, useUpdateResumeData } from "@/components/resume/use-resume";
import { useCurrentResume, useUpdateResumeData } from "@/components/resume/builder-resume-draft";
import { SectionBase } from "../shared/section-base";
import { SectionAddItemButton, SectionItem } from "../shared/section-item";
@@ -1,5 +1,5 @@
import { RichInput } from "@/components/input/rich-input";
import { useCurrentResume, useUpdateResumeData } from "@/components/resume/use-resume";
import { useCurrentResume, useUpdateResumeData } from "@/components/resume/builder-resume-draft";
import { SectionBase } from "../shared/section-base";
export function SummarySectionBuilder() {
@@ -3,7 +3,7 @@ import type z from "zod";
import { Trans } from "@lingui/react/macro";
import { AnimatePresence, Reorder } from "motion/react";
import { cn } from "@reactive-resume/utils/style";
import { useCurrentResume, useUpdateResumeData } from "@/components/resume/use-resume";
import { useCurrentResume, useUpdateResumeData } from "@/components/resume/builder-resume-draft";
import { SectionBase } from "../shared/section-base";
import { SectionAddItemButton, SectionItem } from "../shared/section-item";
@@ -4,7 +4,7 @@ import { CaretDownIcon } from "@phosphor-icons/react";
import { Accordion, AccordionContent, AccordionItem, AccordionTrigger } from "@reactive-resume/ui/components/accordion";
import { Button } from "@reactive-resume/ui/components/button";
import { cn } from "@reactive-resume/utils/style";
import { useCurrentResume } from "@/components/resume/use-resume";
import { useCurrentResume } from "@/components/resume/builder-resume-draft";
import { getSectionIcon, getSectionTitle } from "@/libs/resume/section";
import { useSectionStore } from "../../../-store/section";
import { SectionDropdownMenu } from "./section-menu";
@@ -36,7 +36,7 @@ import {
DropdownMenuTrigger,
} from "@reactive-resume/ui/components/dropdown-menu";
import { cn } from "@reactive-resume/utils/style";
import { useCurrentResume, useUpdateResumeData } from "@/components/resume/use-resume";
import { useCurrentResume, useUpdateResumeData } from "@/components/resume/builder-resume-draft";
import { useDialogStore } from "@/dialogs/store";
import { useConfirm } from "@/hooks/use-confirm";
import {
@@ -24,7 +24,7 @@ import {
DropdownMenuSubTrigger,
DropdownMenuTrigger,
} from "@reactive-resume/ui/components/dropdown-menu";
import { useCurrentResume, useUpdateResumeData } from "@/components/resume/use-resume";
import { useCurrentResume, useUpdateResumeData } from "@/components/resume/builder-resume-draft";
import { useDialogStore } from "@/dialogs/store";
import { useConfirm } from "@/hooks/use-confirm";
import { usePrompt } from "@/hooks/use-prompt";
@@ -11,7 +11,7 @@ import { ColorPicker } from "@/components/input/color-picker";
import { IconPicker } from "@/components/input/icon-picker";
import { LevelTypeCombobox } from "@/components/level/combobox";
import { LevelDisplay } from "@/components/level/display";
import { useCurrentResume, useUpdateResumeData } from "@/components/resume/use-resume";
import { useCurrentResume, useUpdateResumeData } from "@/components/resume/builder-resume-draft";
import { useAppForm } from "@/libs/tanstack-form";
import { SectionBase } from "../shared/section-base";
@@ -6,7 +6,7 @@ import { toast } from "sonner";
import { Button } from "@reactive-resume/ui/components/button";
import { downloadWithAnchor, generateFilename } from "@reactive-resume/utils/file";
import { buildDocx } from "@reactive-resume/utils/resume/docx";
import { useResume } from "@/components/resume/use-resume";
import { useResume } from "@/components/resume/builder-resume-draft";
import { createResumePdfBlob } from "@/libs/resume/pdf-document";
import { SectionBase } from "../shared/section-base";
@@ -9,7 +9,7 @@ import {
InputGroupText,
} from "@reactive-resume/ui/components/input-group";
import { Slider } from "@reactive-resume/ui/components/slider";
import { useCurrentResume, useUpdateResumeData } from "@/components/resume/use-resume";
import { useCurrentResume, useUpdateResumeData } from "@/components/resume/builder-resume-draft";
import { useAppForm } from "@/libs/tanstack-form";
import { SectionBase } from "../../shared/section-base";
import { LayoutPages } from "./pages";
@@ -20,7 +20,7 @@ import { match } from "ts-pattern";
import { Button } from "@reactive-resume/ui/components/button";
import { Switch } from "@reactive-resume/ui/components/switch";
import { cn } from "@reactive-resume/utils/style";
import { useCurrentResume, useUpdateResumeData } from "@/components/resume/use-resume";
import { useCurrentResume, useUpdateResumeData } from "@/components/resume/builder-resume-draft";
import { templates } from "@/dialogs/resume/template/data";
import { getSectionTitle } from "@/libs/resume/section";
@@ -1,6 +1,6 @@
import { Trans } from "@lingui/react/macro";
import { RichInput } from "@/components/input/rich-input";
import { useCurrentResume, useUpdateResumeData } from "@/components/resume/use-resume";
import { useCurrentResume, useUpdateResumeData } from "@/components/resume/builder-resume-draft";
import { SectionBase } from "../shared/section-base";
export function NotesSectionBuilder() {
@@ -11,7 +11,7 @@ import {
} from "@reactive-resume/ui/components/input-group";
import { Switch } from "@reactive-resume/ui/components/switch";
import { getLocaleOptions } from "@/components/locale/combobox";
import { useResume, useUpdateResumeData } from "@/components/resume/use-resume";
import { useResume, useUpdateResumeData } from "@/components/resume/builder-resume-draft";
import { Combobox } from "@/components/ui/combobox";
import { useAppForm } from "@/libs/tanstack-form";
import { SectionBase } from "../shared/section-base";
@@ -10,7 +10,7 @@ import { useAIStore } from "@reactive-resume/ai/store";
import { Alert, AlertDescription } from "@reactive-resume/ui/components/alert";
import { Badge } from "@reactive-resume/ui/components/badge";
import { Button } from "@reactive-resume/ui/components/button";
import { useResume } from "@/components/resume/use-resume";
import { useResume } from "@/components/resume/builder-resume-draft";
import { getOrpcErrorMessage } from "@/libs/error-message";
import { orpc } from "@/libs/orpc/client";
import { SectionBase } from "../shared/section-base";
@@ -10,7 +10,7 @@ import { Button } from "@reactive-resume/ui/components/button";
import { Input } from "@reactive-resume/ui/components/input";
import { Label } from "@reactive-resume/ui/components/label";
import { Switch } from "@reactive-resume/ui/components/switch";
import { useCurrentResume, usePatchResume } from "@/components/resume/use-resume";
import { useCurrentResume, usePatchResume } from "@/components/resume/builder-resume-draft";
import { useConfirm } from "@/hooks/use-confirm";
import { usePrompt } from "@/hooks/use-prompt";
import { authClient } from "@/libs/auth/client";
@@ -2,7 +2,7 @@ import { useLingui } from "@lingui/react";
import { SwapIcon } from "@phosphor-icons/react";
import { Badge } from "@reactive-resume/ui/components/badge";
import { Button } from "@reactive-resume/ui/components/button";
import { useCurrentResume } from "@/components/resume/use-resume";
import { useCurrentResume } from "@/components/resume/builder-resume-draft";
import { templates } from "@/dialogs/resume/template/data";
import { useDialogStore } from "@/dialogs/store";
import { SectionBase } from "../shared/section-base";
@@ -10,7 +10,7 @@ import {
InputGroupText,
} from "@reactive-resume/ui/components/input-group";
import { Separator } from "@reactive-resume/ui/components/separator";
import { useResume, useUpdateResumeData } from "@/components/resume/use-resume";
import { useResume, useUpdateResumeData } from "@/components/resume/builder-resume-draft";
import { FontFamilyCombobox, FontWeightCombobox, getNextWeights } from "@/components/typography/combobox";
import { useAppForm } from "@/libs/tanstack-form";
import { SectionBase } from "../shared/section-base";
@@ -13,7 +13,7 @@ import {
useMergeResumeMetadata,
useResumeCleanup,
useResumeStore,
} from "@/components/resume/use-resume";
} from "@/components/resume/builder-resume-draft";
import { useIsMobile } from "@/hooks/use-mobile";
import { orpc } from "@/libs/orpc/client";
import { BuilderHeader } from "./-components/header";