Back

Version 89

3/17/2024
/** @jsxImportSource https://esm.sh/hono/jsx **/

import { useEffect, useRef } from "https://esm.sh/hono/jsx/dom";

export function BlobEditor(props: { blob: { text: string } }) {
const ref = useRef();

useEffect(() => {
const listener = async (e) => {
if (e.key == "s" && (e.metaKey || e.ctrlKey)) {
const text = ref.current!.code;
if (!text) {
return;
}
const resp = await fetch("/edit", {
method: "POST",
body: JSON.stringify({
text,
}),
});
if (!resp.ok) {
alert(await resp.text());
return;
}

window.location.replace("/");
}
};
document.addEventListener("keydown", listener);
return () => {
document.removeEventListener("keydown", listener);
};
}, []);
return <code-mirror style="height: 100%" ref={ref} code={props.blob.text} language="markdown"></code-mirror>;
}

pomdtr-blob_editor.web.val.run
Updated: April 18, 2024