diff --git a/lib/decentralised_book_index_web/components/my_components.ex b/lib/decentralised_book_index_web/components/my_components.ex index 948502d..3cab065 100644 --- a/lib/decentralised_book_index_web/components/my_components.ex +++ b/lib/decentralised_book_index_web/components/my_components.ex @@ -9,6 +9,8 @@ defmodule DecentralisedBookIndexWeb.Components.MyComponents do import MyComponents.AuthorCard, only: [author_card: 1] import MyComponents.AuthorSearch, only: [author_search: 1] + import MyComponents.SearchResources, only: [search_resources: 1] + import MyComponents.Pagination, only: [pagination: 1] import MyComponents.Buttons, only: [ success_button: 1, diff --git a/lib/decentralised_book_index_web/components/my_components/search_resources.ex b/lib/decentralised_book_index_web/components/my_components/search_resources.ex new file mode 100644 index 0000000..b030da5 --- /dev/null +++ b/lib/decentralised_book_index_web/components/my_components/search_resources.ex @@ -0,0 +1,62 @@ +defmodule DecentralisedBookIndexWeb.Components.MyComponents.SearchResources do + use Phoenix.Component + use DecentralisedBookIndexWeb, :verified_routes + + alias DecentralisedBookIndex.Accounts.Role + + attr :search_query, :string, default: "" + attr :select_options, :list, required: true + attr :selected_option, :string, required: true + attr :current_user, :map, default: nil + + attr :resource_type, :string, required: true + attr :resource_new_url, :string, required: true + attr :search_placeholder, :string, default: "Search by name" + + def search_resources(assigns) do + ~H""" +
+
+
+
+ +
+
+ +
+ +
+
+
+
+ <%= if @current_user != nil and Role.can_moderate?(@current_user.role) do %> + <.link patch={@resource_new_url}> + + + <% end %> +
+
+ +
+
+
+
+
+ """ + end +end