'use client'; import { PostgresSpecsPage } from '@/components/deploy/database/provider/postgres'; import { Button } from '@/components/ui/button'; import { Input } from '@/components/ui/input'; import { Label } from '@/components/ui/label'; import { Progress } from '@/components/ui/progress'; import { RadioGroup, RadioGroupItem } from '@/components/ui/radio-group'; import { Sheet, SheetContent, SheetDescription, SheetHeader, SheetTitle, SheetTrigger } from '@/components/ui/sheet'; import { useWorkspace } from '@/hooks/useWorkspace'; import { deployDatabase } from '@/lib/deploy/database'; import { databaseProviders, defaultDatabaseConfiguration, IDatabaseConfiguration } from '@/lib/deploy/database-config'; import { cn } from '@/lib/utils'; import { Plus } from 'lucide-react'; import Image from 'next/image'; import { useRouter } from 'next/navigation'; import { useState } from 'react'; interface DatabaseNewSteps { display: string; } const steps: DatabaseNewSteps[] = [ { display: 'Database Type', }, { display: 'Configuration', }, { display: 'Name & User', }, { display: 'Review & Deploy', }, ]; export default function DatabaseNewForm() { const [open, setOpen] = useState(false); const [currentSteps, setCurrentSteps] = useState(1); const router = useRouter(); const { id } = useWorkspace(); const [databaseConfig, setDatabaseConfig] = useState(defaultDatabaseConfiguration(id)); return ( { setOpen((open) => !open); if (!open) { setDatabaseConfig(defaultDatabaseConfiguration(id)); setCurrentSteps(1); } }} > New Database Deploy a new database

Step: {steps[currentSteps - 1].display}

{currentSteps} / {steps.length}

{currentSteps == 1 && (
{ setDatabaseConfig((prev) => ({ ...prev, provider: databaseProviders.filter((provider) => provider.id == id)[0] })); }} > {databaseProviders.map((provider) => (
))}
)} {currentSteps == 2 && (
{databaseConfig.provider.id == 'vitess' &&
Vitess
} {databaseConfig.provider.id == 'redis' &&
Redis
} {databaseConfig.provider.id == 'postgres' && }
)} {currentSteps == 3 && (
{ setDatabaseConfig((prev) => ({ ...prev, name: e.target.value })); }} /> { setDatabaseConfig((prev) => ({ ...prev, user: { ...prev.user, username: e.target.value } })); }} /> { setDatabaseConfig((prev) => ({ ...prev, user: { ...prev.user, password: e.target.value } })); }} />
)} {currentSteps == 4 && (

Database Type

{databaseConfig.provider.display}

CPUs

{databaseConfig.specs.cpu}

RAM

{databaseConfig.specs.memory}

Storage

{databaseConfig.specs.storage}

Name

{databaseConfig.name}

Username

{databaseConfig.user.username}

Password

{databaseConfig.user.password}

)}
{currentSteps == steps.length ? ( ) : ( )}
); }