Repository navigation
feat(superfluid-campaign-widget): Season 7 update - #302
Open
goodbounties-nanoclaw-agent[bot] wants to merge 4 commits into
Open
goodbounties-nanoclaw-agent[bot] wants to merge 4 commits into
goodbounties-nanoclaw-agent[bot] wants to merge 4 commits into
Conversation
Season 7 copy, campaigns 701/710, disabled Invite/Vote/Fund cards, new AntSeed Buy/Subscribe AI Credits cards, leaderboard address copy button, shared icon tooltip, per-integrator tracked links, rewritten FAQ, and refreshed Playwright coverage and screenshots. Co-Authored-By: Claude Code <noreply@anthropic.com> On-Behalf-Of: gdpatchagent[onecli] (yaskkeryodtdijpv)
goodbounties-nanoclaw-agent
Bot
requested review from
a team and
sirpy
and
a balanced review from Copilot
November 10, 2026 20:38
Contributor
There was a problem hiding this comment.
🟡 Changes recommended
The tooltip can crash on React Native, become misaligned or render off-screen, and fail hover accessibility requirements, while the new copy action bypasses native clipboard support and does not check success.
5 open issues
What changed in this PR
Updates the Superfluid Campaign Widget and standalone app for Season 7, with refreshed campaign content, AntSeed actions, integrator-specific links, and leaderboard interactions.
Changes:
- Switches to campaigns 701/710, updates FAQs, and disables upcoming actions.
- Adds AI Credits cards, address copying, shared tooltips, and configurable tracking links.
- Expands Storybook previews and Playwright coverage for Season 7 behavior.
| File | Description |
|---|---|
tests/widgets/superfluid-campaign-widget/states.spec.ts |
Updates Season 7 interaction, link, and screenshot coverage. |
packages/ui/src/index.ts |
Exports Tooltip and ShoppingCart. |
packages/ui/src/components/Tooltip.tsx |
Adds shared hover, focus, and tap tooltips. |
packages/ui/src/components/ActivityIcons.ts |
Exports the shopping-cart glyph. |
packages/superfluid-campaign-widget/src/widgetRuntimeContract.ts |
Extends action, FAQ, and link configuration types. |
packages/superfluid-campaign-widget/src/SuperfluidCampaignWidget.tsx |
Applies FAQ link overrides and forwards Claim SUP URLs. |
packages/superfluid-campaign-widget/src/mocked/fixtures.ts |
Refreshes campaign IDs, totals, and activity fixtures. |
packages/superfluid-campaign-widget/src/hooks/useProgramSupTotals.ts |
Updates the unpublished-program example in a comment. |
packages/superfluid-campaign-widget/src/element.ts |
Exposes Claim SUP URL configuration to embeds. |
packages/superfluid-campaign-widget/src/components/SeasonNotice.tsx |
Removes the season-ended notice component. |
packages/superfluid-campaign-widget/src/components/LeaderboardRow.tsx |
Replaces address links with copy buttons. |
packages/superfluid-campaign-widget/src/components/CampaignHeader.tsx |
Removes the notice and supports custom Claim SUP links. |
packages/superfluid-campaign-widget/src/components/ActivityIcons.tsx |
Wraps action glyphs in shared tooltips. |
packages/superfluid-campaign-widget/src/components/activityIconComponents.ts |
Maps the new AI Credits action glyphs. |
packages/superfluid-campaign-widget/src/components/ActionCard.tsx |
Displays optional minimum-deposit captions. |
packages/superfluid-campaign-widget/src/campaignDefinition.ts |
Defines Season 7 campaigns, actions, and FAQs. |
examples/storybook/src/stories/superfluid-campaign-widget/SuperfluidCampaignWidgetQA.stories.tsx |
Adds standalone and GoodWallet link previews. |
examples/storybook/src/stories/helpers/superfluidCampaignWidgetStories.tsx |
Supplies integrator-specific links to stories. |
apps/superfluid-campaign-web/src/App.tsx |
Configures standalone tracking links in both provider paths. |
Review effort: Balanced
| // Always copies the full address, even when the row displays a truncated address or ENS name. | ||
| const handleCopyAddress = async () => { | ||
| try { | ||
| await navigator.clipboard.writeText(entry.address) |
|
|
||
| // Centers the bubble horizontally over the trigger and places it above it. | ||
| const showTooltip = useCallback(() => { | ||
| const triggerRect = triggerRef.current?.getBoundingClientRect() |
Comment on lines
+51
to
+54
| setPosition({ | ||
| left: triggerRect.left + triggerRect.width / 2, | ||
| top: triggerRect.top - TOOLTIP_OFFSET_PX, | ||
| }) |
Comment on lines
+72
to
+77
| window.addEventListener('scroll', handleDismiss, true) | ||
| window.addEventListener('keydown', handleDismiss) | ||
| return () => { | ||
| window.removeEventListener('scroll', handleDismiss, true) | ||
| window.removeEventListener('keydown', handleDismiss) | ||
| } |
| <Stack | ||
| id={tooltipId} | ||
| role="tooltip" | ||
| pointerEvents="none" |
…mums, top of Ecosystem list - Buy/Subscribe descriptions now state the 10% / 20% bonus credits - Buy button label is BUY - Minimum deposit details moved from the cards into the FAQ - Buy and Subscribe lead the Ecosystem actions and match the other cards' heights - Tests cover copy, label, FAQ, order and card-height parity; screenshots refreshed Co-Authored-By: Claude Code <noreply@anthropic.com> On-Behalf-Of: gdpatchagent[onecli] (yaskkeryodtdijpv)
goodbounties-nanoclaw-agent
Bot
had a problem deploying
to
preview-gooddata
November 11, 2026 10:05
Error
goodbounties-nanoclaw-agent
Bot
had a problem deploying
to
preview-superfluid-campaign
November 11, 2026 10:05
Error
goodbounties-nanoclaw-agent
Bot
had a problem deploying
to
preview-storybook
November 11, 2026 10:05
Error
The desktop-row height check failed on CI by 1px (160 vs 161) because the runner renders the monospace font with slightly different line metrics than local machines. Allow a 4px font-metric tolerance on both bounds. Co-Authored-By: Claude Code <noreply@anthropic.com> On-Behalf-Of: gdpatchagent[onecli] (yaskkeryodtdijpv)
goodbounties-nanoclaw-agent
Bot
had a problem deploying
to
preview-gooddata
November 11, 2026 11:21
Error
goodbounties-nanoclaw-agent
Bot
had a problem deploying
to
preview-superfluid-campaign
November 11, 2026 11:21
Error
goodbounties-nanoclaw-agent
Bot
had a problem deploying
to
preview-storybook
November 11, 2026 11:21
Error
Buy AI Credits -> aiCreditsSent, Subscribe to AI Credits -> aiCreditsStreamed, replacing the activity-name fallback. Adds a Playwright test covering both. Co-Authored-By: Claude Code <noreply@anthropic.com> On-Behalf-Of: gdpatchagent[onecli] (yaskkeryodtdijpv)
goodbounties-nanoclaw-agent
Bot
had a problem deploying
to
preview-superfluid-campaign
November 11, 2026 15:21
Error
goodbounties-nanoclaw-agent
Bot
had a problem deploying
to
preview-gooddata
November 11, 2026 15:21
Error
goodbounties-nanoclaw-agent
Bot
had a problem deploying
to
preview-storybook
November 11, 2026 15:21
Error
This branch was successfully deployed
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.

Closes #301
Season 7 patch for the Superfluid Campaign Widget, covering the standalone app (
apps/superfluid-campaign-web) and the GoodWallet-embedded widget. Requested by Meri Fernandez in #gd-patch.Changes
SeasonNoticeremoved.minimumInfofrom the action definition); the minimums now live in the FAQ answer "How can I earn points by buying AI Credits?".Tooltipin@goodwidget/ui(hover, focus, tap, Escape) on all action icons.apps/superfluid-campaign-web/src/App.tsx. GoodWallet links come throughactionLinks, and the newclaimRewardsUrlprop sets the header Claim SUP link. Storybook storiesstandalone-links-contentandgood-wallet-links-contentshow both sets.tests/widgets/superfluid-campaign-widget/states.spec.tsrewritten for the above (copy, BUY label, no minimum caption, FAQ minimums, card order, card-height parity), with refreshed and new screenshots (scw-40toscw-44).Not in this PR / open items
aiCreditsSent, Subscribe to AI Credits readsaiCreditsStreamed(names supplied by the product owner; the Sent = one-time / Streamed = stream pairing follows the existingopensourceSent/opensourceStreamedconvention and is an assumption until confirmed). Covered by a Playwright test. Not verifiable against live data until the first AntSeed events appear in campaign 710.GoodDollar/SuperfluidLeaderboard):G_DONATION_EVENT_NAMESneeds the AntSeed events routed to the Ecosystem campaign.src/widgets/registry.ts): passactionLinksandclaimRewardsUrl, and bumppackageVersionafter the widget release. The package version is intentionally not bumped here.Verification
states.spec.tsandversion.spec.ts): 83 of 83 passing locally.CI notes
action cards retain their desktop row above 480pxtest (my card-height parity check) failed on CI by 1px (160 vs 161) because the runner's font metrics differ slightly from local machines. The check now allows a 4px font-metric tolerance (commit 50054f0).CitizenClaimWidget shows not_whitelisted for fresh wallet (mocked Celo RPC)intests/widgets/citizen-claim-widget/states.spec.ts. This PR changes no Citizen Claim files. The test fails its first attempt and only passes on retry onmaintoo: Playwright Demo Tests runs 42594793660 and 42611225564 (push tomain) both report it as "1 flaky". I also reproduced it locally on unmodifiedmain(passed 1 of 3 runs, with the page taking around 15s against the test's 15s wait). It needs its own fix, for example a longer wait or mocking the remaining network calls.Screenshots (under
tests/widgets/superfluid-campaign-widget/test-results/):scw-43-standalone-links-content.png,scw-44-goodwallet-links-content.png,scw-42-ai-credits-cards.png,scw-40-leaderboard-address-copied.png,scw-41-leaderboard-tooltip-hover.png.🤖 Generated with Claude Code