diff --git a/public/Logo and text-1-2.png b/public/Logo and text-1-2.png new file mode 100644 index 0000000..76880a8 Binary files /dev/null and b/public/Logo and text-1-2.png differ diff --git a/public/Logo and text-2-2.png b/public/Logo and text-2-2.png new file mode 100644 index 0000000..e305f65 Binary files /dev/null and b/public/Logo and text-2-2.png differ diff --git a/public/Logo and text-4.png b/public/Logo and text-4.png new file mode 100644 index 0000000..1ab0cef Binary files /dev/null and b/public/Logo and text-4.png differ diff --git a/public/darklogotext.png b/public/darklogotext.png new file mode 100644 index 0000000..4be437c Binary files /dev/null and b/public/darklogotext.png differ diff --git a/src/app/about/page.tsx b/src/app/about/page.tsx index c454b9e..3a17de4 100644 --- a/src/app/about/page.tsx +++ b/src/app/about/page.tsx @@ -107,12 +107,21 @@ export default function AboutPage() {
+ {/* Light theme image */} + ChainRemit Logo + {/* Dark theme image */} ChainRemit Logo
@@ -346,7 +355,7 @@ export default function AboutPage() {
{/* Stats Section */} - +

Our Impact

diff --git a/src/app/contact/page.tsx b/src/app/contact/page.tsx index d24b26e..99ee6bb 100644 --- a/src/app/contact/page.tsx +++ b/src/app/contact/page.tsx @@ -15,15 +15,26 @@ export default function ContactPage() {
- - ChainRemit Logo - +
+ + {/* Light theme image */} + ChainRemit Logo + {/* Dark theme image */} + ChainRemit Logo + +
= ({ willChange: "transform, opacity", }} > + {/* Light theme image */} + ChainRemit Logo + {/* Dark theme image */} ChainRemit Logo )} diff --git a/src/app/demo/page.tsx b/src/app/demo/page.tsx index 859def9..6ae76af 100644 --- a/src/app/demo/page.tsx +++ b/src/app/demo/page.tsx @@ -1,19 +1,11 @@ "use client"; -import { useState } from "react"; -import Image from "next/image"; -import { - Card, - CardContent, - CardDescription, - CardHeader, - CardTitle, -} from "@/components/ui/card"; +import React, { useState, useEffect, useRef } from "react"; +import type { JSX } from "react"; import { Button } from "@/components/ui/button"; -import { Badge } from "@/components/ui/badge"; -import { Tabs, TabsContent, TabsList, TabsTrigger } from "@/components/ui/tabs"; -import { Progress } from "@/components/ui/progress"; -import { Avatar, AvatarFallback } from "@/components/ui/avatar"; +import Link from "next/link"; +import Image from "next/image"; +import { ThemeToggle } from "@/components/theme-toggle"; import { Send, CreditCard, @@ -25,40 +17,53 @@ import { RotateCcw, ArrowRight, CheckCircle, + Home, + User, } from "lucide-react"; -import Link from "next/link"; -import { ThemeToggle } from "@/components/theme-toggle"; export default function DemoPage() { const [currentStep, setCurrentStep] = useState(0); const [isPlaying, setIsPlaying] = useState(false); const [demoProgress, setDemoProgress] = useState(0); + const [walletConnected, setWalletConnected] = useState(false); + const [sendAmount, setSendAmount] = useState("125.50"); + const [recipient, setRecipient] = useState("alice.stark"); + const [groupProgress, setGroupProgress] = useState(80); + const [creditScore, setCreditScore] = useState(742); + const [activeTab, setActiveTab] = useState("interactive"); + const intervalRef = useRef(null); + const stepIntervalRef = useRef(null); const demoSteps = [ { title: "Connect Your Wallet", description: "Securely connect your StarkNet wallet to get started", component: "wallet-connect", + duration: 3000, }, { title: "Send Money Globally", description: "Transfer funds instantly with minimal fees", component: "send-money", + duration: 4000, }, { title: "Join Savings Groups", description: "Participate in community savings circles", component: "savings-groups", + duration: 3500, }, { title: "Access Microloans", description: "Get loans based on your credit score", component: "microloans", + duration: 3000, }, { title: "Build Credit Score", description: "Improve your on-chain financial reputation", component: "credit-score", + duration: 2500, }, ]; @@ -66,23 +71,97 @@ export default function DemoPage() { setIsPlaying(true); setCurrentStep(0); setDemoProgress(0); + setWalletConnected(false); - const interval = setInterval(() => { + // Reset demo state + setSendAmount("125.50"); + setRecipient("alice.stark"); + setGroupProgress(80); + setCreditScore(742); + + // Progress bar animation + intervalRef.current = setInterval(() => { setDemoProgress((prev) => { if (prev >= 100) { - clearInterval(interval); + clearInterval(intervalRef.current as unknown as number); setIsPlaying(false); return 100; } - return prev + 2; + return prev + 0.5; }); }, 100); + + // Auto step progression + let stepIndex = 0; + const progressThroughSteps = () => { + if (stepIndex < demoSteps.length && isPlaying) { + setCurrentStep(stepIndex); + + // Simulate interactions for each step + setTimeout(() => { + switch (stepIndex) { + case 0: + setWalletConnected(true); + break; + case 1: + // Animate send money process + setTimeout(() => setSendAmount("0.00"), 1000); + setTimeout(() => setSendAmount("125.50"), 2000); + break; + case 2: + // Animate group progress + let progress = 80; + const progressInterval = setInterval(() => { + progress += 2; + setGroupProgress(progress); + if (progress >= 100) clearInterval(progressInterval); + }, 100); + break; + case 4: + // Animate credit score + let score = 742; + const scoreInterval = setInterval(() => { + score += 1; + setCreditScore(score); + if (score >= 760) clearInterval(scoreInterval); + }, 50); + break; + } + }, 500); + + stepIndex++; + if (stepIndex < demoSteps.length) { + stepIntervalRef.current = setTimeout( + progressThroughSteps, + demoSteps[stepIndex - 1].duration + ); + } + } + }; + + progressThroughSteps(); + }; + + const pauseDemo = () => { + setIsPlaying(false); + if (intervalRef.current) + clearInterval(intervalRef.current as unknown as number); + if (stepIntervalRef.current) + clearTimeout(stepIntervalRef.current as unknown as number); }; const resetDemo = () => { setIsPlaying(false); setCurrentStep(0); setDemoProgress(0); + setWalletConnected(false); + setSendAmount("125.50"); + setRecipient("alice.stark"); + setGroupProgress(80); + setCreditScore(742); + + if (intervalRef.current) clearInterval(intervalRef.current); + if (stepIntervalRef.current) clearTimeout(stepIntervalRef.current); }; const nextStep = () => { @@ -97,12 +176,43 @@ export default function DemoPage() { } }; - const renderDemoComponent = (component: string) => { + const connectWallet = () => { + setWalletConnected(true); + }; + + const sendMoney = () => { + setSendAmount("0.00"); + setTimeout(() => { + setSendAmount("125.50"); + }, 2000); + }; + + const joinGroup = () => { + let progress = groupProgress; + const interval = setInterval(() => { + progress += 2; + setGroupProgress(progress); + if (progress >= 100) clearInterval(interval); + }, 100); + }; + + interface DemoStep { + title: string; + description: string; + component: string; + duration: number; + } + + interface RenderDemoComponentProps { + component: string; + } + + const renderDemoComponent = (component: string): JSX.Element | null => { switch (component) { case "wallet-connect": return ( - - +
+
@@ -110,135 +220,209 @@ export default function DemoPage() {

Securely connect your wallet to access all ChainRemit features

- - - + {walletConnected ? ( +
+
+ + Wallet Connected! +
+
+ Address: 0x1234...5678 +
+
+ ) : ( + + )} +
+
); case "send-money": return ( - - - +
+
+

Send Money - - - +

+
+
- alice.stark + {recipient}
-
- $125.50 +
+ ${sendAmount}
- - - + +
+
); case "savings-groups": return ( - - - +
+
+

Community Builders Circle - - 12/15 members • $50 monthly - - +

+

+ 12/15 members • $50 monthly +

+
+
Progress to target - 80% + {groupProgress}% +
+
+
-
- - JD - - - AS - - - MB - +
+ JD +
+
+ AS +
+
+ MB +
+9 more
- - - + {groupProgress >= 100 && ( +
+ + Target Reached! +
+ )} + +
+
); case "microloans": return ( - - - +
+
+

Available Loan Offers - - - -
+

+
+
+
DeFi Lender Pool - 8.5% APR + + 8.5% APR +
Up to $500 • 30 days • No collateral required
- + +
+
+
+ Peer-to-Peer Lending + + 7.2% APR + +
+
+ Up to $1,000 • 60 days • Community verified +
+
- - +
+
); case "credit-score": return ( - - - +
+
+

Your Credit Score - - - +

+
+
-
742
+
+ {creditScore} +
- 750 + ? "bg-green-100 text-green-800" + : "bg-blue-100 text-blue-800" + }`} > - Trust Level: A+ - + Trust Level: {creditScore > 750 ? "A+" : "A"} +

- Excellent Credit + {creditScore > 750 ? "Excellent Credit" : "Very Good Credit"}

- - +
+ Score increased by {creditScore - 742} points this month +
+
+
); default: @@ -246,25 +430,44 @@ export default function DemoPage() { } }; + // Cleanup intervals on unmount + useEffect(() => { + return () => { + if (intervalRef.current) clearInterval(intervalRef.current); + if (stepIntervalRef.current) clearTimeout(stepIntervalRef.current); + }; + }, []); + return (
- ChainRemit Logo + + {/* Light theme image */} + ChainRemit Logo + {/* Dark theme image */} + ChainRemit Logo + Demo
- + +
- {isPlaying && ( + {demoProgress > 0 && (
Demo Progress {Math.round(demoProgress)}%
- +
+
+
)}
- - - Interactive Demo - Feature Overview - Step-by-Step - - - -
- - - Demo Steps - - Click on any step to explore that feature - - - - {demoSteps.map((step, index) => ( -
setCurrentStep(index)} - > -
-
- {index + 1} -
-
-

{step.title}

-

- {step.description} -

+
+
+
+ + + +
+
+ + {activeTab === "interactive" && ( +
+
+
+
+

Demo Steps

+

+ Click on any step to explore that feature +

+
+
+ {demoSteps.map((step, index) => ( +
setCurrentStep(index)} + > +
+
+ {index + 1} +
+
+

{step.title}

+

+ {step.description} +

+
+ ))} +
+
+ +
+
+

+ {demoSteps[currentStep].title} +

+
+ +
- ))} - - - -
-
-

- {demoSteps[currentStep].title} -

-
- - +
+
+ {renderDemoComponent(demoSteps[currentStep].component)}
- {renderDemoComponent(demoSteps[currentStep].component)}
- - - -
- - -
- + )} + + {activeTab === "features" && ( +
+
+
+
+
+ +
+

+ Instant Transfers +

+

+ Send money globally with minimal fees and instant + settlement +

+
    +
  • + + Global reach +
  • +
  • + + Low fees (under $1) +
  • +
  • + + Instant settlement +
  • +
- Instant Transfers - - Send money globally with minimal fees and instant settlement - - - -
    -
  • - - Global reach -
  • -
  • - - Low fees (under $1) -
  • -
  • - - Instant settlement -
  • -
-
- - - - -
- +
+ +
+
+
+ +
+

+ Savings Groups +

+

+ Join community savings circles with automated payouts +

+
    +
  • + + Automated contributions +
  • +
  • + + Transparent tracking +
  • +
  • + + Community trust +
  • +
- Savings Groups - - Join community savings circles with automated payouts - - - -
    -
  • - - Automated contributions -
  • -
  • - - Transparent tracking -
  • -
  • - - Community trust -
  • -
-
- - - - -
- +
+ +
+
+
+ +
+

Microloans

+

+ Access small loans based on your credit score +

+
    +
  • + + Credit-based approval +
  • +
  • + + Competitive rates +
  • +
  • + + Flexible terms +
  • +
- Microloans - - Access small loans based on your credit score - - - -
    -
  • - - Credit-based approval -
  • -
  • - - Competitive rates -
  • -
  • - - Flexible terms -
  • -
-
- +
+
- - - -
- {demoSteps.map((step, index) => ( - - -
-
- {index + 1} -
-
- {step.title} - {step.description} + )} + + {activeTab === "walkthrough" && ( +
+
+ {demoSteps.map((step, index) => ( +
+
+
+
+ {index + 1} +
+
+

+ {step.title} +

+

+ {step.description} +

+
- - - {renderDemoComponent(step.component)} - - - ))} +
+ {renderDemoComponent(step.component)} +
+
+ ))} +
- - + )} +
- - +
+

Ready to Get Started?

Join thousands of users who are already using ChainRemit for their financial needs.

- - + +
- - +
+
diff --git a/src/app/help/page.tsx b/src/app/help/page.tsx index ad47121..5411d13 100644 --- a/src/app/help/page.tsx +++ b/src/app/help/page.tsx @@ -176,12 +176,21 @@ export default function HelpPage() {
+ {/* Light theme image */} + ChainRemit Logo + {/* Dark theme image */} ChainRemit Logo diff --git a/src/app/privacy-policy/page.tsx b/src/app/privacy-policy/page.tsx index 6eeffc6..3b99aa1 100644 --- a/src/app/privacy-policy/page.tsx +++ b/src/app/privacy-policy/page.tsx @@ -115,12 +115,21 @@ export default function PrivacyPage() {
+ {/* Light theme image */} + ChainRemit Logo + {/* Dark theme image */} ChainRemit Logo
diff --git a/src/app/security/page.tsx b/src/app/security/page.tsx index a0dfdc9..eb3c1ee 100644 --- a/src/app/security/page.tsx +++ b/src/app/security/page.tsx @@ -128,12 +128,21 @@ export default function SecurityPage() {
+ {/* Light theme image */} + ChainRemit Logo + {/* Dark theme image */} ChainRemit Logo {/* Security */} diff --git a/src/app/terms-of-service/page.tsx b/src/app/terms-of-service/page.tsx index 3ed1200..1e11297 100644 --- a/src/app/terms-of-service/page.tsx +++ b/src/app/terms-of-service/page.tsx @@ -151,12 +151,21 @@ export default function TermsPage() {
+ {/* Light theme image */} + ChainRemit Logo + {/* Dark theme image */} ChainRemit Logo
diff --git a/src/components/landing/navigation.tsx b/src/components/landing/navigation.tsx index 5982552..6c5ffe3 100644 --- a/src/components/landing/navigation.tsx +++ b/src/components/landing/navigation.tsx @@ -15,7 +15,6 @@ interface NavigationProps { export function Navigation({ setIsModalOpen }: NavigationProps) { const [isMenuOpen, setIsMenuOpen] = useState(false); - const toggleMenu = () => { setIsMenuOpen(!isMenuOpen); }; @@ -30,12 +29,21 @@ export function Navigation({ setIsModalOpen }: NavigationProps) { {/* Logo */}
+ {/* Light theme image */} + ChainRemit Logo + {/* Dark theme image */} ChainRemit Logo
@@ -115,7 +123,9 @@ export function Navigation({ setIsModalOpen }: NavigationProps) {
- StarkRemit + + StarkRemit +