diff --git a/examples/server/public/index.html.gz b/examples/server/public/index.html.gz index 6973ec714..a70ad56b1 100644 Binary files a/examples/server/public/index.html.gz and b/examples/server/public/index.html.gz differ diff --git a/examples/server/webui/src/components/CanvasPyInterpreter.tsx b/examples/server/webui/src/components/CanvasPyInterpreter.tsx index 0c3007c7e..6e6ea7d05 100644 --- a/examples/server/webui/src/components/CanvasPyInterpreter.tsx +++ b/examples/server/webui/src/components/CanvasPyInterpreter.tsx @@ -32,9 +32,14 @@ const PyodideWrapper = { stdout: (data: string) => stdOutAndErr.push(data), stderr: (data: string) => stdOutAndErr.push(data), }); - const result = await pyodide.runPythonAsync(code); - if (result) { - stdOutAndErr.push(result.toString()); + try { + const result = await pyodide.runPythonAsync(code); + if (result) { + stdOutAndErr.push(result.toString()); + } + } catch (e) { + console.error(e); + stdOutAndErr.push((e as Error).toString()); } return stdOutAndErr.join('\n'); }, @@ -64,7 +69,7 @@ export default function CanvasPyInterpreter() { useEffect(() => { runCode(); // eslint-disable-next-line react-hooks/exhaustive-deps - }, []); + }, [canvasData?.content]); if (canvasData?.type !== CanvasType.PY_INTERPRETER) { return null;