import { SubmitHandler, useForm } from "react-hook-form"; import { Bot } from "revolt-api/types/Bots"; import { useContext, useState } from "preact/hooks"; import Modal from "../../../components/ui/Modal"; import Overline from "../../../components/ui/Overline"; import FormField from "../../../pages/login/FormField"; import { AppContext } from "../../revoltjs/RevoltClient"; import { takeError } from "../../revoltjs/util"; interface Props { onClose: () => void; onCreate: (bot: Bot) => void; } interface FormInputs { name: string; } export function CreateBotModal({ onClose, onCreate }: Props) { const client = useContext(AppContext); const { handleSubmit, register, errors } = useForm(); const [error, setError] = useState(undefined); const onSubmit: SubmitHandler = async ({ name }) => { try { const { bot } = await client.bots.create({ name }); onCreate(bot); onClose(); } catch (err) { setError(takeError(err)); } }; return ( {/* Preact / React typing incompatabilities */}
{ e.preventDefault(); handleSubmit( onSubmit, // eslint-disable-next-line @typescript-eslint/no-explicit-any )(e as any); }}> {error && ( Failed to create a bot! )}
); }