Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion apps/web/app/contact/page.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -283,7 +283,7 @@ export default function ContactPage() {
Ready to start trading with RestroFX?
</p>
<Button variant="outline" className="w-full group" asChild>
<a href="/register">
<a href="https://portal.restrofx.com/register" target="_blank" rel="noopener noreferrer">
Create Account
<ArrowRight className="ml-2 h-4 w-4 group-hover:translate-x-1 transition-transform" />
</a>
Expand Down
115 changes: 20 additions & 95 deletions apps/web/app/login/page.tsx
Original file line number Diff line number Diff line change
@@ -1,23 +1,18 @@
"use client";

import React, { useState } from "react";
import { useEffect } from "react";
import Link from "next/link";
import { CanvasRevealEffect } from "@/components/ui/canvas-reveal-effect";
import { Button } from "@crimsonfx/ui";
import { Navbar } from "@/components/navbar";
import { Footer } from "@/components/footer";
import { Eye, EyeOff, Lock, Mail, ArrowRight } from "lucide-react";
import { Loader2 } from "lucide-react";

export default function LoginPage() {
const [email, setEmail] = useState("");
const [password, setPassword] = useState("");
const [showPassword, setShowPassword] = useState(false);
useEffect(() => {
window.location.replace("https://portal.restrofx.com/login");
}, []);

const handleSubmit = (e: React.FormEvent) => {
e.preventDefault();
// Handle login logic here
console.log("Login with:", email, password);
};

return (
<div className="min-h-screen relative w-full bg-white flex flex-col font-sans selection:bg-red-500/20">
Expand All @@ -35,92 +30,22 @@ export default function LoginPage() {
</div>

{/* Content Layer */}
<div className="relative z-10 w-full max-w-md p-4 sm:p-6 my-24 sm:my-40">
<div className="bg-white rounded-3xl shadow-[0_8px_40px_-12px_rgba(0,0,0,0.1)] border border-neutral-100 p-8 sm:p-10 transition-all duration-300 hover:-translate-y-2 hover:shadow-[0_30px_60px_-12px_rgba(220,38,38,0.3)]">
<div className="text-center mb-10">
<h1 className="text-3xl font-bold mb-3 tracking-tight bg-gradient-to-b from-red-500 via-red-600 to-red-800 bg-clip-text text-transparent">Welcome Back</h1>
<p className="text-neutral-500 text-base">Sign in to your account</p>
</div>

<form onSubmit={handleSubmit} className="space-y-5">
<div className="space-y-2">
<label
htmlFor="email"
className="text-sm font-semibold text-neutral-700 ml-1"
>
Email Address
</label>
<div className="relative group">
<div className="absolute left-4 top-1/2 -translate-y-1/2 text-neutral-400 group-focus-within:text-red-600 transition-colors">
<Mail className="h-5 w-5" />
</div>
<input
type="email"
id="email"
value={email}
onChange={(e) => setEmail(e.target.value)}
className="w-full pl-12 pr-4 py-3.5 rounded-xl border border-neutral-200 bg-neutral-50 focus:bg-white focus:ring-[3px] focus:ring-red-500/10 focus:border-red-500 transition-all outline-none font-medium text-neutral-900 placeholder:text-neutral-400"
placeholder="name@example.com"
required
/>
</div>
</div>

<div className="space-y-2">
<div className="flex items-center justify-between ml-1">
<label
htmlFor="password"
className="text-sm font-semibold text-neutral-700"
>
Password
</label>
<Link
href="/forgot-password"
className="text-sm text-red-600 hover:text-red-700 font-medium transition-colors hover:underline underline-offset-4"
>
Forgot password?
</Link>
</div>
<div className="relative group">
<div className="absolute left-4 top-1/2 -translate-y-1/2 text-neutral-400 group-focus-within:text-red-600 transition-colors">
<Lock className="h-5 w-5" />
</div>
<input
type={showPassword ? "text" : "password"}
id="password"
value={password}
onChange={(e) => setPassword(e.target.value)}
className="w-full pl-12 pr-12 py-3.5 rounded-xl border border-neutral-200 bg-neutral-50 focus:bg-white focus:ring-[3px] focus:ring-red-500/10 focus:border-red-500 transition-all outline-none font-medium text-neutral-900 placeholder:text-neutral-400"
placeholder="Enter your password"
required
/>
<button
type="button"
onClick={() => setShowPassword(!showPassword)}
className="absolute right-4 top-1/2 -translate-y-1/2 text-neutral-400 hover:text-neutral-600 transition-colors p-1 rounded-md hover:bg-neutral-100"
>
{showPassword ? (
<EyeOff className="h-5 w-5" />
) : (
<Eye className="h-5 w-5" />
)}
</button>
</div>
</div>

<Button
type="submit"
className="w-full h-12 text-base font-bold bg-gradient-to-r from-red-600 to-red-700 hover:from-red-500 hover:to-red-600 text-white rounded-xl shadow-lg shadow-red-600/20 hover:shadow-red-600/30 hover:-translate-y-0.5 transition-all duration-300 group mt-4"
>
<span className="flex items-center gap-2">
Sign In <ArrowRight className="h-4 w-4 group-hover:translate-x-1 transition-transform" />
</span>
</Button>
</form>

<div className="mt-8 pt-6 border-t border-neutral-100 text-center text-sm text-neutral-500">
<div className="relative z-10 w-full max-w-md p-4 sm:p-6 my-24 sm:my-40 text-center">
<div className="bg-white rounded-3xl shadow-[0_8px_40px_-12px_rgba(0,0,0,0.1)] border border-neutral-100 p-8 sm:p-10">
<Loader2 className="h-12 w-12 text-primary animate-spin mx-auto mb-6" />
<h1 className="text-2xl font-bold mb-3 tracking-tight text-neutral-900">Redirecting to Portal</h1>
<p className="text-neutral-500 mb-8">Please wait while we take you to the RestroFX login page...</p>

<Button
className="w-full h-12 font-bold"
onClick={() => window.location.replace("https://portal.restrofx.com/login")}
>
Click here if not redirected
</Button>

<div className="mt-8 pt-6 border-t border-neutral-100 text-sm text-neutral-500">
Don&apos;t have an account?{" "}
<Link href="/register" className="text-red-600 hover:text-red-700 font-bold hover:underline underline-offset-4 transition-all ml-1">
<Link href="https://portal.restrofx.com/register" className="text-red-600 hover:text-red-700 font-bold hover:underline underline-offset-4 transition-all ml-1">
Create free account
</Link>
</div>
Expand Down
2 changes: 1 addition & 1 deletion apps/web/app/page.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,7 @@ export default function Home() {
title="Restro FX: Redefining Your Trading Experience."
subtitle="Merge deep market expertise with advanced trading platforms. Algorithm-driven strategies and risk management to help you surpass your investment goals."
ctaLabel="Start Trading"
ctaHref="/register"
ctaHref="https://portal.restrofx.com/register"
secondaryCtaLabel="View Platforms"
secondaryCtaHref="/platforms"
/>
Expand Down
6 changes: 3 additions & 3 deletions apps/web/app/partners/affiliate/page.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -219,7 +219,7 @@ export default function AffiliateProgramPage() {

<div className="flex flex-col sm:flex-row gap-4 justify-center items-center pt-4">
<Button size="lg" className="rounded-xl px-8 h-14 text-lg font-bold shadow-xl shadow-primary/20 hover:scale-105 transition-transform" asChild>
<Link href="/register">
<Link href="https://portal.restrofx.com/register" target="_blank" rel="noopener noreferrer">
Join as Affiliate <ArrowRight className="ml-2 h-5 w-5" />
</Link>
</Button>
Expand Down Expand Up @@ -329,7 +329,7 @@ export default function AffiliateProgramPage() {
variant={model.popular ? "default" : "outline"}
asChild
>
<Link href="/register">Get Started</Link>
<Link href="https://portal.restrofx.com/register" target="_blank" rel="noopener noreferrer">Get Started</Link>
</Button>
</div>
))}
Expand Down Expand Up @@ -473,7 +473,7 @@ export default function AffiliateProgramPage() {
className="w-full sm:w-auto rounded-full px-12 h-16 text-lg font-bold bg-white text-primary hover:bg-neutral-100 shadow-[0_20px_50px_rgba(0,0,0,0.3)] hover:-translate-y-2 hover:shadow-[0_30px_60px_rgba(220,0,0,0.4)] transition-all duration-500 group relative overflow-hidden active:scale-95"
asChild
>
<Link href="/register">
<Link href="https://portal.restrofx.com/register" target="_blank" rel="noopener noreferrer">
<span className="relative z-10 flex items-center justify-center">
Become an Affiliate <ArrowRight className="ml-3 h-5 w-5 group-hover:translate-x-2 transition-transform duration-300" />
</span>
Expand Down
4 changes: 2 additions & 2 deletions apps/web/app/partners/ib/page.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -98,7 +98,7 @@ export default function IBProgramPage() {

<div className="flex flex-col sm:flex-row gap-4 justify-center items-center pt-4">
<Button size="lg" className="rounded-xl px-8 h-14 text-lg font-bold shadow-xl shadow-primary/20 hover:scale-105 transition-transform" asChild>
<Link href="/register">
<Link href="https://portal.restrofx.com/register" target="_blank" rel="noopener noreferrer">
Become an IB <ArrowRight className="ml-2 h-5 w-5" />
</Link>
</Button>
Expand Down Expand Up @@ -241,7 +241,7 @@ export default function IBProgramPage() {
</p>
<div className="flex flex-col sm:flex-row gap-4 justify-center">
<Button size="lg" className="rounded-xl px-8 h-14 text-lg font-bold shadow-xl shadow-primary/20 hover:scale-105 transition-transform" asChild>
<Link href="/register">
<Link href="https://portal.restrofx.com/register" target="_blank" rel="noopener noreferrer">
Apply Now <ArrowRight className="ml-2 h-5 w-5" />
</Link>
</Button>
Expand Down
4 changes: 2 additions & 2 deletions apps/web/app/partners/page.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -133,7 +133,7 @@ export default function AffiliateProgramPage() {

<div className="flex flex-col sm:flex-row gap-4 justify-center items-center pt-4">
<Button size="lg" className="rounded-xl px-8 h-14 text-lg font-bold shadow-xl shadow-primary/20 hover:scale-105 transition-transform" asChild>
<Link href="/register">
<Link href="https://portal.restrofx.com/register" target="_blank" rel="noopener noreferrer">
Become an Affiliate <ArrowRight className="ml-2 h-5 w-5" />
</Link>
</Button>
Expand Down Expand Up @@ -244,7 +244,7 @@ export default function AffiliateProgramPage() {
Join our affiliate program today and start earning commissions
</p>
<Button size="lg" className="rounded-xl px-8 h-14 text-lg font-bold shadow-xl shadow-primary/20 hover:scale-105 transition-transform" asChild>
<Link href="/register">
<Link href="https://portal.restrofx.com/register" target="_blank" rel="noopener noreferrer">
Apply Now <ArrowRight className="ml-2 h-5 w-5" />
</Link>
</Button>
Expand Down
6 changes: 3 additions & 3 deletions apps/web/app/platforms/ai-trading-journal/page.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -119,7 +119,7 @@ export default function AITradingJournalPage() {

<div className="flex flex-col sm:flex-row gap-4 justify-center items-center pt-4">
<Button size="lg" className="rounded-xl px-8 h-14 text-lg font-bold shadow-xl shadow-primary/20 hover:scale-105 transition-transform" asChild>
<Link href="/register">
<Link href="https://portal.restrofx.com/register" target="_blank" rel="noopener noreferrer">
Start Free Trial <ArrowRight className="ml-2 h-5 w-5" />
</Link>
</Button>
Expand Down Expand Up @@ -212,7 +212,7 @@ export default function AITradingJournalPage() {
</div>
</div>
<div className="relative flex items-center justify-center min-h-[400px] lg:min-h-[500px]">
<PinContainer title="Unlock AI Insights" href="/register">
<PinContainer title="Unlock AI Insights" href="https://portal.restrofx.com/register">
<div className="flex flex-col p-6 sm:p-8 tracking-tight w-[20rem] sm:w-[26rem] h-[20rem] sm:h-[26rem] bg-gradient-to-br from-white/90 via-white/80 to-primary/10 backdrop-blur-xl border-2 border-white/40 rounded-3xl shadow-2xl shadow-primary/30 relative overflow-hidden">
{/* Glassmorphic overlay */}
<div className="absolute inset-0 bg-gradient-to-br from-primary/5 via-transparent to-primary/10 pointer-events-none" />
Expand Down Expand Up @@ -311,7 +311,7 @@ export default function AITradingJournalPage() {
className="w-full sm:w-auto rounded-full px-12 h-16 text-lg font-bold bg-white text-primary hover:bg-neutral-100 shadow-[0_20px_50px_rgba(0,0,0,0.3)] hover:-translate-y-2 hover:shadow-[0_30px_60px_rgba(220,0,0,0.4)] transition-all duration-500 group relative overflow-hidden active:scale-95"
asChild
>
<Link href="/register">
<Link href="https://portal.restrofx.com/register" target="_blank" rel="noopener noreferrer">
<span className="relative z-10 flex items-center justify-center">
Get Started Free <ArrowRight className="ml-3 h-5 w-5 group-hover:translate-x-2 transition-transform duration-300" />
</span>
Expand Down
4 changes: 2 additions & 2 deletions apps/web/app/platforms/lock-it-trade/page.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -221,7 +221,7 @@ export default function LockItTradePage() {
className="rounded-full px-10 h-16 text-lg font-bold shadow-2xl shadow-primary/30 hover:shadow-primary/50 hover:scale-105 transition-all duration-300 group relative overflow-hidden"
asChild
>
<Link href="/register" className="relative z-10 flex items-center">
<Link href="https://portal.restrofx.com/register" target="_blank" rel="noopener noreferrer" className="relative z-10 flex items-center">
Start Free Journaling <ArrowRight className="ml-2 h-5 w-5 group-hover:translate-x-1 transition-transform" />
</Link>
</Button>
Expand Down Expand Up @@ -509,7 +509,7 @@ export default function LockItTradePage() {
className="w-full sm:w-auto rounded-full px-8 sm:px-12 h-14 sm:h-16 text-base sm:text-lg font-bold bg-white text-primary hover:bg-neutral-100 shadow-[0_20px_50px_rgba(0,0,0,0.3)] hover:-translate-y-2 hover:shadow-[0_30px_60px_rgba(220,0,0,0.4)] transition-all duration-500 group relative overflow-hidden active:scale-95"
asChild
>
<Link href="/register">
<Link href="https://portal.restrofx.com/register" target="_blank" rel="noopener noreferrer">
<span className="relative z-10 flex items-center justify-center">
Start Free Journaling <ArrowRight className="ml-3 h-5 w-5 group-hover:translate-x-2 transition-transform duration-300" />
</span>
Expand Down
Loading
Loading