Update Book and SelectedPublisher component to require Publisher.
This commit is contained in:
@@ -2,6 +2,8 @@ defmodule DecentralisedBookIndexWeb.Components.MyComponents.SelectedPublisher do
|
||||
use Phoenix.Component
|
||||
use DecentralisedBookIndexWeb, :verified_routes
|
||||
|
||||
alias DecentralisedBookIndexWeb.CoreComponents
|
||||
|
||||
attr :publisher_form, :map, default: nil
|
||||
|
||||
def selected_publisher(assigns) do
|
||||
@@ -14,16 +16,29 @@ defmodule DecentralisedBookIndexWeb.Components.MyComponents.SelectedPublisher do
|
||||
DecentralisedBookIndex.Metadata.get_publisher_by_id!(publisher_id)
|
||||
end
|
||||
|
||||
assigns = assign(assigns, :publisher, publisher)
|
||||
errors =
|
||||
if Phoenix.Component.used_input?(assigns.publisher_form), do: assigns.publisher_form.errors, else: []
|
||||
|
||||
assigns =
|
||||
assigns
|
||||
|> assign(:publisher, publisher)
|
||||
|> assign(:errors, Enum.map(errors, &CoreComponents.translate_error(&1)))
|
||||
|
||||
~H"""
|
||||
<button type="button" phx-click="open-select-publisher" phx-target={@notify_component} class="text-white bg-blue-700 hover:bg-blue-800 focus:outline-none focus:ring-4 focus:ring-blue-300 font-medium rounded-full text-sm px-5 py-2.5 text-center dark:bg-blue-600 dark:hover:bg-blue-700 dark:focus:ring-blue-800">
|
||||
<button
|
||||
type="button"
|
||||
phx-click="open-select-publisher"
|
||||
phx-target={@notify_component}
|
||||
class="text-white bg-blue-700 hover:bg-blue-800 focus:outline-none focus:ring-4 focus:ring-blue-300 font-medium rounded-full text-sm px-5 py-2.5 text-center dark:bg-blue-600 dark:hover:bg-blue-700 dark:focus:ring-blue-800"
|
||||
>
|
||||
<%= if @publisher != nil do %>
|
||||
{@publisher.name}
|
||||
<% else %>
|
||||
Select a publisher
|
||||
<% end %>
|
||||
</button>
|
||||
|
||||
<CoreComponents.error :for={msg <- @errors}>{msg}</CoreComponents.error>
|
||||
"""
|
||||
end
|
||||
end
|
||||
|
||||
Reference in New Issue
Block a user