defmodule MoonWeb.Pages.Components.SwitcherPage do @moduledoc false use MoonWeb, :live_view alias Moon.Autolayouts.TopToDown alias Moon.Components.Heading alias Moon.Components.Link alias Moon.Components.Switcher alias MoonWeb.Components.ExampleAndCode alias MoonWeb.Components.Page data(breadcrumbs, :any, default: [ %{ to: "#", name: "Components v1" }, %{ to: "/components/switcher", name: "Switcher" } ] ) def mount(_params, _session, socket) do socket = assign(socket, tabs: ~w(One Two Three), selected_tab: "One" ) {:ok, socket} end def handle_params(_params, uri, socket) do {:noreply, assign(socket, uri: uri)} end def render(assigns) do ~F""" Switcher

Sourcecode of this page

<:example> <:code>{switcher_1_code()} <:state>@tabs = {inspect(@tabs, pretty: true)}

@selected_tab = {@selected_tab}
""" end def handle_event("tab_click", %{"selected-item" => selected_item}, socket) do socket = assign(socket, selected_tab: selected_item) {:noreply, socket} end def switcher_1_code do """ alias Moon.Components.Switcher def handle_event("tab_click", %{"selected-item" => selected_item}, socket) do socket = assign(socket, selected_tab: selected_item) {:noreply, socket} end """ end end