From 905f4edf88e8620a2c5c2192c856764435d2c5d5 Mon Sep 17 00:00:00 2001 From: KKlochko Date: Sun, 30 Mar 2025 15:54:36 +0300 Subject: [PATCH] Add BookCard component. --- .../components/my_components.ex | 2 + .../components/my_components/book_card.ex | 55 +++++++++++++++++++ 2 files changed, 57 insertions(+) create mode 100644 lib/decentralised_book_index_web/components/my_components/book_card.ex diff --git a/lib/decentralised_book_index_web/components/my_components.ex b/lib/decentralised_book_index_web/components/my_components.ex index b48e3e8..dfc5b6c 100644 --- a/lib/decentralised_book_index_web/components/my_components.ex +++ b/lib/decentralised_book_index_web/components/my_components.ex @@ -3,6 +3,8 @@ defmodule DecentralisedBookIndexWeb.Components.MyComponents do defmacro __using__(_) do quote do + import MyComponents.BookCard, only: [book_card: 1] + import MyComponents.AuthorCard, only: [author_card: 1] import MyComponents.AuthorSearch, only: [author_search: 1] diff --git a/lib/decentralised_book_index_web/components/my_components/book_card.ex b/lib/decentralised_book_index_web/components/my_components/book_card.ex new file mode 100644 index 0000000..3c06ca5 --- /dev/null +++ b/lib/decentralised_book_index_web/components/my_components/book_card.ex @@ -0,0 +1,55 @@ +defmodule DecentralisedBookIndexWeb.Components.MyComponents.BookCard do + use Phoenix.Component + use DecentralisedBookIndexWeb, :verified_routes + + attr(:book, :map, required: true) + + def book_card(assigns) do + ~H""" +
+
+ + + +
+
+ <.link navigate={~p"/books/#{@book.id}"}> + <%= if @book.cover_image_url != nil do %> + {"#{@book.title} + <% else %> +
+ +
+ <% end %> + + + <.link navigate={~p"/books/#{@book.id}"}> +
{@book.title}
+ + {@book.description} +
+
+ """ + end +end