diff --git a/lib/cannery_web/live/ammo_group_live/form_component.ex b/lib/cannery_web/live/ammo_group_live/form_component.ex
index ce8e3a24..409226bf 100644
--- a/lib/cannery_web/live/ammo_group_live/form_component.ex
+++ b/lib/cannery_web/live/ammo_group_live/form_component.ex
@@ -44,70 +44,6 @@ defmodule CanneryWeb.AmmoGroupLive.FormComponent do
save_ammo_group(socket, action, ammo_group_params)
end
- @impl true
- def render(assigns) do
- ~H"""
-
-
- <%= @title %>
-
- <.form
- let={f}
- for={@changeset}
- id="ammo_group-form"
- phx-target={@myself}
- phx-change="validate"
- phx-submit="save"
- class="grid grid-cols-3 justify-center items-center space-y-4"
- >
- <%= if @changeset.action do %>
-
- <%= changeset_errors(@changeset) %>
-
- <% end %>
-
- <%= label(f, :ammo_type_id, gettext("Ammo type"), class: "mr-4 title text-lg text-primary-500") %>
- <%= select(f, :ammo_type_id, ammo_type_options(@ammo_types),
- class: "text-center col-span-2 input input-primary"
- ) %>
- <%= error_tag(f, :ammo_type_id, "col-span-3 text-center") %>
-
- <%= label(f, :count, gettext("Count"), class: "mr-4 title text-lg text-primary-500") %>
- <%= number_input(f, :count,
- class: "text-center col-span-2 input input-primary",
- min: 1
- ) %>
- <%= error_tag(f, :count, "col-span-3 text-center") %>
-
- <%= label(f, :price_paid, gettext("Price paid"), class: "mr-4 title text-lg text-primary-500") %>
- <%= number_input(f, :price_paid,
- step: "0.01",
- class: "text-center col-span-2 input input-primary"
- ) %>
- <%= error_tag(f, :price_paid, "col-span-3 text-center") %>
-
- <%= label(f, :notes, gettext("Notes"), class: "mr-4 title text-lg text-primary-500") %>
- <%= textarea(f, :notes,
- class: "text-center col-span-2 input input-primary",
- phx_hook: "MaintainAttrs"
- ) %>
- <%= error_tag(f, :notes, "col-span-3 text-center") %>
-
- <%= label(f, :container, gettext("Container"), class: "mr-4 title text-lg text-primary-500") %>
- <%= select(f, :container_id, container_options(@containers),
- class: "text-center col-span-2 input input-primary"
- ) %>
- <%= error_tag(f, :container_id, "col-span-3 text-center") %>
-
- <%= submit(dgettext("actions", "Save"),
- phx_disable_with: dgettext("prompts", "Saving..."),
- class: "mx-auto col-span-3 btn btn-primary"
- ) %>
-
-
- """
- end
-
# HTML Helpers
@spec container_options([Container.t()]) :: [{String.t(), Container.id()}]
defp container_options(containers) do
diff --git a/lib/cannery_web/live/ammo_group_live/form_component.html.heex b/lib/cannery_web/live/ammo_group_live/form_component.html.heex
new file mode 100644
index 00000000..bd47fed5
--- /dev/null
+++ b/lib/cannery_web/live/ammo_group_live/form_component.html.heex
@@ -0,0 +1,59 @@
+
+
+ <%= @title %>
+
+
+ <.form
+ let={f}
+ for={@changeset}
+ id="ammo_group-form"
+ phx-target={@myself}
+ phx-change="validate"
+ phx-submit="save"
+ class="grid grid-cols-3 justify-center items-center space-y-4"
+ >
+ <%= if @changeset.action do %>
+
+ <%= changeset_errors(@changeset) %>
+
+ <% end %>
+
+ <%= label(f, :ammo_type_id, gettext("Ammo type"), class: "mr-4 title text-lg text-primary-500") %>
+ <%= select(f, :ammo_type_id, ammo_type_options(@ammo_types),
+ class: "text-center col-span-2 input input-primary"
+ ) %>
+ <%= error_tag(f, :ammo_type_id, "col-span-3 text-center") %>
+
+ <%= label(f, :count, gettext("Count"), class: "mr-4 title text-lg text-primary-500") %>
+ <%= number_input(f, :count,
+ class: "text-center col-span-2 input input-primary",
+ min: 1
+ ) %>
+ <%= error_tag(f, :count, "col-span-3 text-center") %>
+
+ <%= label(f, :price_paid, gettext("Price paid"), class: "mr-4 title text-lg text-primary-500") %>
+ <%= number_input(f, :price_paid,
+ step: "0.01",
+ class: "text-center col-span-2 input input-primary"
+ ) %>
+ <%= error_tag(f, :price_paid, "col-span-3 text-center") %>
+
+ <%= label(f, :notes, gettext("Notes"), class: "mr-4 title text-lg text-primary-500") %>
+ <%= textarea(f, :notes,
+ class: "text-center col-span-2 input input-primary",
+ phx_hook: "MaintainAttrs"
+ ) %>
+ <%= error_tag(f, :notes, "col-span-3 text-center") %>
+
+ <%= label(f, :container, gettext("Container"), class: "mr-4 title text-lg text-primary-500") %>
+ <%= select(f, :container_id, container_options(@containers),
+ class: "text-center col-span-2 input input-primary"
+ ) %>
+ <%= error_tag(f, :container_id, "col-span-3 text-center") %>
+
+ <%= submit(dgettext("actions", "Save"),
+ phx_disable_with: dgettext("prompts", "Saving..."),
+ class: "mx-auto col-span-3 btn btn-primary"
+ ) %>
+
+
diff --git a/lib/cannery_web/live/ammo_type_live/form_component.ex b/lib/cannery_web/live/ammo_type_live/form_component.ex
index 147f290c..ac5e910e 100644
--- a/lib/cannery_web/live/ammo_type_live/form_component.ex
+++ b/lib/cannery_web/live/ammo_type_live/form_component.ex
@@ -34,139 +34,6 @@ defmodule CanneryWeb.AmmoTypeLive.FormComponent do
save_ammo_type(socket, action, ammo_type_params)
end
- @impl true
- def render(assigns) do
- ~H"""
-
-
- <%= @title %>
-
- <.form
- let={f}
- for={@changeset}
- id="ammo_type-form"
- phx-target={@myself}
- phx-change="validate"
- phx-submit="save"
- class="grid grid-cols-3 justify-center items-center space-y-4"
- >
- <%= if @changeset.action do %>
-
- <%= changeset_errors(@changeset) %>
-
- <% end %>
-
- <%= label(f, :name, gettext("Name"), class: "mr-4 title text-lg text-primary-500") %>
- <%= text_input(f, :name, class: "text-center col-span-2 input input-primary") %>
- <%= error_tag(f, :name, "col-span-3 text-center") %>
-
- <%= label(f, :desc, gettext("Description"), class: "mr-4 title text-lg text-primary-500") %>
- <%= textarea(f, :desc,
- class: "text-center col-span-2 input input-primary",
- phx_hook: "MaintainAttrs"
- ) %>
- <%= error_tag(f, :desc, "col-span-3 text-center") %>
-
-
- <%= gettext("Example bullet type abbreviations") %>
-
- <%= label(f, :bullet_type, gettext("Bullet type"), class: "mr-4 title text-lg text-primary-500") %>
- <%= text_input(f, :bullet_type,
- class: "text-center col-span-2 input input-primary",
- placeholder: gettext("FMJ")
- ) %>
- <%= error_tag(f, :bullet_type, "col-span-3 text-center") %>
-
- <%= label(f, :bullet_core, gettext("Bullet core"), class: "mr-4 title text-lg text-primary-500") %>
- <%= text_input(f, :bullet_core,
- class: "text-center col-span-2 input input-primary",
- placeholder: gettext("Steel")
- ) %>
- <%= error_tag(f, :bullet_core, "col-span-3 text-center") %>
-
- <%= label(f, :cartridge, gettext("Cartridge"), class: "mr-4 title text-lg text-primary-500") %>
- <%= text_input(f, :cartridge,
- class: "text-center col-span-2 input input-primary",
- placeholder: "5.56x46mm NATO"
- ) %>
- <%= error_tag(f, :cartridge, "col-span-3 text-center") %>
-
- <%= label(f, :caliber, gettext("Caliber"), class: "mr-4 title text-lg text-primary-500") %>
- <%= text_input(f, :caliber,
- class: "text-center col-span-2 input input-primary",
- placeholder: ".223"
- ) %>
- <%= error_tag(f, :caliber, "col-span-3 text-center") %>
-
- <%= label(f, :case_material, gettext("Case material"), class: "mr-4 title text-lg text-primary-500") %>
- <%= text_input(f, :case_material,
- class: "text-center col-span-2 input input-primary",
- placeholder: gettext("Brass")
- ) %>
- <%= error_tag(f, :case_material, "col-span-3 text-center") %>
-
- <%= label(f, :grains, gettext("Grains"), class: "mr-4 title text-lg text-primary-500") %>
- <%= number_input(f, :grains,
- step: "1",
- class: "text-center col-span-2 input input-primary",
- min: 1
- ) %>
- <%= error_tag(f, :grains, "col-span-3 text-center") %>
-
- <%= label(f, :pressure, gettext("Pressure"), class: "mr-4 title text-lg text-primary-500") %>
- <%= text_input(f, :pressure,
- class: "text-center col-span-2 input input-primary",
- placeholder: "+P"
- ) %>
- <%= error_tag(f, :pressure, "col-span-3 text-center") %>
-
- <%= label(f, :primer_type, gettext("Primer type"), class: "mr-4 title text-lg text-primary-500") %>
- <%= text_input(f, :primer_type,
- class: "text-center col-span-2 input input-primary",
- placeholder: "Boxer"
- ) %>
- <%= error_tag(f, :primer_type, "col-span-3 text-center") %>
-
- <%= label(f, :rimfire, gettext("Rimfire"), class: "mr-4 title text-lg text-primary-500") %>
- <%= checkbox(f, :rimfire, class: "text-center col-span-2 checkbox") %>
- <%= error_tag(f, :rimfire, "col-span-3 text-center") %>
-
- <%= label(f, :tracer, gettext("Tracer"), class: "mr-4 title text-lg text-primary-500") %>
- <%= checkbox(f, :tracer, class: "text-center col-span-2 checkbox") %>
- <%= error_tag(f, :tracer, "col-span-3 text-center") %>
-
- <%= label(f, :incendiary, gettext("Incendiary"), class: "mr-4 title text-lg text-primary-500") %>
- <%= checkbox(f, :incendiary, class: "text-center col-span-2 checkbox") %>
- <%= error_tag(f, :incendiary, "col-span-3 text-center") %>
-
- <%= label(f, :blank, gettext("Blank"), class: "mr-4 title text-lg text-primary-500") %>
- <%= checkbox(f, :blank, class: "text-center col-span-2 checkbox") %>
- <%= error_tag(f, :blank, "col-span-3 text-center") %>
-
- <%= label(f, :corrosive, gettext("Corrosive"), class: "mr-4 title text-lg text-primary-500") %>
- <%= checkbox(f, :corrosive, class: "text-center col-span-2 checkbox") %>
- <%= error_tag(f, :corrosive, "col-span-3 text-center") %>
-
- <%= label(f, :manufacturer, gettext("Manufacturer"), class: "mr-4 title text-lg text-primary-500") %>
- <%= text_input(f, :manufacturer, class: "text-center col-span-2 input input-primary") %>
- <%= error_tag(f, :manufacturer, "col-span-3 text-center") %>
-
- <%= label(f, :sku, gettext("SKU"), class: "mr-4 title text-lg text-primary-500") %>
- <%= text_input(f, :sku, class: "text-center col-span-2 input input-primary") %>
- <%= error_tag(f, :sku, "col-span-3 text-center") %>
-
- <%= submit(dgettext("actions", "Save"),
- phx_disable_with: dgettext("prompts", "Saving..."),
- class: "mx-auto col-span-3 btn btn-primary"
- ) %>
-
-
- """
- end
-
defp save_ammo_type(
%{assigns: %{ammo_type: ammo_type, current_user: current_user, return_to: return_to}} =
socket,
diff --git a/lib/cannery_web/live/ammo_type_live/form_component.html.heex b/lib/cannery_web/live/ammo_type_live/form_component.html.heex
new file mode 100644
index 00000000..1f0f96c7
--- /dev/null
+++ b/lib/cannery_web/live/ammo_type_live/form_component.html.heex
@@ -0,0 +1,127 @@
+
+
+ <%= @title %>
+
+ <.form
+ let={f}
+ for={@changeset}
+ id="ammo_type-form"
+ phx-target={@myself}
+ phx-change="validate"
+ phx-submit="save"
+ class="grid grid-cols-3 justify-center items-center space-y-4"
+ >
+ <%= if @changeset.action do %>
+
+ <%= changeset_errors(@changeset) %>
+
+ <% end %>
+
+ <%= label(f, :name, gettext("Name"), class: "mr-4 title text-lg text-primary-500") %>
+ <%= text_input(f, :name, class: "text-center col-span-2 input input-primary") %>
+ <%= error_tag(f, :name, "col-span-3 text-center") %>
+
+ <%= label(f, :desc, gettext("Description"), class: "mr-4 title text-lg text-primary-500") %>
+ <%= textarea(f, :desc,
+ class: "text-center col-span-2 input input-primary",
+ phx_hook: "MaintainAttrs"
+ ) %>
+ <%= error_tag(f, :desc, "col-span-3 text-center") %>
+
+
+ <%= gettext("Example bullet type abbreviations") %>
+
+ <%= label(f, :bullet_type, gettext("Bullet type"), class: "mr-4 title text-lg text-primary-500") %>
+ <%= text_input(f, :bullet_type,
+ class: "text-center col-span-2 input input-primary",
+ placeholder: gettext("FMJ")
+ ) %>
+ <%= error_tag(f, :bullet_type, "col-span-3 text-center") %>
+
+ <%= label(f, :bullet_core, gettext("Bullet core"), class: "mr-4 title text-lg text-primary-500") %>
+ <%= text_input(f, :bullet_core,
+ class: "text-center col-span-2 input input-primary",
+ placeholder: gettext("Steel")
+ ) %>
+ <%= error_tag(f, :bullet_core, "col-span-3 text-center") %>
+
+ <%= label(f, :cartridge, gettext("Cartridge"), class: "mr-4 title text-lg text-primary-500") %>
+ <%= text_input(f, :cartridge,
+ class: "text-center col-span-2 input input-primary",
+ placeholder: "5.56x46mm NATO"
+ ) %>
+ <%= error_tag(f, :cartridge, "col-span-3 text-center") %>
+
+ <%= label(f, :caliber, gettext("Caliber"), class: "mr-4 title text-lg text-primary-500") %>
+ <%= text_input(f, :caliber,
+ class: "text-center col-span-2 input input-primary",
+ placeholder: ".223"
+ ) %>
+ <%= error_tag(f, :caliber, "col-span-3 text-center") %>
+
+ <%= label(f, :case_material, gettext("Case material"), class: "mr-4 title text-lg text-primary-500") %>
+ <%= text_input(f, :case_material,
+ class: "text-center col-span-2 input input-primary",
+ placeholder: gettext("Brass")
+ ) %>
+ <%= error_tag(f, :case_material, "col-span-3 text-center") %>
+
+ <%= label(f, :grains, gettext("Grains"), class: "mr-4 title text-lg text-primary-500") %>
+ <%= number_input(f, :grains,
+ step: "1",
+ class: "text-center col-span-2 input input-primary",
+ min: 1
+ ) %>
+ <%= error_tag(f, :grains, "col-span-3 text-center") %>
+
+ <%= label(f, :pressure, gettext("Pressure"), class: "mr-4 title text-lg text-primary-500") %>
+ <%= text_input(f, :pressure,
+ class: "text-center col-span-2 input input-primary",
+ placeholder: "+P"
+ ) %>
+ <%= error_tag(f, :pressure, "col-span-3 text-center") %>
+
+ <%= label(f, :primer_type, gettext("Primer type"), class: "mr-4 title text-lg text-primary-500") %>
+ <%= text_input(f, :primer_type,
+ class: "text-center col-span-2 input input-primary",
+ placeholder: "Boxer"
+ ) %>
+ <%= error_tag(f, :primer_type, "col-span-3 text-center") %>
+
+ <%= label(f, :rimfire, gettext("Rimfire"), class: "mr-4 title text-lg text-primary-500") %>
+ <%= checkbox(f, :rimfire, class: "text-center col-span-2 checkbox") %>
+ <%= error_tag(f, :rimfire, "col-span-3 text-center") %>
+
+ <%= label(f, :tracer, gettext("Tracer"), class: "mr-4 title text-lg text-primary-500") %>
+ <%= checkbox(f, :tracer, class: "text-center col-span-2 checkbox") %>
+ <%= error_tag(f, :tracer, "col-span-3 text-center") %>
+
+ <%= label(f, :incendiary, gettext("Incendiary"), class: "mr-4 title text-lg text-primary-500") %>
+ <%= checkbox(f, :incendiary, class: "text-center col-span-2 checkbox") %>
+ <%= error_tag(f, :incendiary, "col-span-3 text-center") %>
+
+ <%= label(f, :blank, gettext("Blank"), class: "mr-4 title text-lg text-primary-500") %>
+ <%= checkbox(f, :blank, class: "text-center col-span-2 checkbox") %>
+ <%= error_tag(f, :blank, "col-span-3 text-center") %>
+
+ <%= label(f, :corrosive, gettext("Corrosive"), class: "mr-4 title text-lg text-primary-500") %>
+ <%= checkbox(f, :corrosive, class: "text-center col-span-2 checkbox") %>
+ <%= error_tag(f, :corrosive, "col-span-3 text-center") %>
+
+ <%= label(f, :manufacturer, gettext("Manufacturer"), class: "mr-4 title text-lg text-primary-500") %>
+ <%= text_input(f, :manufacturer, class: "text-center col-span-2 input input-primary") %>
+ <%= error_tag(f, :manufacturer, "col-span-3 text-center") %>
+
+ <%= label(f, :sku, gettext("SKU"), class: "mr-4 title text-lg text-primary-500") %>
+ <%= text_input(f, :sku, class: "text-center col-span-2 input input-primary") %>
+ <%= error_tag(f, :sku, "col-span-3 text-center") %>
+
+ <%= submit(dgettext("actions", "Save"),
+ phx_disable_with: dgettext("prompts", "Saving..."),
+ class: "mx-auto col-span-3 btn btn-primary"
+ ) %>
+
+
diff --git a/lib/cannery_web/live/container_live/add_tag_component.ex b/lib/cannery_web/live/container_live/add_tag_component.ex
index 6cd43cf6..e6be4088 100644
--- a/lib/cannery_web/live/container_live/add_tag_component.ex
+++ b/lib/cannery_web/live/container_live/add_tag_component.ex
@@ -44,34 +44,6 @@ defmodule CanneryWeb.ContainerLive.AddTagComponent do
{:noreply, socket}
end
- @impl true
- def render(assigns) do
- ~H"""
-
-
- <%= @title %>
-
-
- <.form
- let={f}
- for={:tag}
- id="add-tag-to-container-form"
- class="grid grid-cols-3 justify-center items-center space-x-2"
- phx-target={@myself}
- phx-submit="save"
- >
- <%= select(f, :tag_id, tag_options(@tags), class: "text-center col-span-2 input input-primary") %>
- <%= error_tag(f, :tag_id, "col-span-3 text-center") %>
-
- <%= submit(dgettext("actions", "Add"),
- class: "mx-auto btn btn-primary",
- phx_disable_with: dgettext("prompts", "Adding...")
- ) %>
-
-
- """
- end
-
@spec tag_options([Tag.t()]) :: [{String.t(), Tag.id()}]
defp tag_options(tags) do
tags |> Enum.map(fn %{id: id, name: name} -> {name, id} end)
diff --git a/lib/cannery_web/live/container_live/add_tag_component.html.heex b/lib/cannery_web/live/container_live/add_tag_component.html.heex
new file mode 100644
index 00000000..dfc1a328
--- /dev/null
+++ b/lib/cannery_web/live/container_live/add_tag_component.html.heex
@@ -0,0 +1,22 @@
+
+
+ <%= @title %>
+
+
+ <.form
+ let={f}
+ for={:tag}
+ id="add-tag-to-container-form"
+ class="grid grid-cols-3 justify-center items-center space-x-2"
+ phx-target={@myself}
+ phx-submit="save"
+ >
+ <%= select(f, :tag_id, tag_options(@tags), class: "text-center col-span-2 input input-primary") %>
+ <%= error_tag(f, :tag_id, "col-span-3 text-center") %>
+
+ <%= submit(dgettext("actions", "Add"),
+ class: "mx-auto btn btn-primary",
+ phx_disable_with: dgettext("prompts", "Adding...")
+ ) %>
+
+
diff --git a/lib/cannery_web/live/container_live/form_component.ex b/lib/cannery_web/live/container_live/form_component.ex
index e4ed9c55..c22fe4b6 100644
--- a/lib/cannery_web/live/container_live/form_component.ex
+++ b/lib/cannery_web/live/container_live/form_component.ex
@@ -35,67 +35,6 @@ defmodule CanneryWeb.ContainerLive.FormComponent do
save_container(socket, action, container_params)
end
- @impl true
- def render(assigns) do
- ~H"""
-
-
- <%= @title %>
-
- <.form
- let={f}
- for={@changeset}
- id="container-form"
- class="grid grid-cols-3 justify-center items-center space-y-4"
- phx-target={@myself}
- phx-change="validate"
- phx-submit="save"
- >
- <%= if @changeset.action do %>
-
- <%= changeset_errors(@changeset) %>
-
- <% end %>
-
- <%= label(f, :name, gettext("Name"), class: "title text-lg text-primary-500") %>
- <%= text_input(f, :name,
- class: "input input-primary col-span-2",
- placeholder: gettext("My cool ammo can")
- ) %>
- <%= error_tag(f, :name, "col-span-3 text-center") %>
-
- <%= label(f, :desc, gettext("Description"), class: "title text-lg text-primary-500") %>
- <%= textarea(f, :desc,
- class: "input input-primary col-span-2",
- phx_hook: "MaintainAttrs",
- placeholder: gettext("Metal ammo can with the anime girl sticker")
- ) %>
- <%= error_tag(f, :desc, "col-span-3 text-center") %>
-
- <%= label(f, :type, gettext("Type"), class: "title text-lg text-primary-500") %>
- <%= text_input(f, :type,
- class: "input input-primary col-span-2",
- placeholder: gettext("Magazine, Clip, Ammo Box, etc")
- ) %>
- <%= error_tag(f, :type, "col-span-3 text-center") %>
-
- <%= label(f, :location, gettext("Location"), class: "title text-lg text-primary-500") %>
- <%= textarea(f, :location,
- class: "input input-primary col-span-2",
- phx_hook: "MaintainAttrs",
- placeholder: gettext("On the bookshelf")
- ) %>
- <%= error_tag(f, :location, "col-span-3 text-center") %>
-
- <%= submit(dgettext("actions", "Save"),
- class: "mx-auto btn btn-primary col-span-3",
- phx_disable_with: dgettext("prompts", "Saving...")
- ) %>
-
-
- """
- end
-
defp save_container(
%{assigns: %{container: container, current_user: current_user, return_to: return_to}} =
socket,
diff --git a/lib/cannery_web/live/container_live/form_component.html.heex b/lib/cannery_web/live/container_live/form_component.html.heex
new file mode 100644
index 00000000..2b5f438e
--- /dev/null
+++ b/lib/cannery_web/live/container_live/form_component.html.heex
@@ -0,0 +1,55 @@
+
+
+ <%= @title %>
+
+ <.form
+ let={f}
+ for={@changeset}
+ id="container-form"
+ class="grid grid-cols-3 justify-center items-center space-y-4"
+ phx-target={@myself}
+ phx-change="validate"
+ phx-submit="save"
+ >
+ <%= if @changeset.action do %>
+
+ <%= changeset_errors(@changeset) %>
+
+ <% end %>
+
+ <%= label(f, :name, gettext("Name"), class: "title text-lg text-primary-500") %>
+ <%= text_input(f, :name,
+ class: "input input-primary col-span-2",
+ placeholder: gettext("My cool ammo can")
+ ) %>
+ <%= error_tag(f, :name, "col-span-3 text-center") %>
+
+ <%= label(f, :desc, gettext("Description"), class: "title text-lg text-primary-500") %>
+ <%= textarea(f, :desc,
+ class: "input input-primary col-span-2",
+ phx_hook: "MaintainAttrs",
+ placeholder: gettext("Metal ammo can with the anime girl sticker")
+ ) %>
+ <%= error_tag(f, :desc, "col-span-3 text-center") %>
+
+ <%= label(f, :type, gettext("Type"), class: "title text-lg text-primary-500") %>
+ <%= text_input(f, :type,
+ class: "input input-primary col-span-2",
+ placeholder: gettext("Magazine, Clip, Ammo Box, etc")
+ ) %>
+ <%= error_tag(f, :type, "col-span-3 text-center") %>
+
+ <%= label(f, :location, gettext("Location"), class: "title text-lg text-primary-500") %>
+ <%= textarea(f, :location,
+ class: "input input-primary col-span-2",
+ phx_hook: "MaintainAttrs",
+ placeholder: gettext("On the bookshelf")
+ ) %>
+ <%= error_tag(f, :location, "col-span-3 text-center") %>
+
+ <%= submit(dgettext("actions", "Save"),
+ class: "mx-auto btn btn-primary col-span-3",
+ phx_disable_with: dgettext("prompts", "Saving...")
+ ) %>
+
+
diff --git a/lib/cannery_web/live/invite_live/form_component.ex b/lib/cannery_web/live/invite_live/form_component.ex
index e20fd3d4..1cdf2027 100644
--- a/lib/cannery_web/live/invite_live/form_component.ex
+++ b/lib/cannery_web/live/invite_live/form_component.ex
@@ -30,45 +30,6 @@ defmodule CanneryWeb.InviteLive.FormComponent do
save_invite(socket, action, invite_params)
end
- @impl true
- def render(assigns) do
- ~H"""
-
-
- <%= @title %>
-
- <.form
- let={f}
- for={@changeset}
- id="invite-form"
- class="grid grid-cols-3 justify-center items-center space-y-4"
- phx-target={@myself}
- phx-change="validate"
- phx-submit="save"
- >
- <%= if @changeset.action do %>
-
- <%= changeset_errors(@changeset) %>
-
- <% end %>
-
- <%= label(f, :name, gettext("Name"), class: "title text-lg text-primary-500") %>
- <%= text_input(f, :name, class: "input input-primary col-span-2") %>
- <%= error_tag(f, :name, "col-span-3") %>
-
- <%= label(f, :uses_left, gettext("Uses left"), class: "title text-lg text-primary-500") %>
- <%= number_input(f, :uses_left, min: 0, class: "input input-primary col-span-2") %>
- <%= error_tag(f, :uses_left, "col-span-3") %>
-
- <%= submit(dgettext("actions", "Save"),
- class: "mx-auto btn btn-primary col-span-3",
- phx_disable_with: dgettext("prompts", "Saving...")
- ) %>
-
-
- """
- end
-
defp save_invite(
%{assigns: %{current_user: current_user, invite: invite, return_to: return_to}} = socket,
:edit,
diff --git a/lib/cannery_web/live/invite_live/form_component.html.heex b/lib/cannery_web/live/invite_live/form_component.html.heex
new file mode 100644
index 00000000..13b7c5d6
--- /dev/null
+++ b/lib/cannery_web/live/invite_live/form_component.html.heex
@@ -0,0 +1,33 @@
+
+
+ <%= @title %>
+
+ <.form
+ let={f}
+ for={@changeset}
+ id="invite-form"
+ class="grid grid-cols-3 justify-center items-center space-y-4"
+ phx-target={@myself}
+ phx-change="validate"
+ phx-submit="save"
+ >
+ <%= if @changeset.action do %>
+
+ <%= changeset_errors(@changeset) %>
+
+ <% end %>
+
+ <%= label(f, :name, gettext("Name"), class: "title text-lg text-primary-500") %>
+ <%= text_input(f, :name, class: "input input-primary col-span-2") %>
+ <%= error_tag(f, :name, "col-span-3") %>
+
+ <%= label(f, :uses_left, gettext("Uses left"), class: "title text-lg text-primary-500") %>
+ <%= number_input(f, :uses_left, min: 0, class: "input input-primary col-span-2") %>
+ <%= error_tag(f, :uses_left, "col-span-3") %>
+
+ <%= submit(dgettext("actions", "Save"),
+ class: "mx-auto btn btn-primary col-span-3",
+ phx_disable_with: dgettext("prompts", "Saving...")
+ ) %>
+
+