fix render

This commit is contained in:
Rizky 2023-10-17 18:15:37 +07:00
parent 1125dfd081
commit 0a7b744846
4 changed files with 25 additions and 8 deletions

View File

@ -9,7 +9,6 @@ import { preload } from "../logic/route";
import { treePropEval } from "../logic/tree-prop";
import { treeScopeEval } from "../logic/tree-scope";
import { LTextInternal } from "./l-text";
import { createPortal } from "react-dom";
export const LRender: FC<{
id: string;
@ -69,15 +68,23 @@ export const LRenderInternal: FC<{
useEffect(() => {
if (meta) {
meta.mounted = true;
if (meta.pendingRender) {
meta.pendingRender = false;
render({});
}
}
}, []);
});
if (!meta) {
return null;
}
meta.render = () => {
if (meta && meta.mounted) {
render({});
if (meta) {
if (meta.mounted) {
render({});
} else {
meta.pendingRender = true;
}
}
};
let item = meta.item;

View File

@ -29,6 +29,7 @@ export type ItemMeta = {
isLayout: boolean;
render?: () => void;
mounted?: boolean;
pendingRender: boolean;
};
export type LPage = {

View File

@ -277,10 +277,18 @@ const createLocal = (p: PG, id: string) => {
cachedPath[page_id] = {};
}
if (cachedLocal[page_id][itemid]) {
if (cache === false && cachedPath[page_id][itemid] !== location.href) {
cachedPath[page_id][itemid] = location.href;
genScope();
cachedLocal[page_id][itemid] = meta.scope[name];
if (cache === false) {
if (cachedPath[page_id][itemid] !== location.href) {
cachedPath[page_id][itemid] = location.href;
genScope();
cachedLocal[page_id][itemid] = meta.scope[name];
} else {
meta.scope[name] = cachedLocal[page_id][itemid];
meta.scope[name].render = () => {
if (meta.render) meta.render();
else p.render();
};
}
} else {
meta.scope[name] = cachedLocal[page_id][itemid];
meta.scope[name].render = () => {

View File

@ -21,6 +21,7 @@ export const produceCSS = (
): string => {
try {
return cx([
item.name,
css`
display: flex;
position: relative;