mirror of
https://github.com/AmruthPillai/Reactive-Resume.git
synced 2026-07-25 01:15:26 +10:00
24c882fa9f
Introduce createRtlStyleHelpers and a single rtl flag on RenderProvider, migrate every template page to mirrored layout styles, and rename alignRight to alignEnd. Fix plain rich text rendering via PdfText paragraph renderers and map legacy Times New Roman to Times-Roman. Co-authored-by: Cursor <cursoragent@cursor.com>
33 lines
1.0 KiB
TypeScript
33 lines
1.0 KiB
TypeScript
import type { ResumeData } from "@reactive-resume/schema/resume/data";
|
|
import type { ReactNode } from "react";
|
|
import type { SectionTitleResolver } from "./section-title";
|
|
import { createContext, use } from "react";
|
|
import { isRTL } from "@reactive-resume/utils/locale";
|
|
|
|
type RenderContextValue = ResumeData & {
|
|
resolveSectionTitle?: SectionTitleResolver | undefined;
|
|
rtl: boolean;
|
|
};
|
|
|
|
const RenderContext = createContext<RenderContextValue | null>(null);
|
|
|
|
export type RenderProviderProps = {
|
|
data: ResumeData;
|
|
resolveSectionTitle?: SectionTitleResolver | undefined;
|
|
children: ReactNode;
|
|
};
|
|
|
|
export const RenderProvider = ({ data, resolveSectionTitle, children }: RenderProviderProps) => {
|
|
const rtl = isRTL(data.metadata.page.locale);
|
|
|
|
return <RenderContext.Provider value={{ ...data, resolveSectionTitle, rtl }}>{children}</RenderContext.Provider>;
|
|
};
|
|
|
|
export const useRender = (): RenderContextValue => {
|
|
const context = use(RenderContext);
|
|
|
|
if (!context) throw new Error("useRender must be called inside a <RenderProvider>.");
|
|
|
|
return context;
|
|
};
|