Fix Draft Restore Bug
authorAdam Dullage <redacted>
Wed, 23 Feb 2022 13:55:39 +0000 (13:55 +0000)
committerAdam Dullage <redacted>
Wed, 23 Feb 2022 13:55:39 +0000 (13:55 +0000)
flatnotes/src/components/App.js
flatnotes/src/components/App.vue
flatnotes/src/components/classes.js

index 48f8a0f1597b3fb90a145f627384e2ebeb6f9283..4fbc3827e8afc5bf27cf5c7134f08e6791b3939c 100644 (file)
@@ -30,10 +30,10 @@ export default {
       notes: [],
       searchTerm: null,
       draftSaveTimeout: null,
-      draftContent: null,
       searchResults: null,
       currentNote: null,
       titleInput: null,
+      initialContent: null,
       editMode: false,
     };
   },
@@ -183,18 +183,37 @@ export default {
             response.data.lastModified,
             response.data.content
           );
-          parent.titleInput = parent.currentNote.title;
           parent.updateDocumentTitle();
         });
     },
 
     toggleEditMode: function() {
+      // To Edit Mode
+      if (this.editMode == false) {
+        this.titleInput = this.currentNote.title;
+        let draftContent = localStorage.getItem(this.currentNote.filename);
+        // Draft
+        if (draftContent && confirm("Do you want to resume the saved draft?")) {
+          this.initialContent = draftContent;
+        }
+        // Non-Draft
+        else {
+          localStorage.removeItem(this.currentNote.filename);
+          this.initialContent = this.currentNote.content;
+        }
+      }
+      // To View Mode
+      else {
+        this.titleInput = null;
+        this.initialContent = null;
+      }
+      // Always
       this.editMode = !this.editMode;
     },
 
     newNote: function() {
       this.currentNote = new Note();
-      this.editMode = true;
+      this.toggleEditMode();
       this.currentView = this.views.note;
     },
 
@@ -256,7 +275,6 @@ export default {
         response.data.lastModified,
         response.data.content
       );
-      this.titleInput = this.currentNote.title;
       this.updateDocumentTitle();
       history.replaceState(null, "", this.currentNote.href);
       this.toggleEditMode();
index 7f502f4cb5912585e44d1bea0d537c28cddb8159..67667a94b0150409d5103f196864ff0785715d53 100644 (file)
         <div v-else>
           <input type="text" class="form-control" v-model="titleInput" />
           <editor
-            :initialValue="getContentForEditor()"
+            :initialValue="initialContent"
+            initialEditType="wysiwyg"
             previewStyle="tab"
             height="calc(100vh - 180px)"
             ref="toastUiEditor"
index 1efb1ba1c2ed4b52e34babcdfca01fd93a09e0aa..5e00862ff0fb6dab3053e29a6a2e79713b84c0ed 100644 (file)
@@ -8,7 +8,11 @@ class Note {
   }
 
   get title() {
-    return this.filename.substring(0, this.filename.lastIndexOf("."));
+    if (this.filename) {
+      return this.filename.substring(0, this.filename.lastIndexOf("."));
+    } else {
+      return null;
+    }
   }
 
   get ext() {
git clone https://git.99rst.org/PROJECT