repl: set document.title from @title (#1090)

* fixes #811 set document.title from @title
This commit is contained in:
Kaspars Jaudzems 2024-05-12 19:23:08 +03:00 committed by GitHub
parent 27d8bae671
commit a69563cb9b
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194

View File

@ -38,6 +38,7 @@ import { getRandomTune, initCode, loadModules, shareCode, ReplContext } from './
import PlayCircleIcon from '@heroicons/react/20/solid/PlayCircleIcon';
import './Repl.css';
import { setInterval, clearInterval } from 'worker-timers';
import { getMetadata } from '../metadata_parser';
const { latestCode } = settingsMap.get();
@ -91,6 +92,7 @@ export function Repl({ embedded = false }) {
const { code } = all;
setLatestCode(code);
window.location.hash = '#' + code2hash(code);
setDocumentTitle(code);
const viewingPatternData = getViewingPatternData();
const data = { ...viewingPatternData, code };
let id = data.id;
@ -116,18 +118,20 @@ export function Repl({ embedded = false }) {
// init settings
initCode().then(async (decoded) => {
let msg;
let code, msg;
if (decoded) {
editor.setCode(decoded);
code = decoded;
msg = `I have loaded the code from the URL.`;
} else if (latestCode) {
editor.setCode(latestCode);
code = latestCode;
msg = `Your last session has been loaded!`;
} else {
const { code: randomTune, name } = await getRandomTune();
editor.setCode(randomTune);
code = randomTune;
msg = `A random code snippet named "${name}" has been loaded!`;
}
editor.setCode(code);
setDocumentTitle(code);
logger(`Welcome to Strudel! ${msg} Press play or hit ctrl+enter to run it!`, 'highlight');
});
@ -170,6 +174,11 @@ export function Repl({ embedded = false }) {
// UI Actions
//
const setDocumentTitle = (code) => {
const meta = getMetadata(code);
document.title = (meta.title ? `${meta.title} - ` : '') + 'Strudel REPL';
};
const handleTogglePlay = async () => {
editorRef.current?.toggle();
};