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,
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);

View File

@ -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);