* feat: introduce native smart tags
* feat: introduce react navigation
* feat: render smart tag special cases
* feat: add create tag & all count
* feat: move components to react + mobx
* fix: workaround issue with snjs
* feat: nice smart tag icons in experimental
* feat: add back components
* fix: typo on all tags
* feat: add panel resizer + simplif code
* fix: panel resize size & refresh
* fix: auto select all notes
* style: remove legacy tag view
* style: remove legacy directives
* fix: select tag from note view
* feat: WIP smart tag rename
* fix: template checks
* fix: user can create new notes
* panel: init width
* fix: panel resizer ref
* fix: update with new component viewer
* fix: use fixed isTemplateItem & fixed findItems
* refactor: rename tags panel into navigation
* style: remove TODOs that are ok
* feat: smart tag premium check with premium service
* refactor: multi-select variables for debuggability
* fix: clean deinit code
* fix: prevent trigger tag changes event for the same uuid
* fix: typings
* fix: use minimal state
* style: remove dead code
* style: long variable names
* refactor: move magic string to module
* fix: use smart filter feature
* refactor: add task id in todo
* feat: hide note contents if the protection expires when the protected note is open and wasn't edited for a while
* feat: handle session expiration for opened protected note for both plain advanced editors
* fix: if after canceling session expiry modal only one unprotected note stays selected, show its contents in the editor
* refactor: handle session expiration for opened protected note (move the logic to web client)
* feat: handle the case of selecting "Don't remember" option in session expiry dialog
* test (WIP): add unit tests for protecting opened note after the session has expired
* test: add remaining unit tests
* refactor: move the opened note protection logic to "editor_view"
* refactor: reviewer comments
- don't rely on user signed-in/out status to require authentication for protected note
- remove unnecessary async/awaits
- better wording on ui
* refactor: reviewer's comments:
- use snjs method to check if "Don't remember" option is selected in authentication modal
- move the constant to snjs
- fix eslint error
* refactor: avoid `any` type for `appEvent` payload
* test: add unit tests
* chore: update function name
* refactor: use simpler protection session event types
* refactor: protected access terminology
* refactor: start counting idle timer after every edit (instead of counting by interval in spite of edits)
* test: unit tests
* style: don't give extra brightness to the "View Note"/"Authenticate" button on hover/focus
* chore: bump snjs version
* chore: put snjs "beta" version
* fix: run protection timeout when the note is marked as protected
* chore: snjs version bump
* refactor: immediately lock the note if it's marked as "Protected"
* refactor: rename component, directive and some props
* refactor: remove extra check
* refactor: rename the method
* chore: update snjs version
Co-authored-by: Mo Bitar <me@bitar.io>
* feat: hide note contents if the protection expires when the protected note is open and wasn't edited for a while
* feat: handle session expiration for opened protected note for both plain advanced editors
* fix: if after canceling session expiry modal only one unprotected note stays selected, show its contents in the editor
* refactor: handle session expiration for opened protected note (move the logic to web client)
* feat: handle the case of selecting "Don't remember" option in session expiry dialog
* test (WIP): add unit tests for protecting opened note after the session has expired
* test: add remaining unit tests
* refactor: move the opened note protection logic to "editor_view"
* refactor: reviewer comments
- don't rely on user signed-in/out status to require authentication for protected note
- remove unnecessary async/awaits
- better wording on ui
* refactor: reviewer's comments:
- use snjs method to check if "Don't remember" option is selected in authentication modal
- move the constant to snjs
- fix eslint error
* refactor: avoid `any` type for `appEvent` payload
* test: add unit tests
* chore: update function name
* refactor: use simpler protection session event types
* refactor: protected access terminology
* refactor: start counting idle timer after every edit (instead of counting by interval in spite of edits)
* test: unit tests
* style: don't give extra brightness to the "View Note"/"Authenticate" button on hover/focus
* chore: bump snjs version
Co-authored-by: Mo Bitar <me@bitar.io>