"use client"; import { zodResolver } from "@hookform/resolvers/zod"; import { useForm } from "react-hook-form"; import * as z from "zod"; import { Button } from "@/components/ui/button"; import { Form, FormControl, FormDescription, FormField, FormItem, FormLabel, FormMessage, } from "@/components/ui/form"; import { Input } from "@/components/ui/input"; import { MultiSelect } from "@/components/ui/multiselect"; import { Dependency } from "@/lib/schemas"; const FormSchema = z.object({ search: z .string() .min(0) .max(256, { message: "Search must be less than 256 characters" }) .default(""), dependencies: z.array(z.string()).default(() => []), }); export interface SearchFormProps { onSubmit: (data: z.infer) => void; dependencies: Dependency[]; } export function SearchForm({ onSubmit, dependencies }: SearchFormProps) { const form = useForm>({ resolver: zodResolver(FormSchema), }); return (
( Search for a repository The search is performed on the repository description. )} /> ( Dependencies Filter by dependencies used in the repository. )} /> ); }