fix(view,panel): the composer clears the navbar and the keyboard, panel opens on the master

The inset only knew the desktop status bar, so on a phone the composer sat
under the navbar - which paints over a leaf instead of shortening it - and
the software keyboard hid it outright. Every bottom bar is measured now, and
the keyboard is read off `visualViewport`: it shrinks the visible area
without resizing the layout, so no workspace event fires and the panel had
no way to know. Focus re-measures once iOS has finished animating the keys in.

The panel asks the shell to fall back to the latest master, so opening it on
a phone lands in the day's thread rather than on a prompt.

The preview fixtures anchor at midday instead of the wall clock: spread over
hours, a run just after midnight pushed half of them into yesterday and
emptied the "Today" group the switcher smoke checks.
This commit is contained in:
hh
2026-09-05 00:20:33 +02:00
parent a76ee29255
commit cc46abc34f
4 changed files with 76 additions and 10 deletions
+17
View File
@@ -191,6 +191,23 @@ check(
text().includes("Xiaomi Mi Blaster")
);
// Nothing picked - the panel just opened on a phone - lands on the master
// rather than on a prompt to pick something.
state.selected = null;
flushSync();
await settle();
flushSync();
check(
"with nothing picked it falls back to the master",
state.selected === MASTER,
String(state.selected)
);
state.selected = BRANCH_BLASTER;
flushSync();
await settle();
flushSync();
check("an explicit pick still wins", state.selected === BRANCH_BLASTER);
const composer = target.querySelector("textarea");
check("composer is there", composer !== null);
if (composer) {