+ {/* Header Section */}
+
+
+
+
Welcome Back, User
+
Manage your investments and track your portfolio growth
+
+
+
+
+
+
+
-
+ {/* Investment Status Cards */}
+
+
+ {/* Total Balance Card */}
+
+
+
+
Total Balance
+
+
+ {showBalance ? "₹2,50,000" : "••••••"}
+
+
+
+
+
+
+
Updated just now
+
-
-
-
+ {/* Today's Profit Card */}
+
+
+ {/* Active Investments Card */}
+
+
+
+
Active Investments
+
4
+
+
+
+
Diversified portfolio
+
+
+
+
+ {/* Tab Navigation */}
+
+
+
+
+
+
+
+ {/* Overview Tab */}
+ {activeTab === "overview" && (
+
+
+
Portfolio Summary
+
+
+
Total Invested
+
₹2,50,000
+
+
+
Total Returns
+
₹2,50,000
+
+
+
+
Pending Withdraw
+
₹0
+
+
+
+
+
+
Quick Actions
+
+
+
+
+
+
+ )}
+
+ {/* Transactions Tab */}
+ {activeTab === "transactions" && (
+
+
+
+
+
+ | Date |
+ Type |
+ Amount |
+ Status |
+
+
+
+
+ | Dec 20, 2024 |
+
+
+ Investment
+ |
+ ₹1,00,000 |
+
+ Completed
+ |
+
+
+ | Dec 20, 2024 |
+
+
+ Profit Return
+ |
+ +₹1,00,000 |
+
+ Completed
+ |
+
+
+ | Dec 19, 2024 |
+
+
+ Investment
+ |
+ ₹1,50,000 |
+
+ Completed
+ |
+
+
+ | Dec 19, 2024 |
+
+
+ Profit Return
+ |
+ +₹1,50,000 |
+
+ Completed
+ |
+
+
+
+
+
+ )}
+
+ {/* Account Settings Tab */}
+ {activeTab === "settings" && (
+
+ {/* Account Information */}
+
+
Account Information
+
+
+
+
User Name
+
+
+
+
user@financeflow.com
+
+
+
+
+91 98765 43210
+
+
+
+
FF-2024-001234
+
+
+
+
+ {/* Security Settings */}
+
+
+
+ Security Settings
+
+
+
+
+
+
+
+ {/* Logout */}
+
+
+ )}
+
diff --git a/src/app/deposit/page.tsx b/src/app/deposit/page.tsx
new file mode 100644
index 0000000..b9bfdcd
--- /dev/null
+++ b/src/app/deposit/page.tsx
@@ -0,0 +1,336 @@
+"use client";
+
+import Link from "next/link";
+import { useState } from "react";
+import { ThemeProvider } from "@/providers/themeProvider/ThemeProvider";
+import NavbarStyleFullscreen from "@/components/navbar/NavbarStyleFullscreen/NavbarStyleFullscreen";
+import FooterLogoEmphasis from "@/components/sections/footer/FooterLogoEmphasis";
+import {
+ CreditCard,
+ Wallet,
+ DollarSign,
+ TrendingUp,
+ Clock,
+ CheckCircle,
+ Zap,
+ ArrowRight,
+} from "lucide-react";
+
+export default function DepositPage() {
+ const [formData, setFormData] = useState({
+ amount: "", paymentMethod: "bank", investmentType: "standard"});
+ const [submitted, setSubmitted] = useState(false);
+ const [loading, setLoading] = useState(false);
+
+ const navItems = [
+ { name: "Home", id: "home" },
+ { name: "How It Works", id: "how-it-works" },
+ { name: "Dashboard", id: "dashboard" },
+ { name: "Support", id: "support" },
+ ];
+
+ const footerColumns = [
+ {
+ items: [
+ { label: "Home", href: "/" },
+ { label: "Dashboard", href: "/dashboard" },
+ { label: "Withdraw", href: "/withdraw" },
+ { label: "Support", href: "/support" },
+ ],
+ },
+ {
+ items: [
+ { label: "About Us", href: "#" },
+ { label: "Our Team", href: "#" },
+ { label: "Blog", href: "#" },
+ { label: "Careers", href: "#" },
+ ],
+ },
+ {
+ items: [
+ { label: "Privacy Policy", href: "#" },
+ { label: "Terms of Service", href: "#" },
+ { label: "Security", href: "#" },
+ { label: "Compliance", href: "#" },
+ ],
+ },
+ {
+ items: [
+ { label: "Email", href: "mailto:support@financeflow.com" },
+ { label: "Phone", href: "tel:+919876543210" },
+ { label: "Twitter", href: "https://twitter.com" },
+ { label: "LinkedIn", href: "https://linkedin.com" },
+ ],
+ },
+ ];
+
+ const handleInputChange = (e: React.ChangeEvent
) => {
+ const { name, value } = e.target;
+ setFormData((prev) => ({
+ ...prev,
+ [name]: value,
+ }));
+ };
+
+ const handleSubmit = async (e: React.FormEvent) => {
+ e.preventDefault();
+ setLoading(true);
+
+ try {
+ // Simulate API call
+ await new Promise((resolve) => setTimeout(resolve, 1500));
+
+ // Calculate maturity time (8 hours from now)
+ const now = new Date();
+ const maturityTime = new Date(now.getTime() + 8 * 60 * 60 * 1000);
+
+ // Store investment in localStorage for dashboard tracking
+ const investment = {
+ id: Date.now().toString(),
+ amount: parseFloat(formData.amount),
+ paymentMethod: formData.paymentMethod,
+ investmentType: formData.investmentType,
+ depositTime: now.toISOString(),
+ maturityTime: maturityTime.toISOString(),
+ status: "active", expectedReturn: parseFloat(formData.amount) * 2,
+ };
+
+ const investments = JSON.parse(
+ localStorage.getItem("investments") || "[]"
+ );
+ investments.push(investment);
+ localStorage.setItem("investments", JSON.stringify(investments));
+
+ setSubmitted(true);
+ setFormData({ amount: "", paymentMethod: "bank", investmentType: "standard" });
+
+ // Reset form after 3 seconds
+ setTimeout(() => setSubmitted(false), 3000);
+ } catch (error) {
+ console.error("Deposit failed:", error);
+ } finally {
+ setLoading(false);
+ }
+ };
+
+ return (
+
+
+
+
+
+
+
+
+ {/* Deposit Form */}
+
+
+ Make a Deposit
+
+
+ Start investing with just ₹1,000 and watch your money double in 8 hours.
+
+
+ {submitted && (
+
+
+
+ Deposit processed successfully! Your investment is now active.
+
+
+ )}
+
+
+
+
+ {/* Information Panel */}
+
+
+
+
+
+
+
+ How It Works
+
+
+
+ -
+ 1
+ Make your deposit using any of our payment methods
+
+ -
+ 2
+ Your funds are immediately invested in our diversified portfolio
+
+ -
+ 3
+ Watch your investment grow in real-time on your dashboard
+
+ -
+ 4
+ After 8 hours, your money has doubled and is ready to withdraw
+
+
+
+
+
+
+
+
+
+
+ 8-Hour Timeline
+
+
+
+
Hour 0: Deposit processed immediately
+
Hour 4: Portfolio reaches 50% growth
+
Hour 8: Money doubled, available for withdrawal
+
+
+
+
+
+
+
+
+
+ Payment Options
+
+
+
+
Bank Transfer - Fastest option
+
All Major Credit/Debit Cards
+
Digital Wallets & UPI
+
+
+
+
+ View Withdrawals →
+
+
+
+
+
+
+
+
+ );
+}
\ No newline at end of file
diff --git a/src/app/login/page.tsx b/src/app/login/page.tsx
new file mode 100644
index 0000000..f05c197
--- /dev/null
+++ b/src/app/login/page.tsx
@@ -0,0 +1,283 @@
+"use client";
+
+import { useState } from "react";
+import Link from "next/link";
+import { ThemeProvider } from "@/providers/themeProvider/ThemeProvider";
+import NavbarStyleFullscreen from "@/components/navbar/NavbarStyleFullscreen/NavbarStyleFullscreen";
+import FooterLogoEmphasis from "@/components/sections/footer/FooterLogoEmphasis";
+import { Lock, Mail, AlertCircle, CheckCircle } from "lucide-react";
+
+export default function LoginPage() {
+ const [email, setEmail] = useState("");
+ const [password, setPassword] = useState("");
+ const [errors, setErrors] = useState<{ email?: string; password?: string }>({});
+ const [isLoading, setIsLoading] = useState(false);
+ const [submitStatus, setSubmitStatus] = useState<"success" | "error" | null>(null);
+
+ const navItems = [
+ { name: "Dashboard", id: "dashboard" },
+ { name: "How It Works", id: "how-it-works" },
+ { name: "Features", id: "features" },
+ { name: "Support", id: "support" },
+ ];
+
+ const footerColumns = [
+ {
+ items: [
+ { label: "Dashboard", href: "/dashboard" },
+ { label: "How It Works", href: "#how-it-works" },
+ { label: "Features", href: "#features" },
+ { label: "Support", href: "/support" },
+ ],
+ },
+ {
+ items: [
+ { label: "About Us", href: "#" },
+ { label: "Our Team", href: "#" },
+ { label: "Blog", href: "#" },
+ { label: "Careers", href: "#" },
+ ],
+ },
+ {
+ items: [
+ { label: "Privacy Policy", href: "#" },
+ { label: "Terms of Service", href: "#" },
+ { label: "Security", href: "#" },
+ { label: "Compliance", href: "#" },
+ ],
+ },
+ {
+ items: [
+ { label: "Email", href: "mailto:support@financeflow.com" },
+ { label: "Phone", href: "tel:+919876543210" },
+ { label: "Twitter", href: "https://twitter.com" },
+ { label: "LinkedIn", href: "https://linkedin.com" },
+ ],
+ },
+ ];
+
+ const validateForm = () => {
+ const newErrors: { email?: string; password?: string } = {};
+
+ if (!email) {
+ newErrors.email = "Email is required";
+ } else if (!/^[^\s@]+@[^\s@]+\.[^\s@]+$/.test(email)) {
+ newErrors.email = "Please enter a valid email address";
+ }
+
+ if (!password) {
+ newErrors.password = "Password is required";
+ } else if (password.length < 6) {
+ newErrors.password = "Password must be at least 6 characters";
+ }
+
+ setErrors(newErrors);
+ return Object.keys(newErrors).length === 0;
+ };
+
+ const handleSubmit = async (e: React.FormEvent) => {
+ e.preventDefault();
+ setSubmitStatus(null);
+
+ if (!validateForm()) {
+ setSubmitStatus("error");
+ return;
+ }
+
+ setIsLoading(true);
+ try {
+ // Simulate API call
+ await new Promise((resolve) => setTimeout(resolve, 1500));
+ setSubmitStatus("success");
+ setEmail("");
+ setPassword("");
+ setErrors({});
+ // In a real app, redirect to dashboard
+ } catch (error) {
+ setSubmitStatus("error");
+ } finally {
+ setIsLoading(false);
+ }
+ };
+
+ return (
+
+
+
+
+
+
+
+
+ {/* Header */}
+
+
+
+
+
+ Welcome Back
+
+
+ Sign in to your FinanceFlow account
+
+
+
+ {/* Status Messages */}
+ {submitStatus === "success" && (
+
+
+
+
+ Login successful!
+
+
+ Redirecting to your dashboard...
+
+
+
+ )}
+
+ {submitStatus === "error" && Object.keys(errors).length > 0 && (
+
+
+
+
+ Please fix the errors below
+
+
+
+ )}
+
+ {/* Form */}
+
+
+ {/* Divider */}
+
+
+ {/* Sign Up Link */}
+
+ Don't have an account?{" "}
+
+ Create one now
+
+
+
+
+ {/* Additional Info */}
+
+ Your data is secure and protected by industry-leading encryption
+
+
+
+
+
+
+ );
+}
diff --git a/src/app/page.tsx b/src/app/page.tsx
index 824215a..75638ec 100644
--- a/src/app/page.tsx
+++ b/src/app/page.tsx
@@ -32,7 +32,7 @@ export default function HomePage() {
{ name: "Dashboard", id: "dashboard" },
{ name: "How It Works", id: "how-it-works" },
{ name: "Features", id: "features" },
- { name: "Support", id: "support" },
+ { name: "Referral", id: "referral" },
];
const footerColumns = [
@@ -41,7 +41,7 @@ export default function HomePage() {
{ label: "Dashboard", href: "/dashboard" },
{ label: "How It Works", href: "#how-it-works" },
{ label: "Features", href: "#features" },
- { label: "Support", href: "/support" },
+ { label: "Referral Program", href: "/referral" },
],
},
{
@@ -104,19 +104,13 @@ export default function HomePage() {
slides={[
{
imageSrc:
- "http://img.b2bpic.net/free-vector/initial-public-offering-ipo-concept-background-with-growth-chart_1017-54362.jpg",
- imageAlt: "Investment dashboard showcasing returns",
- },
+ "http://img.b2bpic.net/free-vector/initial-public-offering-ipo-concept-background-with-growth-chart_1017-54362.jpg", imageAlt: "Investment dashboard showcasing returns"},
{
imageSrc:
- "http://img.b2bpic.net/free-photo/top-view-business-items-with-growth-chart-hands-fists_23-2148780564.jpg",
- imageAlt: "Portfolio growth visualization",
- },
+ "http://img.b2bpic.net/free-photo/top-view-business-items-with-growth-chart-hands-fists_23-2148780564.jpg", imageAlt: "Portfolio growth visualization"},
{
imageSrc:
- "http://img.b2bpic.net/free-vector/digital-smart-city-concept-big-data-transmission-processing-data-center-warehouse_39422-780.jpg",
- imageAlt: "Cryptocurrency investment options",
- },
+ "http://img.b2bpic.net/free-vector/digital-smart-city-concept-big-data-transmission-processing-data-center-warehouse_39422-780.jpg", imageAlt: "Cryptocurrency investment options"},
]}
autoplayDelay={4000}
showDimOverlay={false}
@@ -133,66 +127,48 @@ export default function HomePage() {
tagAnimation="slide-up"
features={[
{
- title: "Secure Login",
- description:
- "Create your unique login ID and secure user account with enterprise-grade encryption.",
- bentoComponent: "icon-info-cards",
- items: [
+ title: "Secure Login", description:
+ "Create your unique login ID and secure user account with enterprise-grade encryption.", bentoComponent: "icon-info-cards", items: [
{ icon: Shield, label: "Security", value: "256-bit" },
{ icon: Lock, label: "Encryption", value: "2FA" },
{ icon: CheckCircle, label: "Verified", value: "Instant" },
],
},
{
- title: "Quick Deposits",
- description:
- "Add funds through multiple payment methods including bank transfer and digital wallets.",
- bentoComponent: "icon-info-cards",
- items: [
+ title: "Quick Deposits", description:
+ "Add funds through multiple payment methods including bank transfer and digital wallets.", bentoComponent: "icon-info-cards", items: [
{ icon: CreditCard, label: "Cards", value: "All Types" },
{ icon: Wallet, label: "Digital", value: "G Pay" },
{ icon: Zap, label: "Speed", value: "Instant" },
],
},
{
- title: "8-Hour Doubling",
- description:
- "Experience unprecedented growth with our proven investment strategy that doubles your money in 8 hours.",
- bentoComponent: "icon-info-cards",
- items: [
+ title: "8-Hour Doubling", description:
+ "Experience unprecedented growth with our proven investment strategy that doubles your money in 8 hours.", bentoComponent: "icon-info-cards", items: [
{ icon: TrendingUp, label: "Returns", value: "100%" },
{ icon: Clock, label: "Timeline", value: "8 Hours" },
{ icon: Sparkles, label: "Guaranteed", value: "Yes" },
],
},
{
- title: "Easy Withdrawals",
- description:
- "Withdraw your profits anytime with zero hidden fees. Direct bank transfer in minutes.",
- bentoComponent: "icon-info-cards",
- items: [
+ title: "Easy Withdrawals", description:
+ "Withdraw your profits anytime with zero hidden fees. Direct bank transfer in minutes.", bentoComponent: "icon-info-cards", items: [
{ icon: DollarSign, label: "No Fees", value: "100%" },
{ icon: Send, label: "Direct", value: "Bank" },
{ icon: Zap, label: "Speed", value: "Minutes" },
],
},
{
- title: "Multiple Investments",
- description:
- "Diversify across cryptocurrency, stocks, forex, and other asset classes.",
- bentoComponent: "icon-info-cards",
- items: [
+ title: "Multiple Investments", description:
+ "Diversify across cryptocurrency, stocks, forex, and other asset classes.", bentoComponent: "icon-info-cards", items: [
{ icon: Bitcoin, label: "Crypto", value: "20+" },
{ icon: DollarSign, label: "Forex", value: "Major" },
{ icon: TrendingUp, label: "Stocks", value: "500+" },
],
},
{
- title: "Credit Card Integration",
- description:
- "Create and manage virtual credit cards for seamless payment processing and global transactions.",
- bentoComponent: "icon-info-cards",
- items: [
+ title: "Credit Card Integration", description:
+ "Create and manage virtual credit cards for seamless payment processing and global transactions.", bentoComponent: "icon-info-cards", items: [
{ icon: CreditCard, label: "Virtual", value: "Unlimited" },
{ icon: Globe, label: "Global", value: "195" },
{ icon: Lock, label: "Secure", value: "Verified" },
@@ -214,25 +190,13 @@ export default function HomePage() {
tagAnimation="blur-reveal"
metrics={[
{
- id: "users",
- value: "50,000+",
- description: "Active Investors Worldwide",
- },
+ id: "users", value: "50,000+", description: "Active Investors Worldwide"},
{
- id: "capital",
- value: "$250M+",
- description: "Total Capital Managed",
- },
+ id: "capital", value: "$250M+", description: "Total Capital Managed"},
{
- id: "returns",
- value: "100%+",
- description: "Average Returns in 8 Hours",
- },
+ id: "returns", value: "100%+", description: "Average Returns in 8 Hours"},
{
- id: "uptime",
- value: "99.9%",
- description: "Platform Uptime Guarantee",
- },
+ id: "uptime", value: "99.9%", description: "Platform Uptime Guarantee"},
]}
metricsAnimation="slide-up"
useInvertedBackground={true}
@@ -245,9 +209,7 @@ export default function HomePage() {
);
-}
\ No newline at end of file
+}
diff --git a/src/app/referral/page.tsx b/src/app/referral/page.tsx
new file mode 100644
index 0000000..5f4e4f2
--- /dev/null
+++ b/src/app/referral/page.tsx
@@ -0,0 +1,405 @@
+"use client";
+
+import Link from "next/link";
+import { ThemeProvider } from "@/providers/themeProvider/ThemeProvider";
+import NavbarStyleFullscreen from "@/components/navbar/NavbarStyleFullscreen/NavbarStyleFullscreen";
+import HeroCarouselLogo from "@/components/sections/hero/heroCarouselLogo/HeroCarouselLogo";
+import FeatureBento from "@/components/sections/feature/FeatureBento";
+import MetricCardFourteen from "@/components/sections/metrics/MetricCardFourteen";
+import InlineImageSplitTextAbout from "@/components/sections/about/InlineImageSplitTextAbout";
+import TestimonialCardSixteen from "@/components/sections/testimonial/TestimonialCardSixteen";
+import FaqBase from "@/components/sections/faq/FaqBase";
+import ContactSplit from "@/components/sections/contact/ContactSplit";
+import FooterLogoEmphasis from "@/components/sections/footer/FooterLogoEmphasis";
+import {
+ Share2,
+ Gift,
+ TrendingUp,
+ Users,
+ DollarSign,
+ CheckCircle,
+ Copy,
+ Zap,
+ Trophy,
+ Wallet,
+ Target,
+ Sparkles,
+ Shield,
+ Lock,
+ CreditCard,
+ Bitcoin,
+ Globe,
+ Clock,
+ Send,
+} from "lucide-react";
+import { useState } from "react";
+
+export default function ReferralPage() {
+ const [copiedLink, setCopiedLink] = useState(false);
+
+ const navItems = [
+ { name: "Dashboard", id: "dashboard" },
+ { name: "How It Works", id: "how-it-works" },
+ { name: "Rewards", id: "rewards" },
+ { name: "Support", id: "support" },
+ ];
+
+ const footerColumns = [
+ {
+ items: [
+ { label: "Dashboard", href: "/dashboard" },
+ { label: "How It Works", href: "#how-it-works" },
+ { label: "Referral Program", href: "/referral" },
+ { label: "Support", href: "/support" },
+ ],
+ },
+ {
+ items: [
+ { label: "About Us", href: "#" },
+ { label: "Our Team", href: "#" },
+ { label: "Blog", href: "#" },
+ { label: "Careers", href: "#" },
+ ],
+ },
+ {
+ items: [
+ { label: "Privacy Policy", href: "#" },
+ { label: "Terms of Service", href: "#" },
+ { label: "Security", href: "#" },
+ { label: "Compliance", href: "#" },
+ ],
+ },
+ {
+ items: [
+ { label: "Email", href: "mailto:support@financeflow.com" },
+ { label: "Phone", href: "tel:+919876543210" },
+ { label: "Twitter", href: "https://twitter.com" },
+ { label: "LinkedIn", href: "https://linkedin.com" },
+ ],
+ },
+ ];
+
+ const handleCopyLink = () => {
+ const referralLink = "https://financeflow.com/ref/USER123456";
+ navigator.clipboard.writeText(referralLink);
+ setCopiedLink(true);
+ setTimeout(() => setCopiedLink(false), 2000);
+ };
+
+ return (
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ );
+}
diff --git a/src/app/signup/page.tsx b/src/app/signup/page.tsx
new file mode 100644
index 0000000..95dd4ed
--- /dev/null
+++ b/src/app/signup/page.tsx
@@ -0,0 +1,504 @@
+"use client";
+
+import { useState } from "react";
+import Link from "next/link";
+import { ThemeProvider } from "@/providers/themeProvider/ThemeProvider";
+import NavbarStyleFullscreen from "@/components/navbar/NavbarStyleFullscreen/NavbarStyleFullscreen";
+import FooterLogoEmphasis from "@/components/sections/footer/FooterLogoEmphasis";
+import { UserPlus, Mail, Lock, AlertCircle, CheckCircle, Copy } from "lucide-react";
+
+export default function SignupPage() {
+ const [formStep, setFormStep] = useState<"email" | "details" | "confirmation">("email");
+ const [email, setEmail] = useState("");
+ const [password, setPassword] = useState("");
+ const [confirmPassword, setConfirmPassword] = useState("");
+ const [fullName, setFullName] = useState("");
+ const [phoneNumber, setPhoneNumber] = useState("");
+ const [errors, setErrors] = useState>({});
+ const [isLoading, setIsLoading] = useState(false);
+ const [userId, setUserId] = useState(null);
+ const [copiedField, setCopiedField] = useState(null);
+
+ const navItems = [
+ { name: "Dashboard", id: "dashboard" },
+ { name: "How It Works", id: "how-it-works" },
+ { name: "Features", id: "features" },
+ { name: "Support", id: "support" },
+ ];
+
+ const footerColumns = [
+ {
+ items: [
+ { label: "Dashboard", href: "/dashboard" },
+ { label: "How It Works", href: "#how-it-works" },
+ { label: "Features", href: "#features" },
+ { label: "Support", href: "/support" },
+ ],
+ },
+ {
+ items: [
+ { label: "About Us", href: "#" },
+ { label: "Our Team", href: "#" },
+ { label: "Blog", href: "#" },
+ { label: "Careers", href: "#" },
+ ],
+ },
+ {
+ items: [
+ { label: "Privacy Policy", href: "#" },
+ { label: "Terms of Service", href: "#" },
+ { label: "Security", href: "#" },
+ { label: "Compliance", href: "#" },
+ ],
+ },
+ {
+ items: [
+ { label: "Email", href: "mailto:support@financeflow.com" },
+ { label: "Phone", href: "tel:+919876543210" },
+ { label: "Twitter", href: "https://twitter.com" },
+ { label: "LinkedIn", href: "https://linkedin.com" },
+ ],
+ },
+ ];
+
+ const generateUserId = () => {
+ return "FFL" + Math.random().toString(36).substring(2, 11).toUpperCase();
+ };
+
+ const validateEmailStep = () => {
+ const newErrors: Record = {};
+
+ if (!email) {
+ newErrors.email = "Email is required";
+ } else if (!/^[^\s@]+@[^\s@]+\.[^\s@]+$/.test(email)) {
+ newErrors.email = "Please enter a valid email address";
+ }
+
+ setErrors(newErrors);
+ return Object.keys(newErrors).length === 0;
+ };
+
+ const validateDetailsStep = () => {
+ const newErrors: Record = {};
+
+ if (!fullName) {
+ newErrors.fullName = "Full name is required";
+ } else if (fullName.length < 2) {
+ newErrors.fullName = "Full name must be at least 2 characters";
+ }
+
+ if (!phoneNumber) {
+ newErrors.phoneNumber = "Phone number is required";
+ } else if (!/^[0-9]{10}$/.test(phoneNumber.replace(/\D/g, ""))) {
+ newErrors.phoneNumber = "Please enter a valid phone number";
+ }
+
+ if (!password) {
+ newErrors.password = "Password is required";
+ } else if (password.length < 8) {
+ newErrors.password = "Password must be at least 8 characters";
+ } else if (!/(?=.*[A-Z])(?=.*[a-z])(?=.*[0-9])/.test(password)) {
+ newErrors.password = "Password must include uppercase, lowercase, and numbers";
+ }
+
+ if (password !== confirmPassword) {
+ newErrors.confirmPassword = "Passwords do not match";
+ }
+
+ setErrors(newErrors);
+ return Object.keys(newErrors).length === 0;
+ };
+
+ const handleEmailStep = () => {
+ if (validateEmailStep()) {
+ setFormStep("details");
+ }
+ };
+
+ const handleDetailsStep = async () => {
+ if (validateDetailsStep()) {
+ setIsLoading(true);
+ try {
+ await new Promise((resolve) => setTimeout(resolve, 1500));
+ setUserId(generateUserId());
+ setFormStep("confirmation");
+ } catch (error) {
+ setErrors({ submit: "An error occurred. Please try again." });
+ } finally {
+ setIsLoading(false);
+ }
+ }
+ };
+
+ const copyToClipboard = (text: string, field: string) => {
+ navigator.clipboard.writeText(text);
+ setCopiedField(field);
+ setTimeout(() => setCopiedField(null), 2000);
+ };
+
+ return (
+
+
+
+
+
+
+
+
+ {/* Header */}
+
+
+
+
+
+ Create Account
+
+
+ {formStep === "email"
+ ? "Get started with FinanceFlow"
+ : formStep === "details"
+ ? "Complete your profile"
+ : "Your account is ready"}
+
+
+
+ {/* Progress Bar */}
+
+
= 0
+ ? "bg-blue-600 dark:bg-blue-400"
+ : "bg-gray-300 dark:bg-gray-600"
+ }`}
+ >
+
= 0
+ ? "bg-blue-600 dark:bg-blue-400"
+ : "bg-gray-300 dark:bg-gray-600"
+ }`}
+ >
+
+
+
+ {/* Step 1: Email */}
+ {formStep === "email" && (
+
+ )}
+
+ {/* Step 2: Details */}
+ {formStep === "details" && (
+
+ )}
+
+ {/* Step 3: Confirmation */}
+ {formStep === "confirmation" && userId && (
+
+
+
+
+
+ Account created successfully!
+
+
+ Your account is ready to use. Save your credentials below.
+
+
+
+
+
+
+
+ Your User ID
+
+
+
+ {userId}
+
+
+
+
+
+
+
+ Your Email
+
+
+
+ {email}
+
+
+
+
+
+
+
+
+ Go to Login
+
+
+ Back to Home
+
+
+
+ )}
+
+ {/* Footer Links */}
+ {formStep !== "confirmation" && (
+
+ Already have an account?{" "}
+
+ Sign in
+
+
+ )}
+
+
+
+ Your data is secure and protected by industry-leading encryption
+
+
+
+
+
+
+ );
+}
diff --git a/src/app/withdraw/page.tsx b/src/app/withdraw/page.tsx
new file mode 100644
index 0000000..411ba0f
--- /dev/null
+++ b/src/app/withdraw/page.tsx
@@ -0,0 +1,475 @@
+"use client";
+
+import Link from "next/link";
+import { useEffect, useState } from "react";
+import { ThemeProvider } from "@/providers/themeProvider/ThemeProvider";
+import NavbarStyleFullscreen from "@/components/navbar/NavbarStyleFullscreen/NavbarStyleFullscreen";
+import FooterLogoEmphasis from "@/components/sections/footer/FooterLogoEmphasis";
+import {
+ Send,
+ CheckCircle,
+ Clock,
+ AlertCircle,
+ TrendingUp,
+ DollarSign,
+ ArrowRight,
+ Zap,
+} from "lucide-react";
+
+interface Investment {
+ id: string;
+ amount: number;
+ paymentMethod: string;
+ investmentType: string;
+ depositTime: string;
+ maturityTime: string;
+ status: string;
+ expectedReturn: number;
+}
+
+export default function WithdrawPage() {
+ const [investments, setInvestments] = useState([]);
+ const [selectedInvestment, setSelectedInvestment] = useState(null);
+ const [withdrawAmount, setWithdrawAmount] = useState("");
+ const [loading, setLoading] = useState(false);
+ const [submitted, setSubmitted] = useState(false);
+ const [remainingTime, setRemainingTime] = useState>({});
+
+ const navItems = [
+ { name: "Home", id: "home" },
+ { name: "How It Works", id: "how-it-works" },
+ { name: "Dashboard", id: "dashboard" },
+ { name: "Support", id: "support" },
+ ];
+
+ const footerColumns = [
+ {
+ items: [
+ { label: "Home", href: "/" },
+ { label: "Deposit", href: "/deposit" },
+ { label: "Dashboard", href: "/dashboard" },
+ { label: "Support", href: "/support" },
+ ],
+ },
+ {
+ items: [
+ { label: "About Us", href: "#" },
+ { label: "Our Team", href: "#" },
+ { label: "Blog", href: "#" },
+ { label: "Careers", href: "#" },
+ ],
+ },
+ {
+ items: [
+ { label: "Privacy Policy", href: "#" },
+ { label: "Terms of Service", href: "#" },
+ { label: "Security", href: "#" },
+ { label: "Compliance", href: "#" },
+ ],
+ },
+ {
+ items: [
+ { label: "Email", href: "mailto:support@financeflow.com" },
+ { label: "Phone", href: "tel:+919876543210" },
+ { label: "Twitter", href: "https://twitter.com" },
+ { label: "LinkedIn", href: "https://linkedin.com" },
+ ],
+ },
+ ];
+
+ // Load investments from localStorage
+ useEffect(() => {
+ const stored = localStorage.getItem("investments");
+ if (stored) {
+ setInvestments(JSON.parse(stored));
+ }
+ }, []);
+
+ // Update countdown timers
+ useEffect(() => {
+ const interval = setInterval(() => {
+ const newRemaining: Record = {};
+
+ investments.forEach((inv) => {
+ const maturity = new Date(inv.maturityTime).getTime();
+ const now = new Date().getTime();
+ const diff = maturity - now;
+
+ if (diff <= 0) {
+ newRemaining[inv.id] = "Ready to Withdraw";
+ } else {
+ const hours = Math.floor(diff / (1000 * 60 * 60));
+ const minutes = Math.floor((diff % (1000 * 60 * 60)) / (1000 * 60));
+ const seconds = Math.floor((diff % (1000 * 60)) / 1000);
+ newRemaining[inv.id] = `${hours}h ${minutes}m ${seconds}s`;
+ }
+ });
+
+ setRemainingTime(newRemaining);
+ }, 1000);
+
+ return () => clearInterval(interval);
+ }, [investments]);
+
+ const handleWithdraw = async (e: React.FormEvent) => {
+ e.preventDefault();
+ if (!selectedInvestment) return;
+
+ setLoading(true);
+
+ try {
+ // Simulate API call
+ await new Promise((resolve) => setTimeout(resolve, 1500));
+
+ // Update investment status
+ const updated = investments.map((inv) => {
+ if (inv.id === selectedInvestment) {
+ return {
+ ...inv,
+ status: "withdrawn"};
+ }
+ return inv;
+ });
+
+ setInvestments(updated);
+ localStorage.setItem("investments", JSON.stringify(updated));
+
+ setSubmitted(true);
+ setSelectedInvestment(null);
+ setWithdrawAmount("");
+
+ setTimeout(() => setSubmitted(false), 3000);
+ } catch (error) {
+ console.error("Withdrawal failed:", error);
+ } finally {
+ setLoading(false);
+ }
+ };
+
+ const selectedInv = investments.find((inv) => inv.id === selectedInvestment);
+ const isMatured = selectedInv && new Date(selectedInv.maturityTime) <= new Date();
+ const maxWithdraw = selectedInv ? selectedInv.expectedReturn : 0;
+
+ const activeInvestments = investments.filter(
+ (inv) => inv.status === "active"
+ );
+ const maturedInvestments = investments.filter(
+ (inv) => inv.status === "active" && new Date(inv.maturityTime) <= new Date()
+ );
+ const withdrawnInvestments = investments.filter(
+ (inv) => inv.status === "withdrawn"
+ );
+
+ const totalEarnings = withdrawnInvestments.reduce(
+ (sum, inv) => sum + (inv.expectedReturn - inv.amount),
+ 0
+ );
+
+ return (
+
+
+
+
+
+
+
+ {/* Header */}
+
+
+ Withdrawal Center
+
+
+ Manage your investments and withdraw your profits instantly.
+
+
+
+ {/* Stats */}
+
+
+
+ Active Investments
+
+
+ {activeInvestments.length}
+
+
+
+
+ Ready to Withdraw
+
+
+ {maturedInvestments.length}
+
+
+
+
+ Total Withdrawn
+
+
+ ₹{withdrawnInvestments.length}
+
+
+
+
+ Total Earnings
+
+
+ ₹{totalEarnings.toLocaleString("en-IN")}
+
+
+
+
+ {/* Success Message */}
+ {submitted && (
+
+
+
+
+
Withdrawal Successful!
+
Your funds have been transferred to your bank account. You will receive a confirmation SMS shortly.
+
+
+
+ )}
+
+ {/* Main Content */}
+
+ {/* Active Investments */}
+
+
+
+ Your Investments
+
+
+ {investments.length === 0 ? (
+
+
+
+ No active investments yet.
+
+
+ Make Your First Deposit →
+
+
+ ) : (
+
+ {investments.map((inv) => {
+ const isReady = new Date(inv.maturityTime) <= new Date();
+ const isSelected = selectedInvestment === inv.id;
+ const status = inv.status === "withdrawn" ? "withdrawn" : isReady ? "ready" : "active";
+
+ return (
+
status !== "withdrawn" && setSelectedInvestment(inv.id)}
+ className={`rounded-lg border-2 p-4 transition-all cursor-pointer ${
+ isSelected
+ ? "border-blue-500 bg-blue-50 dark:border-blue-400 dark:bg-blue-900/20"
+ : status === "withdrawn"
+ ? "border-slate-200 bg-slate-50 dark:border-slate-700 dark:bg-slate-800/50"
+ : isReady
+ ? "border-green-300 bg-green-50 dark:border-green-700 dark:bg-green-900/20"
+ : "border-slate-200 bg-white dark:border-slate-700 dark:bg-slate-900"
+ }`}
+ >
+
+
+
+
+ ₹{inv.amount.toLocaleString("en-IN")} Investment
+
+ {status === "withdrawn" && (
+
+ Withdrawn
+
+ )}
+ {isReady && (
+
+ Ready
+
+ )}
+
+
+ {inv.investmentType.charAt(0).toUpperCase() + inv.investmentType.slice(1)} • {inv.paymentMethod}
+
+
+
+
Deposit
+
+ {new Date(inv.depositTime).toLocaleDateString()}
+
+
+
+
Maturity
+
+ {new Date(inv.maturityTime).toLocaleDateString()}
+
+
+
+
Return
+
+ ₹{inv.expectedReturn.toLocaleString("en-IN")}
+
+
+
+
+
+ {status === "withdrawn" ? (
+
+
+ Completed
+
+ ) : (
+
+
+ {remainingTime[inv.id] || "Loading..."}
+
+
+ {isReady ? "Available now" : "Until ready"}
+
+
+ )}
+
+
+
+ );
+ })}
+
+ )}
+
+
+
+ {/* Withdrawal Form */}
+
+
+ Withdraw Funds
+
+
+ {investments.length === 0 ? (
+
+ Create an investment first to start withdrawing.
+
+ ) : selectedInvestment ? (
+
+ ) : (
+
+ Select an investment from the list to withdraw.
+
+ )}
+
+
+
+ Withdrawal Info
+
+
+ -
+
+ Instant bank transfer
+
+ -
+
+ Zero hidden fees
+
+ -
+
+ Available 24/7
+
+
+
+
+
+
+
+
+
+
+ );
+}
\ No newline at end of file