The campaign tabs get scroll arrows back, without hiding the selected tab

Featurekamo-internal
Shipped
September 16, 2026 at 5:02 PM UTC
Author
Kamo
Commit
a7b355a

On a screen too narrow for the five sub-tabs, the strip now shows left and right arrows beside it, as the maximized-window tab strip does. It had none since the first version, where MUI's "auto" scroll buttons cut a tab opened by link (?tab=archived) in half: they appear only after MUI has scrolled the selected tab into view, take 80px from the strip, and MUI's own scroll animation then overwrote any correction. CampaignTabStrip puts the tabs in a plain scroller with no bar of its own (data-kamo-scrollbar="off"), shows the arrows only while the tabs overflow, and scrolls the selected tab back into view whenever it changes and whenever the arrows coming or going changes the width. arrowState and ARROW_SCROLL_FRACTION come from maximizedTabStripModel, so both strips agree on when an arrow is live and how far it moves. Checked in Chrome: at 1600px no arrows; at 700px and 520px every tab opened by link is fully visible with the indicator under it, including the middle ones; the arrows page the strip each way; ArrowRight moves focus along the tabs and keeps the focused tab in view, and Enter selects it. Its arrow labels are components.scroll's, repaired by hand in every locale in kamo-translation-dictionary cc484906 (Arabic had "damn it" for Scroll right). Vitest reds here are not from this change and fail identically on main: oneScrollbar.test.ts (on NavTopMenuPanel.tsx) and recipientStatus.test.ts (4, lagging 98156e52).

All changes

Like what you see shipping?

All of it arrives in your workspace on its own. Start on the free plan and read this page again in a month.

Start Free ForeverView Pricing