fix gen-form

This commit is contained in:
rizky 2024-07-31 03:56:12 -07:00
parent b2b34659c6
commit f44456cbdf
2 changed files with 74 additions and 56 deletions

View File

@ -147,8 +147,8 @@ export const generateForm = async (
walkGenForm(new_body, existing_childs as any); walkGenForm(new_body, existing_childs as any);
} }
if (item.edit) { const prop_item = propFromItem(item);
const current_body = propFromItem(item)?.body?.value as IItem; const current_body = prop_item?.body?.value as IItem;
if (current_body) { if (current_body) {
const mapping = mapCompItemTree(new_body, { const mapping = mapCompItemTree(new_body, {
@ -195,8 +195,7 @@ export const generateForm = async (
if ( if (
mapping["32550d01-42a3-4b15-a04a-2c2d5c3c8e67"] && mapping["32550d01-42a3-4b15-a04a-2c2d5c3c8e67"] &&
Object.keys(mapping["32550d01-42a3-4b15-a04a-2c2d5c3c8e67"]).length > Object.keys(mapping["32550d01-42a3-4b15-a04a-2c2d5c3c8e67"]).length > 0
0
) { ) {
for (const val of Object.values( for (const val of Object.values(
mapping["32550d01-42a3-4b15-a04a-2c2d5c3c8e67"] mapping["32550d01-42a3-4b15-a04a-2c2d5c3c8e67"]
@ -209,9 +208,7 @@ export const generateForm = async (
new_body = current_body; new_body = current_body;
} }
} }
}
console.log(result);
if (commit) { if (commit) {
Object.keys(result).map((e) => { Object.keys(result).map((e) => {
item.edit.setProp(e, result[e]); item.edit.setProp(e, result[e]);

View File

@ -45,7 +45,7 @@ export const generateMDForm = async (
}), }),
}, },
}; };
const newitem: any = { const raw_new_item: any = {
type: "item", type: "item",
name: "item", name: "item",
component: { component: {
@ -53,7 +53,28 @@ export const generateMDForm = async (
props, props,
}, },
}; };
generateForm(async (props: any) => {}, props, newitem, false, true);
let cur_item = (
item.edit.childs
.find((e) => e.name.includes("child"))
?.edit?.childs?.find((e) => e.name === "tab")?.component?.props as any
)?.child?.content?.childs?.[0];
if (cur_item) {
const new_item = createItem(raw_new_item) as IItem;
for (const [k, v] of Object.entries(new_item.component?.props || {})) {
if (cur_item.component) {
const prop = v as any;
if (prop.meta.type !== "content-element") {
cur_item.component.props[k] = v;
}
}
}
} else {
cur_item = raw_new_item;
}
generateForm(async (props: any) => {}, props, cur_item, false, true);
tab_detail?.edit.setProp("breadcrumb", { tab_detail?.edit.setProp("breadcrumb", {
mode: "raw", mode: "raw",