Skip to content

Use core nav_tabs for all six CRM tab strips - #24

Merged
ddon merged 2 commits into
BeamLabEU:mainfrom
mdon:fix/nav-tabs-border
Aug 22, 2026
Merged

Use core nav_tabs for all six CRM tab strips#24
ddon merged 2 commits into
BeamLabEU:mainfrom
mdon:fix/nav-tabs-border

Conversation

@mdon

@mdon mdon commented Aug 22, 2026

Copy link
Copy Markdown
Contributor

Two commits: the contact/company show strips (tuple tab_defs become maps, kept uuid-free so valid_tabs/3 shares the list; nav_tab_defs/4 adds the patch URLs) and the four list-page filter strips (companies/contacts incl. the conditional Trashed tab with its count label; lists; list_members, whose "All" maps nil to a string id). All URLs come from the pages' existing Paths-based builders, passed to :patch verbatim — which is the change in core #746 this wave forced: those URLs are already prefixed, and 2.13.5 double-prefixed them.


Part of the underline-tab consolidation wave — companion to BeamLabEU/phoenix_kit#746, which this depends on. ⚠️ Merge core first and release: variant={:border} / verbatim :patch need the new core, so CI here stays red against Hex 2.13.5 until the release lands (same sequencing as the first wave). mix precommit green against local core; deployed to max-dev and verified.

mdon added 2 commits August 22, 2026 03:54
Both strips were hand-rolled copies of the border tab pattern with tuple
tab_defs. The defs are maps now (a positional tuple cannot grow a :badge
or link key without breaking every consumer), kept uuid-free so
valid_tabs/3 shares the list; nav_tab_defs/4 adds the patch URLs.

tab_path/2 URLs are already prefixed (Paths -> Routes.path), which is
exactly why nav_tabs' :patch passes through verbatim as of this wave —
running them through Routes.path a second time double-prefixed.
companies/contacts share the five-filter shape plus the conditional
Trashed tab (rendered only while the trash is non-empty, keeping its
count label); lists and list_members are the smaller versions of the
same pattern. All URLs come from the pages' existing path builders,
passed to :patch verbatim.

list_members' "All" tab is @filter == nil; nav_tabs compares string
ids, so the assign maps nil to "all".
@ddon
ddon merged commit 39c685b into BeamLabEU:main Aug 22, 2026
ddon added a commit that referenced this pull request Aug 22, 2026
Lock the six nav_tabs strips and the Catalogue-tab KeyError with tests,
normalize supplier uuids at process_supplier_row/4 so a raw Postgrex uuid
cannot re-enter company metadata, and always release the catalogue-probe
sandbox owner.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants