Skip to content

Wire up the upgrade/renew placeholder CTA on denied-resource states #324

Description

@Lakes41

Difficulty: Intermediate
Type: feature

Background
The README lists "upgrade/renew placeholders" among the member-dashboard MVP features, and the mock developer controls include a "Denied Resource" scenario preset (free tier user denied access to Alpha Docs) specifically for testing this state.

Problem
The denied-resource state currently shows an upgrade/renew placeholder with no real interaction — it doesn't link anywhere or explain what upgrading/renewing would involve, leaving a dead-end UX for members who hit a gate.

Expected outcome
When a member is denied access to a gated resource due to tier/expiration, the denied state clearly explains why (using policy/membership data already available from /v1/policies and /v1/members/:address/membership) and the CTA button leads to a dedicated (still-placeholder-content-fine) upgrade/renew info page instead of doing nothing.

Suggested implementation

  • Update the components/gated.tsx denied-state rendering to surface the specific reason (expired vs. insufficient tier vs. no roles) using existing membership/policy data.
  • Add a simple /upgrade (or similar) route explaining next steps, linked from the CTA.
  • Verify the "Denied Resource" and "Expired Member" mock scenario presets both route to sensible denied-state copy.
  • Add tests (or Storybook-style manual verification steps in the PR) covering each denial reason.

Acceptance criteria

  • Denied state shows the specific reason for denial, not a generic message
  • CTA links to a real (even if simple) upgrade/renew page
  • Behavior verified against both "Denied Resource" and "Expired Member" mock presets

Likely affected files/directories

  • components/gated.tsx
  • app/ (new upgrade/renew route)
  • lib/api/mock.ts

Metadata

Metadata

Assignees

Labels

GrantFox OSSGrantFox Open Source Sponsorship program tagMaybe RewardedIssue may qualify for a reward upon successful completion per campaign rulesOfficial Campaign | FWC26Official FWC26 campaign issue — eligible for campaign scoring and rewardsfeatureNew feature, enhancement, or functional additionintermediateIntermediate difficulty tasks requiring solid experience and some contextui/uxUser interface or user experience improvements and design work

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions