fixing menu
This commit is contained in:
parent
604b6f4ebf
commit
b661ec752b
|
|
@ -55,6 +55,14 @@ export const Menu: FC<MenuProp> = (props) => {
|
||||||
</div>
|
</div>
|
||||||
);
|
);
|
||||||
};
|
};
|
||||||
|
|
||||||
|
const w = window as unknown as {
|
||||||
|
prasi_menu: {
|
||||||
|
nav_override: boolean;
|
||||||
|
nav: any;
|
||||||
|
};
|
||||||
|
navigate: any;
|
||||||
|
};
|
||||||
export const SideBar: FC<{
|
export const SideBar: FC<{
|
||||||
data: IMenu[];
|
data: IMenu[];
|
||||||
local: MLocal;
|
local: MLocal;
|
||||||
|
|
@ -69,6 +77,34 @@ export const SideBar: FC<{
|
||||||
const data: IMenu[] = (typeof _data[0] === "string" ? [_data] : _data) as any;
|
const data: IMenu[] = (typeof _data[0] === "string" ? [_data] : _data) as any;
|
||||||
|
|
||||||
useEffect(() => {
|
useEffect(() => {
|
||||||
|
if (!w.prasi_menu && !isEditor) {
|
||||||
|
w.prasi_menu = { nav_override: true, nav: w.navigate };
|
||||||
|
w.navigate = async (_href: any) => {
|
||||||
|
if (_href.startsWith("/")) {
|
||||||
|
const url = new URL(location.href);
|
||||||
|
const newurl = new URL(`${url.protocol}//${url.host}${_href}`);
|
||||||
|
const pathname = newurl.pathname;
|
||||||
|
|
||||||
|
if (preloaded(pathname)) {
|
||||||
|
w.prasi_menu.nav(_href);
|
||||||
|
} else if (pm.on_load) {
|
||||||
|
let done = { exec: () => {} };
|
||||||
|
pm.on_load((exec) => {
|
||||||
|
done.exec = exec;
|
||||||
|
});
|
||||||
|
await preload(pathname);
|
||||||
|
setTimeout(() => {
|
||||||
|
w.prasi_menu.nav(_href);
|
||||||
|
done.exec();
|
||||||
|
}, 500);
|
||||||
|
} else {
|
||||||
|
await preload(pathname);
|
||||||
|
w.prasi_menu.nav(_href);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
data.map((item) => {
|
data.map((item) => {
|
||||||
const menu = {
|
const menu = {
|
||||||
label: item[0],
|
label: item[0],
|
||||||
|
|
@ -182,11 +218,8 @@ export const SideBar: FC<{
|
||||||
done.exec = exec;
|
done.exec = exec;
|
||||||
});
|
});
|
||||||
await preload(menu.value);
|
await preload(menu.value);
|
||||||
setTimeout(() => {
|
done.exec();
|
||||||
done.exec();
|
if (typeof menu.value === "string") navigate(menu.value);
|
||||||
if (typeof menu.value === "string")
|
|
||||||
navigate(menu.value);
|
|
||||||
}, 500);
|
|
||||||
}
|
}
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -48,7 +48,7 @@ export const FormatValue: FC<{
|
||||||
if (typeof value === "boolean") return <>{value ? "Yes" : "No"}</>;
|
if (typeof value === "boolean") return <>{value ? "Yes" : "No"}</>;
|
||||||
|
|
||||||
if (mode === "money") {
|
if (mode === "money") {
|
||||||
if (!value || isEmptyString(value)) return "-";
|
if (isEmptyString(value)) return "-";
|
||||||
return formatMoney(Number(value) || 0);
|
return formatMoney(Number(value) || 0);
|
||||||
} else if (mode === "datetime") {
|
} else if (mode === "datetime") {
|
||||||
if (!value || isEmptyString(value)) return "-";
|
if (!value || isEmptyString(value)) return "-";
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue