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
+10 -3
View File
@@ -1,10 +1,13 @@
import { useEffect, useRef } from "react";
import { useEffect, useRef, useState } from "react";
import { sendToBackground } from "@plasmohq/messaging";
import useForm from "~hooks/useForm";
import Tab from "~components/ui/tab";
import Form from "~components/ui/form";
import Article from "~components/ui/article";
import { add } from "~components/ui/message/utils";
import styles from "./read.module.less";
interface FormValue {
title: string;
link: string;
@@ -14,6 +17,7 @@ interface FormValue {
image: string;
sitename: string;
tags: string;
raw_content?: string;
}
const getInfo = async () => {
@@ -46,6 +50,7 @@ const submitForm = (body: FormValue) => {
function Read() {
const formRef = useRef<HTMLFormElement>();
const [htmlContent, setHtmlContent] = useState("");
const { bindInput, setValues, onSubmit } = useForm<FormValue>({
initialValues: {
@@ -60,13 +65,14 @@ function Read() {
}
setValues(res);
res.raw_content && setHtmlContent(res.raw_content);
})
}, []);
return (
<Tab>
<Tab className={styles.read}>
<Tab.Body>
<Form ref={formRef} onSubmit={onSubmit(submitForm)}>
<Form ref={formRef} onSubmit={onSubmit((values) => submitForm({ ...values, raw_content: htmlContent }))}>
<input {...bindInput("title")} required placeholder="标题" />
<input {...bindInput("link")} required placeholder="链接" />
<div>
@@ -94,6 +100,7 @@ function Read() {
<input {...bindInput("tags")} placeholder="标签" />
</div>
</Form>
<Article className={styles.article} value={htmlContent} onChange={setHtmlContent} />
</Tab.Body>
<Tab.Footer>
<button onClick={() => formRef.current?.requestSubmit()}>提交</button>
+8
View File
@@ -0,0 +1,8 @@
.read {
.article {
padding: .75em;
margin-top: 1em;
border-radius: .5em;
border: 1px solid #eee;
}
}