Retro.Phoenix.Component (Retro v2.2.0) View Source

Toolkit for creating components for Phoenix.

Inspired by Reusable Templates in Phoenix.

Usage

Import Retro.Phoenix.Component

defmodule SampleWeb do
  def view do
    quote do
      # ...

      use Retro.Phoenix.Component,
        view: SampleWeb.ComponentView,
        type: :html

      # ...
    end
  end
end

Create a SampleWeb.ComponentView:

defmodule SampleWeb.ComponentView do
  use SampleWeb, :view
end

Create templates/component directory

It's used for storing templates for above view.

Create a template

Edit templates/component/example.html:

<div class="<%= @class %>">
  <%= @inner %>
</div>

Use the template

<%= c :example, class: "modal" do %>
   <p>Hello World</p>
   <button>OK</button>
<% end %>