diff --git a/src/components/map/MapNotes.js b/src/components/map/MapNotes.js index a95713c..3c527b4 100644 --- a/src/components/map/MapNotes.js +++ b/src/components/map/MapNotes.js @@ -57,6 +57,7 @@ function MapNotes({ visible: true, locked: false, color: "yellow", + textOnly: false, }); setIsBrushDown(true); } diff --git a/src/components/note/Note.js b/src/components/note/Note.js index c52e202..e3b84fa 100644 --- a/src/components/note/Note.js +++ b/src/components/note/Note.js @@ -149,7 +149,7 @@ function Note({ onClick={handleClick} onTap={handleClick} width={noteWidth} - height={noteHeight} + height={note.textOnly ? undefined : noteHeight} offsetX={noteWidth / 2} offsetY={noteHeight / 2} draggable={draggable} @@ -162,19 +162,23 @@ function Note({ onTouchEnd={handlePointerUp} opacity={note.visible ? 1.0 : 0.5} > - + {!note.textOnly && ( + + )} {/* Use an invisible text block to work out text sizing */} diff --git a/src/components/note/NoteMenu.js b/src/components/note/NoteMenu.js index 476616a..07a3b4c 100644 --- a/src/components/note/NoteMenu.js +++ b/src/components/note/NoteMenu.js @@ -13,6 +13,8 @@ import LockIcon from "../../icons/TokenLockIcon"; import UnlockIcon from "../../icons/TokenUnlockIcon"; import ShowIcon from "../../icons/TokenShowIcon"; import HideIcon from "../../icons/TokenHideIcon"; +import NoteIcon from "../../icons/NoteToolIcon"; +import TextIcon from "../../icons/NoteTextIcon"; import AuthContext from "../../contexts/AuthContext"; @@ -75,6 +77,10 @@ function NoteMenu({ note && onNoteChange({ ...note, locked: !note.locked }); } + function handleModeChange() { + note && onNoteChange({ ...note, textOnly: !note.textOnly }); + } + function handleModalContent(node) { if (node) { // Focus input @@ -209,6 +215,13 @@ function NoteMenu({ > {note && note.locked ? : } + + {note && note.textOnly ? : } + )} diff --git a/src/database.js b/src/database.js index 53e92b3..1c38512 100644 --- a/src/database.js +++ b/src/database.js @@ -304,6 +304,20 @@ function loadVersions(db) { } }); }); + + // 1.7.1 - Added note text only mode + db.version(18) + .stores({}) + .upgrade((tx) => { + return tx + .table("states") + .toCollection() + .modify((state) => { + for (let id in state.notes) { + state.notes[id].textOnly = false; + } + }); + }); } // Get the dexie database used in DatabaseContext diff --git a/src/icons/NoteTextIcon.js b/src/icons/NoteTextIcon.js new file mode 100644 index 0000000..0b3404f --- /dev/null +++ b/src/icons/NoteTextIcon.js @@ -0,0 +1,19 @@ +import React from "react"; + +function NoteTextIcon() { + return ( + + + + + + ); +} + +export default NoteTextIcon;