feat(giveback): gate the page for geo-unavailable regions#6324
Closed
tsahimatsliah wants to merge 7 commits into
Closed
feat(giveback): gate the page for geo-unavailable regions#6324tsahimatsliah wants to merge 7 commits into
tsahimatsliah wants to merge 7 commits into
Conversation
Ports the GeoGateFallback screen (originally on feat/giveback-mvp, never merged) to the live Giveback page. When the campaign isn't enabled for the visitor's region we replace the whole experience with a single explicit "not available in your country yet" gate that still explains what Giveback is. Wired to the campaign-wide `status.enabled` field (resolves for anonymous visitors too), only after status resolves so the fallback never flashes before the campaign body. The FAQ already promised this notice; this delivers it. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
Renders GeoGateFallback in a dark, full-screen frame so the geo-blocked state is viewable without triggering the backend availability flag. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
The gate copy overflowed the viewport on mobile because it used fixed LargeTitle/Title3 sizes. Switch to mobile-first typography that scales up (Title2 -> tablet Title1 -> laptop LargeTitle; Callout -> tablet Title3), bound the text column with w-full, and tighten spacing/glow on small screens. Verified no horizontal overflow at 360/390/768/1280. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
DO NOT MERGE this commit. Forces geoBlocked=true so the geo gate can be reviewed in the real app layout (header/sidebar/footer nav) on the webapp preview. Revert before the PR is ready. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Small hopeful Punchy render above the copy on the geo-unavailable gate. Real alpha, so it floats on the dark surface without mix-blend-screen. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Double the mascot size (h-20/24 -> h-40/48) so it reads as the focal point of the gate. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
h-40/48 -> h-32/36 so the mascot stays prominent without dominating. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Member
Author
|
Superseded by #6325 — a clean engineering PR off |
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.
What
Ports the GeoGateFallback screen to the live Giveback page. When Giveback isn't available in the visitor's region, the whole page is replaced with a single explicit gate that still explains what the campaign is:
The component originally lived on
feat/giveback-mvp(design mock-up, never merged) driven by mock context state. This wires it to real data onmain.Why
The Giveback FAQ already promises this — "If it isn't live where you are yet, you'll see a notice" — but no notice was ever rendered. Geo-blocked visitors currently just get the hero with no explanation. This closes that gap.
Wiring
status.enabledfield (resolves for anonymous visitors too, unlike per-usereligiblewhich isnulluntil sign-in).!!status && !status.enabled) so the fallback never flashes before the campaign body while the overview query is in flight.Test plan
GeoGateFallback.spec.tsx(provider-light render assertion) passestypecheck-strict-changed.jsclean🤖 Generated with Claude Code
Preview domain
https://feat-giveback-geo-gate.preview.app.daily.dev