- React + TanStack Router + shadcn/ui SPA under spa/ - serve spa/dist at /app/ with index.html fallback for client routing - Dockerfile: node build stage for SPA, copy dist into runtime image - README: document SPA, CORS_ORIGINS env var, architecture entry - vite base set to /app/, manifest.json paths fixed
18 lines
552 B
TypeScript
18 lines
552 B
TypeScript
import type { LucideIcon } from "lucide-react"
|
|
|
|
type EmptyStateProps = {
|
|
icon: LucideIcon
|
|
title: string
|
|
description?: string
|
|
}
|
|
|
|
export function EmptyState({ icon: Icon, title, description }: EmptyStateProps) {
|
|
return (
|
|
<div className="flex flex-col items-center justify-center py-16 text-center">
|
|
<Icon className="mb-3 size-10 text-muted-foreground/40" />
|
|
<p className="font-medium text-muted-foreground">{title}</p>
|
|
{description && <p className="mt-1 text-sm text-muted-foreground/70">{description}</p>}
|
|
</div>
|
|
)
|
|
}
|