Docker images / prepare-release (push) Successful in 4s
Docker images / backend-image (push) Failing after 2m36s
Docker images / frontend-image (push) Successful in 2m22s
Docker images / notify-webhook (push) Skipped
Docker images / updater-image (push) Successful in 55s
Docker images / publish-release (push) Skipped
Подключить App Switcher, NavUser, OpsPanel и AlertDialog вместо Card-shell. Co-authored-by: Cursor <cursoragent@cursor.com>
36 lines
1.4 KiB
TypeScript
36 lines
1.4 KiB
TypeScript
import { PageHeader } from "@/components/page-header"
|
|
import { Frame, FramePanel } from "@/components/reui/frame"
|
|
import type { LucideIcon } from "lucide-react"
|
|
|
|
interface PlaceholderPageProps {
|
|
section: string
|
|
title: string
|
|
description: string
|
|
Icon: LucideIcon
|
|
}
|
|
|
|
export function PlaceholderPage({ section, title, description, Icon }: PlaceholderPageProps) {
|
|
return (
|
|
<div className="flex flex-col h-full">
|
|
<PageHeader crumbs={[{ label: section }, { label: title }]} />
|
|
<div className="flex-1 overflow-y-auto p-6">
|
|
<div className="flex flex-col gap-4 max-w-[1400px]">
|
|
<div>
|
|
<h1 className="text-2xl font-semibold tracking-tight">{title}</h1>
|
|
<p className="text-sm text-muted-foreground mt-1">{description}</p>
|
|
</div>
|
|
<Frame dense className="w-full">
|
|
<FramePanel className="flex flex-col items-center justify-center py-20 gap-3 text-center">
|
|
<Icon className="size-10 text-muted-foreground/30" />
|
|
<h3 className="text-base font-medium">Скоро</h3>
|
|
<p className="text-sm text-muted-foreground max-w-xs">
|
|
Этот раздел будет подключён следующим. Слой данных и эндпоинты бэкенда уже готовы.
|
|
</p>
|
|
</FramePanel>
|
|
</Frame>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
)
|
|
}
|