mirror of
https://github.com/AmruthPillai/Reactive-Resume.git
synced 2026-07-11 21:45:04 +10:00
a4999c04af
- drop dotenv (Node 24 process.loadEnvFile) and dompurify (only used by dead code) - delete unused ui components/hooks (card, progress, checkbox, use-confirm, use-prompt) - delete dead sanitizeHtml/sanitizeCss, url-security helpers, patch-resume tool, schema/page, createResumePatches, patch-proposal preview builder, fonts fallback helpers - inline single-caller wrappers (flags service, auth getSession, pdf renderer passthrough) - deduplicate template color helpers into shared/color-helpers - unexport 50+ internal-only symbols, remove dead export-map entries - replace hand-rolled unique()/useIsMobile with Set spread and usehooks-ts
37 lines
1.2 KiB
TypeScript
37 lines
1.2 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, useMemo } from "react";
|
|
import { isRTL } from "@reactive-resume/utils/locale";
|
|
|
|
type RenderContextValue = ResumeData & {
|
|
resolveSectionTitle?: SectionTitleResolver | undefined;
|
|
rtl: boolean;
|
|
};
|
|
|
|
const RenderContext = createContext<RenderContextValue | null>(null);
|
|
|
|
type RenderProviderProps = {
|
|
data: ResumeData;
|
|
resolveSectionTitle?: SectionTitleResolver | undefined;
|
|
children: ReactNode;
|
|
};
|
|
|
|
export const RenderProvider = ({ data, resolveSectionTitle, children }: RenderProviderProps) => {
|
|
const rtl = isRTL(data.metadata.page.locale);
|
|
const contextValue = useMemo<RenderContextValue>(
|
|
() => ({ ...data, resolveSectionTitle, rtl }),
|
|
[data, resolveSectionTitle, rtl],
|
|
);
|
|
|
|
return <RenderContext.Provider value={contextValue}>{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;
|
|
};
|