* esm * wip * wip * wip * wip * wip * wip * subscription notice * wip * wip * wip * fix envs * fix: update docker build * fix * esm/types * delete dashboard :D * add patches to dockerfiles * update packages + catalogs + ts * wip * remove native libs * ts * improvements * fix redirects and fetching session * try fix favicon * fixes * fix * order and resize reportds within a dashboard * improvements * wip * added userjot to dashboard * fix * add op * wip * different cache key * improve date picker * fix table * event details loading * redo onboarding completely * fix login * fix * fix * extend session, billing and improve bars * fix * reduce price on 10M
40 lines
989 B
TypeScript
40 lines
989 B
TypeScript
import { cn } from '@/utils/cn';
|
|
import { BoxSelectIcon } from 'lucide-react';
|
|
import type { LucideIcon } from 'lucide-react';
|
|
import { PageHeader } from './page-header';
|
|
|
|
interface FullPageEmptyStateProps {
|
|
icon?: LucideIcon;
|
|
title: string;
|
|
description?: string;
|
|
children?: React.ReactNode;
|
|
className?: string;
|
|
}
|
|
|
|
export function FullPageEmptyState({
|
|
icon: Icon = BoxSelectIcon,
|
|
title,
|
|
description,
|
|
children,
|
|
className,
|
|
}: FullPageEmptyStateProps) {
|
|
return (
|
|
<div
|
|
className={cn(
|
|
'flex items-center justify-center p-4 text-center',
|
|
className,
|
|
)}
|
|
>
|
|
<div className="flex w-full max-w-xl flex-col items-center justify-center p-8">
|
|
<div className="mb-6 flex h-24 w-24 items-center justify-center rounded-full bg-card shadow-sm">
|
|
<Icon size={60} strokeWidth={1} />
|
|
</div>
|
|
|
|
<PageHeader title={title} description={description} className="mb-4" />
|
|
|
|
{children}
|
|
</div>
|
|
</div>
|
|
);
|
|
}
|