From e0f8b69315146a04850dae38d2535ae9326dd8ec Mon Sep 17 00:00:00 2001 From: carla Date: Thu, 8 May 2025 14:24:18 +0200 Subject: [PATCH] feat: added membersLiveView for testing Primer components --- lib/mv_web/components/layouts.ex | 3 +- lib/mv_web/components/layouts/app.html.heex | 46 +++++++++----------- lib/mv_web/live/members_live.ex | 39 +++++++++++++++++ lib/mv_web/router.ex | 29 ++++++------ priv/static/images/local_it.png | Bin 0 -> 22307 bytes 5 files changed, 76 insertions(+), 41 deletions(-) create mode 100644 lib/mv_web/live/members_live.ex create mode 100644 priv/static/images/local_it.png diff --git a/lib/mv_web/components/layouts.ex b/lib/mv_web/components/layouts.ex index 9aec067..614352f 100644 --- a/lib/mv_web/components/layouts.ex +++ b/lib/mv_web/components/layouts.ex @@ -9,6 +9,7 @@ defmodule MvWeb.Layouts do `use MvWeb, :live_view`. """ use MvWeb, :html + alias PrimerLive.Component, as: Primer - embed_templates "layouts/*" + embed_templates("layouts/*") end diff --git a/lib/mv_web/components/layouts/app.html.heex b/lib/mv_web/components/layouts/app.html.heex index 3b3b607..b2ff400 100644 --- a/lib/mv_web/components/layouts/app.html.heex +++ b/lib/mv_web/components/layouts/app.html.heex @@ -1,29 +1,23 @@ -
-
-
- - - -

- v{Application.spec(:phoenix, :vsn)} -

-
- -
-
+ + <:item> + + + <:item> + + <:toggle>Menu + <:item navigate="/"> + Phoenix Standard Startseite + + + + <:item is_full_width /> + <:item class="mr-0"> + + +
<.flash_group flash={@flash} /> diff --git a/lib/mv_web/live/members_live.ex b/lib/mv_web/live/members_live.ex new file mode 100644 index 0000000..c9ec6a4 --- /dev/null +++ b/lib/mv_web/live/members_live.ex @@ -0,0 +1,39 @@ +defmodule MvWeb.MembersLive do + use MvWeb, :live_view + alias PrimerLive.Component, as: Primer + + def mount(_params, _session, socket) do + # Initialize any state you need here + {:ok, + assign( + socket, + :title, + "Willkommen zur test Live View für PrimerLive bis hier members gezeigt werden..." + )} + end + + def render(assigns) do + ~H""" +
+

<%= @title %>

+ Entwurf + + Heading + <:actions> + Action + + <:description> + Description + + + Click Me! +
+ """ + end + + def handle_event("click_me", _value, socket) do + # Handle the button click event + new_title = "You clicked the button!" + {:noreply, assign(socket, :title, new_title)} + end +end diff --git a/lib/mv_web/router.ex b/lib/mv_web/router.ex index c8525e9..7f645f1 100644 --- a/lib/mv_web/router.ex +++ b/lib/mv_web/router.ex @@ -2,22 +2,23 @@ defmodule MvWeb.Router do use MvWeb, :router pipeline :browser do - plug :accepts, ["html"] - plug :fetch_session - plug :fetch_live_flash - plug :put_root_layout, html: {MvWeb.Layouts, :root} - plug :protect_from_forgery - plug :put_secure_browser_headers + plug(:accepts, ["html"]) + plug(:fetch_session) + plug(:fetch_live_flash) + plug(:put_root_layout, html: {MvWeb.Layouts, :root}) + plug(:protect_from_forgery) + plug(:put_secure_browser_headers) end pipeline :api do - plug :accepts, ["json"] + plug(:accepts, ["json"]) end scope "/", MvWeb do - pipe_through :browser + pipe_through(:browser) - get "/", PageController, :home + get("/", PageController, :home) + live("/members", MembersLive, :index) end # Other scopes may use custom stacks. @@ -35,10 +36,10 @@ defmodule MvWeb.Router do import Phoenix.LiveDashboard.Router scope "/dev" do - pipe_through :browser + pipe_through(:browser) - live_dashboard "/dashboard", metrics: MvWeb.Telemetry - forward "/mailbox", Plug.Swoosh.MailboxPreview + live_dashboard("/dashboard", metrics: MvWeb.Telemetry) + forward("/mailbox", Plug.Swoosh.MailboxPreview) end end @@ -46,9 +47,9 @@ defmodule MvWeb.Router do import AshAdmin.Router scope "/admin" do - pipe_through :browser + pipe_through(:browser) - ash_admin "/" + ash_admin("/") end end end diff --git a/priv/static/images/local_it.png b/priv/static/images/local_it.png new file mode 100644 index 0000000000000000000000000000000000000000..c1dbc4e84b0975e342f06c335ae076df010b876f GIT binary patch literal 22307 zcmb@uby$<{7dSjb!2~~wbf`2)jF1KuiP0USL>dI7B?bl|(jz5CH={#FDJTd?4cKIq zbc4XgXnxQ9UcdMK=l%1YZeDx#Joh>G>2vOLjMULmxpkfKItT>11yOyj2LfH%0D;I1 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 literal 0 HcmV?d00001