"use client"; import React from 'react'; import { X, ChevronRight, Check } from 'lucide-react'; import { Dialog, DialogContent } from '@/components/ui/dialog'; import { Button } from '@/components/ui/button'; import { Input } from '@/components/ui/input'; import { Textarea } from '@/components/ui/textarea'; import { Checkbox } from '@/components/ui/checkbox'; import { Switch } from '@/components/ui/switch'; import { Label } from '@/components/ui/label'; import { Progress } from '@/components/ui/progress'; import { useAppStore } from '@/store/app-store'; import { templates, Template } from '../lib/templates'; import { getPlatformIcon } from '@/lib/utils'; export function NewProjectModal() { const { newProjectModalOpen, setNewProjectModalOpen } = useAppStore(); const [step, setStep] = React.useState(1); const [selectedTemplate, setSelectedTemplate] = React.useState(''); const [projectName, setProjectName] = React.useState('My Awesome Game'); const [description, setDescription] = React.useState(''); const [platforms, setPlatforms] = React.useState({ roblox: true, web: true, mobile: true, desktop: false, }); const [features, setFeatures] = React.useState({ nexus: true, passport: true, gameforge: true, analytics: false, monetization: false, transmedia: false, }); const [creating, setCreating] = React.useState(false); const [progress, setProgress] = React.useState(0); const handleClose = () => { setNewProjectModalOpen(false); setTimeout(() => { setStep(1); setSelectedTemplate(''); setCreating(false); setProgress(0); }, 300); }; const handleCreate = () => { setCreating(true); let p = 0; const interval = setInterval(() => { p += 20; setProgress(p); if (p >= 100) { clearInterval(interval); setTimeout(handleClose, 1000); } }, 600); }; return ( {!creating ? ( <> {/* Step 1: Choose Template */} {step === 1 && (

Choose a Template

Start with a pre-built template or create from scratch

{templates.map((template) => (
setSelectedTemplate(template.id)} > {template.badge && (
{template.badge}
)}
{template.icon}

{template.name}

{template.description}

{template.platforms.map(platform => ( {getPlatformIcon(platform)} ))}
{selectedTemplate === template.id && (
)}
))}
)} {/* Step 2: Configure */} {step === 2 && (

Configure Project

Set up your project details and features

setProjectName(e.target.value)} className="bg-background border-gray-700 text-white" />