Functioning UI

This commit is contained in:
Mo Bitar
2020-02-08 18:57:02 -06:00
parent f6ef4a39e2
commit 8822580e7a
23 changed files with 2088 additions and 1729 deletions

View File

@@ -4,6 +4,7 @@ import template from '%/notes.pug';
import { ApplicationEvents, ContentTypes } from 'snjs';
import { PureCtrl } from '@Controllers';
import { AppStateEvents } from '@/state';
import { KeyboardModifiers, KeyboardKeys } from '@/services/keyboardManager';
import {
PrefKeys
} from '@/services/preferencesManager';
@@ -70,13 +71,15 @@ class NotesCtrl extends PureCtrl {
this.addAppStateObserver();
this.addAppEventObserver();
this.streamNotesAndTags();
this.reloadPreferences();
this.resetPagination();
this.registerKeyboardShortcuts();
angular.element(document).ready(() => {
this.reloadPreferences();
});
application.onReady(() => {
this.streamNotesAndTags();
this.reloadPreferences();
});
}
addAppStateObserver() {
@@ -99,7 +102,7 @@ class NotesCtrl extends PureCtrl {
if (eventName === ApplicationEvents.SignedIn) {
/** Delete dummy note if applicable */
if (this.state.selectedNote && this.state.selectedNote.dummy) {
this.application.removeItemLocally({ item: this.state.selectedNote });
this.application.deleteItemLocally({ item: this.state.selectedNote });
this.selectNote(null).then(() => {
this.reloadNotes();
});
@@ -110,10 +113,6 @@ class NotesCtrl extends PureCtrl {
*/
this.createDummyOnSynCompletionIfNoNotes = true;
}
} else if (eventName === ApplicationEvents.LoadedLocalData) {
if (this.state.notes.length === 0) {
this.createNewNote();
}
} else if (eventName === ApplicationEvents.CompletedSync) {
if (this.createDummyOnSynCompletionIfNoNotes && this.state.notes.length === 0) {
this.createDummyOnSynCompletionIfNoNotes = false;
@@ -152,7 +151,7 @@ class NotesCtrl extends PureCtrl {
async handleTagChange(tag, previousTag) {
if (this.state.selectedNote && this.state.selectedNote.dummy) {
this.application.removeItemLocally({ item: this.state.selectedNote });
this.application.deleteItemLocally({ item: this.state.selectedNote });
if (previousTag) {
_.remove(previousTag.notes, this.state.selectedNote);
}
@@ -251,7 +250,7 @@ class NotesCtrl extends PureCtrl {
}
const previousNote = this.state.selectedNote;
if (previousNote && previousNote.dummy) {
this.application.removeItemLocally({ previousNote });
this.application.deleteItemLocally({ item: previousNote });
this.removeNoteFromList(previousNote);
}
await this.setState({
@@ -502,12 +501,17 @@ class NotesCtrl extends PureCtrl {
}
}
createNewNote() {
async createNewNote() {
const selectedTag = this.appState.getSelectedTag();
if (!selectedTag) {
debugger;
throw 'Attempting to create note with no selected tag';
}
if (this.state.selectedNote && this.state.selectedNote.dummy) {
return;
}
const title = "Note" + (this.state.notes ? (" " + (this.state.notes.length + 1)) : "");
const newNote = this.application.createItem({
const newNote = await this.application.createItem({
contentType: ContentTypes.Note,
content: {
text: '',
@@ -517,7 +521,6 @@ class NotesCtrl extends PureCtrl {
newNote.client_updated_at = new Date();
newNote.dummy = true;
this.application.setItemNeedsSync({ item: newNote });
const selectedTag = this.appState.getSelectedTag();
if (!selectedTag.isSmartTag()) {
selectedTag.addItemAsRelationship(newNote);
this.application.setItemNeedsSync({ item: selectedTag });