mirror of
https://github.com/AmruthPillai/Reactive-Resume.git
synced 2026-07-13 06:24:54 +10:00
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:
@@ -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}
|
||||
/>
|
||||
}
|
||||
>
|
||||
|
||||
Reference in New Issue
Block a user