diff --git a/public/bundle.js b/public/bundle.js index 61c3d86..36dd52f 100644 --- a/public/bundle.js +++ b/public/bundle.js @@ -1,5 +1,5 @@ //// -// version: d95d2ec +// version: 66c75ff // src/js/dom.ts var content2 = $("content"); @@ -168,6 +168,37 @@ function handleOutput(msg) { // src/js/session.ts var sessionId = randomId(); +var projectName = $("project-name"); +var projectCwd = $("project-cwd"); +var sessionStore = new Map; +function handleSessionStart(msg) { + sessionStore.set("NOSE_DIR", msg.data.NOSE_DIR); + updateProjectName(msg.data.project); + updateCwd(msg.data.cwd); + browserCommands.mode?.(msg.data.mode); +} +function handleSessionUpdate(msg) { + const data = msg.data; + if (data.project) + updateProjectName(data.project); + if (data.cwd) + updateCwd(data.cwd); +} +function updateProjectName(project) { + sessionStore.set("project", project); + projectName.textContent = project; + updateCwd("/"); +} +function updateCwd(cwd) { + cwd = displayProjectPath(cwd); + sessionStore.set("cwd", cwd); + projectCwd.textContent = cwd; +} +function displayProjectPath(path) { + let prefix = sessionStore.get("NOSE_DIR") || ""; + prefix += "/" + sessionStore.get("project"); + return path.replace(prefix, "") || "/"; +} // src/js/stream.ts function handleStreamStart(msg) { @@ -534,8 +565,11 @@ async function dispatchMessage(msg) { case "game:start": await handleGameStart(msg); break; - case "ui:mode": - browserCommands.mode?.(msg.data); + case "session:start": + handleSessionStart(msg); + break; + case "session:update": + handleSessionUpdate(msg); break; default: console.error("unknown message type", msg); @@ -617,7 +651,6 @@ function cacheCommands(cmds) { commands.push(...cmds); commands.push(...Object.keys(browserCommands)); commands.sort(); - console.log("CMDS", commands); } // src/js/completion.ts