From 8d004d39cca3618159be1e31dbb545683c17e8d2 Mon Sep 17 00:00:00 2001 From: Claudio Ortolina Date: Mon, 20 Apr 2026 15:57:44 +0100 Subject: [PATCH] Extract shared cart sidebar component --- docs/architecture.md | 1 + .../components/add_record.ex | 228 +++++++----------- .../components/barcode_scanner.ex | 144 ++++------- .../components/cart_components.ex | 127 ++++++++++ priv/gettext/default.pot | 12 +- priv/gettext/en/LC_MESSAGES/default.po | 12 +- 6 files changed, 266 insertions(+), 258 deletions(-) create mode 100644 lib/music_library_web/components/cart_components.ex diff --git a/docs/architecture.md b/docs/architecture.md index 4170a096..a86f4b69 100644 --- a/docs/architecture.md +++ b/docs/architecture.md @@ -297,6 +297,7 @@ All authenticated routes live inside a single `live_session` with three `on_moun | `StatsComponents` | Stats dashboard widgets (`section/1` layout, counters, album preview, records on this day) | | `ScrobbleComponents` | Scrobble activity displays: status badges, import dropdowns, metadata tooltips, and record-matching UI | | `SearchComponents` | Search result rendering | +| `CartComponents` | `cart_sidebar/1` — shared cart aside used by `AddRecord` and `BarcodeScanner` | | `Pagination` | Pagination UI and logic | ### Web Utility Modules (lib/music_library_web/) diff --git a/lib/music_library_web/components/add_record.ex b/lib/music_library_web/components/add_record.ex index 6609ff9c..2e8c2b58 100644 --- a/lib/music_library_web/components/add_record.ex +++ b/lib/music_library_web/components/add_record.ex @@ -13,6 +13,7 @@ defmodule MusicLibraryWeb.Components.AddRecord do use MusicLibraryWeb, :live_component + import MusicLibraryWeb.CartComponents, only: [cart_sidebar: 1] import MusicLibraryWeb.RecordComponents, only: [format_label: 1, type_label: 1] alias MusicBrainz.ReleaseGroupSearchResult @@ -81,156 +82,101 @@ defmodule MusicLibraryWeb.Components.AddRecord do - + + """ diff --git a/lib/music_library_web/components/barcode_scanner.ex b/lib/music_library_web/components/barcode_scanner.ex index bb22667b..04ae9063 100644 --- a/lib/music_library_web/components/barcode_scanner.ex +++ b/lib/music_library_web/components/barcode_scanner.ex @@ -1,6 +1,8 @@ defmodule MusicLibraryWeb.Components.BarcodeScanner do use MusicLibraryWeb, :live_component + import MusicLibraryWeb.CartComponents, only: [cart_sidebar: 1] + alias MusicBrainz.ReleaseGroupSearchResult alias MusicLibrary.BarcodeScan alias MusicLibrary.Records @@ -40,108 +42,48 @@ defmodule MusicLibraryWeb.Components.BarcodeScanner do - + {ngettext( + "Add %{count} release", + "Add %{count} releases", + length(@scan_results), + count: length(@scan_results) + )} + + +
  • + <.cart_item result={result} myself={@myself} /> +
  • +