import React, { useContext, useState } from "react"; import { LayoutContext, NoteContext, UndoRedoContext, TabContext, } from "../pages/editor"; import { Action, ObjectType, noteThemes, Tab } from "../data/data"; import { Input, Button, Popover, Toast } from "@douyinfe/semi-ui"; import { IconEdit, IconDeleteStroked, IconCheckboxTick, } from "@douyinfe/semi-icons"; export default function Note(props) { const [editField, setEditField] = useState({}); const [hovered, setHovered] = useState(false); const [visible, setVisible] = useState(false); const [saved, setSaved] = useState(false); const w = 180; const r = 3; const fold = 24; const { updateNote, deleteNote } = useContext(NoteContext); const { setUndoStack, setRedoStack } = useContext(UndoRedoContext); const { layout } = useContext(LayoutContext); const { tab, setTab } = useContext(TabContext); const handleChange = (e) => { const textarea = document.getElementById(`note_${props.data.id}`); textarea.style.height = "0"; textarea.style.height = textarea.scrollHeight + "px"; const newHeight = textarea.scrollHeight + 41; updateNote(props.data.id, { content: e.target.value, height: newHeight }); }; return ( setHovered(true)} onMouseLeave={() => setHovered(false)} >
{hovered && (
Edit note
updateNote(props.data.id, { title: value }) } onFocus={(e) => setEditField({ title: e.target.value })} onBlur={(e) => { setSaved(true); if (e.target.value === editField.title) return; setUndoStack((prev) => [ ...prev, { action: Action.EDIT, element: ObjectType.NOTE, nid: props.data.id, undo: editField, redo: { title: e.target.value }, }, ]); setRedoStack([]); }} />
Theme

{noteThemes.map((c) => ( ))}
} trigger="click" position="rightTop" showArrow >
} trigger="custom" position="rightTop" showArrow >
)}
); }