PhoenixKitBilling.Web.Components.SettingsTabs (PhoenixKitBilling v0.11.0)

Copy Markdown View Source

The billing settings tab strip, defined once.

It used to be hand-rolled markup repeated verbatim in four templates — settings, provider_settings, currencies and subscription_types — each hardcoding tab-active on its own entry. Adding a fifth page meant editing four files, any one of which could drift, and it is why a daisyUI class rename needed four edits in this module alone.

Rendering goes through core's <.nav_tabs>, so the strip picks up the shared markup, keyboard/ARIA roles and styling rather than restating them.

Summary

Functions

Renders the strip with active_tab marked.

Functions

settings_tabs(assigns)

Renders the strip with active_tab marked.

Paths are passed raw — nav_tabs runs them through the core route helper, which is what applies the install's URL prefix and locale segment.

The key is :path, not the newer :navigate. This module pins core ~> 2.0 and a conformance test enforces that wide pin, so it has to work against every 2.x. Tab link keys live in a runtime map, which no attr declaration can validate, so a :navigate here would not fail to compile against an older core — it would fall through to the button branch and render a strip of dead tabs. :path has existed since 1.7.82.

Attributes

  • active_tab (:string) (required) - Must be one of "general", "providers", "currencies", or "subscription_types".
  • class (:string) - Defaults to "mb-6".