From 56153ea13e3fda2516ef4d8626ee2ee1c0ae644c Mon Sep 17 00:00:00 2001 From: bender Date: Fri, 6 Mar 2026 12:02:11 +0000 Subject: [PATCH] Add src/app/admin/page.tsx --- src/app/admin/page.tsx | 311 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 311 insertions(+) create mode 100644 src/app/admin/page.tsx diff --git a/src/app/admin/page.tsx b/src/app/admin/page.tsx new file mode 100644 index 0000000..9540fd1 --- /dev/null +++ b/src/app/admin/page.tsx @@ -0,0 +1,311 @@ +"use client"; + +import { useState } from "react"; +import { ThemeProvider } from "@/providers/themeProvider/ThemeProvider"; +import NavbarStyleApple from "@/components/navbar/NavbarStyleApple/NavbarStyleApple"; +import FooterBaseReveal from "@/components/sections/footer/FooterBaseReveal"; +import { BarChart3, TrendingUp, DollarSign, Eye, Plus, Edit2, Trash2, Search } from "lucide-react"; + +export default function AdminPage() { + const navItems = [ + { name: "Home", id: "/" }, + { name: "How It Works", id: "#how-it-works" }, + { name: "Top Products", id: "#products" }, + { name: "Admin", id: "/admin" }, + { name: "Contact", id: "#contact" }, + ]; + + const [campaigns, setCampaigns] = useState([ + { + id: 1, + name: "Wireless Earbuds Campaign", status: "active", impressions: 45230, + clicks: 1240, + conversions: 89, + revenue: 4450, + ctr: 2.74, + conversionRate: 7.18, + }, + { + id: 2, + name: "Power Bank Q1 Push", status: "active", impressions: 32100, + clicks: 890, + conversions: 52, + revenue: 2340, + ctr: 2.77, + conversionRate: 5.84, + }, + { + id: 3, + name: "LED Lamp Bundle", status: "paused", impressions: 28900, + clicks: 720, + conversions: 41, + revenue: 1845, + ctr: 2.49, + conversionRate: 5.69, + }, + ]); + + const totalMetrics = { + totalImpressions: campaigns.reduce((sum, c) => sum + c.impressions, 0), + totalClicks: campaigns.reduce((sum, c) => sum + c.clicks, 0), + totalConversions: campaigns.reduce((sum, c) => sum + c.conversions, 0), + totalRevenue: campaigns.reduce((sum, c) => sum + c.revenue, 0), + overallCTR: 2.67, + overallConversionRate: 6.24, + }; + + const [searchTerm, setSearchTerm] = useState(""); + const [selectedCampaign, setSelectedCampaign] = useState(null); + + const filteredCampaigns = campaigns.filter((campaign) => + campaign.name.toLowerCase().includes(searchTerm.toLowerCase()) + ); + + return ( + + + +
+
+ {/* Header */} +
+

Ad Management Dashboard

+

Manage campaigns, track performance, and monitor revenue generation

+
+ + {/* KPI Cards */} +
+
+
+

Total Revenue

+ +
+

${totalMetrics.totalRevenue.toLocaleString()}

+

From {campaigns.length} active campaigns

+
+ +
+
+

Total Conversions

+ +
+

{totalMetrics.totalConversions}

+

Conversion rate: {totalMetrics.overallConversionRate}%

+
+ +
+
+

Total Impressions

+ +
+

{(totalMetrics.totalImpressions / 1000).toFixed(1)}K

+

CTR: {totalMetrics.overallCTR}%

+
+ +
+
+

Total Clicks

+ +
+

{totalMetrics.totalClicks.toLocaleString()}

+

From impressions

+
+
+ + {/* Campaign Management */} +
+
+

Campaign Manager

+
+
+ + setSearchTerm(e.target.value)} + className="w-full pl-10 pr-4 py-2 bg-background border border-accent/20 rounded-lg text-foreground placeholder-foreground/40 focus:outline-none focus:border-primary-cta" + /> +
+ +
+
+ + {/* Campaign Table */} +
+ + + + + + + + + + + + + + + {filteredCampaigns.map((campaign) => ( + + + + + + + + + + + ))} + +
Campaign NameStatusImpressionsClicksCTRConversionsRevenueActions
{campaign.name} + + {campaign.status.charAt(0).toUpperCase() + campaign.status.slice(1)} + + {campaign.impressions.toLocaleString()}{campaign.clicks.toLocaleString()}{campaign.ctr}%{campaign.conversions}${campaign.revenue.toLocaleString()} +
+ + + +
+
+
+
+ + {/* Campaign Details Modal */} + {selectedCampaign && ( +
+
+
+
+

{selectedCampaign.name}

+ + {selectedCampaign.status.charAt(0).toUpperCase() + selectedCampaign.status.slice(1)} + +
+ +
+ +
+
+

Impressions

+

{selectedCampaign.impressions.toLocaleString()}

+
+
+

Clicks

+

{selectedCampaign.clicks.toLocaleString()}

+
+
+

Conversions

+

{selectedCampaign.conversions}

+
+
+

Revenue

+

${selectedCampaign.revenue.toLocaleString()}

+
+
+

CTR

+

{selectedCampaign.ctr}%

+
+
+

Conversion Rate

+

{selectedCampaign.conversionRate}%

+
+
+ +
+ + +
+
+
+ )} +
+
+ + +
+ ); +}