Staaarter

Maintenance Window Notice

Full-height maintenance screen: a square status-code chip next to a "Maintenance" eyebrow, a bold accent headline, three bordered cells showing the maintenance window (Start / End / Duration), a real email signup that swaps to a confirmed state on submit, and a link to a (decorative) live progress page.

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/maintenance-window-notice.json

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

Usage

The file also exports error17Demo, 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 { Error17, error17Demo } from "@/components/blocks/error/error17";

export default function Page() {
  return <Error17 {...error17Demo} />;
}

Props

PropTypeDefaultDescription
eyebrowstring"Maintenance"Label shown next to the status-code chip.
statusCodestring"503"Status code shown inside the square chip.
headingReactNode"We're doing some quick maintenance"Main headline.
descriptionstring"Scheduled upgrades are underway..."Supporting copy under the headline.
windowMaintenanceWindownoneStart time, end time, and duration shown in the three bordered cells.
progressHrefstring"#"Link target for the "View live progress" link.
progressLabelstring"View live progress"Label for the live-progress link.
classNamestringnoneExtra classes for the outer section element.

Types

type MaintenanceWindow = { start: string; end: string; duration: string };

Behavior notes

  • The email signup form is real client state (useState for the email value and a submitted flag): submitting swaps the form for a confirmed "You're on the list." message, exactly like a working notify-me form, but nothing is actually sent anywhere.
  • "View live progress" is a plain next/link with no real status data behind it, purely decorative navigation.
  • The three window cells (Start / End / Duration) are static demo data, not a live countdown.