diff --git a/apps/web/src/features/resume/preview/preview.shared.helpers.test.ts b/apps/web/src/features/resume/preview/preview.shared.helpers.test.ts index ec57e9f0d..a2c92adb4 100644 --- a/apps/web/src/features/resume/preview/preview.shared.helpers.test.ts +++ b/apps/web/src/features/resume/preview/preview.shared.helpers.test.ts @@ -6,37 +6,8 @@ import { getPreviewCanvasScale, getResumePreviewGapValue, getScaledPreviewPageSize, - normalizeResumePreviewProps, } from "./preview.shared"; -describe("normalizeResumePreviewProps", () => { - it("applies the documented defaults when fields are omitted", () => { - const result = normalizeResumePreviewProps({}); - expect(result).toMatchObject({ - pageGap: 16, - pageLayout: "horizontal", - pageScale: 1, - showPageNumbers: false, - }); - }); - - it("preserves supplied values and forwards extra props (className, data)", () => { - const result = normalizeResumePreviewProps({ - className: "preview-class", - pageGap: 16, - pageLayout: "vertical", - pageScale: 1.5, - showPageNumbers: true, - }); - - expect(result.className).toBe("preview-class"); - expect(result.pageGap).toBe(16); - expect(result.pageLayout).toBe("vertical"); - expect(result.pageScale).toBe(1.5); - expect(result.showPageNumbers).toBe(true); - }); -}); - describe("getScaledPreviewPageSize", () => { it("multiplies both dimensions by the scale", () => { const result = getScaledPreviewPageSize({ width: 100, height: 200 }, 2); diff --git a/apps/web/src/features/resume/preview/preview.shared.tsx b/apps/web/src/features/resume/preview/preview.shared.tsx index 4fdda8b52..8f854de3c 100644 --- a/apps/web/src/features/resume/preview/preview.shared.tsx +++ b/apps/web/src/features/resume/preview/preview.shared.tsx @@ -38,19 +38,7 @@ export const DEFAULT_PDF_PAGE_SIZE: PreviewPageSize = { width: 595.28, }; -export const normalizeResumePreviewProps = ({ - pageGap = 16, - pageLayout = "horizontal", - pageScale = 1, - showPageNumbers = false, - ...props -}: ResumePreviewProps): ResolvedResumePreviewProps => ({ - ...props, - pageGap, - pageLayout, - pageScale, - showPageNumbers, -}); +// ponytail: normalizeResumePreviewProps deleted — defaults now live in ResumePreview destructuring export const getPreviewCanvasScale = (width: number, height: number) => { const devicePixelRatio = typeof window === "undefined" ? 1 : window.devicePixelRatio || 1; diff --git a/apps/web/src/features/resume/preview/preview.tsx b/apps/web/src/features/resume/preview/preview.tsx index efca2bdd4..a34347770 100644 --- a/apps/web/src/features/resume/preview/preview.tsx +++ b/apps/web/src/features/resume/preview/preview.tsx @@ -2,7 +2,7 @@ import type { ResumePreviewProps } from "./preview.shared"; import { lazy, Suspense } from "react"; import { useIsClient } from "usehooks-ts"; import { useResumeData } from "../builder/draft"; -import { getResumePreviewPageCount, normalizeResumePreviewProps, ResumePreviewLoader } from "./preview.shared"; +import { getResumePreviewPageCount, ResumePreviewLoader } from "./preview.shared"; const ResumePreviewClient = lazy(() => import("./preview.browser").then((module) => ({ default: module.ResumePreviewClient })), @@ -10,25 +10,33 @@ const ResumePreviewClient = lazy(() => export type { ResumePreviewProps }; -export function ResumePreview(props: ResumePreviewProps) { +// ponytail: normalizeResumePreviewProps removed — defaults inlined here, single call site +export function ResumePreview({ + pageGap = 16, + pageLayout = "horizontal", + pageScale = 1, + showPageNumbers = false, + ...rest +}: ResumePreviewProps) { const isClient = useIsClient(); - const resolvedProps = normalizeResumePreviewProps(props); const builderResumeData = useResumeData(); - const resumeData = resolvedProps.data ?? builderResumeData; + const resumeData = rest.data ?? builderResumeData; const pageCount = getResumePreviewPageCount(resumeData); if (!isClient) return null; + const resolvedProps = { ...rest, pageGap, pageLayout, pageScale, showPageNumbers }; + return ( } >