diff --git a/client/components/ArmSwitcherModal.tsx b/client/components/ArmSwitcherModal.tsx index f2ad31a9..2635901c 100644 --- a/client/components/ArmSwitcherModal.tsx +++ b/client/components/ArmSwitcherModal.tsx @@ -1,6 +1,6 @@ import { useState, useEffect } from "react"; import { useNavigate } from "react-router-dom"; -import { ArrowLeft } from "lucide-react"; +import { ArrowLeft, Sparkles } from "lucide-react"; interface Arm { id: string; @@ -11,6 +11,8 @@ interface Arm { bgGradient: string; textColor: string; href: string; + icon: string; + tip: string; } const ARMS: Arm[] = [ @@ -23,6 +25,8 @@ const ARMS: Arm[] = [ bgGradient: "from-purple-600 to-purple-400", textColor: "text-purple-400", href: "/staff", + icon: "https://cdn.builder.io/api/v1/image/assets%2Ffc53d607e21d497595ac97e0637001a1%2Fc0414efd7af54ef4b821a05d469150d0?format=webp&width=800", + tip: "Internal operations and tools for AeThex employees", }, { id: "labs", @@ -33,6 +37,8 @@ const ARMS: Arm[] = [ bgGradient: "from-yellow-600 to-yellow-400", textColor: "text-yellow-400", href: "/labs", + icon: "https://cdn.builder.io/api/v1/image/assets%2Ffc53d607e21d497595ac97e0637001a1%2Fd93f7113d34347469e74421c3a3412e5?format=webp&width=800", + tip: "Research & Development - Pushing the boundaries of innovation", }, { id: "gameforge", @@ -43,6 +49,8 @@ const ARMS: Arm[] = [ bgGradient: "from-green-600 to-green-400", textColor: "text-green-400", href: "/gameforge", + icon: "https://cdn.builder.io/api/v1/image/assets%2Ffc53d607e21d497595ac97e0637001a1%2Fcd3534c1caa0497abfd44224040c6059?format=webp&width=800", + tip: "Game Development - Shipping games at the speed of thought", }, { id: "corp", @@ -53,6 +61,8 @@ const ARMS: Arm[] = [ bgGradient: "from-blue-600 to-blue-400", textColor: "text-blue-400", href: "/corp", + icon: "https://cdn.builder.io/api/v1/image/assets%2Ffc53d607e21d497595ac97e0637001a1%2Fae654ecc18b241bdab273893e8231970?format=webp&width=800", + tip: "Enterprise Solutions - Consulting for large-scale transformations", }, { id: "foundation", @@ -63,6 +73,8 @@ const ARMS: Arm[] = [ bgGradient: "from-red-600 to-red-400", textColor: "text-red-400", href: "/foundation", + icon: "https://cdn.builder.io/api/v1/image/assets%2Ffc53d607e21d497595ac97e0637001a1%2Fc02cb1bf5056479bbb3ea4bd91f0d472?format=webp&width=800", + tip: "Community & Education - Building open-source and talent pipelines", }, { id: "devlink", @@ -73,6 +85,8 @@ const ARMS: Arm[] = [ bgGradient: "from-cyan-600 to-cyan-400", textColor: "text-cyan-400", href: "/dev-link", + icon: "https://cdn.builder.io/api/v1/image/assets%2Ffc53d607e21d497595ac97e0637001a1%2F9a96b43cbd7b49bb9d5434580319c793?format=webp&width=800", + tip: "Professional Networking - LinkedIn for Roblox developers and creators", }, { id: "nexus", @@ -83,37 +97,11 @@ const ARMS: Arm[] = [ bgGradient: "from-purple-600 to-purple-400", textColor: "text-purple-400", href: "/nexus", + icon: "https://cdn.builder.io/api/v1/image/assets%2Ffc53d607e21d497595ac97e0637001a1%2F6df123b87a144b1fb99894d94198d97b?format=webp&width=800", + tip: "Talent Marketplace - Cross-arm collaboration and opportunities", }, ]; -const LOGO_URLS: Record = { - staff: - "https://cdn.builder.io/api/v1/image/assets%2Ffc53d607e21d497595ac97e0637001a1%2Fc0414efd7af54ef4b821a05d469150d0?format=webp&width=800", - labs: "https://cdn.builder.io/api/v1/image/assets%2Ffc53d607e21d497595ac97e0637001a1%2Fd93f7113d34347469e74421c3a3412e5?format=webp&width=800", - gameforge: - "https://cdn.builder.io/api/v1/image/assets%2Ffc53d607e21d497595ac97e0637001a1%2Fcd3534c1caa0497abfd44224040c6059?format=webp&width=800", - corp: "https://cdn.builder.io/api/v1/image/assets%2Ffc53d607e21d497595ac97e0637001a1%2Fae654ecc18b241bdab273893e8231970?format=webp&width=800", - foundation: - "https://cdn.builder.io/api/v1/image/assets%2Ffc53d607e21d497595ac97e0637001a1%2Fc02cb1bf5056479bbb3ea4bd91f0d472?format=webp&width=800", - devlink: - "https://cdn.builder.io/api/v1/image/assets%2Ffc53d607e21d497595ac97e0637001a1%2F9a96b43cbd7b49bb9d5434580319c793?format=webp&width=800", - nexus: - "https://cdn.builder.io/api/v1/image/assets%2Ffc53d607e21d497595ac97e0637001a1%2F6df123b87a144b1fb99894d94198d97b?format=webp&width=800", -}; - -const ARM_DESCRIPTIONS: Record = { - staff: "Internal operations and tools for AeThex employees", - labs: "Research & Development - Pushing the boundaries of innovation", - gameforge: - "Game Development - Shipping games at the speed of thought with monthly cycles", - corp: "Enterprise Solutions - Consulting for large-scale transformations", - foundation: - "Community & Education - Building open-source and talent pipelines", - devlink: - "Professional Networking - LinkedIn for Roblox developers and creators", - nexus: "Talent Marketplace - Cross-arm collaboration and opportunities", -}; - interface ArmSwitcherModalProps { isOpen: boolean; onClose: () => void; @@ -125,21 +113,29 @@ export default function ArmSwitcherModal({ }: ArmSwitcherModalProps) { const navigate = useNavigate(); const [selectedArm, setSelectedArm] = useState(null); + const [isLoading, setIsLoading] = useState(false); const handleProceed = () => { if (selectedArm) { const arm = ARMS.find((a) => a.id === selectedArm); if (arm) { - navigate(arm.href); - onClose(); - setSelectedArm(null); + setIsLoading(true); + setTimeout(() => { + navigate(arm.href); + onClose(); + setSelectedArm(null); + setIsLoading(false); + }, 300); } } }; const handleBack = () => { - setSelectedArm(null); - onClose(); + if (selectedArm) { + setSelectedArm(null); + } else { + onClose(); + } }; const selectedArmData = selectedArm @@ -149,144 +145,164 @@ export default function ArmSwitcherModal({ if (!isOpen) return null; return ( -
- {/* Full screen background */} -
+
+ {/* Animated background */} +
+
+
+
{/* Content */}
{/* Header */} -
+
-

Choose Your Arm

+

+ {selectedArm ? selectedArmData?.label : "Choose Your Arm"} +

- {/* Body - Show selected arm details or grid */} -
+ {/* Body - Arm Grid or Landing Page */} +
{!selectedArm ? ( - // Grid of all arms -
+ // Arm Selection Grid +
{ARMS.map((arm) => ( ))}
) : selectedArmData ? ( - // Selected arm detail view -
- {/* Large logo */} -
+ // Arm Landing Page - Fullscreen Sci-Fi Experience +
+ {/* Large Logo */} +
{selectedArmData.label}
- {/* Title and description */} -
+ {/* Title and Description */} +

{selectedArmData.label}

-

- {ARM_DESCRIPTIONS[selectedArmData.id]} -

+
+ +

Initializing {selectedArmData.label} systems...

+
+
+ + {/* Quick Tip Section */} +
+
+
+ ⚡ +
+
+

+ Quick Briefing +

+

+ {selectedArmData.tip} +

+
+
{/* Features */} -
-

- What you'll get: -

-
    -
  • - - ✨ - - - Access to exclusive opportunities - -
  • -
  • - - 🚀 - - - Connect with like-minded creators - -
  • -
  • - - 🎯 - - - Discover resources tailored to your interests - -
  • -
+
+
+
🚀
+

Get Started

+
+
+
🎯
+

Explore

+
+
+
+

Connect

+
+ + {/* Loading Animation */} + {isLoading && ( +
+ {[0, 1, 2, 3, 4].map((i) => ( +
+ ))} +
+ )}
) : null}
- {/* Footer - Back/Proceed buttons */} -
+ {/* Footer - Action Buttons */} +
{selectedArm ? ( <>