"use client";
import type { SubmitErrorHandler } from "react-hook-form";
import { useState } from "react";
import { useRouter } from "next/navigation";
import { ActionButton } from "@/components/ui/action-button";
import { Button } from "@/components/ui/button";
import CopyBtn from "@/components/ui/copy-button";
import {
Dialog,
DialogClose,
DialogContent,
DialogDescription,
DialogFooter,
DialogHeader,
DialogTitle,
DialogTrigger,
} from "@/components/ui/dialog";
import {
Form,
FormControl,
FormDescription,
FormField,
FormItem,
FormLabel,
FormMessage,
} from "@/components/ui/form";
import { Input } from "@/components/ui/input";
import { toast } from "@/components/ui/use-toast";
import { api } from "@/lib/trpc";
import { zodResolver } from "@hookform/resolvers/zod";
import { useForm } from "react-hook-form";
import { z } from "zod";
function ApiKeySuccess({ apiKey }: { apiKey: string }) {
return (
);
}
function AddApiKeyForm({ onSuccess }: { onSuccess: (key: string) => void }) {
const formSchema = z.object({
name: z.string(),
});
const router = useRouter();
const mutator = api.apiKeys.create.useMutation({
onSuccess: (resp) => {
onSuccess(resp.key);
router.refresh();
},
onError: () => {
toast({ description: "Something went wrong", variant: "destructive" });
},
});
const form = useForm>({
resolver: zodResolver(formSchema),
});
async function onSubmit(value: z.infer) {
mutator.mutate({ name: value.name });
}
const onError: SubmitErrorHandler> = (errors) => {
toast({
description: Object.values(errors)
.map((v) => v.message)
.join("\n"),
variant: "destructive",
});
};
return (
);
}
export default function AddApiKey() {
const [key, setKey] = useState(undefined);
const [dialogOpen, setDialogOpen] = useState(false);
return (
);
}