import { AutoFormInputComponentProps } from "@/components/ui/auto-form/types"; import { getBaseSchema } from "@/components/ui/auto-form/utils"; import { Badge } from "@/components/ui/badge"; import { FormItem, FormLabel, FormControl, FormDescription, FormMessage, } from "@/components/ui/form"; import { Select, SelectContent, SelectItem, SelectTrigger, SelectValue, } from "@/components/ui/select"; import { Lock } from "lucide-react"; import * as z from "zod"; export default function AutoFormGPUPicker({ label, isRequired, field, fieldConfigItem, zodItem, }: AutoFormInputComponentProps) { const baseValues = (getBaseSchema(zodItem) as unknown as z.ZodEnum)._def .values; let values: [string, string][] = []; if (!Array.isArray(baseValues)) { values = Object.entries(baseValues); } else { values = baseValues.map((value) => [value, value]); } function findItem(value: any) { return values.find((item) => item[0] === value); } const plan = fieldConfigItem.inputProps?.sub?.plan; const enabledGPU = ["T4"]; const planMapping: Record = { A10G: "pro", A100: "enterprise", }; if (plan == "pro") { enabledGPU.push("A10G"); } else if (plan == "enterprise") { enabledGPU.push("A10G"); enabledGPU.push("A100"); } return ( {label} {isRequired && *} {fieldConfigItem.description && ( {fieldConfigItem.description} )} ); }