"use client";
import { useState } from "react";
import { useForm } from "react-hook-form";
import { zodResolver } from "@hookform/resolvers/zod";
import { z } from "zod";
import { useIssues } from "@/hooks/use-issues";
import { urlFormSchema } from "@/lib/schema";
//form imports
type FormValues = z.infer<typeof urlFormSchema>;
export default function GithubUrlForm() {
const [url, setUrl] = useState<string>("");
const form = useForm<FormValues>({
resolver: zodResolver(urlFormSchema),
defaultValues: { url: "" },
});
const { data: issues, error, isError, isLoading, isSuccess } = useIssues(url);
const onSubmit = (data: FormValues) => {
queryClient.removeQueries({ queryKey: ["github-issues"] });
setUrl(data.url);
};
return (
<Form {...form}>
<form
onSubmit={form.handleSubmit(onSubmit)}
>
<div className="flex-grow">
<FormField
control={form.control}
name="url"
render={({ field }) => (
<FormItem className="w-full">
<FormControl>
<Input
placeholder="Enter your Github repository URL"
{...field}
/>
</FormControl>
</FormItem>
)}
/>
</div>
<Button type="submit" disabled={isLoading}>
{isLoading ? "Fetching..." : "Fetch Issues!"}
</Button>
</form>
</Form>
);
}
"use client";
import { useState } from "react";
import { useForm } from "react-hook-form";
import { zodResolver } from "@hookform/resolvers/zod";
import { z } from "zod";
import { useIssues } from "@/hooks/use-issues";
import { urlFormSchema } from "@/lib/schema";
//form imports
type FormValues = z.infer<typeof urlFormSchema>;
export default function GithubUrlForm() {
const [url, setUrl] = useState<string>("");
const form = useForm<FormValues>({
resolver: zodResolver(urlFormSchema),
defaultValues: { url: "" },
});
const { data: issues, error, isError, isLoading, isSuccess } = useIssues(url);
const onSubmit = (data: FormValues) => {
queryClient.removeQueries({ queryKey: ["github-issues"] });
setUrl(data.url);
};
return (
<Form {...form}>
<form
onSubmit={form.handleSubmit(onSubmit)}
>
<div className="flex-grow">
<FormField
control={form.control}
name="url"
render={({ field }) => (
<FormItem className="w-full">
<FormControl>
<Input
placeholder="Enter your Github repository URL"
{...field}
/>
</FormControl>
</FormItem>
)}
/>
</div>
<Button type="submit" disabled={isLoading}>
{isLoading ? "Fetching..." : "Fetch Issues!"}
</Button>
</form>
</Form>
);
}