improve code init logic

This commit is contained in:
Felix Roos 2023-12-11 22:17:10 +01:00
parent faaed61384
commit 853a31b638
2 changed files with 7 additions and 6 deletions

View File

@ -25,6 +25,7 @@ import {
setActivePattern, setActivePattern,
getActivePattern, getActivePattern,
getUserPattern, getUserPattern,
initUserCode,
} from '../settings.mjs'; } from '../settings.mjs';
import Loader from './Loader'; import Loader from './Loader';
import { settingPatterns } from '../settings.mjs'; import { settingPatterns } from '../settings.mjs';
@ -184,12 +185,7 @@ export function Repl({ embedded = false }) {
let msg; let msg;
if (decoded) { if (decoded) {
setCode(decoded); setCode(decoded);
const activePattern = getActivePattern(); initUserCode(decoded);
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('');
}
msg = `I have loaded the code from the URL.`; msg = `I have loaded the code from the URL.`;
} else if (latestCode) { } else if (latestCode) {
setCode(latestCode); setCode(latestCode);

View File

@ -36,6 +36,11 @@ export function getActivePattern() {
export function useActivePattern() { export function useActivePattern() {
return useStore($activePattern); 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() { export function useSettings() {
const state = useStore(settingsMap); const state = useStore(settingsMap);