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

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

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