Skip to content

Improve waitlist submitted state - #296

Open
SeanCordovaGit wants to merge 2 commits into
bountydotnew:mainfrom
SeanCordovaGit:improve-waitlist-submitted-state
Open

Improve waitlist submitted state#296
SeanCordovaGit wants to merge 2 commits into
bountydotnew:mainfrom
SeanCordovaGit:improve-waitlist-submitted-state

Conversation

@SeanCordovaGit

@SeanCordovaGit SeanCordovaGit commented May 20, 2026

Copy link
Copy Markdown

BOUNTY.NEW

Summary

  • Improves the landing-page waitlist submitted state with a clearer confirmation panel.
  • Adds distinct submitted/status/position treatment while preserving compact demo sizing.

Bounty

Closes #231

Validation

  • bunx ultracite format apps/web/src/components/landing/waitlist-demo.tsx
  • bunx ultracite lint apps/web/src/components/landing/waitlist-demo.tsx
  • Rendered local http://localhost:3000 and verified the submitted state DOM contains Submitted, You're on the list, and Confirmed.

Notes

bun check:web currently fails on pre-existing @bounty/ui path/type errors documented in AGENTS.md; this change is limited to the landing waitlist demo component.

Summary by CodeRabbit

  • UI/UX Improvements

    • Redesigned waitlist confirmation with a “Submitted” badge, updated messaging, and two-column layout showing Position and Status.
    • Submission state now persists locally so returned position is shown consistently.
  • Bug Fixes

    • Returning position for existing waitlist entries ensures accurate position display when reloading or revisiting.

Review Change Stack

@bountydotnew

bountydotnew Bot commented May 20, 2026

Copy link
Copy Markdown

@SeanCordovaGit bounty.new is in early access. Link your GitHub account at https://bounty.new/integrations to get started.

@vercel

vercel Bot commented May 20, 2026

Copy link
Copy Markdown
Contributor

@SeanCordovaGit is attempting to deploy a commit to the Bounty Team on Vercel.

A member of the Team first needs to authorize it.

@coderabbitai

coderabbitai Bot commented May 20, 2026

Copy link
Copy Markdown
Contributor

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro

Run ID: a9c0419c-dc63-42d2-9b1d-386566783b39

📥 Commits

Reviewing files that changed from the base of the PR and between 07d29a9 and add9ceb.

📒 Files selected for processing (3)
  • apps/web/src/components/landing/waitlist-demo.tsx
  • apps/web/src/types/waitlist.ts
  • packages/api/src/routers/early-access.ts

📝 Walkthrough

Walkthrough

Adds SSR-safe localStorage guards, persists an optional waitlist position returned by the API into stored cookie data, exposes hydrated waitlistData to the page, and replaces the success UI with a submitted card showing Position and Status.

Changes

Waitlist Success UI Redesign

Layer / File(s) Summary
SSR-safe localStorage access
apps/web/src/components/landing/waitlist-demo.tsx
readStoredWaitlist and writeStoredWaitlist now explicitly check typeof window === 'undefined' before accessing localStorage.
API response and type for position
apps/web/src/types/waitlist.ts, packages/api/src/routers/early-access.ts
WaitlistCookieData gains optional position?: number. earlyAccessRouter.joinWaitlist now returns position: existingEntry.position in the alreadyJoined branch.
Submission hook: waitlistData and hydration
apps/web/src/components/landing/waitlist-demo.tsx
The submission hook adds waitlistData/setWaitlistData, persists cookie fields (including optional position) on successful join, and hydrates waitlistData from stored cookie data on mount without auto-setting success.
Success state card redesign
apps/web/src/components/landing/waitlist-demo.tsx
Success UI replaced with a card showing a "Submitted" badge, "You're on the list" copy, and a two-column grid: "Position" (from waitlistData.position or fallback waitlistCount) and hardcoded "Status: Confirmed".

Estimated code review effort

🎯 3 (Moderate) | ⏱️ ~20 minutes

Possibly related PRs

  • bountydotnew/bounty.new#171: Both PRs modify apps/web/src/components/landing/waitlist-demo.tsx; this PR redesigns the success card and adds storage/API position handling.

Suggested labels

tembo

Suggested reviewers

  • tembo

Poem

🐰 I hopped to guard the browser door,
Saved cookies, positions, and a little more,
On submit a badge gleams bright,
Position counted, status right,
A tiny rabbit cheers: you're on the list! 🎉

🚥 Pre-merge checks | ✅ 4 | ❌ 1

❌ Failed checks (1 warning)

Check name Status Explanation Resolution
Docstring Coverage ⚠️ Warning Docstring coverage is 0.00% which is insufficient. The required threshold is 80.00%. Write docstrings for the functions missing them to satisfy the coverage threshold.
✅ Passed checks (4 passed)
Check name Status Explanation
Title check ✅ Passed The title 'Improve waitlist submitted state' accurately and concisely summarizes the main change: enhancing the visual design and UX of the waitlist submission confirmation panel.
Description check ✅ Passed The description includes all required sections: summary, bounty closure reference, validation steps, and notes about known issues. Required compliance text 'BOUNTY.NEW' is present.
Linked Issues check ✅ Passed Code changes directly implement issue #231 requirements: improved visual design with clearer confirmation panel, distinct submitted/status/position display, and preserved compact sizing.
Out of Scope Changes check ✅ Passed All code changes are directly scoped to the waitlist submitted state improvement: UI component updates, type extension for position tracking, and API response enhancement.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 1

🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Inline comments:
In `@apps/web/src/components/landing/waitlist-demo.tsx`:
- Around line 201-210: The Position UI is showing the live waitlistCount instead
of the user's fixed spot; update the joinWaitlist onSuccess handler to capture
the returned position from the mutation, extend the WaitlistCookieData type to
include position, persist that position in the cookie (alongside
submitted/timestamp/email), and change the Position render (NumberFlow value) to
prefer the stored cookie position (fallback to waitlistCount if none). Locate
references to waitlistCount, joinWaitlist/onSuccess, WaitlistCookieData, and
NumberFlow to implement these changes.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro

Run ID: 08a6ecea-73d7-4968-ba06-ac22660acbbe

📥 Commits

Reviewing files that changed from the base of the PR and between 0377c8f and 07d29a9.

📒 Files selected for processing (1)
  • apps/web/src/components/landing/waitlist-demo.tsx

Comment thread apps/web/src/components/landing/waitlist-demo.tsx
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

improve design of waitlist submitted state on landing page

1 participant