diff --git a/src/components/area.jsx b/src/components/area.jsx index 8e20db5..973e029 100644 --- a/src/components/area.jsx +++ b/src/components/area.jsx @@ -23,7 +23,7 @@ export default function Area(props) { const [hovered, setHovered] = useState(false); const [visible, setVisible] = useState(false); const [saved, setSaved] = useState(false); - const [editField, setEditField] = useState(""); + const [editField, setEditField] = useState({}); const { layout } = useContext(LayoutContext); const { tab, setTab } = useContext(TabContext); const { updateArea, deleteArea } = useContext(AreaContext); @@ -201,7 +201,7 @@ export default function Area(props) { } trigger="click" - position="bottomLeft" + position="rightTop" showArrow >
{ const textarea = document.getElementById(`note_${props.data.id}`); textarea.style.height = "0"; @@ -18,7 +35,10 @@ export default function Note(props) { }; 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 + > + + +
+ )}