Billing Reactivate Subscription
A reactivation prompt for accounts that canceled but are still inside their paid access window. It states when access ends, lists what the user keeps by resuming, and links straight to a resume action, aimed at billing dashboards, account settings, and cancellation exit-intent screens.
Docs
Installation
A real shadcn registry command, not a copy-paste stand-in: it fetches this block plus its button dependencies and any missing npm packages, and installs them straight into your project.
npx shadcn add https://staaarter.com/r/billing-reactivate-subscription.jsonPrefer not to use the CLI? Copy the source from the Code toggle above into src/components/blocks/billing/billing107.tsx instead.
Usage
The file also exports billing107Demo, the exact props behind the preview above. Spread it to get a working section in one line, then replace it with your own data.
import { Billing107, billing107Demo } from "@/components/blocks/billing/billing107"; export default function Page() { return <Billing107 {...billing107Demo} />; }
Props
| Prop | Type | Default | Description |
|---|---|---|---|
| title | string | "Your subscription is set to cancel" | Heading at the top of the card. |
| planName | string | none | Name of the plan being offered for reactivation. |
| price | string | none | Formatted price string, for example "$29". |
| priceInterval | string | "/month" | Billing interval suffix shown after the price. |
| expiresLabel | string | none | Sentence stating when access ends, for example "You'll lose access in 9 days, on August 17." |
| restoredFeatures | string[] | none | Plan features the user regains by resuming, rendered as a checklist. |
| resumeLabel | string | "Resume subscription" | Label on the primary resume button. |
| resumeHref | string | none | Link the resume button points to. |
| dismissLabel | string | none | Optional label for a secondary dismiss link, rendered only alongside dismissHref. |
| dismissHref | string | none | Optional link for the secondary dismiss action. |
| className | string | none | Extra classes for the outer container. |
Behavior notes
- The price is a plain formatted string, not an animated counter, so it renders the same on every load with no client-side JavaScript required.
- expiresLabel is a sentence you compute from your billing provider's period-end timestamp and pass in as text; the component doesn't calculate or format dates itself.
- The dismiss link only renders when both dismissLabel and dismissHref are set, so the card can also be used as a resume-only prompt with no secondary action.
- Resume is a next/link, not a form submission, so wire it to a route that calls your billing provider's API to flip cancel_at_period_end back to false.
- The card uses an amber accent throughout to read as a time-sensitive notice rather than routine billing information.
Frequently asked questions
More Billing Blocks
View all →Billing Invoice List
Invoice history table with status badges, formatted amounts, and a per-row download link, built with shadcn/ui and Tailwind CSS.
Billing Failed Payment Alert
High-contrast failed-payment alert with a message, a retry button, and an optional update-payment-method button, built with shadcn/ui and Tailwind CSS.
Billing Credit Balance
Compact credit balance card with a large total, an optional purchased-versus-promotional breakdown, a low-balance notice, and a top-up button.
Billing Payment Methods
A saved payment method list for React and Next.js with brand icons, a default badge, near-expiry warnings, and remove/set-default actions per row.
Billing Add Card
A card entry form for React and Next.js with auto-formatted fields, internal brand detection, and per-field validation feedback built with shadcn/ui and Tailwind CSS.
Billing Coupon Code
An inline promo code input for React and Next.js with a simulated loading state, an applied summary showing the discount amount, and an invalid-code message.