- Introduced foundational UI components (`Badge`, `LockCard`, `SectionHeader`, `AvatarIcon`, etc.) for flexible layouts and consistent design. - Added migration support with the `MigrationModal` component and backend integration for exporting/importing data between Electron and Tauri. - Extended form components with `TextAreaInput`, `OrderInput`, `ToggleField`, and `ToolbarSelect` for improved input handling. - Updated `ScribeShell` with migration popup logic to prompt users for data migration. - Integrated `AlertStack` for better alert handling and notification management. - Enhanced Rust/Tauri services with migration command implementations. - Added translations and styles for new components.
34 lines
1015 B
TypeScript
34 lines
1015 B
TypeScript
import React, {ReactNode} from "react";
|
|
import {LucideIcon} from "lucide-react";
|
|
import IconContainer from "@/components/ui/IconContainer";
|
|
|
|
interface EmptyStateProps {
|
|
icon: LucideIcon;
|
|
title: string;
|
|
description?: string;
|
|
action?: ReactNode;
|
|
}
|
|
|
|
export default function EmptyState(
|
|
{
|
|
icon,
|
|
title,
|
|
description,
|
|
action,
|
|
}: EmptyStateProps) {
|
|
return (
|
|
<div className="h-full flex flex-col items-center justify-center py-12 text-center p-8">
|
|
<div className="mb-6">
|
|
<IconContainer icon={icon} size="xl" shape="rounded"/>
|
|
</div>
|
|
<h3 className="text-xl font-['ADLaM_Display'] text-text-primary mb-3">{title}</h3>
|
|
{description && (
|
|
<p className="text-muted max-w-md text-lg leading-relaxed">{description}</p>
|
|
)}
|
|
{action && (
|
|
<div className="mt-6">{action}</div>
|
|
)}
|
|
</div>
|
|
);
|
|
}
|