mix skua.gen.pages (Skua v0.9.0)

Copy Markdown View Source

Generates editable starter pages and wires their routes:

mix skua.gen.pages

Creates:

  • <App>Web.SiteNav — a shared top nav (Overview · Components, plus auth-aware links: a signed-in user's email + Log out, or Register / Sign in). It's injected into Layouts.app, so every <Layouts.app>-wrapped page (auth pages, dashboard) gets it, and rendered directly by the homepage (which has no layout of its own).
  • <App>Web.HomeLive at / — a full-viewport hero (the live Phoenix + Skua version badges above the big app-name heading) and a full-viewport, interactive showcase of real Skua components: clickable toasts, a dialog, drawer, popover, menu, and tooltip, plus cards, badges, an alert, tabs with a table and a list, an accordion, avatars, a progress bar, and a form with an input and select.
  • <App>Web.DashboardLive at /dashboard — an authenticated page with a left sidebar (Dashboard / Settings + Log out pinned to the bottom) and a content area of Skua stat cards.

It also strips phx.gen.auth's stock menu menu-horizontal nav from the root layout, so the shared SiteNav isn't duplicated by a second top bar.

Run mix skua.install first (so the Skua components are imported) and, for the auth-aware nav + the dashboard's auth gate, mix skua.gen.auth.

Routing

/ is pointed at HomeLive via Skua.Install.Patches.router/1. When auth is installed, / is then moved into the :current_user live_session (so the shared SiteNav is auth-aware on the homepage too — it reads @current_scope). /dashboard is inserted into the :require_authenticated_user live_session that phx.gen.auth generates, so it sits behind login. If auth isn't installed (no such live_session), the dashboard route is added to the plain / scope instead and a notice is printed — it then renders for everyone until you add auth.

Idempotent: re-running overwrites the generated pages and leaves the routes, the Layouts.app nav injection, and the stripped stock auth menu in place.