From ba8b0f596f1a3a6cd614a60d4cf82a68d6198f75 Mon Sep 17 00:00:00 2001
From: Alexander Polyankin <alexander.polyankin@metabase.com>
Date: Thu, 7 Apr 2022 17:08:56 +0400
Subject: [PATCH] Count only non-archived events (#21496)

---
 .../collections/components/TimelineCard/TimelineCard.tsx    | 6 +++++-
 .../components/TimelineCard/TimelineCard.unit.spec.tsx      | 6 +++++-
 2 files changed, 10 insertions(+), 2 deletions(-)

diff --git a/frontend/src/metabase/timelines/collections/components/TimelineCard/TimelineCard.tsx b/frontend/src/metabase/timelines/collections/components/TimelineCard/TimelineCard.tsx
index 0f8eab24122..3c5b333ab0a 100644
--- a/frontend/src/metabase/timelines/collections/components/TimelineCard/TimelineCard.tsx
+++ b/frontend/src/metabase/timelines/collections/components/TimelineCard/TimelineCard.tsx
@@ -26,7 +26,7 @@ const TimelineCard = ({
 }: TimelineCardProps): JSX.Element => {
   const timelineUrl = Urls.timelineInCollection(timeline, collection);
   const menuItems = getMenuItems(timeline, collection, onUnarchive);
-  const eventCount = timeline.events?.length;
+  const eventCount = getEventCount(timeline);
   const hasDescription = Boolean(timeline.description);
   const hasMenuItems = menuItems.length > 0;
   const hasEventCount = !hasMenuItems && eventCount != null;
@@ -58,6 +58,10 @@ const TimelineCard = ({
   );
 };
 
+const getEventCount = (timeline: Timeline) => {
+  return timeline.events ? timeline.events.filter(e => !e.archived).length : 0;
+};
+
 const getMenuItems = (
   timeline: Timeline,
   collection: Collection,
diff --git a/frontend/src/metabase/timelines/collections/components/TimelineCard/TimelineCard.unit.spec.tsx b/frontend/src/metabase/timelines/collections/components/TimelineCard/TimelineCard.unit.spec.tsx
index 50901b8be6c..c05a1292459 100644
--- a/frontend/src/metabase/timelines/collections/components/TimelineCard/TimelineCard.unit.spec.tsx
+++ b/frontend/src/metabase/timelines/collections/components/TimelineCard/TimelineCard.unit.spec.tsx
@@ -11,7 +11,11 @@ describe("TimelineCard", () => {
   it("should render timeline", () => {
     const props = getProps({
       timeline: createMockTimeline({
-        events: [createMockTimelineEvent(), createMockTimelineEvent()],
+        events: [
+          createMockTimelineEvent(),
+          createMockTimelineEvent(),
+          createMockTimelineEvent({ archived: true }),
+        ],
       }),
     });
 
-- 
GitLab