9 Commits

Author SHA1 Message Date
f650ed5930 Merge version_2 into main
Merge version_2 into main
2026-06-09 23:50:07 +00:00
efb20cec34 Update src/app/page.tsx 2026-06-09 23:50:04 +00:00
819de999fb Merge version_2 into main
Merge version_2 into main
2026-06-09 23:49:13 +00:00
94535c4905 Update src/app/styles/variables.css 2026-06-09 23:49:10 +00:00
be114b0d5c Add src/app/signup/page.tsx 2026-06-09 23:49:09 +00:00
349017d09c Update src/app/page.tsx 2026-06-09 23:49:09 +00:00
3c5b0eb634 Add src/app/login/page.tsx 2026-06-09 23:49:08 +00:00
d21179cad8 Add src/app/dashboard/page.tsx 2026-06-09 23:49:08 +00:00
e166183599 Merge version_1 into main
Merge version_1 into main
2026-06-09 16:52:58 +00:00
5 changed files with 555 additions and 75 deletions

113
src/app/dashboard/page.tsx Normal file
View File

@@ -0,0 +1,113 @@
"use client";
import { ThemeProvider } from "@/providers/themeProvider/ThemeProvider";
import ReactLenis from "lenis/react";
import NavbarLayoutFloatingOverlay from '@/components/navbar/NavbarLayoutFloatingOverlay/NavbarLayoutFloatingOverlay';
import TeamCardSix from '@/components/sections/team/TeamCardSix';
import MetricCardThree from '@/components/sections/metrics/MetricCardThree';
import FeatureCardNineteen from '@/components/sections/feature/FeatureCardNineteen';
import { LineChart, Trophy, Percent, Star } from "lucide-react";
export const metadata = {
title: 'Dashboard | The Drop Chronicle',
description: 'Your personal dashboard with profile, statistics, and recent activity.',
};
export default function DashboardPage() {
return (
<ThemeProvider
defaultButtonVariant="hover-bubble"
defaultTextAnimation="entrance-slide"
borderRadius="rounded"
contentWidth="mediumLarge"
sizing="mediumLarge"
background="none"
cardStyle="soft-shadow"
primaryButtonStyle="gradient"
secondaryButtonStyle="radial-glow"
headingFontWeight="light"
>
<ReactLenis root>
<div id="nav" data-section="nav">
<NavbarLayoutFloatingOverlay
navItems={[
{
name: "Home", id: "#hero"},
{
name: "Dashboard", id: "/dashboard"},
{
name: "Giveaways", id: "#giveaways"},
{
name: "VIP Plan", id: "#vip-plans"},
{
name: "Tournaments", id: "#tournaments"},
{
name: "Winners", id: "#winners"},
{
name: "FAQs", id: "#faq"},
{
name: "Contact", id: "#contact"},
]}
logoSrc="http://img.b2bpic.net/free-photo/shopping-cart-with-bubbles-geometric-shapes-3d-style_23-2152026895.jpg"
logoAlt="The Drop Chronicle logo"
brandName="The Drop Chronicle"
button={{
text: "Join Now", href: "#contact"}}
/>
</div>
<div id="user-profile" data-section="user-profile">
<TeamCardSix
title="My Profile"
description="View and manage your personal information and membership details."
textboxLayout="default"
gridVariant="uniform-all-items-equal"
animationType="slide-up"
useInvertedBackground={false}
members={[
{
id: "user-1", name: "John Doe", role: "VIP Member", imageSrc: "http://img.b2bpic.net/free-photo/profile-3d-illustration_23-2151610476.jpg", imageAlt: "User profile picture"
}
]}
/>
</div>
<div id="user-statistics" data-section="user-statistics">
<MetricCardThree
title="Your Performance Metrics"
description="Track your trading progress and key statistics at a glance."
textboxLayout="default"
animationType="slide-up"
useInvertedBackground={false}
metrics={[
{ id: "metric-1", icon: LineChart, title: "Total Trades", value: "1,245" },
{ id: "metric-2", icon: Trophy, title: "Wins", value: "980" },
{ id: "metric-3", icon: Percent, title: "Win Rate", value: "78.7%" },
{ id: "metric-4", icon: Star, title: "Points Earned", value: "5,000" }
]}
/>
</div>
<div id="recent-activity" data-section="recent-activity">
<FeatureCardNineteen
title="Recent Activity & Exclusive Access"
description="Stay updated with your latest activities and exclusive features."
textboxLayout="default"
useInvertedBackground={false}
features={[
{
tag: "New Signal", title: "ETH/USDT Long", subtitle: "Crypto Signal", description: "Entry: $3,500, Target: $3,800. Profit locked: +8.5%", imageSrc: "http://img.b2bpic.net/free-photo/gradient-abstract-flow_23-2150013098.jpg", imageAlt: "Trading chart screenshot"
},
{
tag: "Giveaway", title: "Monthly VIP Laptop Draw", subtitle: "Entry Confirmed", description: "Your entry for the latest VIP laptop giveaway has been confirmed! Good luck!", imageSrc: "http://img.b2bpic.net/free-photo/shiny-glossy-metal-surface_23-2150917719.jpg", imageAlt: "Laptop giveaway"
},
{
tag: "Tournament", title: "Daily Trading Challenge", subtitle: "Rank: #15", description: "You've moved up to 15th place in today's challenge. Keep pushing!", imageSrc: "http://img.b2bpic.net/free-photo/minimalist-metallic-dark-texture-design_53876-130097.jpg", imageAlt: "Leaderboard interface"
}
]}
/>
</div>
</ReactLenis>
</ThemeProvider>
);
}

169
src/app/login/page.tsx Normal file
View File

@@ -0,0 +1,169 @@
"use client";
import { useState } from 'react';
import { ThemeProvider } from "@/providers/themeProvider/ThemeProvider";
import ReactLenis from "lenis/react";
import NavbarLayoutFloatingOverlay from '@/components/navbar/NavbarLayoutFloatingOverlay/NavbarLayoutFloatingOverlay';
import FooterMedia from '@/components/sections/footer/FooterMedia';
export default function LoginPage() {
const [email, setEmail] = useState('');
const [password, setPassword] = useState('');
const [error, setError] = useState('');
const handleLogin = (e: React.FormEvent) => {
e.preventDefault();
setError('');
// Basic validation
if (!email || !password) {
setError('Email and password are required.');
return;
}
// Simulate authentication
console.log('Login attempt:', { email, password });
alert('Login functionality not fully implemented. Check console for details.');
// In a real app: call API, handle sessions, redirect
};
const navItems = [
{ name: "Home", id: "/" },
{ name: "Giveaways", id: "/#giveaways" },
{ name: "VIP Plan", id: "/#vip-plans" },
{ name: "Tournaments", id: "/#tournaments" },
{ name: "Winners", id: "/#winners" },
{ name: "FAQs", id: "/#faq" },
{ name: "Contact", id: "/#contact" },
{ name: "Login", id: "/login" },
{ name: "Sign Up", id: "/signup" }
];
return (
<ThemeProvider
defaultButtonVariant="hover-bubble"
defaultTextAnimation="entrance-slide"
borderRadius="rounded"
contentWidth="mediumLarge"
sizing="mediumLarge"
background="none"
cardStyle="soft-shadow"
primaryButtonStyle="gradient"
secondaryButtonStyle="radial-glow"
headingFontWeight="light"
>
<ReactLenis root>
<div id="nav" data-section="nav">
<NavbarLayoutFloatingOverlay
navItems={navItems}
logoSrc="http://img.b2bpic.net/free-photo/shopping-cart-with-bubbles-geometric-shapes-3d-style_23-2152026895.jpg"
logoAlt="The Drop Chronicle logo"
brandName="The Drop Chronicle"
button={{
text: "Sign Up", href: "/signup"
}}
/>
</div>
<div className="relative isolate min-h-[calc(100vh-250px)] flex flex-col items-center justify-center p-4">
<div className="mx-auto w-full max-w-md space-y-8 bg-card p-8 rounded-lg shadow-lg">
<h1 className="text-4xl font-light text-center text-foreground">Login</h1>
<p className="mt-2 text-center text-accent">
Welcome back! Please enter your details to sign in.
</p>
<form onSubmit={handleLogin} className="space-y-6">
<div>
<label htmlFor="email" className="block text-sm font-medium text-foreground">
Email address
</label>
<div className="mt-1">
<input
id="email"
name="email"
type="email"
autoComplete="email"
required
value={email}
onChange={(e) => setEmail(e.target.value)}
className="appearance-none block w-full px-3 py-2 border border-gray-300 rounded-md shadow-sm placeholder-gray-400 focus:outline-none focus:ring-primary-cta focus:border-primary-cta sm:text-sm bg-background-accent text-foreground"
/>
</div>
</div>
<div>
<label htmlFor="password" className="block text-sm font-medium text-foreground">
Password
</label>
<div className="mt-1">
<input
id="password"
name="password"
type="password"
autoComplete="current-password"
required
value={password}
onChange={(e) => setPassword(e.target.value)}
className="appearance-none block w-full px-3 py-2 border border-gray-300 rounded-md shadow-sm placeholder-gray-400 focus:outline-none focus:ring-primary-cta focus:border-primary-cta sm:text-sm bg-background-accent text-foreground"
/>
</div>
</div>
{error && <p className="text-red-500 text-sm">{error}</p>}
<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/90 focus:outline-none focus:ring-2 focus:ring-offset-2 focus:ring-primary-cta"
>
Sign in
</button>
</div>
</form>
<p className="mt-6 text-center text-foreground text-sm">
Don't have an account?{' '}
<a href="/signup" className="font-medium text-primary-cta hover:underline">
Sign Up
</a>
</p>
</div>
</div>
<div id="footer" data-section="footer">
<FooterMedia
imageSrc="http://img.b2bpic.net/free-photo/artistic-background-wallpaper-with-color-halftone-effect_58702-9399.jpg"
imageAlt="Abstract neon pink and purple background"
logoText="The Drop Chronicle"
columns={[
{
title: "Community", items: [
{ label: "Giveaways", href: "/#giveaways" },
{ label: "Tournaments", href: "/#tournaments" },
{ label: "Winners Hall", href: "/#winners" },
],
},
{
title: "Membership", items: [
{ label: "VIP Plans", href: "/#vip-plans" },
{ label: "Referral System", href: "#" },
{ label: "Achievement System", href: "#" },
],
},
{
title: "Support", items: [
{ label: "FAQs", href: "/#faq" },
{ label: "Contact Us", href: "/#contact" },
{ label: "Live Chat", href: "#" },
],
},
{
title: "Legal", items: [
{ label: "Terms of Service", href: "#" },
{ label: "Privacy Policy", href: "#" },
],
},
]}
copyrightText="© 2024 The Drop Chronicle. All rights reserved."
/>
</div>
</ReactLenis>
</ThemeProvider>
);
}

View File

@@ -34,21 +34,21 @@ export default function LandingPage() {
{
name: "Home", id: "#hero"},
{
name: "Giveaways", id: "#giveaways"},
name: "Resources", id: "#giveaways"},
{
name: "VIP Plan", id: "#vip-plans"},
name: "Premium Plan", id: "#vip-plans"},
{
name: "Tournaments", id: "#tournaments"},
name: "Challenges", id: "#tournaments"},
{
name: "Winners", id: "#winners"},
name: "Achievers Hall", id: "#winners"},
{
name: "FAQs", id: "#faq"},
{
name: "Contact", id: "#contact"},
]}
logoSrc="http://img.b2bpic.net/free-photo/shopping-cart-with-bubbles-geometric-shapes-3d-style_23-2152026895.jpg"
logoAlt="The Drop Chronicle logo"
brandName="The Drop Chronicle"
logoAlt="Professor World logo"
brandName="Professor World"
button={{
text: "Join Now", href: "#contact"}}
/>
@@ -58,27 +58,27 @@ export default function LandingPage() {
<HeroBillboardGallery
background={{
variant: "animated-grid"}}
title="Join The Ultimate Trading & Giveaway Community"
description="Unlock exclusive signals, premium giveaways, and funded opportunities. Elevate your trading journey with The Drop Chronicle."
title="Professor World: Master Your Domain"
description="Your central hub for exclusive insights, premium resources, and a community dedicated to mastery."
buttons={[
{
text: "Join Telegram", href: "#"},
text: "Get Started", href: "#"},
{
text: "Get VIP Access", href: "#vip-plans"},
text: "Explore Plans", href: "#vip-plans"},
]}
mediaItems={[
{
imageSrc: "http://img.b2bpic.net/free-photo/retro-vhs-packaging-indoors_23-2150172434.jpg", imageAlt: "Futuristic trading dashboard interface"},
imageSrc: "http://img.b2bpic.net/free-photo/retro-vhs-packaging-indoors_23-2150172434.jpg", imageAlt: "Professor World dashboard interface"},
{
imageSrc: "http://img.b2bpic.net/free-photo/smartphone-gift-box-with-golden-balloon_187299-48036.jpg", imageAlt: "Giveaway section with Join Now button"},
imageSrc: "http://img.b2bpic.net/free-photo/smartphone-gift-box-with-golden-balloon_187299-48036.jpg", imageAlt: "Premium resources section with Join Now button"},
{
imageSrc: "http://img.b2bpic.net/free-photo/man-controlling-smart-lamp-with-his-phone_23-2149036886.jpg", imageAlt: "VIP membership dashboard"},
imageSrc: "http://img.b2bpic.net/free-photo/man-controlling-smart-lamp-with-his-phone_23-2149036886.jpg", imageAlt: "Professor World membership dashboard"},
{
imageSrc: "http://img.b2bpic.net/free-photo/modern-geometric_1048-13693.jpg", imageAlt: "Animated logo of The Drop Chronicle"},
imageSrc: "http://img.b2bpic.net/free-photo/modern-geometric_1048-13693.jpg", imageAlt: "Animated logo of Professor World"},
{
imageSrc: "http://img.b2bpic.net/free-photo/abstract-dark-background-with-purple-lines-generative-ai_169016-30670.jpg", imageAlt: "Live stats with animated numbers"},
{
imageSrc: "http://img.b2bpic.net/free-photo/bright-neon-lights-ceiling_53876-95412.jpg", imageAlt: "Close-up on virtual trading chart"},
imageSrc: "http://img.b2bpic.net/free-photo/bright-neon-lights-ceiling_53876-95412.jpg", imageAlt: "Close-up on learning progress chart"},
]}
mediaAnimation="slide-up"
/>
@@ -95,20 +95,20 @@ export default function LandingPage() {
"Across all platforms", "Growing daily"],
},
{
id: "2", value: "500+", title: "Active Giveaways", items: [
"Monthly free & premium", "High-value prizes"],
id: "2", value: "500+", title: "Active Resources", items: [
"Monthly free & premium", "High-value content"],
},
{
id: "3", value: "10K+", title: "VIP Members", items: [
id: "3", value: "10K+", title: "Premium Members", items: [
"Exclusive access", "Priority support"],
},
{
id: "4", value: "$1M+", title: "Funded Accounts Distributed", items: [
"Life-changing opportunities", "Empowering traders"],
id: "4", value: "1M+", title: "Challenges Completed", items: [
"Skill-building opportunities", "Empowering learners"],
},
]}
title="Community Power in Numbers"
description="See how The Drop Chronicle empowers its members with real-time stats and growth."
title="Professor World: Impact in Numbers"
description="Explore the real-time impact and growth of the Professor World community."
/>
</div>
@@ -119,14 +119,14 @@ export default function LandingPage() {
useInvertedBackground={false}
negativeCard={{
items: [
"Telegram Join Required", "Free Entry", "Countdown Timer", "Entry Tracking"],
"Basic Content Access", "Community Forum", "Introductory Challenges", "Limited Support"],
}}
positiveCard={{
items: [
"Higher Rewards", "VIP Access", "Bonus Entries", "Lucky Draw System", "Automatic Winner Selection", "Live Results", "Entry Verification"],
"Advanced Resources", "Premium Channels", "Exclusive Challenges", "Priority Support", "Early Access to New Features", "Dedicated Mentorship", "Personalized Roadmaps"],
}}
title="Free vs. Premium Giveaways"
description="Discover the different ways to win with The Drop Chronicle, from free entries to exclusive VIP opportunities."
title="Professor World: Free vs. Premium Access"
description="Discover the different tiers of access at Professor World, from foundational knowledge to exclusive premium resources."
/>
</div>
@@ -137,26 +137,26 @@ export default function LandingPage() {
useInvertedBackground={false}
plans={[
{
id: "monthly-vip", title: "Monthly VIP", price: "$99", period: "/month", features: [
"Signal Access", "Premium Giveaways", "Funded Opportunities", "Basic Support"],
id: "monthly-vip", title: "Monthly Premium", price: "$99", period: "/month", features: [
"Resource Access", "Premium Channels", "Challenge Opportunities", "Basic Support"],
button: {
text: "Start Monthly", href: "#"},
imageSrc: "http://img.b2bpic.net/free-photo/pink-iridescent-texture-background_23-2151839355.jpg", imageAlt: "Monthly VIP Plan"},
imageSrc: "http://img.b2bpic.net/free-photo/pink-iridescent-texture-background_23-2151839355.jpg", imageAlt: "Monthly Professor World Plan"},
{
id: "quarterly-vip", title: "Quarterly VIP", price: "$249", period: "/quarter", features: [
"Everything in Monthly", "Extra Rewards", "Priority Support", "Early Access"],
id: "quarterly-vip", title: "Quarterly Premium", price: "$249", period: "/quarter", features: [
"Everything in Monthly", "Extra Resources", "Priority Support", "Early Access"],
button: {
text: "Go Quarterly", href: "#"},
imageSrc: "http://img.b2bpic.net/free-photo/colorful-light-prisms-effect_23-2148898150.jpg", imageAlt: "Quarterly VIP Plan"},
imageSrc: "http://img.b2bpic.net/free-photo/colorful-light-prisms-effect_23-2148898150.jpg", imageAlt: "Quarterly Professor World Plan"},
{
id: "yearly-vip", title: "Yearly VIP", price: "$799", period: "/year", features: [
"Lifetime Style Benefits", "Highest Priority Support", "Dedicated Account Manager", "Exclusive Mentorship"],
id: "yearly-vip", title: "Yearly Premium", price: "$799", period: "/year", features: [
"Lifetime Access Benefits", "Highest Priority Support", "Dedicated Advisor", "Exclusive Mentorship"],
button: {
text: "Commit Yearly", href: "#"},
imageSrc: "http://img.b2bpic.net/free-photo/high-angle-woman-holding-crystal-ball_23-2149413285.jpg", imageAlt: "Yearly VIP Plan"},
imageSrc: "http://img.b2bpic.net/free-photo/high-angle-woman-holding-crystal-ball_23-2149413285.jpg", imageAlt: "Yearly Professor World Plan"},
]}
title="Unlock Your VIP Potential"
description="Choose a VIP plan tailored to your trading and giveaway ambitions, with exclusive benefits and priority access."
title="Professor World: Unlock Your Potential"
description="Choose a Professor World plan tailored to your learning and growth ambitions, with exclusive benefits and priority access."
/>
</div>
@@ -168,20 +168,20 @@ export default function LandingPage() {
useInvertedBackground={false}
products={[
{
id: "tournament-1", name: "Daily Trading Challenge", price: "Free Entry", imageSrc: "http://img.b2bpic.net/free-photo/cyber-monday-credit-card-shopping_23-2152027052.jpg", imageAlt: "Daily Trading Challenge"},
id: "tournament-1", name: "Daily Learning Challenge", price: "Free Entry", imageSrc: "http://img.b2bpic.net/free-photo/cyber-monday-credit-card-shopping_23-2152027052.jpg", imageAlt: "Daily Learning Challenge"},
{
id: "tournament-2", name: "Weekly Futures Cup", price: "$50 Entry", imageSrc: "http://img.b2bpic.net/free-photo/gold-bull-backgrounds-graphics-elements-related-financial-sector_23-2151807626.jpg", imageAlt: "Weekly Futures Cup"},
id: "tournament-2", name: "Weekly Knowledge Bowl", price: "$50 Entry", imageSrc: "http://img.b2bpic.net/free-photo/gold-bull-backgrounds-graphics-elements-related-financial-sector_23-2151807626.jpg", imageAlt: "Weekly Knowledge Bowl"},
{
id: "tournament-3", name: "Monthly Options Masters", price: "$100 Entry", imageSrc: "http://img.b2bpic.net/free-photo/cocktail-refreshment-neo-futuristic-style_23-2151370367.jpg", imageAlt: "Monthly Options Masters"},
id: "tournament-3", name: "Monthly Mastery Tournament", price: "$100 Entry", imageSrc: "http://img.b2bpic.net/free-photo/cocktail-refreshment-neo-futuristic-style_23-2151370367.jpg", imageAlt: "Monthly Mastery Tournament"},
{
id: "tournament-4", name: "Annual Crypto Royale", price: "$250 Entry", imageSrc: "http://img.b2bpic.net/free-photo/2023-new-year-celebration_23-2150161905.jpg", imageAlt: "Annual Crypto Royale"},
id: "tournament-4", name: "Annual Grand Challenge", price: "$250 Entry", imageSrc: "http://img.b2bpic.net/free-photo/2023-new-year-celebration_23-2150161905.jpg", imageAlt: "Annual Grand Challenge"},
{
id: "tournament-5", name: "Beginner Trading League", price: "Free Entry", imageSrc: "http://img.b2bpic.net/free-photo/cyberpunk-bitcoin-illustration_23-2151611157.jpg", imageAlt: "Beginner Trading League"},
id: "tournament-5", name: "Beginner Learning League", price: "Free Entry", imageSrc: "http://img.b2bpic.net/free-photo/cyberpunk-bitcoin-illustration_23-2151611157.jpg", imageAlt: "Beginner Learning League"},
{
id: "tournament-6", name: "Strategy Showdown", price: "$75 Entry", imageSrc: "http://img.b2bpic.net/free-vector/flat-vertical-poster-template-back-school-season_23-2150606097.jpg", imageAlt: "Strategy Showdown"},
]}
title="Active Trading Tournaments"
description="Compete against the best, climb the leaderboard, and win big in our exciting trading competitions."
title="Professor World: Learning Challenges"
description="Engage in challenges, climb the leaderboard, and master new skills in our interactive learning competitions."
/>
</div>
@@ -190,9 +190,9 @@ export default function LandingPage() {
textboxLayout="default"
useInvertedBackground={false}
names={[
"TradeMasterX", "ProfitPioneer", "AlphaTrader", "CryptoKing", "MarketMaverick", "ForexPhenom", "DropHunter", "SignalSage", "WealthWielder"]}
title="Hall of Fame: Our Champions"
description="Celebrating the traders and participants who have triumphed in our giveaways and tournaments."
"KnowledgeSeekerX", "MasterMind", "InsightInnovator", "SkillSharper", "MindArchitect", "GrowthAchiever", "WisdomCrafter", "AdeptLearner", "Virtuoso" ]}
title="Professor World: Hall of Achievers"
description="Celebrating the members who have achieved mastery and excelled in our challenges."
/>
</div>
@@ -202,20 +202,20 @@ export default function LandingPage() {
useInvertedBackground={false}
faqs={[
{
id: "faq-1", title: "How do I join a giveaway?", content: "To join a free giveaway, simply connect your Telegram account. For premium giveaways, you'll need an active VIP membership."},
id: "faq-1", title: "How do I access free content?", content: "To access free content, simply create an account. For premium resources, you'll need an active premium membership."},
{
id: "faq-2", title: "What are VIP membership benefits?", content: "VIP members get exclusive access to premium signals, higher-value giveaways, funded account opportunities, priority support, and special bonuses."},
id: "faq-2", title: "What are premium membership benefits?", content: "Premium members get exclusive access to advanced resources, specialized channels, unique challenge opportunities, priority support, and special bonuses."},
{
id: "faq-3", title: "How are giveaway winners selected?", content: "Winners are selected automatically through a transparent lucky draw system, ensuring fairness. Results are announced live."},
id: "faq-3", title: "How are challenge winners selected?", content: "Winners are selected automatically through a transparent system, ensuring fairness. Results are announced regularly."},
{
id: "faq-4", title: "Can I upgrade my VIP plan?", content: "Yes, you can upgrade your VIP plan at any time through your user dashboard. The system will automatically adjust your current subscription."},
id: "faq-4", title: "Can I upgrade my premium plan?", content: "Yes, you can upgrade your premium plan at any time through your user dashboard. The system will automatically adjust your current subscription."},
{
id: "faq-5", title: "What kind of trading signals do you provide?", content: "Our signals cover various markets, including crypto and forex, provided by experienced analysts. VIP members get access to a wider range of signals and analysis."},
id: "faq-5", title: "What kind of learning resources do you provide?", content: "Our resources cover various domains and skills, provided by expert professors and mentors. Premium members get access to a wider range of content and personalized guidance."},
{
id: "faq-6", title: "Is The Drop Chronicle suitable for beginners?", content: "Absolutely! We offer resources and a supportive community for traders of all levels, including beginner-friendly giveaways and educational content."},
id: "faq-6", title: "Is Professor World suitable for beginners?", content: "Absolutely! We offer resources and a supportive community for learners of all levels, including beginner-friendly challenges and educational content."}
]}
title="Frequently Asked Questions"
description="Find quick answers to common questions about The Drop Chronicle, giveaways, VIP plans, and more."
title="Professor World: Common Questions"
description="Find quick answers to common questions about Professor World, our resources, and membership."
faqsAnimation="slide-up"
/>
</div>
@@ -223,8 +223,8 @@ export default function LandingPage() {
<div id="contact" data-section="contact">
<ContactSplitForm
useInvertedBackground={false}
title="Get in Touch With Us"
description="Have questions or need support? Reach out to The Drop Chronicle team."
title="Professor World: Get in Touch"
description="Have questions or need support? Reach out to the Professor World team."
inputs={[
{
name: "name", type: "text", placeholder: "Your Name", required: true,
@@ -238,7 +238,7 @@ export default function LandingPage() {
required: true,
}}
imageSrc="http://img.b2bpic.net/free-photo/view-woman-wearing-purple-scarf-women-s-day-celebration_23-2151257622.jpg"
imageAlt="Customer support interface"
imageAlt="Professor World customer support interface"
mediaPosition="left"
buttonText="Send Message"
/>
@@ -247,23 +247,23 @@ export default function LandingPage() {
<div id="footer" data-section="footer">
<FooterMedia
imageSrc="http://img.b2bpic.net/free-photo/artistic-background-wallpaper-with-color-halftone-effect_58702-9399.jpg"
imageAlt="Abstract neon pink and purple background"
logoText="The Drop Chronicle"
imageAlt="Abstract black and blue background"
logoText="Professor World"
columns={[
{
title: "Community", items: [
{
label: "Giveaways", href: "#giveaways"},
label: "Resources", href: "#giveaways"},
{
label: "Tournaments", href: "#tournaments"},
label: "Challenges", href: "#tournaments"},
{
label: "Winners Hall", href: "#winners"},
label: "Achievers Hall", href: "#winners"},
],
},
{
title: "Membership", items: [
{
label: "VIP Plans", href: "#vip-plans"},
label: "Premium Plans", href: "#vip-plans"},
{
label: "Referral System", href: "#"},
{
@@ -289,10 +289,10 @@ export default function LandingPage() {
],
},
]}
copyrightText="© 2024 The Drop Chronicle. All rights reserved."
copyrightText="© 2024 Professor World. All rights reserved."
/>
</div>
</ReactLenis>
</ThemeProvider>
);
}
}

198
src/app/signup/page.tsx Normal file
View File

@@ -0,0 +1,198 @@
"use client";
import { useState } from 'react';
import { ThemeProvider } from "@/providers/themeProvider/ThemeProvider";
import ReactLenis from "lenis/react";
import NavbarLayoutFloatingOverlay from '@/components/navbar/NavbarLayoutFloatingOverlay/NavbarLayoutFloatingOverlay';
import FooterMedia from '@/components/sections/footer/FooterMedia';
export default function SignupPage() {
const [email, setEmail] = useState('');
const [password, setPassword] = useState('');
const [confirmPassword, setConfirmPassword] = useState('');
const [error, setError] = useState('');
const handleSignup = (e: React.FormEvent) => {
e.preventDefault();
setError('');
if (!email || !password || !confirmPassword) {
setError('All fields are required.');
return;
}
if (password.length < 6) {
setError('Password must be at least 6 characters long.');
return;
}
if (password !== confirmPassword) {
setError('Passwords do not match.');
return;
}
// Simulate signup
console.log('Signup attempt:', { email, password });
alert('Signup functionality not fully implemented. Check console for details.');
// In a real app: call API, create user, handle sessions, redirect
};
const navItems = [
{ name: "Home", id: "/" },
{ name: "Giveaways", id: "/#giveaways" }, { name: "VIP Plan", id: "/#vip-plans" },
{ name: "Tournaments", id: "/#tournaments" },
{ name: "Winners", id: "/#winners" },
{ name: "FAQs", id: "/#faq" },
{ name: "Contact", id: "/#contact" },
{ name: "Login", id: "/login" },
{ name: "Sign Up", id: "/signup" }
];
return (
<ThemeProvider
defaultButtonVariant="hover-bubble"
defaultTextAnimation="entrance-slide"
borderRadius="rounded"
contentWidth="mediumLarge"
sizing="mediumLarge"
background="none"
cardStyle="soft-shadow"
primaryButtonStyle="gradient"
secondaryButtonStyle="radial-glow"
headingFontWeight="light"
>
<ReactLenis root>
<div id="nav" data-section="nav">
<NavbarLayoutFloatingOverlay
navItems={navItems}
logoSrc="http://img.b2bpic.net/free-photo/shopping-cart-with-bubbles-geometric-shapes-3d-style_23-2152026895.jpg"
logoAlt="The Drop Chronicle logo"
brandName="The Drop Chronicle"
button={{
text: "Sign Up", href: "/signup"
}}
/>
</div>
<div className="relative isolate min-h-[calc(100vh-250px)] flex flex-col items-center justify-center p-4">
<div className="mx-auto w-full max-w-md space-y-8 bg-card p-8 rounded-lg shadow-lg">
<h1 className="text-4xl font-light text-center text-foreground">Sign Up</h1>
<p className="mt-2 text-center text-accent">
Create your account to unlock exclusive features.
</p>
<form onSubmit={handleSignup} className="space-y-6">
<div>
<label htmlFor="email" className="block text-sm font-medium text-foreground">
Email address
</label>
<div className="mt-1">
<input
id="email"
name="email"
type="email"
autoComplete="email"
required
value={email}
onChange={(e) => setEmail(e.target.value)}
className="appearance-none block w-full px-3 py-2 border border-gray-300 rounded-md shadow-sm placeholder-gray-400 focus:outline-none focus:ring-primary-cta focus:border-primary-cta sm:text-sm bg-background-accent text-foreground"
/>
</div>
</div>
<div>
<label htmlFor="password" className="block text-sm font-medium text-foreground">
Password
</label>
<div className="mt-1">
<input
id="password"
name="password"
type="password"
autoComplete="new-password"
required
value={password}
onChange={(e) => setPassword(e.target.value)}
className="appearance-none block w-full px-3 py-2 border border-gray-300 rounded-md shadow-sm placeholder-gray-400 focus:outline-none focus:ring-primary-cta focus:border-primary-cta sm:text-sm bg-background-accent text-foreground"
/>
</div>
</div>
<div>
<label htmlFor="confirm-password" className="block text-sm font-medium text-foreground">
Confirm Password
</label>
<div className="mt-1">
<input
id="confirm-password"
name="confirm-password"
type="password"
autoComplete="new-password"
required
value={confirmPassword}
onChange={(e) => setConfirmPassword(e.target.value)}
className="appearance-none block w-full px-3 py-2 border border-gray-300 rounded-md shadow-sm placeholder-gray-400 focus:outline-none focus:ring-primary-cta focus:border-primary-cta sm:text-sm bg-background-accent text-foreground"
/>
</div>
</div>
{error && <p className="text-red-500 text-sm">{error}</p>}
<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/90 focus:outline-none focus:ring-2 focus:ring-offset-2 focus:ring-primary-cta"
>
Sign Up
</button>
</div>
</form>
<p className="mt-6 text-center text-foreground text-sm">
Already have an account?{' '}
<a href="/login" className="font-medium text-primary-cta hover:underline">
Login
</a>
</p>
</div>
</div>
<div id="footer" data-section="footer">
<FooterMedia
imageSrc="http://img.b2bpic.net/free-photo/artistic-background-wallpaper-with-color-halftone-effect_58702-9399.jpg"
imageAlt="Abstract neon pink and purple background"
logoText="The Drop Chronicle"
columns={[
{
title: "Community", items: [
{ label: "Giveaways", href: "/#giveaways" },
{ label: "Tournaments", href: "/#tournaments" },
{ label: "Winners Hall", href: "/#winners" },
],
},
{
title: "Membership", items: [
{ label: "VIP Plans", href: "/#vip-plans" },
{ label: "Referral System", href: "#" },
{ label: "Achievement System", href: "#" },
],
},
{
title: "Support", items: [
{ label: "FAQs", href: "/#faq" },
{ label: "Contact Us", href: "/#contact" },
{ label: "Live Chat", href: "#" },
],
},
{
title: "Legal", items: [
{ label: "Terms of Service", href: "#" },
{ label: "Privacy Policy", href: "#" },
],
},
]}
copyrightText="© 2024 The Drop Chronicle. All rights reserved."
/>
</div>
</ReactLenis>
</ThemeProvider>
);
}

View File

@@ -10,15 +10,15 @@
--accent: #ffffff;
--background-accent: #ffffff; */
--background: #0A0A0A;
--card: #1A1A1A;
--foreground: #F0F0F0;
--primary-cta: #FF1493;
--primary-cta-text: #0A0A0A;
--secondary-cta: #1A1A1A;
--secondary-cta-text: #F0F0F0;
--accent: #8A2BE2;
--background-accent: #C485EE;
--background: #000000;
--card: #0c0c0c;
--foreground: #ffffff;
--primary-cta: #106EFB;
--primary-cta-text: #ffffff;
--secondary-cta: #000000;
--secondary-cta-text: #ffffff;
--accent: #535353;
--background-accent: #106EFB;
/* text sizing - set by ThemeProvider */
/* --text-2xs: clamp(0.465rem, 0.62vw, 0.62rem);