import { useFormContext, Controller } from "react-hook-form"; import { LabelWrapper } from "@/components/label-wrapper"; import { Input } from "@/components/ui/input"; import { ModelSelector } from "@/app/onboarding/_components/model-selector"; export interface WatsonxSettingsFormData { endpoint: string; apiKey: string; projectId: string; } const endpointOptions = [ { value: "https://us-south.ml.cloud.ibm.com", label: "https://us-south.ml.cloud.ibm.com", }, { value: "https://eu-de.ml.cloud.ibm.com", label: "https://eu-de.ml.cloud.ibm.com", }, { value: "https://eu-gb.ml.cloud.ibm.com", label: "https://eu-gb.ml.cloud.ibm.com", }, { value: "https://au-syd.ml.cloud.ibm.com", label: "https://au-syd.ml.cloud.ibm.com", }, { value: "https://jp-tok.ml.cloud.ibm.com", label: "https://jp-tok.ml.cloud.ibm.com", }, { value: "https://ca-tor.ml.cloud.ibm.com", label: "https://ca-tor.ml.cloud.ibm.com", }, ]; export function WatsonxSettingsForm({ modelsError, isLoadingModels, }: { modelsError?: Error | null; isLoadingModels?: boolean; }) { const { control, register, formState: { errors }, } = useFormContext(); return (
( ({ value: option.value, label: option.label, }))} value={field.value} custom onValueChange={field.onChange} searchPlaceholder="Search endpoint..." noOptionsPlaceholder="No endpoints available" placeholder="Select endpoint..." hasError={!!errors.endpoint || !!modelsError} /> )} /> {errors.endpoint && (

{errors.endpoint.message}

)}
{errors.projectId && (

{errors.projectId.message}

)}
{errors.apiKey && (

{errors.apiKey.message}

)} {isLoadingModels && (

Validating configuration...

)} {modelsError && (

Connection failed. Check your configuration.

)}

Configure language and embedding models in the Settings page after saving your credentials.

); }