feat: search protected notes text

This commit is contained in:
Baptiste Grob
2021-03-10 14:38:24 +01:00
parent ff9e622b82
commit 56665b2315
7 changed files with 49 additions and 19 deletions

View File

@@ -31,7 +31,10 @@ type NotesState = {
hideNotePreview?: boolean
hideDate?: boolean
hideTags: boolean
noteFilter: { text: string }
noteFilter: {
text: string;
includeProtectedNoteText: boolean;
}
mutable: { showMenu: boolean }
completedFullSync: boolean
[PrefKey.TagsPanelWidth]?: number
@@ -125,7 +128,10 @@ class NotesViewCtrl extends PureViewCtrl<unknown, NotesState> {
renderedNotes: [],
renderedNotesTags: [],
mutable: { showMenu: false },
noteFilter: { text: '' },
noteFilter: {
text: '',
includeProtectedNoteText: false
},
panelTitle: '',
completedFullSync: false,
hideTags: true,
@@ -149,6 +155,18 @@ class NotesViewCtrl extends PureViewCtrl<unknown, NotesState> {
}
}
async onIncludeProtectedNoteTextChange(event: Event) {
if (this.state.noteFilter.includeProtectedNoteText) {
this.state.noteFilter.includeProtectedNoteText = false;
} else {
event.preventDefault();
if (await this.application.authorizeSearchingProtectedNotesText()) {
this.state.noteFilter.includeProtectedNoteText = true;
}
}
this.flushUI();
}
/** @template */
public get activeEditorNote() {
return this.appState?.getActiveEditor()?.note;
@@ -330,17 +348,16 @@ class NotesViewCtrl extends PureViewCtrl<unknown, NotesState> {
private reloadNotesDisplayOptions() {
const tag = this.appState.selectedTag;
const searchText = this.getState().noteFilter.text.toLowerCase();
const searchQuery = searchText ? {
query: searchText,
includeProtectedNoteText: false
} : undefined;
const criteria = NotesDisplayCriteria.Create({
sortProperty: this.state.sortBy! as CollectionSort,
sortDirection: this.state.sortReverse! ? 'asc' : 'dsc',
tags: tag ? [tag] : [],
includeArchived: this.getState().showArchived!,
includePinned: !this.getState().hidePinned!,
searchQuery: searchQuery
searchQuery: {
query: searchText ?? '',
includeProtectedNoteText: this.state.noteFilter.includeProtectedNoteText
}
});
this.application!.setNotesDisplayCriteria(criteria);
}