Staaarter

Payment Required Lockout

A split-screen billing lockout page: an accent card-icon chip, headline, and Update payment button on the left, and on the right an unpaid invoice table (invoice number, amount, due date) followed by a bulleted list reassuring the visitor what still works while the account is on hold.

By Staaarter Team
Error
Docs
Live preview

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/payment-required-lockout.json

Prefer not to use the CLI? Copy the source from the Code toggle above into src/components/blocks/error/error26.tsx instead.

Usage

The file also exports error26Demo, 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 { Error26, error26Demo } from "@/components/blocks/error/error26";

export default function Page() {
  return <Error26 {...error26Demo} />;
}

Props

PropTypeDefaultDescription
headingReactNodenoneMain headline on the left panel.
descriptionstringnoneSupporting copy under the headline.
updateLabelstringnoneLabel for the Update payment button.
updateHrefstringnoneHref for the Update payment button.
invoicesUnpaidInvoice[]noneRows of the unpaid invoice table.
retainedItemsstring[]noneBulleted list of what stays untouched while the account is locked.
classNamestringnoneExtra classes for the outer section element.

Types

interface UnpaidInvoice {
  number: string;
  amount: string;
  dueDate: string;
}

Behavior notes

  • Fully static server component: no client state, hooks, or interactivity of any kind.
  • The Update payment button renders as a real Next.js Link via the render prop, but does not open any real billing flow.
  • The invoice table and the retained-items list are both static demo data.