import { useId, useState } from "react"; import { useMarkdownPreview } from "~/hooks/use-markdown-preview"; import { Markdown } from "./ui/Primitives"; import { cn } from "~/utils/cn"; const TABS = [ { id: "write", label: "Write" }, { id: "preview", label: "Preview" }, ] as const; type Props = { value: string; onChange: (value: string) => void; owner?: string; repo?: string; placeholder?: string; rows?: number; label?: string; }; export function MarkdownEditor({ value, onChange, owner, repo, placeholder = "Leave a comment", rows = 6, label = "Comment", }: Props) { const id = useId(); const [tab, setTab] = useState<(typeof TABS)[number]["id"]>("write"); const preview = useMarkdownPreview(owner ?? null, repo ?? null); function select(next: (typeof TABS)[number]["id"]) { setTab(next); if (next === "preview") preview.load(value); } return (