feat(predict): add world cup section as empty state#30427
Conversation
|
CLA Signature Action: All authors have signed the CLA. You may need to manually re-run the blocking PR check if it doesn't pass in a few minutes. |
fd9f565 to
68dc7b4
Compare
eca1bf4 to
f3c90a9
Compare
…el and marketResolvers
c1ec576 to
aa798c5
Compare
…toUpDownMarketCard and PredictMarket components
…nd enhance PredictionsSection tests
There was a problem hiding this comment.
Cursor Bugbot has reviewed your changes and found 1 potential issue.
❌ Bugbot Autofix is OFF. To automatically fix reported issues with cloud agents, have a team admin enable autofix in the Cursor dashboard.
Reviewed by Cursor Bugbot for commit 8039197. Configure here.
🔍 Smart E2E Test Selection
click to see 🤖 AI reasoning detailsE2E Test Selection:
Tag selection rationale:
No changes to swap, stake, accounts, network, browser, snaps, or other unrelated areas. Performance Test Selection: |
|




Description
Adds the new Predict-specific empty state experience for wallet home users with no Predict positions. The treatment replaces the generic/trending-only empty state with a sports discovery layout featuring World Cup/NBA championship discovery rows, bracket/stage CTAs, and feature-flagged BTC up/down row scaffolding that is hidden for now.
This PR also implements Segment/MetaMetrics tracking for the Predict Empty State A/B test:
Empty State Viewedexposure for zero-position Predict users.cta_nameand optionalcategory_name.active_ab_teststhrough market entry and bet placement paths for downstream attribution.category_name: "world_cup"instead of the internal row kind.The BTC 5m up/down row is intentionally left hidden and its data/navigation wiring is commented for now because the shared live-market hook work lives on
predict/crypto-updown-feed-cardand has not merged intomainyet. The current branch keeps the row scaffold in place behindSHOW_BTC_UP_DOWN_5M_ROW = falseso the later integration should be a small, low-risk follow-up instead of rebuilding the row wiring from scratch.When
predict/crypto-updown-feed-cardis merged, enable the BTC row by:SHOW_BTC_UP_DOWN_5M_ROWguard, or setting it totrueif the team still wants a short-lived rollout switch.HomepagePredictWorldCupDiscovery.navigateToMarketDetailsbranch inhandleBtcRowso the row opens the current 5m up/down market directly when available.Changelog
CHANGELOG entry: Added a new Predict discovery empty state for users with no Predict positions
Related issues
Refs: https://consensyssoftware.atlassian.net/browse/TMCU-749
https://consensyssoftware.atlassian.net/browse/TMCU-750
https://consensyssoftware.atlassian.net/browse/TMCU-754
Manual testing steps
Screenshots/Recordings
Before
After
Pre-merge author checklist
Performance checks (if applicable)
trace()for usage andaddTokenfor an exampleFor performance guidelines and tooling, see the Performance Guide.
Pre-merge reviewer checklist
Note
Medium Risk
Updates homepage Predict rendering and navigation/analytics plumbing to support a new A/B-tested empty-state discovery experience; risk is mainly UI/UX and event attribution correctness across multiple entry points.
Overview
Adds an A/B-tested Predict homepage empty-state experience: when users have no Predict positions, the section can switch from the existing trending carousel to a sports discovery list (World Cup + NBA champion rows, bracket/stage CTAs, and scaffolded BTC 5m up/down row behind a kill switch).
Threads
transactionActiveAbTeststhrough Predict navigation and buy flows (cards, row items, feed/search/world-cup routes) and extends analytics to includeactive_ab_testsfor market-details opens plus new empty-stateVIEWED/CTA_CLICKEDevents withsurface/variant/cta_name/category_nameproperties.Improves World Cup tab behavior by adding fallback stage keys when remote
stagesis empty and normalizing requested stage keys (hyphen vs underscore), and introduces a new remote feature flag/selector to gate the NBA champion discovery row.Reviewed by Cursor Bugbot for commit 5189335. Bugbot is set up for automated code reviews on this repo. Configure here.