diff --git a/lib/towerops_web/components/core_components.ex b/lib/towerops_web/components/core_components.ex index 22a5ff13..da064ac8 100644 --- a/lib/towerops_web/components/core_components.ex +++ b/lib/towerops_web/components/core_components.ex @@ -258,7 +258,7 @@ defmodule ToweropsWeb.CoreComponents do attr :id, :any, default: nil attr :name, :any attr :label, :string, default: nil - attr :value, :any + attr :value, :any, default: nil attr :type, :string, default: "text", @@ -281,11 +281,13 @@ defmodule ToweropsWeb.CoreComponents do def input(%{field: %FormField{} = field} = assigns) do errors = if Phoenix.Component.used_input?(field), do: field.errors, else: [] + value = if Map.has_key?(assigns.__given__, :value), do: assigns.value, else: field.value + assigns |> assign(field: nil, id: assigns.id || field.id) |> assign(:errors, Enum.map(errors, &translate_error(&1))) |> assign_new(:name, fn -> if assigns.multiple, do: field.name <> "[]", else: field.name end) - |> assign_new(:value, fn -> field.value end) + |> assign(:value, value) |> input() end