# All files / src/components/ui empty-state.tsx

0% Statements 0/3
0% Branches 0/4
0% Functions 0/1
0% Lines 0/3

Press n or j to go to the next uncovered block, b, p or k for the previous block.

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25

     import React from "react";
    import { Button } from "@/components/ui/button";

    interface EmptyStateProps {
      title: string;
      description?: string;
      actionLabel?: string;
      onAction?: () => void;
      icon?: React.ReactNode;
    }

    export function EmptyState({ title, description, actionLabel, onAction, icon }: EmptyStateProps) {
      return (
        <div className="flex flex-col items-center justify-center text-center py-8 text-gray-500">
          {icon && <div className="mb-3 text-gray-400">{icon}</div>}
          <h3 className="text-base font-medium text-gray-900 mb-1">{title}</h3>
          {description && <p className="text-sm text-gray-600 mb-4">{description}</p>}
          {actionLabel && onAction && (
            <Button variant="outline" onClick={onAction}>{actionLabel}</Button>
          )}
        </div>
      );
    }