Kovak Yazılım kurumsal site — Next.js 16 + Appwrite
- Anasayfa, Hizmetler, Projeler, Hakkımızda, İletişim sayfaları - Header/Footer, Hero, ServicesGrid, ProjectsGrid, ContactForm bileşenleri - Appwrite TablesDB entegrasyonu (services, projects, contact_messages) - Server Action ile iletişim formu (submitContact) - Brand palette: navy #0F2C5C + sky #4DA3C7 - kovakyazilim.com'dan alınan logo public/logo.png
This commit is contained in:
@@ -0,0 +1,35 @@
|
||||
import {
|
||||
Globe,
|
||||
ShoppingCart,
|
||||
Smartphone,
|
||||
Code2,
|
||||
Users,
|
||||
TrendingUp,
|
||||
Share2,
|
||||
Megaphone,
|
||||
Layers,
|
||||
type LucideIcon,
|
||||
} from "lucide-react";
|
||||
|
||||
const iconMap: Record<string, LucideIcon> = {
|
||||
Globe,
|
||||
ShoppingCart,
|
||||
Smartphone,
|
||||
Code2,
|
||||
Users,
|
||||
TrendingUp,
|
||||
Share2,
|
||||
Megaphone,
|
||||
Layers,
|
||||
};
|
||||
|
||||
export function Icon({
|
||||
name,
|
||||
className,
|
||||
}: {
|
||||
name?: string | null;
|
||||
className?: string;
|
||||
}) {
|
||||
const Cmp = (name && iconMap[name]) || Layers;
|
||||
return <Cmp className={className} />;
|
||||
}
|
||||
Reference in New Issue
Block a user