mirror of
https://github.com/zebrajr/Reactive-Resume.git
synced 2026-01-15 12:15:43 +00:00
revert structuredClone as it is not supported on proxy objects
This commit is contained in:
@@ -76,7 +76,8 @@
|
||||
// unicorn
|
||||
"unicorn/no-null": "off",
|
||||
"unicorn/prevent-abbreviations": "off",
|
||||
"unicorn/prefer-string-replace-all": "off"
|
||||
"unicorn/prefer-string-replace-all": "off",
|
||||
"unicorn/prefer-structured-clone": "off"
|
||||
}
|
||||
},
|
||||
{
|
||||
|
||||
@@ -91,7 +91,7 @@ export const CustomFieldsSection = ({ className }: Props) => {
|
||||
|
||||
const onChangeCustomField = (field: ICustomField) => {
|
||||
const index = customFields.findIndex((item) => item.id === field.id);
|
||||
const newCustomFields = structuredClone(customFields);
|
||||
const newCustomFields = JSON.parse(JSON.stringify(customFields));
|
||||
newCustomFields[index] = field;
|
||||
|
||||
setValue("basics.customFields", newCustomFields);
|
||||
|
||||
@@ -163,7 +163,7 @@ export const LayoutSection = () => {
|
||||
};
|
||||
|
||||
const onAddPage = () => {
|
||||
const layoutCopy = structuredClone(layout);
|
||||
const layoutCopy = JSON.parse(JSON.stringify(layout));
|
||||
|
||||
layoutCopy.push([[], []]);
|
||||
|
||||
@@ -171,7 +171,7 @@ export const LayoutSection = () => {
|
||||
};
|
||||
|
||||
const onRemovePage = (page: number) => {
|
||||
const layoutCopy = structuredClone(layout);
|
||||
const layoutCopy = JSON.parse(JSON.stringify(layout));
|
||||
|
||||
layoutCopy[0][0].push(...layoutCopy[page][0]); // Main
|
||||
layoutCopy[0][1].push(...layoutCopy[page][1]); // Sidebar
|
||||
@@ -182,7 +182,7 @@ export const LayoutSection = () => {
|
||||
};
|
||||
|
||||
const onResetLayout = () => {
|
||||
const layoutCopy = structuredClone(defaultMetadata.layout);
|
||||
const layoutCopy = JSON.parse(JSON.stringify(defaultMetadata.layout));
|
||||
|
||||
// Loop through all pages and columns, and get any sections that start with "custom."
|
||||
// These should be appended to the first page of the new layout.
|
||||
|
||||
@@ -35,7 +35,7 @@ export const useResumeStore = create<ResumeStore>()(
|
||||
state.resume.data = _set(state.resume.data, path, value);
|
||||
}
|
||||
|
||||
void debouncedUpdateResume(structuredClone(state.resume));
|
||||
void debouncedUpdateResume(JSON.parse(JSON.stringify(state.resume)));
|
||||
});
|
||||
},
|
||||
addSection: () => {
|
||||
@@ -51,7 +51,7 @@ export const useResumeStore = create<ResumeStore>()(
|
||||
state.resume.data.metadata.layout[lastPageIndex][0].push(`custom.${section.id}`);
|
||||
state.resume.data = _set(state.resume.data, `sections.custom.${section.id}`, section);
|
||||
|
||||
void debouncedUpdateResume(structuredClone(state.resume));
|
||||
void debouncedUpdateResume(JSON.parse(JSON.stringify(state.resume)));
|
||||
});
|
||||
},
|
||||
removeSection: (sectionId: SectionKey) => {
|
||||
@@ -63,7 +63,7 @@ export const useResumeStore = create<ResumeStore>()(
|
||||
// eslint-disable-next-line @typescript-eslint/no-dynamic-delete
|
||||
delete state.resume.data.sections.custom[id];
|
||||
|
||||
void debouncedUpdateResume(structuredClone(state.resume));
|
||||
void debouncedUpdateResume(JSON.parse(JSON.stringify(state.resume)));
|
||||
});
|
||||
}
|
||||
},
|
||||
|
||||
@@ -57,7 +57,7 @@ export class JsonResumeParser implements Parser<Json, JsonResume> {
|
||||
}
|
||||
|
||||
convert(data: JsonResume) {
|
||||
const result = structuredClone(defaultResumeData);
|
||||
const result = JSON.parse(JSON.stringify(defaultResumeData));
|
||||
|
||||
// Basics
|
||||
result.basics.name = data.basics?.name ?? "";
|
||||
|
||||
@@ -57,7 +57,7 @@ export class LinkedInParser implements Parser<JSZip, LinkedIn> {
|
||||
}
|
||||
|
||||
convert(data: LinkedIn) {
|
||||
const result = structuredClone(defaultResumeData);
|
||||
const result = JSON.parse(JSON.stringify(defaultResumeData));
|
||||
|
||||
// Profile
|
||||
if (data.Profile && data.Profile.length > 0) {
|
||||
|
||||
@@ -59,7 +59,7 @@ export class ReactiveResumeV3Parser implements Parser<Json, ReactiveResumeV3> {
|
||||
}
|
||||
|
||||
convert(data: ReactiveResumeV3) {
|
||||
const result = structuredClone(defaultResumeData);
|
||||
const result = JSON.parse(JSON.stringify(defaultResumeData));
|
||||
|
||||
// Basics
|
||||
result.basics.name = data.basics.name ?? "";
|
||||
|
||||
@@ -34,7 +34,7 @@ export const moveItemInLayout = (
|
||||
): string[][][] => {
|
||||
try {
|
||||
// Create a deep copy of the layout to avoid mutating the original array
|
||||
const newLayout = structuredClone(layout);
|
||||
const newLayout = JSON.parse(JSON.stringify(layout));
|
||||
|
||||
// Get the item from the current location
|
||||
const item = newLayout[current.page][current.column][current.section];
|
||||
|
||||
@@ -84,7 +84,7 @@ describe("moveItemInLayout", () => {
|
||||
[["item1"], ["item2"]],
|
||||
[["item3"], ["item4"]],
|
||||
];
|
||||
const layoutCopy = structuredClone(layout);
|
||||
const layoutCopy = JSON.parse(JSON.stringify(layout));
|
||||
const current = { page: 0, column: 1, section: 0 };
|
||||
const target = { page: 1, column: 0, section: 1 };
|
||||
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
{
|
||||
"name": "@reactive-resume/source",
|
||||
"description": "A free and open-source resume builder that simplifies the process of creating, updating, and sharing your resume.",
|
||||
"version": "4.1.2",
|
||||
"version": "4.1.3",
|
||||
"license": "MIT",
|
||||
"private": true,
|
||||
"author": {
|
||||
|
||||
Reference in New Issue
Block a user