Full-stack Next.js 16 app with three scraping pipelines: - AirScale CSV → Anymailfinder Bulk Decision Maker search - LinkedIn Sales Navigator → Vayne → Anymailfinder email enrichment - Apify Google SERP → domain extraction → Anymailfinder bulk enrichment Includes Docker multi-stage build + docker-compose for Coolify deployment. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
22 lines
690 B
TypeScript
22 lines
690 B
TypeScript
import { LucideIcon } from "lucide-react";
|
|
|
|
interface EmptyStateProps {
|
|
icon: LucideIcon;
|
|
title: string;
|
|
description: string;
|
|
action?: React.ReactNode;
|
|
}
|
|
|
|
export function EmptyState({ icon: Icon, title, description, action }: EmptyStateProps) {
|
|
return (
|
|
<div className="flex flex-col items-center justify-center py-20 text-center">
|
|
<div className="w-16 h-16 rounded-2xl bg-[#1e1e2e] flex items-center justify-center mb-4">
|
|
<Icon className="w-8 h-8 text-gray-500" />
|
|
</div>
|
|
<h3 className="text-base font-semibold text-white mb-2">{title}</h3>
|
|
<p className="text-sm text-gray-500 max-w-sm mb-6">{description}</p>
|
|
{action}
|
|
</div>
|
|
);
|
|
}
|