wip prop
This commit is contained in:
parent
abb843c3de
commit
a353226816
|
|
@ -66,6 +66,10 @@ export const page_load: SAction["page"]["load"] = async function (
|
||||||
return data;
|
return data;
|
||||||
});
|
});
|
||||||
};
|
};
|
||||||
|
const page = await db.page.findFirst({ where: { id } });
|
||||||
|
if (page) {
|
||||||
|
await prepContentTree(page.id, page.content_tree, this);
|
||||||
|
}
|
||||||
|
|
||||||
user.active.delAll({ client_id: this.client_id });
|
user.active.delAll({ client_id: this.client_id });
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -30,18 +30,18 @@ export const prepContentTree = async (
|
||||||
comps,
|
comps,
|
||||||
meta,
|
meta,
|
||||||
on: {
|
on: {
|
||||||
visit(meta, item) {
|
visit_component(item) {
|
||||||
if (item.adv?.js) {
|
|
||||||
item.script = parseJs(item.adv.js);
|
|
||||||
}
|
|
||||||
|
|
||||||
if (item.component?.id) {
|
if (item.component?.id) {
|
||||||
if (!item.component?.instances) {
|
if (!item.component?.instances) {
|
||||||
item.component.instances = {};
|
item.component.instances = {};
|
||||||
meta.item.childs = [];
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
visit(meta, item) {
|
||||||
|
if (item.adv?.js) {
|
||||||
|
item.script = parseJs(item.adv.js);
|
||||||
|
}
|
||||||
|
},
|
||||||
},
|
},
|
||||||
mode: "page",
|
mode: "page",
|
||||||
},
|
},
|
||||||
|
|
@ -56,10 +56,10 @@ export const loadCompForPage = async (ctree: IRoot, sync: SyncConnection) => {
|
||||||
const mcomps: GenMetaP["comps"] = {};
|
const mcomps: GenMetaP["comps"] = {};
|
||||||
const result = new Set<string>();
|
const result = new Set<string>();
|
||||||
const loading = {} as Record<string, Promise<void>>;
|
const loading = {} as Record<string, Promise<void>>;
|
||||||
for (const mchild of ctree.childs) {
|
for (const child of ctree.childs) {
|
||||||
await initLoadComp(
|
await initLoadComp(
|
||||||
{ comps: mcomps, meta, mode: "page" },
|
{ comps: mcomps, meta, mode: "page" },
|
||||||
mchild as unknown as IItem,
|
child as unknown as IItem,
|
||||||
async (comp_ids) => {
|
async (comp_ids) => {
|
||||||
for (const id of comp_ids) {
|
for (const id of comp_ids) {
|
||||||
if (!docs.comp[id]) {
|
if (!docs.comp[id]) {
|
||||||
|
|
|
||||||
|
|
@ -8,8 +8,7 @@ import { IItem } from "../../../utils/types/item";
|
||||||
import { DComp, DPage } from "../../../utils/types/root";
|
import { DComp, DPage } from "../../../utils/types/root";
|
||||||
import {
|
import {
|
||||||
GenMetaP,
|
GenMetaP,
|
||||||
ISimpleMeta,
|
IMeta as LogicMeta
|
||||||
IMeta as LogicMeta,
|
|
||||||
} from "../../vi/utils/types";
|
} from "../../vi/utils/types";
|
||||||
|
|
||||||
export type IMeta = LogicMeta;
|
export type IMeta = LogicMeta;
|
||||||
|
|
|
||||||
|
|
@ -1,12 +1,18 @@
|
||||||
import { createId } from "@paralleldrive/cuid2";
|
import { createId } from "@paralleldrive/cuid2";
|
||||||
import { IItem, MItem } from "../../../../utils/types/item";
|
import { IItem, MItem } from "../../../../utils/types/item";
|
||||||
import { FMCompDef, FNCompDef } from "../../../../utils/types/meta-fn";
|
|
||||||
import { genMeta } from "../../../vi/meta/meta";
|
import { genMeta } from "../../../vi/meta/meta";
|
||||||
import { IMeta, PG } from "../ed-global";
|
import { IMeta, PG, active } from "../ed-global";
|
||||||
import { assignMitem } from "./assign-mitem";
|
import { assignMitem } from "./assign-mitem";
|
||||||
import { pushTreeNode } from "./build/push-tree";
|
import { pushTreeNode } from "./build/push-tree";
|
||||||
|
|
||||||
export const treeRebuild = async (p: PG, arg?: { note?: string }) => {
|
export const treeRebuild = async (p: PG, arg?: { note?: string }) => {
|
||||||
|
if (document.activeElement) {
|
||||||
|
const a = document.activeElement;
|
||||||
|
if (a.tagName === "DIV" && a.getAttribute("contenteditable") === "true") {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
const is_layout =
|
const is_layout =
|
||||||
p.site.layout &&
|
p.site.layout &&
|
||||||
p.site.layout.id === p.page.cur.id &&
|
p.site.layout.id === p.page.cur.id &&
|
||||||
|
|
|
||||||
|
|
@ -59,10 +59,8 @@ export const mainPerItemVisit = (
|
||||||
text_edit.id === meta.item.id ||
|
text_edit.id === meta.item.id ||
|
||||||
text_edit.id === meta.item.originalId
|
text_edit.id === meta.item.originalId
|
||||||
) {
|
) {
|
||||||
if (document.activeElement !== el) {
|
setCaret(el, text_edit.caret);
|
||||||
setCaret(el, text_edit.caret);
|
text_edit.caret = null;
|
||||||
text_edit.caret = null;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
|
||||||
|
|
@ -2,6 +2,8 @@ import { useGlobal, useLocal } from "web-utils";
|
||||||
import { Vi } from "../../../vi/vi";
|
import { Vi } from "../../../vi/vi";
|
||||||
import { EDGlobal, active } from "../../logic/ed-global";
|
import { EDGlobal, active } from "../../logic/ed-global";
|
||||||
import { mainPerItemVisit } from "./main-per-item";
|
import { mainPerItemVisit } from "./main-per-item";
|
||||||
|
import { VG } from "../../../vi/render/global";
|
||||||
|
import { IItem } from "../../../../utils/types/item";
|
||||||
|
|
||||||
export const EdMain = () => {
|
export const EdMain = () => {
|
||||||
// return <div className="flex flex-1 flex-col relative"></div>;
|
// return <div className="flex flex-1 flex-col relative"></div>;
|
||||||
|
|
|
||||||
|
|
@ -49,5 +49,18 @@ export const extractExport = (p: PG, m: IMeta) => {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
const props = m.item.component?.props;
|
||||||
|
if (props) {
|
||||||
|
for (const [k, v] of Object.entries(props)) {
|
||||||
|
result[k] = {
|
||||||
|
type: "prop",
|
||||||
|
id: m.item.id,
|
||||||
|
start: 0,
|
||||||
|
end: 0,
|
||||||
|
val: v.value,
|
||||||
|
};
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
return result;
|
return result;
|
||||||
};
|
};
|
||||||
|
|
|
||||||
|
|
@ -1,3 +1,4 @@
|
||||||
|
import { IItem } from "../../../utils/types/item";
|
||||||
import { IMeta } from "../../ed/logic/ed-global";
|
import { IMeta } from "../../ed/logic/ed-global";
|
||||||
import { viParts } from "./parts";
|
import { viParts } from "./parts";
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -11,6 +11,7 @@ export const ViRender: FC<{
|
||||||
children?: ReactNode;
|
children?: ReactNode;
|
||||||
passprop?: any;
|
passprop?: any;
|
||||||
}> = ({ meta, children, passprop }) => {
|
}> = ({ meta, children, passprop }) => {
|
||||||
|
const vi = useGlobal(ViGlobal, "VI");
|
||||||
if (!meta) return null;
|
if (!meta) return null;
|
||||||
|
|
||||||
if (meta.item.hidden) return null;
|
if (meta.item.hidden) return null;
|
||||||
|
|
|
||||||
|
|
@ -8,6 +8,7 @@ import { ErrorBox } from "./utils/error-box";
|
||||||
|
|
||||||
export const Vi: FC<{
|
export const Vi: FC<{
|
||||||
meta: Record<string, IMeta>;
|
meta: Record<string, IMeta>;
|
||||||
|
comp_load?: (comp_id: string) => Promise<void>;
|
||||||
entry: string[];
|
entry: string[];
|
||||||
api_url: string;
|
api_url: string;
|
||||||
site_id: string;
|
site_id: string;
|
||||||
|
|
@ -18,6 +19,7 @@ export const Vi: FC<{
|
||||||
visit?: VG["visit"];
|
visit?: VG["visit"];
|
||||||
}> = ({ meta, entry, api_url, site_id, api, db, visit, script }) => {
|
}> = ({ meta, entry, api_url, site_id, api, db, visit, script }) => {
|
||||||
const vi = useGlobal(ViGlobal, "VI");
|
const vi = useGlobal(ViGlobal, "VI");
|
||||||
|
|
||||||
if (vi.meta !== meta) {
|
if (vi.meta !== meta) {
|
||||||
vi.meta = meta;
|
vi.meta = meta;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue