+ {data.map((game, i) => {
+ // TODO: Remove `kind` prop from ActiveRewardCard
+ const { transfer } = game;
+ if (
+ transfer.kind.__typename !== 'RecurringTransfer' ||
+ !transfer.kind.dispatchStrategy?.dispatchMetric
+ ) {
+ return null;
+ }
+ return (
+
+ );
+ })}
+
+ );
+};
diff --git a/apps/trading/components/competitions/graphics/dude-badge.tsx b/apps/trading/components/competitions/graphics/dude-badge.tsx
new file mode 100644
index 000000000..082ebdced
--- /dev/null
+++ b/apps/trading/components/competitions/graphics/dude-badge.tsx
@@ -0,0 +1,40 @@
+import classNames from 'classnames';
+import { DudeWithFlag } from './dude-with-flag';
+
+/**
+ * Pre-defined badge gradients
+ */
+
+export const BADGE_GRADIENT_VARIANT_A =
+ 'bg-gradient-to-r from-vega-blue-500 via-vega-purple-500 to-vega-pink-500';
+export const BADGE_GRADIENT_VARIANT_B =
+ 'bg-gradient-to-r from-vega-purple-500 via-vega-green-500 to-vega-blue-500';
+export const BADGE_GRADIENT_VARIANT_C =
+ 'bg-gradient-to-r from-vega-blue-500 via-vega-purple-500 to-vega-green-500';
+
+/** Badge */
+
+export const DudeBadge = ({
+ variant,
+ className,
+}: {
+ variant: 'A' | 'B' | 'C' | undefined;
+ className?: classNames.Argument;
+}) => {
+ return (
+