From 853a31b638348e0e6ca5dc0ce86bb2dc98f797e9 Mon Sep 17 00:00:00 2001 From: Felix Roos Date: Mon, 11 Dec 2023 22:17:10 +0100 Subject: [PATCH] improve code init logic --- website/src/repl/Repl.jsx | 8 ++------ website/src/settings.mjs | 5 +++++ 2 files changed, 7 insertions(+), 6 deletions(-) diff --git a/website/src/repl/Repl.jsx b/website/src/repl/Repl.jsx index 32765477..db586363 100644 --- a/website/src/repl/Repl.jsx +++ b/website/src/repl/Repl.jsx @@ -25,6 +25,7 @@ import { setActivePattern, getActivePattern, getUserPattern, + initUserCode, } from '../settings.mjs'; import Loader from './Loader'; import { settingPatterns } from '../settings.mjs'; @@ -184,12 +185,7 @@ export function Repl({ embedded = false }) { let msg; if (decoded) { setCode(decoded); - const activePattern = getActivePattern(); - if (getUserPattern(activePattern)?.code !== decoded) { - // code in url is not the last active patterns code => must be something else - // deselect last active pattern to not overwrite it on next evaluation - setActivePattern(''); - } + initUserCode(decoded); msg = `I have loaded the code from the URL.`; } else if (latestCode) { setCode(latestCode); diff --git a/website/src/settings.mjs b/website/src/settings.mjs index 8a85e4a8..59078651 100644 --- a/website/src/settings.mjs +++ b/website/src/settings.mjs @@ -36,6 +36,11 @@ export function getActivePattern() { export function useActivePattern() { return useStore($activePattern); } +export function initUserCode(code) { + const userPatterns = getUserPatterns(); + const match = Object.entries(userPatterns).find(([_, pat]) => pat.code === code); + setActivePattern(match?.[0] || ''); +} export function useSettings() { const state = useStore(settingsMap);