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