"use client" import * as React from "react" import { zodResolver } from "@hookform/resolvers/zod" import { Controller, useForm } from "react-hook-form" import { toast } from "sonner" import * as z from "zod" import { Button } from "@/registry/new-york-v4/ui/button" import { Card, CardContent, CardDescription, CardFooter, CardHeader, CardTitle, } from "@/registry/new-york-v4/ui/card" import { Field, FieldContent, FieldDescription, FieldError, FieldGroup, FieldLabel, } from "@/registry/new-york-v4/ui/field" import { Select, SelectContent, SelectItem, SelectSeparator, SelectTrigger, SelectValue, } from "@/registry/new-york-v4/ui/select" const spokenLanguages = [ { label: "English", value: "en" }, { label: "Spanish", value: "es" }, { label: "French", value: "fr" }, { label: "German", value: "de" }, { label: "Italian", value: "it" }, { label: "Chinese", value: "zh" }, { label: "Japanese", value: "ja" }, ] as const const formSchema = z.object({ language: z .string() .min(1, "Please select your spoken language.") .refine((val) => val !== "auto", { message: "Auto-detection is not allowed. Please select a specific language.", }), }) export default function FormRhfSelect() { const form = useForm>({ resolver: zodResolver(formSchema), defaultValues: { language: "", }, }) function onSubmit(data: z.infer) { toast("You submitted the following values:", { description: (
          {JSON.stringify(data, null, 2)}
        
), position: "bottom-right", classNames: { content: "flex flex-col gap-2", }, style: { "--border-radius": "calc(var(--radius) + 4px)", } as React.CSSProperties, }) } return ( Language Preferences Select your preferred spoken language.
( Spoken Language For best results, select the language you speak. {fieldState.invalid && ( )} )} />
) }