mirror of
https://github.com/AmruthPillai/Reactive-Resume.git
synced 2026-07-24 08:54:05 +10:00
chore: lint using react-doctor, update translations, dynamic imports
This commit is contained in:
@@ -96,6 +96,7 @@ export function getCompatibleMoveTargets(
|
||||
sourceSectionId: string | undefined,
|
||||
): MoveTargetPage[] {
|
||||
const { pages } = resumeData.metadata.layout;
|
||||
const customSectionById = new Map(resumeData.customSections.map((section) => [section.id, section]));
|
||||
const result: MoveTargetPage[] = [];
|
||||
|
||||
for (let pageIndex = 0; pageIndex < pages.length; pageIndex++) {
|
||||
@@ -120,7 +121,7 @@ export function getCompatibleMoveTargets(
|
||||
}
|
||||
|
||||
// Check if it's a custom section with matching type
|
||||
const customSection = resumeData.customSections.find((s) => s.id === sectionId);
|
||||
const customSection = customSectionById.get(sectionId);
|
||||
if (customSection && customSection.type === sourceType) {
|
||||
compatibleSections.push({
|
||||
sectionId: customSection.id,
|
||||
|
||||
@@ -36,8 +36,10 @@ describe("createSectionTitleResolverForLocale", () => {
|
||||
it("caches resolvers per requested locale", async () => {
|
||||
const { createSectionTitleResolverForLocale } = await import("./section-title-locale");
|
||||
|
||||
const a = await createSectionTitleResolverForLocale("en-US");
|
||||
const b = await createSectionTitleResolverForLocale("en-US");
|
||||
const [a, b] = await Promise.all([
|
||||
createSectionTitleResolverForLocale("en-US"),
|
||||
createSectionTitleResolverForLocale("en-US"),
|
||||
]);
|
||||
|
||||
expect(a).toBe(b);
|
||||
});
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
import type { SectionTitleResolver } from "@reactive-resume/pdf/section-title";
|
||||
import { setupI18n } from "@lingui/core";
|
||||
import { useEffect, useState } from "react";
|
||||
import { useEffect, useReducer } from "react";
|
||||
import { getLocaleMessages, resolveLocale } from "@/libs/locale";
|
||||
import { createSectionTitleResolver } from "./section-title";
|
||||
|
||||
@@ -25,19 +25,22 @@ export const createSectionTitleResolverForLocale = async (localeParam: string) =
|
||||
};
|
||||
|
||||
export const useSectionTitleResolver = (locale?: string) => {
|
||||
const [resolver, setResolver] = useState<SectionTitleResolver | null>(null);
|
||||
const [resolver, dispatchResolver] = useReducer(
|
||||
(_state: SectionTitleResolver | null, nextResolver: SectionTitleResolver | null) => nextResolver,
|
||||
null,
|
||||
);
|
||||
|
||||
useEffect(() => {
|
||||
if (!locale) {
|
||||
setResolver(null);
|
||||
dispatchResolver(null);
|
||||
return;
|
||||
}
|
||||
|
||||
let cancelled = false;
|
||||
|
||||
setResolver(null);
|
||||
dispatchResolver(null);
|
||||
void createSectionTitleResolverForLocale(locale).then((nextResolver) => {
|
||||
if (!cancelled) setResolver(() => nextResolver);
|
||||
if (!cancelled) dispatchResolver(nextResolver);
|
||||
});
|
||||
|
||||
return () => {
|
||||
|
||||
Reference in New Issue
Block a user