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;