()
| 96 | } |
| 97 | |
| 98 | async function reinitWave() { |
| 99 | console.log("Reinit Wave"); |
| 100 | getApi().sendLog("Reinit Wave"); |
| 101 | |
| 102 | // We use this hack to prevent a flicker of the previously-hovered tab when this view was last active. |
| 103 | document.body.classList.add("nohover"); |
| 104 | requestAnimationFrame(() => |
| 105 | setTimeout(() => { |
| 106 | document.body.classList.remove("nohover"); |
| 107 | }, 100) |
| 108 | ); |
| 109 | |
| 110 | await WOS.reloadWaveObject<Client>(WOS.makeORef("client", savedInitOpts.clientId)); |
| 111 | const waveWindow = await WOS.reloadWaveObject<WaveWindow>(WOS.makeORef("window", savedInitOpts.windowId)); |
| 112 | const ws = await WOS.reloadWaveObject<Workspace>(WOS.makeORef("workspace", waveWindow.workspaceid)); |
| 113 | const initialTab = await WOS.reloadWaveObject<Tab>(WOS.makeORef("tab", savedInitOpts.tabId)); |
| 114 | await WOS.reloadWaveObject<LayoutState>(WOS.makeORef("layout", initialTab.layoutstate)); |
| 115 | reloadAllWorkspaceTabs(ws); |
| 116 | document.title = `Wave Terminal - ${initialTab.name}`; // TODO update with tab name change |
| 117 | getApi().setWindowInitStatus("wave-ready"); |
| 118 | globalStore.set(atoms.reinitVersion, globalStore.get(atoms.reinitVersion) + 1); |
| 119 | globalStore.set(atoms.updaterStatusAtom, getApi().getUpdaterStatus()); |
| 120 | setTimeout(() => { |
| 121 | globalRefocus(); |
| 122 | }, 50); |
| 123 | } |
| 124 | |
| 125 | function reloadAllWorkspaceTabs(ws: Workspace) { |
| 126 | if (ws == null || !ws.tabids?.length) { |
no test coverage detected