From 57f25e6b04b59d7156826997067420acdd2bf8b9 Mon Sep 17 00:00:00 2001 From: "Builder.io" Date: Tue, 5 Aug 2025 22:48:07 +0000 Subject: [PATCH] Create user type selection component cgen-f8deaeb010b542c5858aaf2833d0656c --- .../onboarding/UserTypeSelection.tsx | 133 ++++++++++++++++++ 1 file changed, 133 insertions(+) create mode 100644 client/components/onboarding/UserTypeSelection.tsx diff --git a/client/components/onboarding/UserTypeSelection.tsx b/client/components/onboarding/UserTypeSelection.tsx new file mode 100644 index 00000000..78854ef0 --- /dev/null +++ b/client/components/onboarding/UserTypeSelection.tsx @@ -0,0 +1,133 @@ +import { UserType, OnboardingData } from "@/pages/Onboarding"; +import { Button } from "@/components/ui/button"; +import { Card, CardContent, CardDescription, CardHeader, CardTitle } from "@/components/ui/card"; +import { GamepadIcon, BriefcaseIcon, UsersIcon, ShoppingCartIcon } from "lucide-react"; + +interface UserTypeSelectionProps { + data: OnboardingData; + updateData: (data: Partial) => void; + nextStep: () => void; +} + +const userTypes = [ + { + id: 'game-developer' as UserType, + title: 'Game Developer', + description: 'Join our development community, access tools, mentorship, and collaborate on cutting-edge game projects.', + icon: GamepadIcon, + benefits: [ + 'Access to development tools and frameworks', + 'Mentorship from industry veterans', + 'Collaborative project opportunities', + 'Technical workshops and boot camps' + ], + color: 'from-neon-purple to-aethex-500' + }, + { + id: 'client' as UserType, + title: 'Client', + description: 'Partner with us for custom game development, consulting services, and technical solutions.', + icon: BriefcaseIcon, + benefits: [ + 'Custom game development services', + 'Technical consulting and strategy', + 'Project management expertise', + 'End-to-end solution delivery' + ], + color: 'from-neon-blue to-aethex-400' + }, + { + id: 'member' as UserType, + title: 'Community Member', + description: 'Be part of our innovation community with access to research, networking, and exclusive content.', + icon: UsersIcon, + benefits: [ + 'Access to research and publications', + 'Networking with industry professionals', + 'Exclusive community events', + 'Early access to new technologies' + ], + color: 'from-neon-green to-aethex-600' + }, + { + id: 'customer' as UserType, + title: 'Customer', + description: 'Explore our games, tools, and products designed to enhance your gaming and development experience.', + icon: ShoppingCartIcon, + benefits: [ + 'Access to premium games and tools', + 'Customer support and documentation', + 'Regular updates and new releases', + 'Community forums and discussions' + ], + color: 'from-neon-yellow to-aethex-700' + } +]; + +export default function UserTypeSelection({ data, updateData, nextStep }: UserTypeSelectionProps) { + const handleSelectType = (userType: UserType) => { + updateData({ userType }); + setTimeout(() => { + nextStep(); + }, 300); + }; + + return ( +
+
+

+ Choose the option that best describes your relationship with AeThex +

+
+ +
+ {userTypes.map((type) => { + const Icon = type.icon; + const isSelected = data.userType === type.id; + + return ( + handleSelectType(type.id)} + > + +
+
+ +
+
+ {type.title} +
+
+
+ + + {type.description} + +
    + {type.benefits.map((benefit, index) => ( +
  • + + {benefit} +
  • + ))} +
+
+
+ ); + })} +
+ +
+

+ Don't worry - you can always change your preferences later or access multiple areas of our platform. +

+
+
+ ); +}