5 Commits

Author SHA1 Message Date
226ace1088 Update src/app/admin/page.tsx 2026-05-24 09:18:49 +00:00
da35bb7992 Merge version_3 into main
Merge version_3 into main
2026-05-24 09:17:38 +00:00
5c0fed59b3 Update src/app/page.tsx 2026-05-24 09:17:35 +00:00
1fd2185d92 Update src/app/admin/page.tsx 2026-05-24 09:17:35 +00:00
3b06c86cda Merge version_2 into main
Merge version_2 into main
2026-05-24 09:13:25 +00:00
2 changed files with 68 additions and 61 deletions

View File

@@ -1,72 +1,79 @@
"use client"; "use client";
import { useState } from "react";
import { ThemeProvider } from "@/providers/themeProvider/ThemeProvider"; import { ThemeProvider } from "@/providers/themeProvider/ThemeProvider";
import ReactLenis from "lenis/react";
import FooterCard from '@/components/sections/footer/FooterCard';
import MediaAbout from '@/components/sections/about/MediaAbout';
import NavbarStyleFullscreen from '@/components/navbar/NavbarStyleFullscreen/NavbarStyleFullscreen'; import NavbarStyleFullscreen from '@/components/navbar/NavbarStyleFullscreen/NavbarStyleFullscreen';
import PricingCardOne from '@/components/sections/pricing/PricingCardOne';
export default function AdminPage() { export default function AdminPage() {
const [password, setPassword] = useState("");
const [isAuthenticated, setIsAuthenticated] = useState(false);
const [templates, setTemplates] = useState<any[]>([]);
const handleLogin = () => {
if (password === "Arshia@41010") {
setIsAuthenticated(true);
} else {
alert("Invalid password");
}
};
const addTemplate = () => {
setTemplates([...templates, { id: Date.now().toString(), name: "", description: "", price: "", free: false, image: "" }]);
};
const updateTemplate = (id: string, field: string, value: any) => {
setTemplates(templates.map(t => t.id === id ? { ...t, [field]: value } : t));
};
return ( return (
<ThemeProvider <ThemeProvider
defaultButtonVariant="text-stagger" defaultButtonVariant="text-stagger"
defaultTextAnimation="background-highlight" defaultTextAnimation="background-highlight"
borderRadius="pill" borderRadius="pill"
contentWidth="medium" contentWidth="medium"
sizing="medium" sizing="medium"
background="circleGradient" background="circleGradient"
cardStyle="glass-elevated" cardStyle="glass-elevated"
primaryButtonStyle="gradient" primaryButtonStyle="gradient"
secondaryButtonStyle="glass" secondaryButtonStyle="glass"
headingFontWeight="normal" headingFontWeight="normal"
> >
<ReactLenis root> <NavbarStyleFullscreen
<div style={{ backgroundImage: "url('https://webuild-dev.s3.eu-north-1.amazonaws.com/users/user_3EACxAErYjKmkktsc1OnkSFxcSZ/uploaded-1779613980939-kyufwnfu.jpg')", backgroundSize: 'cover', backgroundAttachment: 'fixed' }}> navItems={[
<div id="nav" data-section="nav"> { name: "Home", id: "/" },
<NavbarStyleFullscreen { name: "Templates", id: "/templates" },
navItems={[ { name: "Freebies", id: "/freebies" },
{ name: "Home", id: "/" }, { name: "About", id: "/about" },
{ name: "Templates", id: "/templates" }, { name: "Admin", id: "/admin" },
{ name: "Freebies", id: "/freebies" }, ]}
{ name: "About", id: "/about" }, brandName="BrightBytee Studios"
{ name: "Admin", id: "/admin" }, />
]} <main className="pt-32 pb-20 px-6 container mx-auto">
brandName="BrightBytee Studios" {!isAuthenticated ? (
/> <div className="max-w-md mx-auto bg-white/10 p-8 rounded-2xl backdrop-blur-md">
</div> <h1 className="text-2xl mb-4">Admin Access</h1>
<input type="password" value={password} onChange={(e) => setPassword(e.target.value)} className="w-full p-2 mb-4 rounded bg-white/5" placeholder="Password" />
<div id="about" data-section="about"> <button onClick={handleLogin} className="w-full bg-primary text-white p-2 rounded">Login</button>
<MediaAbout </div>
useInvertedBackground={false} ) : (
title="Admin Control Portal" <div className="bg-white/10 p-8 rounded-2xl backdrop-blur-md">
description="Securely manage templates, monitor sales, and view analytics for the entire studio ecosystem." <div className="flex justify-between items-center mb-6">
imageSrc="http://img.b2bpic.net/free-photo/portrait-exhausted-workaholic-man-manager-typing-financial-strategy-using-laptop-computer-while-sitting-desk-table-business-company-office_482257-2321.jpg" <h1 className="text-4xl font-bold">Admin Dashboard</h1>
/> <button onClick={addTemplate} className="bg-primary text-white px-6 py-2 rounded-full">+ Add Template</button>
</div> </div>
<div className="grid gap-6">
<div id="pricing" data-section="pricing"> {templates.map((t) => (
<PricingCardOne <div key={t.id} className="p-4 border rounded-xl flex gap-4 items-center">
animationType="slide-up" <input placeholder="Title" value={t.name} onChange={(e) => updateTemplate(t.id, 'name', e.target.value)} className="bg-transparent border p-1 rounded" />
textboxLayout="default" <input placeholder="Description" value={t.description} onChange={(e) => updateTemplate(t.id, 'description', e.target.value)} className="bg-transparent border p-1 rounded" />
useInvertedBackground={false} <input placeholder="Price" disabled={t.free} value={t.price} onChange={(e) => updateTemplate(t.id, 'price', e.target.value)} className="bg-transparent border p-1 rounded w-20" />
title="Manage Operations" <label className="flex items-center gap-2"><input type="checkbox" checked={t.free} onChange={(e) => updateTemplate(t.id, 'free', e.target.checked)} /> Free</label>
description="Direct access to product lifecycle and customer support ticketing." </div>
plans={[ ))}
{ id: "a1", badge: "Analytics", price: "₹N/A", subtitle: "Live statistics", features: ["Sales Tracking", "Template Performance", "User Insights"] }, </div>
{ id: "a2", badge: "Support", price: "₹N/A", subtitle: "Customer hub", features: ["Manage Tickets", "Refund Processing", "Priority Communications"] } </div>
]} )}
/> </main>
</div>
<div id="footer" data-section="footer">
<FooterCard
logoText="BrightBytee Studios"
copyrightText="© 2025 BrightBytee Studios. All Rights Reserved."
/>
</div>
</div>
</ReactLenis>
</ThemeProvider> </ThemeProvider>
); );
} }

View File

@@ -117,4 +117,4 @@ export default function LandingPage() {
</ReactLenis> </ReactLenis>
</ThemeProvider> </ThemeProvider>
); );
} }