import { useLocal } from "lib/utils/use-local";
import { FC, useEffect } from "react";
import { breadcrumbPrefix } from "../utils/md-hash";
import { MDLocal, MDRef } from "../utils/typings";
import { MDHeader } from "./MDHeader";
import { hashSum } from "lib/utils/hash-sum";
export const should_show_tab = (md: MDLocal) => {
if (isEditor) {
if (md.tab.active !== "" && md.tab.active !== "master") return true;
}
return false;
};
export const MDDetail: FC<{ md: MDLocal; mdr: MDRef }> = ({ md, mdr }) => {
const local = useLocal({ selected: "", synced: false });
const detail = md.childs[md.tab.active];
const PassProp = mdr.PassProp;
if (!detail) {
return null;
}
return (
<>
{md.props.show_head === "only-child" && }
{md.props.tab_mode !== "hidden" && md.tab.list.length > 1 && (
)}
div {
flex: 1;
}
`,
"c-flex c-flex-1"
)}
>
{mdr.childs[md.tab.active]}
>
);
};
export const MDNavTab: FC<{ md: MDLocal; mdr: MDRef }> = ({ md, mdr }) => {
const mode = md.props.tab_mode;
return (
{md.tab.list.map((tab_name, idx) => {
const child = md.childs[tab_name];
if (!child) return null;
return (
{
if (isEditor) {
md.props.item.edit.setProp("editor_tab", tab_name);
await md.props.item.edit.commit();
return;
}
md.tab.active = tab_name;
md.params.apply();
md.render();
}}
>
{tab_name === md.tab.active && (
)}
{child.label}
);
})}
);
};
export const MDRenderTab: FC<{
child: any;
on_init: () => MDLocal;
breadcrumb: () => Array;
}> = ({ child, on_init, breadcrumb }) => {
const md = on_init();
md.header.child.breadcrumb = breadcrumb;
return <>{child}>;
};