Compare commits
7 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| f674d27f0d | |||
| a6dd38e420 | |||
| a4e9ee617b | |||
| 036da8d014 | |||
| e619251ca9 | |||
| a4a765a673 | |||
| 05477d34bc |
39
src/app/AuthGuard.tsx
Normal file
39
src/app/AuthGuard.tsx
Normal file
@@ -0,0 +1,39 @@
|
||||
"use client";
|
||||
|
||||
import { useEffect } from 'react';
|
||||
import { useRouter, usePathname } from 'next/navigation';
|
||||
|
||||
interface AuthGuardProps {
|
||||
children: React.ReactNode;
|
||||
}
|
||||
|
||||
export default function AuthGuard({ children }: AuthGuardProps) {
|
||||
const router = useRouter();
|
||||
const pathname = usePathname();
|
||||
|
||||
useEffect(() => {
|
||||
const isAuthenticated = localStorage.getItem('isAuthenticated') === 'true';
|
||||
|
||||
// Allow access to login page regardless of authentication status
|
||||
if (pathname === '/login') {
|
||||
// If user is already authenticated and tries to go to login, redirect to dashboard
|
||||
if (isAuthenticated) {
|
||||
router.replace('/dashboard');
|
||||
}
|
||||
return;
|
||||
}
|
||||
|
||||
// Protect all other pages except home (/) and login (/login)
|
||||
if (pathname !== '/' && !isAuthenticated) {
|
||||
router.replace('/login');
|
||||
}
|
||||
}, [pathname, router]);
|
||||
|
||||
// If on a protected route and not authenticated, we're redirecting, so don't render children yet.
|
||||
// If on home page, or on login page, or on protected page AND authenticated, render children.
|
||||
if (pathname !== '/' && pathname !== '/login' && localStorage.getItem('isAuthenticated') !== 'true') {
|
||||
return null; // Don't render content until redirected
|
||||
}
|
||||
|
||||
return <>{children}</>;
|
||||
}
|
||||
@@ -4,13 +4,17 @@ import ReactLenis from "lenis/react";
|
||||
import NavbarLayoutFloatingInline from "@/components/navbar/NavbarLayoutFloatingInline";
|
||||
import { ThemeProvider } from "@/providers/themeProvider/ThemeProvider";
|
||||
import HeroBillboardDashboard from "@/components/sections/hero/HeroBillboardDashboard";
|
||||
import { BarChart3, Package, Users, Settings, Bell, Search, PlusCircle, ArrowUpCircle, TrendingUp, CheckCircle, XCircle } from "lucide-react";
|
||||
import { BarChart3, Package, Users, Settings, Bell, PlusCircle, ArrowUpCircle, TrendingUp, CheckCircle, XCircle } from "lucide-react";
|
||||
import AuthGuard from "../AuthGuard";
|
||||
|
||||
export default function DashboardPage() {
|
||||
const navItems = [
|
||||
{ name: "Özellikler", id: "features" },
|
||||
{ name: "Fiyatlandırma", id: "pricing" },
|
||||
{ name: "İzlenebilirlik", id: "traceability" },
|
||||
{ name: "Günlükler", id: "/logs" },
|
||||
{ name: "Hareketler", id: "/movements" },
|
||||
{ name: "Raporlar", id: "/reports" },
|
||||
{ name: "Hakkımızda", id: "about" },
|
||||
{ name: "Varyasyonlar", id: "/product-variations" },
|
||||
{ name: "Üretim", id: "/production" },
|
||||
@@ -18,52 +22,54 @@ export default function DashboardPage() {
|
||||
{ name: "Yönetim Paneli", id: "/superadmin" },
|
||||
{ name: "Giriş Yap", id: "/login" },
|
||||
{ name: "Gösterge Paneli", id: "/dashboard" },
|
||||
{ name: "Kategoriler", id: "/categories" },
|
||||
{ name: "İletişim", id: "contact" }
|
||||
];
|
||||
|
||||
return (
|
||||
<ThemeProvider defaultButtonVariant="hover-bubble" defaultTextAnimation="entrance-slide" borderRadius="pill" contentWidth="medium" sizing="medium" background="none" cardStyle="gradient-bordered" primaryButtonStyle="primary-glow" secondaryButtonStyle="layered" headingFontWeight="medium">
|
||||
<ReactLenis root>
|
||||
<NavbarLayoutFloatingInline
|
||||
navItems={navItems}
|
||||
brandName="Stokify"
|
||||
button={{ text: "Hemen Başla", href: "#contact" }}
|
||||
/>
|
||||
<HeroBillboardDashboard
|
||||
title="Stok Yönetim Paneli"
|
||||
description="Stokify ile envanterinizi gerçek zamanlı olarak takip edin ve yönetin."
|
||||
background={{ variant: "animated-grid" }}
|
||||
dashboard={{
|
||||
title: "Genel Bakış", stats: [
|
||||
{ title: "Toplam Ürün", values: [1200, 1250, 1300], description: "Depodaki toplam ürün sayısı" },
|
||||
{ title: "Stok Değeri", values: [250000, 260000, 275000], valuePrefix: "₺", description: "Mevcut stokun tahmini değeri" },
|
||||
{ title: "Bekleyen Siparişler", values: [15, 12, 10], description: "Gönderilmeyi bekleyen sipariş sayısı" },
|
||||
],
|
||||
logoIcon: Package,
|
||||
sidebarItems: [
|
||||
{ icon: BarChart3, active: true },
|
||||
{ icon: Package },
|
||||
{ icon: Users },
|
||||
{ icon: Settings },
|
||||
{ icon: Bell },
|
||||
],
|
||||
searchPlaceholder: "Ürün veya sipariş ara...", buttons: [
|
||||
{ text: "Yeni Ürün Ekle", onClick: () => console.log("Add new product") },
|
||||
{ text: "Rapor Oluştur", onClick: () => console.log("Generate report") },
|
||||
],
|
||||
chartTitle: "Son 7 Günlük Stok Hareketi", chartData: [
|
||||
{ value: 120 }, { value: 150 }, { value: 130 }, { value: 170 }, { value: 140 }, { value: 190 }, { value: 160 }
|
||||
],
|
||||
listItems: [
|
||||
{ icon: ArrowUpCircle, title: "Yeni Giriş: Ürün X", status: "Tamamlandı" },
|
||||
{ icon: TrendingUp, title: "Stok Azaldı: Ürün Y", status: "Beklemede" },
|
||||
{ icon: CheckCircle, title: "Sipariş #1234", status: "Gönderildi" },
|
||||
{ icon: XCircle, title: "İade: Ürün Z", status: "Sorunlu" },
|
||||
],
|
||||
listTitle: "Son Hareketler", imageSrc: "https://images.unsplash.com/photo-1579547612702-fe1e4889c565?q=80&w=2670&auto=format&fit=crop&ixlib=rb-4.0.3&ixid=M3wxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8fA%3D%3D", imageAlt: "Dashboard Background"}}
|
||||
/>
|
||||
</ReactLenis>
|
||||
<AuthGuard>
|
||||
<ReactLenis root>
|
||||
<NavbarLayoutFloatingInline
|
||||
navItems={navItems}
|
||||
brandName="Stokify"
|
||||
button={{ text: "Hemen Başla", href: "#contact" }}
|
||||
/>
|
||||
<HeroBillboardDashboard
|
||||
title="Stok Yönetim Paneli"
|
||||
description="Stokify ile envanterinizi gerçek zamanlı olarak takip edin ve yönetin."
|
||||
background={{ variant: "animated-grid" }}
|
||||
dashboard={{
|
||||
title: "Genel Bakış", stats: [
|
||||
{ title: "Toplam Ürün", values: [1200, 1250, 1300], description: "Depodaki toplam ürün sayısı" },
|
||||
{ title: "Stok Değeri", values: [250000, 260000, 275000], valuePrefix: "₺", description: "Mevcut stokun tahmini değeri" },
|
||||
{ title: "Bekleyen Siparişler", values: [15, 12, 10], description: "Gönderilmeyi bekleyen sipariş sayısı" },
|
||||
],
|
||||
logoIcon: Package,
|
||||
sidebarItems: [
|
||||
{ icon: BarChart3, active: true },
|
||||
{ icon: Package },
|
||||
{ icon: Users },
|
||||
{ icon: Settings },
|
||||
{ icon: Bell },
|
||||
],
|
||||
searchPlaceholder: "Ürün veya sipariş ara...", buttons: [
|
||||
{ text: "Yeni Ürün Ekle", onClick: () => console.log("Add new product") },
|
||||
{ text: "Rapor Oluştur", onClick: () => console.log("Generate report") },
|
||||
],
|
||||
chartTitle: "Son 7 Günlük Stok Hareketi", chartData: [
|
||||
{ value: 120 }, { value: 150 }, { value: 130 }, { value: 170 }, { value: 140 }, { value: 190 }, { value: 160 }
|
||||
],
|
||||
listItems: [
|
||||
{ icon: ArrowUpCircle, title: "Yeni Giriş: Ürün X", status: "Tamamlandı" },
|
||||
{ icon: TrendingUp, title: "Stok Azaldı: Ürün Y", status: "Beklemede" },
|
||||
{ icon: CheckCircle, title: "Sipariş #1234", status: "Gönderildi" },
|
||||
{ icon: XCircle, title: "İade: Ürün Z", status: "Sorunlu" },
|
||||
],
|
||||
listTitle: "Son Hareketler", imageSrc: "https://images.unsplash.com/photo-1579547612702-fe1e4889c565?q=80&w=2670&auto=format&fit=crop&ixlib=rb-4.0.3&ixid=M3wxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8fA%3D%3D", imageAlt: "Dashboard Background"
|
||||
}}
|
||||
/>
|
||||
</ReactLenis>
|
||||
</AuthGuard>
|
||||
</ThemeProvider>
|
||||
);
|
||||
}
|
||||
@@ -1,16 +1,20 @@
|
||||
"use client";
|
||||
|
||||
import React from "react";
|
||||
import ReactLenis from "lenis/react";
|
||||
import NavbarLayoutFloatingInline from "@/components/navbar/NavbarLayoutFloatingInline";
|
||||
import { ThemeProvider } from "@/providers/themeProvider/ThemeProvider";
|
||||
import ContactCenter from "@/components/sections/contact/ContactCenter";
|
||||
import { Mail } from "lucide-react";
|
||||
import { useRouter } from 'next/navigation';
|
||||
|
||||
export default function LoginPage() {
|
||||
const router = useRouter();
|
||||
const navItems = [
|
||||
{ name: "Özellikler", id: "features" },
|
||||
{ name: "Fiyatlandırma", id: "pricing" },
|
||||
{ name: "İzlenebilirlik", id: "traceability" },
|
||||
{ name: "Günlükler", id: "/logs" },
|
||||
{ name: "Hareketler", id: "/movements" },
|
||||
{ name: "Raporlar", id: "/reports" },
|
||||
{ name: "Hakkımızda", id: "about" },
|
||||
{ name: "Varyasyonlar", id: "/product-variations" },
|
||||
{ name: "Üretim", id: "/production" },
|
||||
@@ -18,10 +22,15 @@ export default function LoginPage() {
|
||||
{ name: "Yönetim Paneli", id: "/superadmin" },
|
||||
{ name: "Giriş Yap", id: "/login" },
|
||||
{ name: "Gösterge Paneli", id: "/dashboard" },
|
||||
{ name: "Kategoriler", id: "/categories" },
|
||||
{ name: "İletişim", id: "contact" }
|
||||
];
|
||||
|
||||
const handleLogin = () => {
|
||||
// Simulate successful login
|
||||
localStorage.setItem('isAuthenticated', 'true');
|
||||
router.push('/dashboard');
|
||||
};
|
||||
|
||||
return (
|
||||
<ThemeProvider defaultButtonVariant="hover-bubble" defaultTextAnimation="entrance-slide" borderRadius="pill" contentWidth="medium" sizing="medium" background="none" cardStyle="gradient-bordered" primaryButtonStyle="primary-glow" secondaryButtonStyle="layered" headingFontWeight="medium">
|
||||
<ReactLenis root>
|
||||
@@ -30,18 +39,17 @@ export default function LoginPage() {
|
||||
brandName="Stokify"
|
||||
button={{ text: "Hemen Başla", href: "#contact" }}
|
||||
/>
|
||||
<div id="login" data-section="login" className="flex items-center justify-center min-h-screen py-16">
|
||||
<ContactCenter
|
||||
tag="Giriş Yap"
|
||||
tagIcon={Mail}
|
||||
title="Hesabınıza Giriş Yapın"
|
||||
description="Stokify yönetim paneline erişmek için bilgilerinizi girin."
|
||||
background={{ variant: "plain" }}
|
||||
useInvertedBackground={false}
|
||||
inputPlaceholder="E-posta adresiniz"
|
||||
buttonText="Giriş Yap"
|
||||
onSubmit={(email) => console.log("Login attempt with email:", email)}
|
||||
/>
|
||||
<div id="login" data-section="login" className="flex items-center justify-center min-h-screen py-16 px-4">
|
||||
<div className="bg-card p-8 rounded-lg shadow-lg max-w-md w-full text-center">
|
||||
<h1 className="text-3xl font-bold mb-4 text-foreground">Hesabınıza Giriş Yapın</h1>
|
||||
<p className="text-foreground/80 mb-6">Stokify yönetim paneline erişmek için giriş yapın.</p>
|
||||
<button
|
||||
onClick={handleLogin}
|
||||
className="w-full bg-primary-cta text-primary-cta-text py-3 px-6 rounded-md font-semibold text-lg hover:opacity-90 transition-opacity"
|
||||
>
|
||||
Giriş Yap (Simüle)
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
</ReactLenis>
|
||||
</ThemeProvider>
|
||||
|
||||
@@ -4,6 +4,7 @@ import React from "react";
|
||||
import ReactLenis from "lenis/react";
|
||||
import NavbarLayoutFloatingInline from "@/components/navbar/NavbarLayoutFloatingInline";
|
||||
import { ThemeProvider } from "@/providers/themeProvider/ThemeProvider";
|
||||
import AuthGuard from "../AuthGuard";
|
||||
|
||||
export default function LogsPage() {
|
||||
const navItems = [
|
||||
@@ -18,22 +19,26 @@ export default function LogsPage() {
|
||||
{ name: "Üretim", id: "/production" },
|
||||
{ name: "Reçeteler", id: "/recipes" },
|
||||
{ name: "Yönetim Paneli", id: "/superadmin" },
|
||||
{ name: "Giriş Yap", id: "/login" },
|
||||
{ name: "Gösterge Paneli", id: "/dashboard" },
|
||||
{ name: "İletişim", id: "contact" }
|
||||
];
|
||||
|
||||
return (
|
||||
<ThemeProvider defaultButtonVariant="hover-bubble" defaultTextAnimation="entrance-slide" borderRadius="pill" contentWidth="medium" sizing="medium" background="none" cardStyle="gradient-bordered" primaryButtonStyle="primary-glow" secondaryButtonStyle="layered" headingFontWeight="medium">
|
||||
<ReactLenis root>
|
||||
<NavbarLayoutFloatingInline
|
||||
navItems={navItems}
|
||||
brandName="Stokify"
|
||||
button={{ text: "Hemen Başla", href: "#contact" }}
|
||||
/>
|
||||
<main className="container mx-auto px-4 py-16 min-h-[calc(100vh-100px)] flex flex-col items-center justify-center text-center">
|
||||
<h1 className="text-4xl font-bold mb-4">Sistem Günlükleri</h1>
|
||||
<p className="text-lg text-gray-600">Tüm sistem hareketlerinin detaylı günlükleri burada gösterilecektir.</p>
|
||||
</main>
|
||||
</ReactLenis>
|
||||
<AuthGuard>
|
||||
<ReactLenis root>
|
||||
<NavbarLayoutFloatingInline
|
||||
navItems={navItems}
|
||||
brandName="Stokify"
|
||||
button={{ text: "Hemen Başla", href: "#contact" }}
|
||||
/>
|
||||
<main className="container mx-auto px-4 py-16 min-h-[calc(100vh-100px)] flex flex-col items-center justify-center text-center">
|
||||
<h1 className="text-4xl font-bold mb-4">Sistem Günlükleri</h1>
|
||||
<p className="text-lg text-gray-600">Tüm sistem hareketlerinin detaylı günlükleri burada gösterilecektir.</p>
|
||||
</main>
|
||||
</ReactLenis>
|
||||
</AuthGuard>
|
||||
</ThemeProvider>
|
||||
);
|
||||
}
|
||||
@@ -4,6 +4,7 @@ import React from "react";
|
||||
import ReactLenis from "lenis/react";
|
||||
import NavbarLayoutFloatingInline from "@/components/navbar/NavbarLayoutFloatingInline";
|
||||
import { ThemeProvider } from "@/providers/themeProvider/ThemeProvider";
|
||||
import AuthGuard from "../AuthGuard";
|
||||
|
||||
export default function MovementsPage() {
|
||||
const navItems = [
|
||||
@@ -18,22 +19,26 @@ export default function MovementsPage() {
|
||||
{ name: "Üretim", id: "/production" },
|
||||
{ name: "Reçeteler", id: "/recipes" },
|
||||
{ name: "Yönetim Paneli", id: "/superadmin" },
|
||||
{ name: "Giriş Yap", id: "/login" },
|
||||
{ name: "Gösterge Paneli", id: "/dashboard" },
|
||||
{ name: "İletişim", id: "contact" }
|
||||
];
|
||||
|
||||
return (
|
||||
<ThemeProvider defaultButtonVariant="hover-bubble" defaultTextAnimation="entrance-slide" borderRadius="pill" contentWidth="medium" sizing="medium" background="none" cardStyle="gradient-bordered" primaryButtonStyle="primary-glow" secondaryButtonStyle="layered" headingFontWeight="medium">
|
||||
<ReactLenis root>
|
||||
<NavbarLayoutFloatingInline
|
||||
navItems={navItems}
|
||||
brandName="Stokify"
|
||||
button={{ text: "Hemen Başla", href: "#contact" }}
|
||||
/>
|
||||
<main className="container mx-auto px-4 py-16 min-h-[calc(100vh-100px)] flex flex-col items-center justify-center text-center">
|
||||
<h1 className="text-4xl font-bold mb-4">Stok Hareketleri</h1>
|
||||
<p className="text-lg text-gray-600">Ürünlerin giriş ve çıkış hareketleri bu sayfada görüntülenecektir.</p>
|
||||
</main>
|
||||
</ReactLenis>
|
||||
<AuthGuard>
|
||||
<ReactLenis root>
|
||||
<NavbarLayoutFloatingInline
|
||||
navItems={navItems}
|
||||
brandName="Stokify"
|
||||
button={{ text: "Hemen Başla", href: "#contact" }}
|
||||
/>
|
||||
<main className="container mx-auto px-4 py-16 min-h-[calc(100vh-100px)] flex flex-col items-center justify-center text-center">
|
||||
<h1 className="text-4xl font-bold mb-4">Stok Hareketleri</h1>
|
||||
<p className="text-lg text-gray-600">Ürünlerin giriş ve çıkış hareketleri bu sayfada görüntülenecektir.</p>
|
||||
</main>
|
||||
</ReactLenis>
|
||||
</AuthGuard>
|
||||
</ThemeProvider>
|
||||
);
|
||||
}
|
||||
@@ -26,6 +26,8 @@ export default function SaasTemplatePage() {
|
||||
{ name: "Üretim", id: "/production" },
|
||||
{ name: "Reçeteler", id: "/recipes" },
|
||||
{ name: "Yönetim Paneli", id: "/superadmin" },
|
||||
{ name: "Giriş Yap", id: "/login" },
|
||||
{ name: "Gösterge Paneli", id: "/dashboard" },
|
||||
{ name: "İletişim", id: "contact" }
|
||||
];
|
||||
|
||||
@@ -38,11 +40,13 @@ export default function SaasTemplatePage() {
|
||||
|
||||
const features: FeatureCard[] = [
|
||||
{
|
||||
bentoComponent: "globe", title: "Kapsamlı Envanter Kontrolü", description: "Tüm ürünlerinizi, depo konumlarını ve stok seviyelerini tek bir yerden yönetin."},
|
||||
bentoComponent: "globe", title: "Kapsamlı Envanter Kontrolü", description: "Tüm ürünlerinizi, depo konumlarını ve stok seviyelerini tek bir yerden yönetin."
|
||||
},
|
||||
{
|
||||
bentoComponent: "marquee", variant: "text", centerIcon: Zap,
|
||||
texts: ["Gerçek Zamanlı", "Doğru", "Hızlı", "Güvenli"],
|
||||
title: "Hızlı ve Gerçek Zamanlı Takip", description: "Stok hareketlerini anlık olarak izleyin ve her zaman güncel bilgilere sahip olun."},
|
||||
title: "Hızlı ve Gerçek Zamanlı Takip", description: "Stok hareketlerini anlık olarak izleyin ve her zaman güncel bilgilere sahip olun."
|
||||
},
|
||||
{
|
||||
bentoComponent: "3d-stack-cards", items: [
|
||||
{ icon: TrendingUp, title: "Talep Tahmini", subtitle: "Veriye Dayalı", detail: "Gelecek talebi öngörün" },
|
||||
@@ -69,9 +73,11 @@ export default function SaasTemplatePage() {
|
||||
description="Stokify ile envanterinizi zahmetsizce yönetin, operasyonel verimliliği artırın ve işinizi büyütün."
|
||||
buttons={[
|
||||
{
|
||||
text: "Ücretsiz Deneyin", href: "#contact"},
|
||||
text: "Ücretsiz Deneyin", href: "#contact"
|
||||
},
|
||||
{
|
||||
text: "Detaylı Bilgi", href: "#features"},
|
||||
text: "Detaylı Bilgi", href: "#features"
|
||||
},
|
||||
]}
|
||||
marqueeItems={[
|
||||
{ type: "text-icon", text: "Envanter Takibi", icon: Layers },
|
||||
@@ -101,16 +107,20 @@ export default function SaasTemplatePage() {
|
||||
features={[
|
||||
{
|
||||
icon: Package,
|
||||
title: "Kapsamlı Ürün Yönetimi", description: "Ürünlerinizi barkod, kategori ve diğer detaylarla kolayca yönetin."},
|
||||
title: "Kapsamlı Ürün Yönetimi", description: "Ürünlerinizi barkod, kategori ve diğer detaylarla kolayca yönetin."
|
||||
},
|
||||
{
|
||||
icon: TrendingUp,
|
||||
title: "Gelişmiş Raporlama", description: "Stok hareketleri, satış analizleri ve performans raporları ile akıllı kararlar alın."},
|
||||
title: "Gelişmiş Raporlama", description: "Stok hareketleri, satış analizleri ve performans raporları ile akıllı kararlar alın."
|
||||
},
|
||||
{
|
||||
icon: ShieldCheck,
|
||||
title: "Güvenli Veri Saklama", description: "Tüm envanter verileriniz güvenli sunucularda saklanır ve yedeklenir."},
|
||||
title: "Güvenli Veri Saklama", description: "Tüm envanter verileriniz güvenli sunucularda saklanır ve yedeklenir."
|
||||
},
|
||||
{
|
||||
icon: Zap,
|
||||
title: "Gerçek Zamanlı Envanter Takibi", description: "Stok seviyelerini anlık olarak izleyin ve olası sorunlara hızla müdahale edin."},
|
||||
title: "Gerçek Zamanlı Envanter Takibi", description: "Stok seviyelerini anlık olarak izleyin ve olası sorunlara hızla müdahale edin."
|
||||
},
|
||||
]}
|
||||
/>
|
||||
<div id="traceability" data-section="traceability">
|
||||
@@ -171,7 +181,8 @@ export default function SaasTemplatePage() {
|
||||
{ text: "Hemen Başla", onClick: () => console.log("Starter clicked") },
|
||||
],
|
||||
features: [
|
||||
"500 Ürüne Kadar", "Temel Stok Takibi", "Manuel Veri Girişi", "E-posta Desteği"],
|
||||
"500 Ürüne Kadar", "Temel Stok Takibi", "Manuel Veri Girişi", "E-posta Desteği"
|
||||
],
|
||||
},
|
||||
{
|
||||
id: "pro", badge: "Profesyonel", badgeIcon: BarChart3,
|
||||
@@ -179,7 +190,8 @@ export default function SaasTemplatePage() {
|
||||
{ text: "Hemen Başla", onClick: () => console.log("Pro clicked") },
|
||||
],
|
||||
features: [
|
||||
"Sınırsız Ürün", "Otomatik Envanter Güncelleme", "Barkod Entegrasyonu", "Gelişmiş Raporlama", "API Erişimi", "Öncelikli Destek"],
|
||||
"Sınırsız Ürün", "Otomatik Envanter Güncelleme", "Barkod Entegrasyonu", "Gelişmiş Raporlama", "API Erişimi", "Öncelikli Destek"
|
||||
],
|
||||
},
|
||||
{
|
||||
id: "enterprise", badge: "Kurumsal", badgeIcon: Building,
|
||||
@@ -187,7 +199,8 @@ export default function SaasTemplatePage() {
|
||||
{ text: "Teklif Alın", onClick: () => console.log("Enterprise clicked") },
|
||||
],
|
||||
features: [
|
||||
"Tüm Profesyonel Özellikler", "Özel Hesap Yöneticisi", "Kişiselleştirilmiş Entegrasyonlar", "Eğitim ve Yerinde Destek", "Gelişmiş Güvenlik"],
|
||||
"Tüm Profesyonel Özellikler", "Özel Hesap Yöneticisi", "Kişiselleştirilmiş Entegrasyonlar", "Eğitim ve Yerinde Destek", "Gelişmiş Güvenlik"
|
||||
],
|
||||
},
|
||||
]}
|
||||
/>
|
||||
|
||||
Reference in New Issue
Block a user