This commit is contained in:
rizrmd 2024-05-24 10:48:11 -07:00
parent 34f9c3a631
commit 051bc65e4e
7 changed files with 54 additions and 53 deletions

View File

@ -6,7 +6,7 @@ export const generateMasterDetail = async (item: PrasiItem) => {
); );
if (master) { if (master) {
master.edit.setProp("on_load", { master.edit.setProp("on_init", {
mode: "raw", mode: "raw",
value: `async (text: string) => { value: `async (text: string) => {
alert("ASdas"); alert("ASdas");

View File

@ -1,17 +1,17 @@
import { FC } from "react"; import { FC } from "react";
import { MDMain } from "../parts/MDMaster"; import { MDMaster } from "../parts/MDMaster";
import { MDLocal, MDRef } from "../utils/typings"; import { MDLocal, MDRef } from "../utils/typings";
import { MDTab, should_show_tab } from "../parts/MDTab"; import { MDDetail, should_show_tab } from "../parts/MDDetail";
export const ModeFull: FC<{ md: MDLocal; mdr: MDRef }> = ({ md, mdr }) => { export const ModeFull: FC<{ md: MDLocal; mdr: MDRef }> = ({ md, mdr }) => {
if (should_show_tab(md)) { if (should_show_tab(md)) {
return <MDTab md={md} mdr={mdr} />; return <MDDetail md={md} mdr={mdr} />;
} }
return ( return (
<> <>
{!md.selected && <MDMain md={md} mdr={mdr} />} {!md.selected && <MDMaster md={md} mdr={mdr} />}
{md.selected && <MDTab md={md} mdr={mdr} />} {md.selected && <MDDetail md={md} mdr={mdr} />}
</> </>
); );
}; };

View File

@ -1,7 +1,7 @@
import { FC } from "react"; import { FC } from "react";
import { Panel, PanelGroup, PanelResizeHandle } from "react-resizable-panels"; import { Panel, PanelGroup, PanelResizeHandle } from "react-resizable-panels";
import { MDMain } from "../parts/MDMaster"; import { MDMaster } from "../parts/MDMaster";
import { MDTab } from "../parts/MDTab"; import { MDDetail } from "../parts/MDDetail";
import { MDLocal, MDRef } from "../utils/typings"; import { MDLocal, MDRef } from "../utils/typings";
export const ModeHSplit: FC<{ md: MDLocal; mdr: MDRef }> = ({ md, mdr }) => { export const ModeHSplit: FC<{ md: MDLocal; mdr: MDRef }> = ({ md, mdr }) => {
@ -13,7 +13,7 @@ export const ModeHSplit: FC<{ md: MDLocal; mdr: MDRef }> = ({ md, mdr }) => {
defaultSize={md.panel.size} defaultSize={md.panel.size}
minSize={md.panel.min_size} minSize={md.panel.min_size}
> >
<MDMain md={md} mdr={mdr} /> <MDMaster md={md} mdr={mdr} />
</Panel> </Panel>
<> <>
<PanelResizeHandle /> <PanelResizeHandle />
@ -29,7 +29,7 @@ export const ModeHSplit: FC<{ md: MDLocal; mdr: MDRef }> = ({ md, mdr }) => {
} }
}} }}
> >
<MDTab md={md} mdr={mdr} /> <MDDetail md={md} mdr={mdr} />
</Panel> </Panel>
</> </>
</PanelGroup> </PanelGroup>

View File

@ -1,7 +1,7 @@
import { FC } from "react"; import { FC } from "react";
import { MDMain } from "../parts/MDMaster"; import { MDMaster } from "../parts/MDMaster";
import { MDLocal, MDRef } from "../utils/typings"; import { MDLocal, MDRef } from "../utils/typings";
import { MDTab, should_show_tab } from "../parts/MDTab"; import { MDDetail, should_show_tab } from "../parts/MDDetail";
import { Panel, PanelGroup, PanelResizeHandle } from "react-resizable-panels"; import { Panel, PanelGroup, PanelResizeHandle } from "react-resizable-panels";
export const ModeVSplit: FC<{ md: MDLocal; mdr: MDRef }> = ({ md, mdr }) => { export const ModeVSplit: FC<{ md: MDLocal; mdr: MDRef }> = ({ md, mdr }) => {
@ -13,7 +13,7 @@ export const ModeVSplit: FC<{ md: MDLocal; mdr: MDRef }> = ({ md, mdr }) => {
defaultSize={md.panel.size} defaultSize={md.panel.size}
minSize={md.panel.min_size} minSize={md.panel.min_size}
> >
<MDMain md={md} mdr={mdr} /> <MDMaster md={md} mdr={mdr} />
</Panel> </Panel>
<> <>
<PanelResizeHandle /> <PanelResizeHandle />
@ -29,7 +29,7 @@ export const ModeVSplit: FC<{ md: MDLocal; mdr: MDRef }> = ({ md, mdr }) => {
} }
}} }}
> >
<MDTab md={md} mdr={mdr} /> <MDDetail md={md} mdr={mdr} />
</Panel> </Panel>
</> </>
</PanelGroup> </PanelGroup>

View File

@ -1,5 +1,5 @@
import { FC } from "react"; import { FC } from "react";
import { MDLocal, MDRef, w } from "../utils/typings"; import { MDLocal, MDRef } from "../utils/typings";
import { MDHeader } from "./MDHeader"; import { MDHeader } from "./MDHeader";
export const should_show_tab = (md: MDLocal) => { export const should_show_tab = (md: MDLocal) => {
@ -9,7 +9,7 @@ export const should_show_tab = (md: MDLocal) => {
return false; return false;
}; };
export const MDTab: FC<{ md: MDLocal; mdr: MDRef }> = ({ md, mdr }) => { export const MDDetail: FC<{ md: MDLocal; mdr: MDRef }> = ({ md, mdr }) => {
const detail = md.childs[md.tab.active]; const detail = md.childs[md.tab.active];
const PassProp = mdr.PassProp; const PassProp = mdr.PassProp;
if (!detail) { if (!detail) {
@ -27,7 +27,7 @@ export const MDTab: FC<{ md: MDLocal; mdr: MDRef }> = ({ md, mdr }) => {
{md.props.tab_mode !== "hidden" && md.tab.list.length > 1 && ( {md.props.tab_mode !== "hidden" && md.tab.list.length > 1 && (
<MDNavTab md={md} mdr={mdr} /> <MDNavTab md={md} mdr={mdr} />
)} )}
{/* <PassProp md={md}>{detail.internal}</PassProp> */} <PassProp md={md}>{mdr.childs[md.tab.active]}</PassProp>
</div> </div>
</> </>
); );

View File

@ -5,36 +5,38 @@ import { MDHeader } from "./MDHeader";
const w = window as unknown as { const w = window as unknown as {
md_panel_master: any; md_panel_master: any;
}; };
export const MDMaster: FC<{ export const MDRenderMaster: FC<{
size: any; size: any;
min_size: any; min_size: any;
md: MDLocal;
child: any; child: any;
on_init: () => void; on_init: () => MDLocal;
}> = ({ child, on_init, min_size, size, md }) => { }> = ({ child, on_init, min_size, size }) => {
let result = on_init(); let md = on_init();
let width = 0; if (md) {
let min_width = 0; let width = 0;
try { let min_width = 0;
width = Number(size) || 0; try {
min_width = Number(min_size) || 0; width = Number(size) || 0;
} catch (e: any) {} min_width = Number(min_size) || 0;
w.md_panel_master = JSON.stringify({ } catch (e: any) {}
size: width, w.md_panel_master = JSON.stringify({
min_size: min_width, size: width,
}); min_size: min_width,
md.panel.min_size = min_width; });
md.panel.size = width; md.panel.min_size = min_width;
md.panel.size = width;
}
return <>{child}</>; return <>{child}</>;
}; };
export const MDMain: FC<{ md: MDLocal; mdr: MDRef }> = ({ md, mdr }) => { export const MDMaster: FC<{ md: MDLocal; mdr: MDRef }> = ({ md, mdr }) => {
const PassProp = mdr.PassProp; const PassProp = mdr.PassProp;
return ( return (
<> <>
{md.props.show_head === "only-master" && <MDHeader md={md} mdr={mdr} />} {md.props.show_head === "only-master" && <MDHeader md={md} mdr={mdr} />}
{/* <PassProp md={md}>{md.master.internal}</PassProp> */} <PassProp md={md}>{mdr.master}</PassProp>
</> </>
); );
}; };

33
data.ts
View File

@ -4,8 +4,9 @@ import { lazify } from "./utils/lazify";
export const MasterDetail = lazify( export const MasterDetail = lazify(
async () => (await import("@/comps/md/MasterDetail")).MasterDetail async () => (await import("@/comps/md/MasterDetail")).MasterDetail
); );
export const MDMaster = lazify(
async () => (await import("@/comps/md/parts/MDMaster")).MDMaster export const MDRenderMaster = lazify(
async () => (await import("@/comps/md/parts/MDMaster")).MDRenderMaster
); );
export const MDAction = lazify( export const MDAction = lazify(
async () => (await import("@/comps/md/parts/MDAction")).MDAction async () => (await import("@/comps/md/parts/MDAction")).MDAction
@ -48,6 +49,7 @@ export { GetValue } from "@/utils/get-value";
export { TableListType } from "lib/comps/list/utils/typings"; export { TableListType } from "lib/comps/list/utils/typings";
export { Button, FloatButton } from "@/comps/ui/button"; export { Button, FloatButton } from "@/comps/ui/button";
export { prasi_gen } from "@/gen/prasi_gen"; export { prasi_gen } from "@/gen/prasi_gen";
export { password } from "@/utils/password";
/** Session */ /** Session */
export { export {
@ -60,10 +62,8 @@ export { Login } from "@/preset/login/Login";
export { logout } from "@/preset/login/utils/logout"; export { logout } from "@/preset/login/utils/logout";
export { generateLogin } from "@/preset/login/utils/generate"; export { generateLogin } from "@/preset/login/utils/generate";
export { select as generateSelect } from "@/preset/login/utils/select"; export { select as generateSelect } from "@/preset/login/utils/select";
// export card
export {Card} from "@/comps/custom/Card";
export { Card } from "@/comps/custom/Card";
/** Layout */ /** Layout */
export { Layout } from "@/preset/menu/Layout"; export { Layout } from "@/preset/menu/Layout";
@ -71,19 +71,18 @@ export { Layout } from "@/preset/menu/Layout";
/* MENU */ /* MENU */
export { Menu, MenuIcon } from "@/preset/menu/Menu"; export { Menu, MenuIcon } from "@/preset/menu/Menu";
/* Bcrypt */
export { password } from "@/utils/password";
/*Panel Tab*/ /*Panel Tab*/
export {PanelTab} from "@/comps/tab/Tab"; export { PanelTab } from "@/comps/tab/Tab";
export {PanelBody} from "@/comps/tab/parts/PanelBody"; export { PanelBody } from "@/comps/tab/parts/PanelBody";
export {PanelHeader} from "@/comps/tab/parts/PanelHead"; export { PanelHeader } from "@/comps/tab/parts/PanelHead";
export {ShowHidePanel} from "@/comps/custom/ShowHidePanel"; export { ShowHidePanel } from "@/comps/custom/ShowHidePanel";
/*Popup*/ /*Popup*/
export {Popup} from "@/comps/popup/PopUp" export { Popup } from "@/comps/popup/PopUp";
// Detail // Detail
export { Detail } from "@/comps/custom/Detail"; export { Detail } from "@/comps/custom/Detail";
export {Profile} from "@/preset/profile/Profile" export { Profile } from "@/preset/profile/Profile";
export {generateProfile} from "@/preset/profile/utils/generate" export { generateProfile } from "@/preset/profile/utils/generate";
export {ButtonUpload} from "@/preset/profile/ButtonUpload" export { ButtonUpload } from "@/preset/profile/ButtonUpload";
export {longDate, shortDate, timeAgo, formatTime} from "@/utils/date"; export { longDate, shortDate, timeAgo, formatTime } from "@/utils/date";