mirror of
https://github.com/nesquena/hermes-webui.git
synced 2026-05-25 19:20:16 +00:00
Synchronize initial terminal open layout
This commit is contained in:
+10
-3
@@ -418,18 +418,25 @@ async function toggleComposerTerminal(force){
|
||||
return;
|
||||
}
|
||||
const {panel,inner}= _terminalEls();
|
||||
const messages=_terminalMessagesEl();
|
||||
if(!panel)return;
|
||||
clearTimeout(TERMINAL_UI.closeTimer);
|
||||
panel.hidden=false;
|
||||
_initTerminalResizeHandle();
|
||||
_resetTerminalHeightForViewport();
|
||||
if(messages)messages.classList.add('terminal-expanding-from-dock');
|
||||
_setTerminalChromeState('expanded');
|
||||
TERMINAL_UI.open=true;
|
||||
TERMINAL_UI.collapsed=false;
|
||||
_syncTerminalTranscriptSpace(true,{immediate:true});
|
||||
if(messages)void messages.offsetHeight;
|
||||
requestAnimationFrame(()=>{
|
||||
panel.classList.add('is-open');
|
||||
window.setTimeout(_fitTerminal,80);
|
||||
setTimeout(()=>{
|
||||
if(messages)messages.classList.remove('terminal-expanding-from-dock');
|
||||
},120);
|
||||
});
|
||||
TERMINAL_UI.open=true;
|
||||
_syncTerminalTranscriptSpace(true);
|
||||
if(workspace)workspace.textContent=_terminalWorkspaceName();
|
||||
syncTerminalButton();
|
||||
if(!TERMINAL_UI.resizeObserver&&window.ResizeObserver){
|
||||
TERMINAL_UI.resizeObserver=new ResizeObserver(()=>_fitTerminal());
|
||||
|
||||
@@ -88,6 +88,19 @@ def test_terminal_open_reserves_transcript_space():
|
||||
assert "scrollToBottom" in terminal_js
|
||||
|
||||
|
||||
def test_terminal_initial_open_settles_transcript_space_before_reveal():
|
||||
terminal_js = _read("static/terminal.js")
|
||||
|
||||
open_block = terminal_js.split("async function toggleComposerTerminal", 1)[1].split("function collapseComposerTerminal", 1)[0]
|
||||
assert "messages.classList.add('terminal-expanding-from-dock')" in open_block
|
||||
assert "_syncTerminalTranscriptSpace(true,{immediate:true});" in open_block
|
||||
assert "void messages.offsetHeight;" in open_block
|
||||
assert "panel.classList.add('is-open')" in open_block
|
||||
assert "messages.classList.remove('terminal-expanding-from-dock')" in open_block
|
||||
assert open_block.index("_syncTerminalTranscriptSpace(true,{immediate:true});") < open_block.index("panel.classList.add('is-open')")
|
||||
assert open_block.index("void messages.offsetHeight;") < open_block.index("panel.classList.add('is-open')")
|
||||
|
||||
|
||||
def test_terminal_collapsed_state_preserves_pty_and_output_surface():
|
||||
html = _read("static/index.html")
|
||||
terminal_js = _read("static/terminal.js")
|
||||
|
||||
Reference in New Issue
Block a user