Add Read "raw_content" contentEditable Element & Edit

This commit is contained in:
2024-08-04 18:26:05 +08:00
parent 99d63d4912
commit 945f8ce431
9 changed files with 295 additions and 7 deletions
+35
View File
@@ -0,0 +1,35 @@
import { useEffect, useRef } from "react";
import { clsn } from "~utils";
import styles from "./article.module.less";
interface ArticleProps {
className?: string;
value: string | number;
onChange: (value: string) => void;
}
function Article({ className, value, onChange }: ArticleProps) {
const articleRef = useRef<HTMLElement>(null);
useEffect(() => {
if (!articleRef.current) {
return;
}
if (articleRef.current.innerHTML !== String(value)) {
articleRef.current.innerHTML = String(value);
}
}, [value]);
return (
<article
ref={articleRef}
className={clsn(styles.article, className)}
contentEditable
onInput={(ev) => onChange(articleRef.current.innerHTML)}
/>
);
}
export default Article;