Merge: promote dev to prod

This commit is contained in:
2026-07-15 20:33:56 +02:00
3 changed files with 33 additions and 1 deletions
+1 -1
View File
@@ -1 +1 @@
0.43.0
0.43.1
+24
View File
@@ -67,6 +67,30 @@ export default function NavSidebar({
// in-flow like before. `collapsed` (persisted per-account) now means "unpinned".
const [hovered, setHovered] = useState(false);
const [focused, setFocused] = useState(false);
// onFocus/onBlur (below) track focus through the REACT tree, so the rail's portaled menus
// (language switcher, account popover) count as "inside" and keep it open while you use them.
// The case they miss: a portal unmounts while focused, and browsers fire NO blur when a focused
// node is removed — focus silently falls to the body and `focused` would latch on forever.
// Safety net: whenever focus has landed nowhere, clear it. Deferred a tick so activeElement has
// settled, and rescheduled rather than queued — only the latest state matters.
useEffect(() => {
let timer: number | undefined;
const clearIfFocusLandedNowhere = () => {
const el = document.activeElement;
if (!el || el === document.body || el === document.documentElement) setFocused(false);
};
const soon = () => {
window.clearTimeout(timer);
timer = window.setTimeout(clearIfFocusLandedNowhere, 0);
};
document.addEventListener("focusout", soon);
document.addEventListener("click", soon);
return () => {
document.removeEventListener("focusout", soon);
document.removeEventListener("click", soon);
window.clearTimeout(timer);
};
}, []);
const pinned = !collapsed;
const expanded = pinned || hovered || focused;
const slim = !expanded; // visual: icon-only rail
+8
View File
@@ -14,6 +14,14 @@ export interface ReleaseEntry {
}
export const RELEASE_NOTES: ReleaseEntry[] = [
{
version: "0.43.1",
date: "2026-07-15",
summary: "A fix for the new slim sidebar.",
fixes: [
"The slim sidebar no longer stays stuck open after you use the language switcher or the account menu — it tucks away again as soon as you click elsewhere.",
],
},
{
version: "0.43.0",
date: "2026-07-14",