import { PencilAltIcon } from "@heroicons/react/outline"; import { useEffect, useRef, useState } from "react"; import { useFetcher } from "remix"; import { match } from "ts-pattern"; import { useJsonDoc } from "~/hooks/useJsonDoc"; export function DocumentTitle() { const { doc } = useJsonDoc(); const [editedTitle, setEditedTitle] = useState(doc.title); const updateDoc = useFetcher(); const ref = useRef(null); useEffect(() => { if (updateDoc.type === "done" && updateDoc.data.title) { ref.current?.blur(); } }, [updateDoc]); if (doc.readOnly) { return (
{doc.title}
); } else { return (
{match(editedTitle) .with(doc.title, () => (

Save

)) .with("", () => ( )) .otherwise(() => ( ))}
); } }