wip fix reload
This commit is contained in:
parent
607c034254
commit
fd0b71bc8f
|
|
@ -223,7 +223,7 @@ export const EDGlobal = {
|
||||||
list: {} as Record<string, string>,
|
list: {} as Record<string, string>,
|
||||||
},
|
},
|
||||||
page: {
|
page: {
|
||||||
go: () => {},
|
open: null as null | ((page_id: string) => void),
|
||||||
form: null as null | {},
|
form: null as null | {},
|
||||||
},
|
},
|
||||||
script: {
|
script: {
|
||||||
|
|
|
||||||
|
|
@ -7,7 +7,12 @@ export const EdPagePicker = () => {
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<TopBtn
|
<TopBtn
|
||||||
onClick={(e) => {}}
|
onClick={(e) => {
|
||||||
|
p.ui.popup.page.open = (page_id) => {
|
||||||
|
navigate(`/ed/${p.site.id}/${page_id}`);
|
||||||
|
};
|
||||||
|
p.render();
|
||||||
|
}}
|
||||||
innerClassName="flex items-center justify-center space-x-2"
|
innerClassName="flex items-center justify-center space-x-2"
|
||||||
>
|
>
|
||||||
<div
|
<div
|
||||||
|
|
|
||||||
|
|
@ -1,3 +1,55 @@
|
||||||
|
import { Tree as DNDTree, DndProvider, MultiBackend, getBackendOptions } from "@minoru/react-dnd-treeview";
|
||||||
|
import { useEffect } from "react";
|
||||||
|
import { useGlobal, useLocal } from "web-utils";
|
||||||
|
import { Loading } from "../../../../../utils/ui/loading";
|
||||||
|
import { Modal } from "../../../../../utils/ui/modal";
|
||||||
|
import { EDGlobal } from "../../../logic/ed-global";
|
||||||
|
import { pagePicker, reloadPagePicker } from "./page-reload";
|
||||||
|
import { PageItem, edPageTreeRender } from "./page-tree";
|
||||||
|
|
||||||
export const EdPagePop = () => {
|
export const EdPagePop = () => {
|
||||||
return <div className="">Hello world</div>;
|
const p = useGlobal(EDGlobal, "EDITOR");
|
||||||
|
const local = useLocal({});
|
||||||
|
const TypedTree = DNDTree<PageItem>;
|
||||||
|
pagePicker.render = local.render;
|
||||||
|
|
||||||
|
useEffect(() => {
|
||||||
|
p.ui.popup.page.open = () => {};
|
||||||
|
|
||||||
|
(async () => {
|
||||||
|
if (pagePicker.status === "ready") {
|
||||||
|
reloadPagePicker(p);
|
||||||
|
}
|
||||||
|
})();
|
||||||
|
}, [p.site.id]);
|
||||||
|
|
||||||
|
if (!p.ui.popup.page.open) return null;
|
||||||
|
|
||||||
|
return (
|
||||||
|
<>
|
||||||
|
{pagePicker.status === "loading" && <Loading note="listing-page" />}
|
||||||
|
<Modal
|
||||||
|
open
|
||||||
|
onOpenChange={(open) => {
|
||||||
|
if (!open) {
|
||||||
|
p.ui.popup.page.open = null;
|
||||||
|
p.render();
|
||||||
|
}
|
||||||
|
}}
|
||||||
|
>
|
||||||
|
<div className="absolute inset-[5%] bg-white flex">
|
||||||
|
<div className="relative flex flex-1">
|
||||||
|
<DndProvider backend={MultiBackend} options={getBackendOptions()}>
|
||||||
|
<TypedTree
|
||||||
|
tree={pagePicker.tree}
|
||||||
|
rootId={"root"}
|
||||||
|
onDrop={() => {}}
|
||||||
|
render={edPageTreeRender}
|
||||||
|
/>
|
||||||
|
</DndProvider>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</Modal>
|
||||||
|
</>
|
||||||
|
);
|
||||||
};
|
};
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,34 @@
|
||||||
|
import { NodeModel } from "@minoru/react-dnd-treeview";
|
||||||
|
import { PageItem } from "./page-tree";
|
||||||
|
import { PG } from "../../../logic/ed-global";
|
||||||
|
|
||||||
|
export const pagePicker = {
|
||||||
|
tree: [] as NodeModel<PageItem>[],
|
||||||
|
status: "ready" as "loading" | "ready",
|
||||||
|
render: () => {},
|
||||||
|
};
|
||||||
|
|
||||||
|
export const reloadPagePicker = async (p: PG) => {
|
||||||
|
pagePicker.status = "loading";
|
||||||
|
pagePicker.render();
|
||||||
|
|
||||||
|
const pages = await db.page.findMany({
|
||||||
|
where: { id_site: p.site.id, is_deleted: false },
|
||||||
|
select: {
|
||||||
|
id: true,
|
||||||
|
name: true,
|
||||||
|
id_layout: true,
|
||||||
|
is_default_layout: true,
|
||||||
|
id_folder: true,
|
||||||
|
url: true,
|
||||||
|
},
|
||||||
|
});
|
||||||
|
|
||||||
|
const folders = await db.page_folder.findMany({
|
||||||
|
where: { id_site: p.site.id },
|
||||||
|
select: { id: true, is_deleted: false, name: true, parent_id: true },
|
||||||
|
});
|
||||||
|
|
||||||
|
pagePicker.status = "ready";
|
||||||
|
pagePicker.render();
|
||||||
|
};
|
||||||
|
|
@ -0,0 +1,6 @@
|
||||||
|
export type PageItem = {
|
||||||
|
id: string;
|
||||||
|
};
|
||||||
|
export const edPageTreeRender = () => {
|
||||||
|
return <></>;
|
||||||
|
};
|
||||||
Loading…
Reference in New Issue