Add src/app/profile/page.tsx

This commit is contained in:
2026-06-10 16:33:53 +00:00
parent 39c65cd683
commit e978564303

202
src/app/profile/page.tsx Normal file
View File

@@ -0,0 +1,202 @@
"use client";
import { ThemeProvider } from "@/providers/themeProvider/ThemeProvider";
import ReactLenis from "lenis/react";
import NavbarStyleFullscreen from '@/components/navbar/NavbarStyleFullscreen/NavbarStyleFullscreen';
import FooterBase from '@/components/sections/footer/FooterBase';
export default function ProfilePage() {
// Placeholder for API Key. In a real app, this would be fetched or generated.
const apiKey = "sk-xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx";
return (
<ThemeProvider
defaultButtonVariant="icon-arrow"
defaultTextAnimation="background-highlight"
borderRadius="soft"
contentWidth="medium"
sizing="large"
background="grid"
cardStyle="solid"
primaryButtonStyle="gradient"
secondaryButtonStyle="glass"
headingFontWeight="normal"
>
<ReactLenis root>
<div id="nav" data-section="nav">
<NavbarStyleFullscreen
navItems={[
{ name: "Home", id: "/" },
{ name: "Services", id: "/services" },
{ name: "Pricing", id: "/pricing" },
{ name: "My Orders", id: "/my-orders" },
{ name: "Add Funds", id: "/add-funds" },
{ name: "Profile", id: "/profile" },
{ name: "FAQ", id: "/faq" },
{ name: "Contact", id: "/contact" }
]}
logoSrc="http://img.b2bpic.net/free-photo/isolated-white-house-silhouette-minimal-black-landscape_1194-641505.jpg"
logoAlt="SocBoost Logo"
brandName="SocBoost"
button={{
text: "Register", href: "/register"
}}
/>
</div>
<div className="min-h-screen py-16 px-4 sm:px-6 lg:px-8 bg-background">
<div className="max-w-xl mx-auto space-y-10">
<h1 className="text-4xl font-bold text-foreground text-center mb-6">My Profile</h1>
<p className="text-lg text-muted-foreground text-center mb-10">Manage your account details, password, and API keys.</p>
{/* Account Details Form */}
<div className="bg-card p-8 rounded-lg shadow-md border border-border">
<h2 className="text-2xl font-semibold text-foreground mb-6">Account Details</h2>
<form className="space-y-6">
<div>
<label htmlFor="name" className="block text-sm font-medium text-foreground">Name</label>
<input
type="text"
id="name"
name="name"
defaultValue="John Doe" // Placeholder
className="mt-1 block w-full px-3 py-2 border border-border rounded-md shadow-sm bg-background text-foreground focus:outline-none focus:ring-primary-cta focus:border-primary-cta sm:text-sm"
/>
</div>
<div>
<label htmlFor="email" className="block text-sm font-medium text-foreground">Email Address</label>
<input
type="email"
id="email"
name="email"
defaultValue="john.doe@example.com" // Placeholder
className="mt-1 block w-full px-3 py-2 border border-border rounded-md shadow-sm bg-background text-foreground focus:outline-none focus:ring-primary-cta focus:border-primary-cta sm:text-sm"
/>
</div>
<div>
<button
type="submit"
className="w-full flex justify-center py-2 px-4 border border-transparent rounded-md shadow-sm text-sm font-medium text-white bg-primary-cta hover:bg-primary-cta-hover focus:outline-none focus:ring-2 focus:ring-offset-2 focus:ring-primary-cta"
>
Update Profile
</button>
</div>
</form>
</div>
{/* Change Password Form */}
<div className="bg-card p-8 rounded-lg shadow-md border border-border">
<h2 className="text-2xl font-semibold text-foreground mb-6">Change Password</h2>
<form className="space-y-6">
<div>
<label htmlFor="current-password" className="block text-sm font-medium text-foreground">Current Password</label>
<input
type="password"
id="current-password"
name="current-password"
className="mt-1 block w-full px-3 py-2 border border-border rounded-md shadow-sm bg-background text-foreground focus:outline-none focus:ring-primary-cta focus:border-primary-cta sm:text-sm"
/>
</div>
<div>
<label htmlFor="new-password" className="block text-sm font-medium text-foreground">New Password</label>
<input
type="password"
id="new-password"
name="new-password"
className="mt-1 block w-full px-3 py-2 border border-border rounded-md shadow-sm bg-background text-foreground focus:outline-none focus:ring-primary-cta focus:border-primary-cta sm:text-sm"
/>
</div>
<div>
<label htmlFor="confirm-password" className="block text-sm font-medium text-foreground">Confirm New Password</label>
<input
type="password"
id="confirm-password"
name="confirm-password"
className="mt-1 block w-full px-3 py-2 border border-border rounded-md shadow-sm bg-background text-foreground focus:outline-none focus:ring-primary-cta focus:border-primary-cta sm:text-sm"
/>
</div>
<div>
<button
type="submit"
className="w-full flex justify-center py-2 px-4 border border-transparent rounded-md shadow-sm text-sm font-medium text-white bg-primary-cta hover:bg-primary-cta-hover focus:outline-none focus:ring-2 focus:ring-offset-2 focus:ring-primary-cta"
>
Change Password
</button>
</div>
</form>
</div>
{/* API Key Management */}
<div className="bg-card p-8 rounded-lg shadow-md border border-border">
<h2 className="text-2xl font-semibold text-foreground mb-6">API Key</h2>
<p className="text-sm text-muted-foreground mb-4">Your API key allows programmatic access to your account.</p>
<div className="flex items-center space-x-2">
<input
type="text"
readOnly
value={apiKey}
className="flex-grow px-3 py-2 border border-border rounded-md shadow-sm bg-background text-foreground text-sm font-mono"
/>
<button
type="button"
className="inline-flex items-center px-4 py-2 border border-border rounded-md shadow-sm text-sm font-medium text-foreground bg-background hover:bg-muted-background focus:outline-none focus:ring-2 focus:ring-offset-2 focus:ring-primary-cta"
>
Copy
</button>
<button
type="button"
className="inline-flex items-center px-4 py-2 border border-transparent rounded-md shadow-sm text-sm font-medium text-white bg-red-600 hover:bg-red-700 focus:outline-none focus:ring-2 focus:ring-offset-2 focus:ring-red-500"
>
Revoke
</button>
</div>
<p className="text-xs text-muted-foreground mt-2">Keep your API key secure. Do not share it with anyone.</p>
</div>
</div>
</div>
<div id="footer" data-section="footer">
<FooterBase
columns={[
{
title: "Services", items: [
{ label: "Instagram", href: "/services#instagram" },
{ label: "YouTube", href: "/services#youtube" },
{ label: "TikTok", href: "/services#tiktok" },
{ label: "Twitter", href: "/services#twitter" },
{ label: "Facebook", href: "/services#facebook" },
{ label: "Telegram", href: "/services#telegram" },
],
},
{
title: "Company", items: [
{ label: "About Us", href: "/#features" },
{ label: "Pricing", href: "/pricing" },
{ label: "FAQ", href: "/faq" },
{ label: "Contact", href: "/contact" },
],
},
{
title: "Legal", items: [
{ label: "Terms of Service", href: "/terms" },
{ label: "Privacy Policy", href: "/privacy" },
],
},
{
title: "Resources", items: [
{ label: "Blog", href: "#" },
{ label: "API Docs", href: "#" },
],
},
]}
logoSrc="http://img.b2bpic.net/free-photo/isolated-white-house-silhouette-minimal-black-landscape_1194-641505.jpg"
logoAlt="SocBoost Logo"
logoText="SocBoost"
copyrightText="© 2024 SocBoost. All rights reserved."
/>
</div>
</ReactLenis>
</ThemeProvider>
);
}