Staaarter

Account Locked

Full-height lockout screen shown after too many failed sign-in attempts, with a warning icon, a live countdown timer, a retry button that stays disabled until the timer reaches zero, and a link to reset the password instead.

By Staaarter Team
Auth
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/account-locked.json

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

Usage

The file also exports auth23Demo, 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 { Auth23, auth23Demo } from "@/components/blocks/auth/auth23";

export default function Page() {
  return <Auth23 {...auth23Demo} />;
}

Props

PropTypeDefaultDescription
headingstringnoneScreen heading.
descriptionstringnoneShort explanation shown under the heading.
initialSecondsnumbernoneSeconds the countdown starts from, e.g. 300 for 5:00.
retryLabelstringnoneLabel for the retry button.
resetLabelstringnoneLabel for the 'reset password instead' link.
resetHrefstringnoneHref for the 'reset password instead' link.
classNamestringnoneExtra classes for the outer section element.

Behavior notes

  • The countdown is a real setInterval started in useEffect on mount, ticking every second from initialSeconds down to 0; the interval is cleared on unmount.
  • The retry button's disabled state is derived directly from the current countdown value (disabled while secondsLeft > 0), not from a separate flag.
  • The initial countdown value comes straight from the initialSeconds prop via useState(initialSeconds); it is not re-synced from props after mount.
  • 'Reset password instead' renders as a real Next.js Link via the Button's render prop, but does not perform any real password-reset flow.