Merge version_13 into main

Merge version_13 into main
This commit was merged in pull request #13.
This commit is contained in:
2026-05-07 20:12:47 +00:00
2 changed files with 107 additions and 15 deletions

83
src/app/chart/page.tsx Normal file
View File

@@ -0,0 +1,83 @@
"use client";
import { useEffect, useRef } from "react";
import { useSearchParams } from "next/navigation";
import { ThemeProvider } from "@/providers/themeProvider/ThemeProvider";
import NavbarStyleApple from "@/components/navbar/NavbarStyleApple/NavbarStyleApple";
import FooterBase from "@/components/sections/footer/FooterBase";
import ReactLenis from "lenis/react";
export default function ChartPage() {
const searchParams = useSearchParams();
const pair = searchParams.get("pair") || "EURUSD";
const container = useRef<HTMLDivElement>(null);
useEffect(() => {
const script = document.createElement("script");
script.src = "https://s3.tradingview.com/external-embedding/embed-widget-advanced-chart.js";
script.type = "text/javascript";
script.async = true;
script.innerHTML = JSON.stringify({
"autosize": true,
"symbol": `FX:${pair}`,
"interval": "D", "timezone": "Etc/UTC", "theme": "dark", "style": "1", "locale": "en", "enable_publishing": false,
"hide_side_toolbar": false,
"allow_symbol_change": true,
"support_host": "https://www.tradingview.com"
});
if (container.current) {
container.current.innerHTML = "";
container.current.appendChild(script);
}
}, [pair]);
const currencyPairs = [
{ name: "EUR/USD", href: "/chart?pair=EURUSD" },
{ name: "GBP/USD", href: "/chart?pair=GBPUSD" },
{ name: "USD/JPY", href: "/chart?pair=USDJPY" },
{ name: "AUD/USD", href: "/chart?pair=AUDUSD" }
];
return (
<ThemeProvider
defaultButtonVariant="expand-hover"
defaultTextAnimation="background-highlight"
borderRadius="soft"
contentWidth="mediumSmall"
sizing="mediumLargeSizeLargeTitles"
background="floatingGradient"
cardStyle="outline"
primaryButtonStyle="gradient"
secondaryButtonStyle="solid"
headingFontWeight="normal"
>
<ReactLenis root>
<div id="nav" data-section="nav">
<NavbarStyleApple
navItems={[
{ name: "Dashboard", id: "/" },
...currencyPairs.map(p => ({ name: p.name, id: p.href }))
]}
brandName="ForexFlow"
/>
</div>
<div style={{ height: "85vh", width: "100%", padding: "2rem" }}>
<h1 style={{ marginBottom: "1rem" }}>{pair} Advanced Chart</h1>
<div ref={container} style={{ height: "100%", width: "100%" }} />
</div>
<div id="footer" data-section="footer">
<FooterBase
columns={[
{ title: "Product", items: currencyPairs.map(p => ({ label: p.name, href: p.href })) },
{ title: "Resources", items: [{ label: "Documentation", href: "#" }, { label: "Community", href: "#" }] },
{ title: "Company", items: [{ label: "About Us", href: "#" }, { label: "Privacy Policy", href: "#" }] },
]}
logoText="ForexFlow"
/>
</div>
</ReactLenis>
</ThemeProvider>
);
}

View File

@@ -12,15 +12,19 @@ import NavbarStyleApple from '@/components/navbar/NavbarStyleApple/NavbarStyleAp
import PricingCardNine from '@/components/sections/pricing/PricingCardNine';
import TestimonialCardTwo from '@/components/sections/testimonial/TestimonialCardTwo';
import { BarChart2, CalendarDays, Gauge, MessageSquare, ShieldCheck, Star } from "lucide-react";
import { useRouter } from "next/navigation";
export default function LandingPage() {
const router = useRouter();
const currencyPairs = [
{ name: "EUR/USD", href: "/chart?pair=EURUSD" },
{ name: "GBP/USD", href: "/chart?pair=GBPUSD" },
{ name: "USD/JPY", href: "/chart?pair=USDJPY" },
{ name: "AUD/USD", href: "/chart?pair=AUDUSD" }
{ name: "EUR/USD", pair: "EURUSD" },
{ name: "GBP/USD", pair: "GBPUSD" },
{ name: "USD/JPY", pair: "USDJPY" },
{ name: "AUD/USD", pair: "AUDUSD" }
];
const handlePairClick = (pair: string) => router.push(`/chart?pair=${pair}`);
return (
<ThemeProvider
defaultButtonVariant="expand-hover"
@@ -41,7 +45,7 @@ export default function LandingPage() {
{ name: "Dashboard", id: "hero" },
{ name: "Features", id: "features" },
{ name: "Pricing", id: "pricing" },
...currencyPairs.map(p => ({ name: p.name, id: p.href }))
...currencyPairs.map(p => ({ name: p.name, id: "#" }))
]}
brandName="ForexFlow"
/>
@@ -54,12 +58,17 @@ export default function LandingPage() {
description="Gain a competitive edge with real-time charting, AI-driven pattern recognition, and comprehensive risk management tools designed for modern traders."
buttons={[
{ text: "Get Started", href: "#features" },
{ text: "View Charts", href: "/chart?pair=EURUSD" },
{ text: "View Charts", onClick: () => handlePairClick("EURUSD") },
]}
imageSrc="http://img.b2bpic.net/free-photo/business-files-desk-notebook-showing-forex-trading-indexes-prices_482257-84924.jpg?_wi=1"
imageAlt="Forex trading platform dashboard"
mediaAnimation="slide-up"
marqueeItems={currencyPairs.map(p => ({ type: "text", text: p.name }))}
marqueeItems={currencyPairs.map(p => ({
type: "text",
text: p.name,
// @ts-ignore
onClick: () => handlePairClick(p.pair)
}))}
/>
</div>
@@ -69,8 +78,8 @@ export default function LandingPage() {
textboxLayout="split"
useInvertedBackground={false}
features={[
{ icon: BarChart2, title: "Interactive Charting", description: "100+ indicators and real-time data integration with multi-frame analysis.", button: { text: "View EUR/USD", href: "/chart?pair=EURUSD" } },
{ icon: Star, title: "AI Pattern Recognition", description: "Auto-detect complex chart patterns like wedges, flags, and double bottoms.", button: { text: "View GBP/USD", href: "/chart?pair=GBPUSD" } },
{ icon: BarChart2, title: "Interactive Charting", description: "100+ indicators and real-time data integration with multi-frame analysis.", button: { text: "View EUR/USD", onClick: () => handlePairClick("EURUSD") } },
{ icon: Star, title: "AI Pattern Recognition", description: "Auto-detect complex chart patterns like wedges, flags, and double bottoms.", button: { text: "View GBP/USD", onClick: () => handlePairClick("GBPUSD") } },
{ icon: CalendarDays, title: "Economic Data Feed", description: "Real-time calendar tracking with impact analysis and historical performance data." },
{ icon: Gauge, title: "Risk Management", description: "Integrated calculators for position sizing, margin, and pip value assessment." },
{ icon: MessageSquare, title: "Social Community", description: "Share trade ideas and collaborate with top traders in your currency pairs." },
@@ -91,7 +100,7 @@ export default function LandingPage() {
{ id: "m2", value: "GBP/USD", title: "Major Pair", description: "Check live charts for GBP/USD", imageSrc: "http://img.b2bpic.net/free-photo/african-american-woman-works-remotely-from-cozy-apartment-evening-reviewing-company-stock-market_482257-134074.jpg" },
{ id: "m3", value: "USD/JPY", title: "Major Pair", description: "Check live charts for USD/JPY", imageSrc: "http://img.b2bpic.net/free-photo/stock-market-graph-business-analysis-investment-monitors_482257-29619.jpg" },
]}
buttons={[{ text: "Explore All Markets", href: "/chart?pair=EURUSD" }]}
buttons={[{ text: "Explore All Markets", onClick: () => handlePairClick("EURUSD") }]}
title="Empowering Global Traders"
description="Performance metrics driven by data for every market condition."
/>
@@ -118,8 +127,8 @@ export default function LandingPage() {
textboxLayout="split"
useInvertedBackground={false}
plans={[
{ id: "free", title: "Free Tier", price: "$0", period: "/mo", features: ["EUR/USD access", "Basic Indicators", "Economic Calendar"], button: { text: "Start with EUR/USD", href: "/chart?pair=EURUSD" }, imageSrc: "http://img.b2bpic.net/free-photo/zoom-out-home-office-with-monitors-stock-market_482257-29630.jpg" },
{ id: "pro", title: "Pro Plan", price: "$19", period: "/mo", features: ["Full Market Access", "Backtesting Module", "API Integrations"], button: { text: "Upgrade Now", href: "/chart?pair=EURUSD" }, imageSrc: "http://img.b2bpic.net/free-photo/business-files-desk-notebook-showing-forex-trading-indexes-prices_482257-84924.jpg?_wi=2" },
{ id: "free", title: "Free Tier", price: "$0", period: "/mo", features: ["EUR/USD access", "Basic Indicators", "Economic Calendar"], button: { text: "Start with EUR/USD", onClick: () => handlePairClick("EURUSD") }, imageSrc: "http://img.b2bpic.net/free-photo/zoom-out-home-office-with-monitors-stock-market_482257-29630.jpg" },
{ id: "pro", title: "Pro Plan", price: "$19", period: "/mo", features: ["Full Market Access", "Backtesting Module", "API Integrations"], button: { text: "Upgrade Now", onClick: () => handlePairClick("EURUSD") }, imageSrc: "http://img.b2bpic.net/free-photo/business-files-desk-notebook-showing-forex-trading-indexes-prices_482257-84924.jpg?_wi=2" },
]}
title="Straightforward Pricing"
description="Access all core tools for free, upgrade for advanced AI and automation features."
@@ -146,14 +155,14 @@ export default function LandingPage() {
useInvertedBackground={false}
background={{ variant: "sparkles-gradient" }}
text="Ready to elevate your trading journey? Join thousands of professional traders today."
buttons={[{ text: "View EUR/USD Chart", href: "/chart?pair=EURUSD" }]}
buttons={[{ text: "View EUR/USD Chart", onClick: () => handlePairClick("EURUSD") }]}
/>
</div>
<div id="footer" data-section="footer">
<FooterBase
columns={[
{ title: "Product", items: currencyPairs.map(p => ({ label: p.name, href: p.href })) },
{ title: "Product", items: currencyPairs.map(p => ({ label: p.name, href: `/chart?pair=${p.pair}` })) },
{ title: "Resources", items: [{ label: "Documentation", href: "#" }, { label: "Community", href: "#" }] },
{ title: "Company", items: [{ label: "About Us", href: "#" }, { label: "Privacy Policy", href: "#" }] },
]}
@@ -163,4 +172,4 @@ export default function LandingPage() {
</ReactLenis>
</ThemeProvider>
);
}
}