From 7dd676cf51963bae5527dcf70c3a6773e38317fa Mon Sep 17 00:00:00 2001 From: Jamie Benstead Date: Fri, 11 Apr 2025 11:22:09 +0100 Subject: [PATCH 1/2] Add runnerBeingLoaded logic --- src/redux/EditorSlice.js | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/src/redux/EditorSlice.js b/src/redux/EditorSlice.js index be193b1f1..60f47acd1 100644 --- a/src/redux/EditorSlice.js +++ b/src/redux/EditorSlice.js @@ -140,6 +140,7 @@ export const editorInitialState = { sidebarShowing: true, modals: {}, errorDetails: {}, + runnerBeingLoaded: null | "pyodide" | "skulpt", }; export const EditorSlice = createSlice({ @@ -323,12 +324,15 @@ export const EditorSlice = createSlice({ state.drawTriggered = false; }, loadingRunner: (state, action) => { + state.runnerBeingLoaded = action.payload; state.activeRunner = action.payload; state.codeRunLoading = true; }, setLoadedRunner: (state, action) => { - state.loadedRunner = action.payload; - state.codeRunLoading = false; + if (state.runnerBeingLoaded === action.payload) { + state.loadedRunner = action.payload; + state.codeRunLoading = false; + } }, resetRunner: (state) => { state.activeRunner = null; @@ -339,6 +343,7 @@ export const EditorSlice = createSlice({ state.codeRunLoading = false; state.codeRunTriggered = false; state.codeRunStopped = false; + state.runnerBeingLoaded = null; }, closeAccessDeniedWithAuthModal: (state) => { state.accessDeniedWithAuthModalShowing = false; From 14e6ed1d169e38b831771c0ffae97a388a6ba4ba Mon Sep 17 00:00:00 2001 From: Jamie Benstead Date: Fri, 11 Apr 2025 11:41:35 +0100 Subject: [PATCH 2/2] Update changelog --- CHANGELOG.md | 1 + 1 file changed, 1 insertion(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index d0c21414b..369c09fbb 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -9,6 +9,7 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), ### Added - `editor-projectLoadFailed` custom event that fires when a project completely fails to load (#1201) +- Added runnerBeingLoaded state to prevent race condition overwrites (#1205) ### Fixed