fix(canvas): avoid server persistence for download-only renders
This commit is contained in:
@@ -747,6 +747,11 @@ export default function RenderNode({ id, data, selected, width, height }: NodePr
|
|||||||
});
|
});
|
||||||
};
|
};
|
||||||
|
|
||||||
|
const applyLocalDataImmediately = (next: PersistedRenderData) => {
|
||||||
|
localDataRef.current = next;
|
||||||
|
setLocalData(next);
|
||||||
|
};
|
||||||
|
|
||||||
const handleRender = async (mode: "download" | "upload") => {
|
const handleRender = async (mode: "download" | "upload") => {
|
||||||
if (!sourceUrl || !currentPipelineHash) {
|
if (!sourceUrl || !currentPipelineHash) {
|
||||||
logRenderDebug("render-aborted-prerequisites", {
|
logRenderDebug("render-aborted-prerequisites", {
|
||||||
@@ -768,7 +773,11 @@ export default function RenderNode({ id, data, selected, width, height }: NodePr
|
|||||||
lastRenderError: "Custom width and height are required.",
|
lastRenderError: "Custom width and height are required.",
|
||||||
lastRenderErrorHash: currentPipelineHash,
|
lastRenderErrorHash: currentPipelineHash,
|
||||||
};
|
};
|
||||||
await persistImmediately(next);
|
if (mode === "upload") {
|
||||||
|
await persistImmediately(next);
|
||||||
|
} else {
|
||||||
|
applyLocalDataImmediately(next);
|
||||||
|
}
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -864,7 +873,7 @@ export default function RenderNode({ id, data, selected, width, height }: NodePr
|
|||||||
const shouldUploadAfterRender = mode === "upload";
|
const shouldUploadAfterRender = mode === "upload";
|
||||||
|
|
||||||
if (!shouldUploadAfterRender) {
|
if (!shouldUploadAfterRender) {
|
||||||
await persistImmediately(renderNext);
|
applyLocalDataImmediately(renderNext);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -959,7 +968,11 @@ export default function RenderNode({ id, data, selected, width, height }: NodePr
|
|||||||
lastRenderError: message,
|
lastRenderError: message,
|
||||||
lastRenderErrorHash: currentPipelineHash,
|
lastRenderErrorHash: currentPipelineHash,
|
||||||
};
|
};
|
||||||
await persistImmediately(next);
|
if (mode === "upload") {
|
||||||
|
await persistImmediately(next);
|
||||||
|
} else {
|
||||||
|
applyLocalDataImmediately(next);
|
||||||
|
}
|
||||||
} finally {
|
} finally {
|
||||||
if (runId === renderRunIdRef.current) {
|
if (runId === renderRunIdRef.current) {
|
||||||
if (renderAbortControllerRef.current === abortController) {
|
if (renderAbortControllerRef.current === abortController) {
|
||||||
|
|||||||
Reference in New Issue
Block a user