Files
ember-market-frontend/app/page.tsx
g 7ddcd7afb6
All checks were successful
Build Frontend / build (push) Successful in 1m10s
Update UI styles and dashboard product display
Refined color scheme in AnimatedStatsSection to use indigo instead of pink, and improved gradient backgrounds. In dashboard/content.tsx, updated TopProduct price to support arrays and display revenue per product. UnifiedNotifications received minor style and layout adjustments for better consistency and usability.
2026-01-12 08:03:19 +00:00

112 lines
4.9 KiB
TypeScript

import { getPlatformStatsServer } from "@/lib/server-api";
import { HomeNavbar } from "@/components/home-navbar";
import { Shield, LineChart, Zap, ArrowRight, Sparkles } from "lucide-react";
import { Button } from "@/components/ui/button";
import Link from "next/link";
import { AnimatedStatsSection } from "@/components/animated-stats-section";
import { MotionWrapper } from "@/components/ui/motion-wrapper";
export const dynamic = 'force-dynamic';
export default async function Home() {
try {
const stats = await getPlatformStatsServer();
return (
<div className="relative flex flex-col min-h-screen bg-black text-white">
<div className="absolute inset-0 bg-gradient-to-br from-indigo-500/10 via-purple-500/5 to-transparent pointer-events-none scale-100" />
<HomeNavbar />
{/* Hero Section */}
<section className="relative overflow-hidden">
<div className="relative flex flex-col items-center px-4 py-20 md:py-32 mx-auto max-w-7xl">
<div className="flex flex-col items-center text-center space-y-6 max-w-3xl">
<div className="inline-flex items-center px-4 py-2 rounded-full border border-indigo-500/20 bg-indigo-500/10 mb-4">
<Sparkles className="h-4 w-4 mr-2 text-indigo-400" />
<span className="text-sm font-medium text-indigo-400">
Secure Crypto Payments
</span>
</div>
<h1 className="text-4xl md:text-6xl font-bold tracking-tight">
The Future of <span className="text-indigo-500">E-commerce</span> Management
</h1>
<p className="text-lg md:text-xl text-zinc-400 max-w-2xl">
Streamline your online business with our all-in-one platform. Secure payments, order tracking, and analytics in one place.
</p>
<div className="flex flex-col sm:flex-row gap-4 mt-4">
<Link href="/dashboard">
<Button
size="lg"
className="gap-2 text-white border-0 h-12 px-8 bg-indigo-600 hover:bg-indigo-700"
>
Get Started
<ArrowRight className="h-4 w-4" />
</Button>
</Link>
</div>
</div>
</div>
</section>
{/* Features Grid */}
<section className="relative py-20 px-4">
<div className="max-w-7xl mx-auto space-y-20">
<MotionWrapper>
<div className="grid md:grid-cols-3 gap-6">
{[
{
icon: Shield,
title: "Secure Payments",
description: "Built-in cryptocurrency support with maximum privacy and security for your transactions."
},
{
icon: LineChart,
title: "Real-time Analytics",
description: "Track your business performance with detailed insights and reporting tools."
},
{
icon: Zap,
title: "Lightning Fast",
description: "Optimized for speed with real-time updates and instant notifications."
}
].map((feature, i) => (
<div
key={i}
className="group relative overflow-hidden rounded-xl bg-gradient-to-b from-zinc-800/30 to-transparent p-6 border border-zinc-800 transition-all duration-300 hover:scale-[1.02] hover:shadow-lg"
>
<div className="absolute inset-0 bg-gradient-to-b from-indigo-500/5 to-transparent opacity-0 group-hover:opacity-100 transition-opacity" />
<div className="relative">
<div className="h-12 w-12 flex items-center justify-center rounded-lg mb-4 bg-indigo-500/10">
<feature.icon className="h-6 w-6 text-indigo-500" />
</div>
<h3 className="text-lg font-semibold text-white mb-2">{feature.title}</h3>
<p className="text-sm text-zinc-400">{feature.description}</p>
</div>
</div>
))}
</div>
</MotionWrapper>
{/* Stats Section */}
<div className="relative">
<AnimatedStatsSection stats={stats as any} />
</div>
</div>
</section>
{/* Footer */}
<footer className="relative py-12 px-4 mt-auto">
<div className="max-w-7xl mx-auto flex flex-col items-center">
<div className="text-sm text-zinc-500">
© {new Date().getFullYear()} Ember. All rights reserved.
</div>
</div>
</footer>
</div>
);
} catch (error) {
console.error(error);
return <div>Error loading page</div>;
}
}