refactor(web): finding 6 — delete normalizeResumePreviewProps, inline defaults

normalizeResumePreviewProps had exactly one production caller (preview.tsx).
Defaults now live in the ResumePreview destructuring; the normalizer and its
test cases are removed.

Claude-Session: https://claude.ai/code/session_012Bnvt1MghwHj4qQRxuQUGa
This commit is contained in:
Amruth Pillai
2026-07-04 21:47:53 +02:00
parent e47cb37ab9
commit 44e9a8a29f
3 changed files with 18 additions and 51 deletions
@@ -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);
@@ -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;
@@ -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 (
<Suspense
fallback={
<ResumePreviewLoader
pageCount={pageCount}
pageClassName={resolvedProps.pageClassName}
pageGap={resolvedProps.pageGap}
pageLayout={resolvedProps.pageLayout}
pageScale={resolvedProps.pageScale}
showPageNumbers={resolvedProps.showPageNumbers}
pageClassName={rest.pageClassName}
pageGap={pageGap}
pageLayout={pageLayout}
pageScale={pageScale}
showPageNumbers={showPageNumbers}
/>
}
>