+
+
+ {!reducedMotion && (
+
+ {particles.map((particle) => (
+
+ ))}
+
+ )}
+
+
+
+
+
+
+ +{formatDonationAmount(celebration.amount, celebration.currency)}
+
+
+ added to the pot
+
+ {isMilestone && (
+
+
+ {bannerLabel}
+
+
+ )}
+
+
+
+ {`You unlocked ${formatDonationAmount(
+ celebration.amount,
+ celebration.currency,
+ )} for your causes.${isMilestone ? ` ${bannerLabel}.` : ''}`}
+
+
+ );
+};
diff --git a/packages/shared/src/features/giveback/components/GivebackCommunityActivity.tsx b/packages/shared/src/features/giveback/components/GivebackCommunityActivity.tsx
new file mode 100644
index 00000000000..048b4f21a1a
--- /dev/null
+++ b/packages/shared/src/features/giveback/components/GivebackCommunityActivity.tsx
@@ -0,0 +1,251 @@
+import type { ComponentType, ReactElement } from 'react';
+import React, { useEffect, useState } from 'react';
+import {
+ Typography,
+ TypographyColor,
+ TypographyTag,
+ TypographyType,
+} from '../../../components/typography/Typography';
+import { FlexCol, FlexRow } from '../../../components/utilities';
+import {
+ AddUserIcon,
+ DiscussIcon,
+ FeedbackIcon,
+ PlayIcon,
+ ShareIcon,
+} from '../../../components/icons';
+import type { IconProps } from '../../../components/Icon';
+import { IconSize } from '../../../components/Icon';
+import { useGivebackContext } from '../GivebackContext';
+import { usePrefersReducedMotion } from '../useGivebackMotion';
+import { formatCompactNumber, formatDonationAmount } from '../utils';
+import type { GivebackCommunityEvent } from '../types';
+import { GivebackAvatar } from './GivebackContributorFaces';
+
+// How often a new win streams to the top of the feed.
+const STREAM_MS = 3600;
+
+// Position-based "age" labels: the freshest row reads as "just now" and ages
+// grow down the list. The mock has no real timestamps, so this keeps the wire
+// believable as rows stream in without faking precise per-event times.
+const AGE_LABELS = [
+ 'just now',
+ '14s ago',
+ '38s ago',
+ '1m ago',
+ '3m ago',
+ '6m ago',
+ '11m ago',
+ '18m ago',
+];
+
+interface FeedVisual {
+ Icon: ComponentType