* 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>
37 lines
1.0 KiB
Plaintext
37 lines
1.0 KiB
Plaintext
{
|
|
"root": true,
|
|
"parser": "@typescript-eslint/parser",
|
|
"extends": [
|
|
"eslint:recommended",
|
|
"plugin:@typescript-eslint/recommended",
|
|
"prettier",
|
|
"plugin:react-hooks/recommended"
|
|
],
|
|
"plugins": ["@typescript-eslint", "react", "react-hooks"],
|
|
"parserOptions": {
|
|
"project": "./app/assets/javascripts/tsconfig.json"
|
|
},
|
|
"ignorePatterns": [".eslintrc.js", "webpack.*.js", "webpack-defaults.js", "jest.config.js", "__mocks__"],
|
|
"rules": {
|
|
"standard/no-callback-literal": 0, // Disable this as we have too many callbacks relying on literals
|
|
"no-throw-literal": 0,
|
|
"no-console": "off",
|
|
"semi": 1,
|
|
"camelcase": "warn",
|
|
"sort-imports": "off",
|
|
"react-hooks/rules-of-hooks": "error",
|
|
"react-hooks/exhaustive-deps": "error",
|
|
"eol-last": "error",
|
|
"no-multiple-empty-lines": ["error", { "max": 1, "maxEOF": 0 }],
|
|
"no-trailing-spaces": "error"
|
|
},
|
|
"env": {
|
|
"browser": true
|
|
},
|
|
"globals": {
|
|
"SFJS": true,
|
|
"__VERSION__": true,
|
|
"zip": true
|
|
}
|
|
}
|