From 4b81eb13d7b5a33f7a62e171e9dd5863798b3f44 Mon Sep 17 00:00:00 2001 From: Alex Musayev Date: Sun, 19 Jul 2026 00:16:54 +0300 Subject: [PATCH 1/5] Remove EventDetailsComponent factory alias --- app/components/event_details_component.rb | 4 ---- 1 file changed, 4 deletions(-) diff --git a/app/components/event_details_component.rb b/app/components/event_details_component.rb index 96416da2a..6696162a0 100644 --- a/app/components/event_details_component.rb +++ b/app/components/event_details_component.rb @@ -1,10 +1,6 @@ # Renders the detail list shown at the top of an event page. Admin: true adds # operator-only rows (user, timestamps, expiry). class EventDetailsComponent < ViewComponent::Base - def self.for(event, admin: false) - new(event: event, admin: admin) - end - def initialize(event:, admin: false) @event = event @admin = admin From acc30b5acc2de31a8982485cca6557371c931585 Mon Sep 17 00:00:00 2001 From: Alex Musayev Date: Sun, 19 Jul 2026 00:17:13 +0300 Subject: [PATCH 2/5] Use EventDetailsComponent constructor --- app/views/events/show.html.erb | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/app/views/events/show.html.erb b/app/views/events/show.html.erb index a12be1647..1d606d698 100644 --- a/app/views/events/show.html.erb +++ b/app/views/events/show.html.erb @@ -28,7 +28,7 @@ <%= render EventDescriptionComponent.for(@event) %> <% end %> - <%= render EventDetailsComponent.for(@event) %> + <%= render EventDetailsComponent.new(event: @event) %> <% if @referenced_posts.any? %>
@@ -59,7 +59,7 @@ <% if (stats = @event.metadata&.fetch("stats", nil)).present? %>
-

<%= t("events.metadata.stats.section_title") %>

+

<%= t("events.metadata.stats.section_title", default: "Stats") %>

<%= render ListComponent.new do |list| %> <% stats.except("search_calls").each do |key, value| %> <% list.with_item(StatListItemComponent.new( From fe8089184665fcbfb5e382957314ab745f389976 Mon Sep 17 00:00:00 2001 From: Alex Musayev Date: Sun, 19 Jul 2026 00:17:34 +0300 Subject: [PATCH 3/5] Use EventDetailsComponent constructor in admin --- app/views/admin/events/show.html.erb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/views/admin/events/show.html.erb b/app/views/admin/events/show.html.erb index 104309fc8..9ef2853bf 100644 --- a/app/views/admin/events/show.html.erb +++ b/app/views/admin/events/show.html.erb @@ -28,7 +28,7 @@ <%= render Admin::EventDescriptionComponent.for(@event) %> <% end %> - <%= render EventDetailsComponent.for(@event, admin: true) %> + <%= render EventDetailsComponent.new(event: @event, admin: true) %> <% if @referenced_posts.any? %>
From f6b6a72d872e7b73cfb952144682930c578bb8fa Mon Sep 17 00:00:00 2001 From: Alex Musayev Date: Sun, 19 Jul 2026 00:17:45 +0300 Subject: [PATCH 4/5] Update EventDetailsComponent tests --- test/components/event_details_component_test.rb | 10 ++-------- 1 file changed, 2 insertions(+), 8 deletions(-) diff --git a/test/components/event_details_component_test.rb b/test/components/event_details_component_test.rb index 40772f796..645d56784 100644 --- a/test/components/event_details_component_test.rb +++ b/test/components/event_details_component_test.rb @@ -10,16 +10,10 @@ def feed @feed ||= create(:feed, user: user, name: "Test Feed") end - test ".for should return the base component" do - event = create(:event, type: "generic_event") - - assert_instance_of EventDetailsComponent, EventDetailsComponent.for(event) - end - test "#call should render the created timestamp without admin extras" do event = create(:event, type: "owned_event", level: :warning, subject: feed) - result = render_inline(EventDetailsComponent.for(event)) + result = render_inline(EventDetailsComponent.new(event: event)) assert_includes result.to_html, "Created" assert_empty result.css('[data-key="admin.event.user"]') @@ -28,7 +22,7 @@ def feed test "#call should render a compact user link when admin" do event = create(:event, type: "owned_event", user: user, subject: feed) - result = render_inline(EventDetailsComponent.for(event, admin: true)) + result = render_inline(EventDetailsComponent.new(event: event, admin: true)) link = result.css("a[data-key='admin.event.user']").first assert_equal event.user_id.to_s.last(5), link.text From c37edc7305f883216281545d6700f6f9cdae6f9d Mon Sep 17 00:00:00 2001 From: Alex Musayev Date: Sun, 19 Jul 2026 00:18:09 +0300 Subject: [PATCH 5/5] Keep event stats heading unchanged --- app/views/events/show.html.erb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/views/events/show.html.erb b/app/views/events/show.html.erb index 1d606d698..be5aee509 100644 --- a/app/views/events/show.html.erb +++ b/app/views/events/show.html.erb @@ -59,7 +59,7 @@ <% if (stats = @event.metadata&.fetch("stats", nil)).present? %>
-

<%= t("events.metadata.stats.section_title", default: "Stats") %>

+

<%= t("events.metadata.stats.section_title") %>

<%= render ListComponent.new do |list| %> <% stats.except("search_calls").each do |key, value| %> <% list.with_item(StatListItemComponent.new(