import { createFileRoute, Link, useNavigate } from "@tanstack/react-router"; import { ArrowLeft } from "lucide-react"; import { useState } from "react"; import { useBugCreateMutation } from "@/__generated__/graphql"; import { Markdown } from "@/components/content/Markdown"; import { Button } from "@/components/ui/button"; import { ButtonLink } from "@/components/ui/button-link"; import { Input } from "@/components/ui/input"; import { Textarea } from "@/components/ui/textarea"; export const Route = createFileRoute("/$repo/_issues/issues/new")({ component: RouteComponent, }); // New issue form (/:repo/issues/new). Title + body with write/preview tabs. function RouteComponent() { const navigate = useNavigate(); const { repo } = Route.useParams(); const [title, setTitle] = useState(""); const [message, setMessage] = useState(""); const [preview, setPreview] = useState(false); const [createBug, { loading, error }] = useBugCreateMutation(); async function handleSubmit(e: React.FormEvent) { e.preventDefault(); const result = await createBug({ variables: { input: { title: title.trim(), message: message.trim() } }, }); const humanId = result.data?.bugCreate.bug.humanId; if (humanId) { void navigate({ to: "/$repo/issues/$id", params: { repo: repo, id: humanId }, }); } } return (