import { GFCol } from "../utils"; export const form_before_load = ( table: string, pk: GFCol, title: string, label: string ) => { return ` const master = md.cache("master") as | { reload: () => Promise } | undefined; const id = master_detail_params(md).parent_id; const after_load = (item: any) => { const set_actions = () => (md.ui.actions = [ { label: "Delete", type: "destructive", onClick: async () => { if (confirm("Are you sure ?")) { md.ui.actions = [{ label: "Deleting...", type: "ghost" }]; md.render(); await db.${table}.delete({ where: { ${pk.name}: item.${ pk.name } } }); setTimeout(() => { md.ui.actions = [...md.ui.default_actions]; md.ui.breadcrumb = []; md.ui.back = false; md.selected = null; md.render(); if (md.mode !== "breadcrumb") { master?.reload(); } }); } }, icon: \`\`, }, { label: "Save", onClick: async () => { md.ui.actions = [{ label: "Saving...", type: "ghost" }]; md.render(); await md.cache("detail").submit(); setTimeout(() => { set_actions(); md.render(); if (md.mode !== "breadcrumb") { master?.reload(); } }, 500); }, icon: \`\`, }, ]); set_actions(); md.ui.breadcrumb = [[md.ui.title, ""]${ label ? `, item?.["${label}"]` : "" }]; md.render(); }; md.ui.breadcrumb = [[md.ui.title, ""], "..."]; md.render(); `; };