diff --git a/artifacts/tx-os/src/pages/protocol.tsx b/artifacts/tx-os/src/pages/protocol.tsx index 293a52f0..1562624a 100644 --- a/artifacts/tx-os/src/pages/protocol.tsx +++ b/artifacts/tx-os/src/pages/protocol.tsx @@ -884,6 +884,21 @@ export default function ProtocolPage() { const [roomsGroupOpen, setRoomsGroupOpen] = useState(false); const [menuOpen, setMenuOpen] = useState(true); + // Auto-open the sidebar group containing the active tab (initial load or + // deep link), while still letting the user collapse it manually afterwards. + useEffect(() => { + if ( + tab === "roomsDashboard" || + tab === "rooms" || + tab === "bookings" || + tab === "bookingSettings" + ) { + setRoomsGroupOpen(true); + } else if (tab === "gifts" || tab === "issues") { + setGiftsGroupOpen(true); + } + }, [tab]); + const bookingAction = useMutation({ mutationFn: (args: { id: number; action: "approve" | "cancel" }) => apiJson(`${API}/protocol/bookings/${args.id}/${args.action}`, { @@ -1466,7 +1481,7 @@ export default function ProtocolPage() { x.key === "bookingSettings", ); const groupActive = children.some((x) => x.key === tab); - const open = roomsGroupOpen || groupActive; + const open = roomsGroupOpen; return (