import { UseFormReturn } from 'react-hook-form' import { CloudProvider } from 'shared-data' import { FormField, Select_Shadcn_, SelectContent_Shadcn_, SelectGroup_Shadcn_, SelectItem_Shadcn_, SelectTrigger_Shadcn_, SelectValue_Shadcn_, } from 'ui' import { ComputeBadge } from 'ui-patterns' import { FormItemLayout } from 'ui-patterns/form/FormItemLayout/FormItemLayout' import { sizes } from './ProjectCreation.constants' import { CreateProjectForm } from './ProjectCreation.schema' import { InlineLink } from '@/components/ui/InlineLink' import Panel from '@/components/ui/Panel' import { instanceSizeSpecs } from '@/data/projects/new-project.constants' import { getCloudProviderArchitecture } from '@/lib/cloudprovider-utils' import { DOCS_URL } from '@/lib/constants' interface ComputeSizeSelectorProps { form: UseFormReturn } export const ComputeSizeSelector = ({ form }: ComputeSizeSelectorProps) => { return ( (

The size for your dedicated database. You can change this later. Learn more about{' '} compute add-ons {' '} and{' '} compute billing .

} > field.onChange(value)}> {sizes .filter((option) => instanceSizeSpecs[option].cloud_providers.includes( form.getValues('cloudProvider') as CloudProvider ) ) .map((option) => { return (
{instanceSizeSpecs[option].ram} RAM /{' '} {instanceSizeSpecs[option].cpu}{' '} {getCloudProviderArchitecture( form.getValues('cloudProvider') as CloudProvider )}{' '} CPU

${instanceSizeSpecs[option].priceHourly}/hour (~$ {instanceSizeSpecs[option].priceMonthly}/month)

) })}
Larger instance sizes available after creation
)} />
) }