Commit Graph

44 Commits

Author SHA1 Message Date
Vardan Hakobyan
f120af3b43 feat: handle unprotected session expiration (#779)
* 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>
2021-12-20 20:54:37 +04:00
Karol Sójko
2e168df929 Revert "feat: handle unprotected session expiration (#747)"
This reverts commit 8db549f6f6.
2021-12-15 15:26:31 +01:00
Vardan Hakobyan
8db549f6f6 feat: handle unprotected session expiration (#747)
* 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>
2021-12-14 19:14:01 +04:00
Mo Bitar
d5f75fee84 deps(snjs): 2.20.3 2021-12-10 11:56:00 -06:00
Mo Bitar
ac9c19d681 fix: copy improvement 2021-12-03 11:58:14 -06:00
Mo Bitar
fbafc136e8 fix: better subscription state text 2021-12-01 11:28:03 -06:00
Mo
cf3664751f feat: display feature status (#745)
* feat: display feature status

* fix: hook dep

* fix: react hooks dep
2021-11-22 11:39:14 -06:00
Vardan Hakobyan
f8308348ed fix: hide horizontal separator if "offline subscriptions" section is hidden (#740) 2021-11-15 17:52:13 +04:00
Aman Harwara
f6ca7ef2b1 feat: Use new design for signed out pane in preferences (#734) 2021-11-12 22:51:29 +05:30
Aman Harwara
08cd020402 fix: Two-factor activation modal (#736) 2021-11-12 22:47:47 +05:30
Mo Bitar
873aa1558e fix: offline repo handling 2021-11-11 13:51:54 -06:00
Vardan Hakobyan
e833dbfbca Fix/email changed text (#728)
* fix: correct styling for "Email successfully changed" dialog texts

* fix: correct top styling for title
2021-11-10 20:06:31 +04:00
Mo
73b91e5964 fix: reload subscription state after event (#727)
* fix: reload subscription state after event

* chore: yarn.lock

* chore: lint

* fix: hook exhaustive deps
2021-11-09 19:33:10 -06:00
Mo Bitar
4b21083229 fix: disable v4 feature checks 2021-11-09 16:41:12 -06:00
Mo
e1e38c65db fix: add ability to subscribe without account (#722) 2021-11-05 10:09:46 -05:00
Vardan Hakobyan
bbc81ea276 feat: move extensions from prefs menu's left pane to General->Advanced section (#718) 2021-11-03 22:45:50 +04:00
Vardan Hakobyan
04fab80adb feat: fetch features and store locally for offline users (#706)
* feat: fetch features and store locally for offline users

* feat: handle success and error cases

* refactor: move offline activation code reading/validation to snjs

* chore: update after renaming snjs function

* fix: correct condition for checking offline users

* feat: let users remove their previous offline keys (WIP)

* refactor: handle setOfflineFeatures function response accordingly

* feat: remove corresponding local data when removing offline key

* fix: use snjs' confirm dialog instead of custom one

* feat: show warning before installing extension from untrusted source

* refactor: move functions for validating external feature url and checking if custom server host was used to snjs

* chore: put correct snjs version

* chore: make `eslint-plugin-react-hooks` in yarn.lock to match the `develop` branch

* chore: deps update

* chore: deps update
2021-11-03 22:27:36 +04:00
Aman Harwara
4f56c453cb feat: Update "Change Email" and "Change Password" modal designs (#714)
* feat: Add new utility classes

* feat: Update "Change Email" modal design

* feat: Use .sk-input.contrast className to mimic password wizard inputs

* feat: Add explicit labels to password wizard inputs

* feat: Make button sizing consistent

* refactor: Remove unused dependencies

* refactor: Remove unused component
2021-11-01 19:49:06 +05:30
Aman Harwara
db1139fd44 feat: Keep only "Manage subscription" button in account subscription prefs (#711)
* feat: Add DASHBOARD_URL to .env.sample
2021-10-30 21:15:17 +05:30
Aman Harwara
53ec0d4742 feat: Add "Manage subscription" button to Subscription preferences (#705)
* feat: Add "Manage subscription" button to Subscription preferences

* Update app/assets/javascripts/preferences/panes/account/subscription/SubscriptionInformation.tsx

Co-authored-by: Mo <mo@standardnotes.org>

* feat: Use convertTimestamp function instead of manual conversion in Subscription Info

Co-authored-by: Mo <mo@standardnotes.org>
2021-10-26 21:30:21 +05:30
Mo
e79811afda feat: add purchase url (#695)
* feat: add purchase url

* chore: bump snjs

* fix: reuse existing function
2021-10-21 12:41:58 -05:00
Antonella Sgarlatta
5b91e41e32 fix: disable change email feature 2021-10-13 17:52:56 -03:00
Antonella Sgarlatta
7bed9a52f7 fix: show subscription info for logged in user and avoid making api call if no account 2021-10-12 15:33:49 -03:00
Gorjan Petrovski
6f18664564 feat(preferences): no-subscription for non logged in users (#676)
* feat(preferences): no-subscription for non logged in users

* fix: check if user has account using application.hasAccount()
2021-10-11 17:29:41 +02:00
Aman Harwara
f1122f292e feat: New account menu and text input with icon & toggle (#665)
* feat: Add new icons

* Revert "feat: Add new icons"

This reverts commit 0acb403fe846dbb2e48fd22de35c3568c3cb4453.

* feat: Add new icons for account menu

* feat: Add new Icons

* feat: Add "currentPane" state to prefs view

* feat: Update account menu to new design

* feat: Add input component with icon & toggle

* fix: sync icon & function

* fix: Fix eye icon

* feat: Create re-usable checkbox

feat: Add "merge local" option

* feat: Allow using className on IconButton

* feat: Add disabled state on input

feat: Make toggle circle

* refactor: Move checkbox to components

* feat: Handle invalid email/password error

* feat: Implement new design for Create Account

* feat: Implement new account menu design

* feat: Add disabled option to IconButton

* feat: Set account menu pane from other component

* feat: Add 2fa account menu pane

feat: Add lock icon

* feat: Remove unnecessary 2FA menu pane

feat: Reset current menu pane on clickOutside

* feat: Change "Log in" to "Sign in"

* feat: Remove sync from footer

* feat: Change "Login" to "Sign in"

feat: Add spinner to "Syncing..."

refactor: Use then-catch-finally for sync

* feat: Use common enableCustomServer state

* feat: Animate account menu closing

* fix: Reset menu pane only after it's closed

* feat: Add keyDown handler to InputWithIcon

* feat: Handle Enter press in inputs

* Update app/assets/javascripts/components/InputWithIcon.tsx

Co-authored-by: Antonella Sgarlatta <antsgar@gmail.com>

* Update app/assets/javascripts/components/InputWithIcon.tsx

Co-authored-by: Antonella Sgarlatta <antsgar@gmail.com>

* refactor: Use server state from AccountMenuState

* Update app/assets/javascripts/components/AccountMenu/CreateAccount.tsx

Co-authored-by: Antonella Sgarlatta <antsgar@gmail.com>

* Update app/assets/javascripts/components/AccountMenu/ConfirmPassword.tsx

Co-authored-by: Antonella Sgarlatta <antsgar@gmail.com>

* feat: Use common AdvancedOptions

* feat: Add "eye-off" icon and toggle state

* feat: Allow undefined values

* refactor: Remove enableCustomServer state

* feat: Persist server option state

* feat: Add bottom-100 and cursor-auto util classes

refactor: Use bottom-100 and cursor-auto classes

* refactor: Invert ternary operator

* refactor: Remove unused imports

* refactor: Use toggled as prop instead of state

* refactor: Change "Log in/out" to "Sign in/out"

* refactor: Change "Login" to "Sign in"

* refactor: Remove hardcoded width/height

* refactor: Use success class

* feat: Remove hardcoded width & height from svg

* fix: Fix chevron-down icon

Co-authored-by: Antonella Sgarlatta <antsgar@gmail.com>
Co-authored-by: Antonella Sgarlatta <antonella@standardnotes.org>
2021-10-08 11:18:31 -05:00
Mo Bitar
92699d23f4 fix: func param order 2021-10-07 08:08:38 -05:00
Antonella Sgarlatta
e134598c20 feat: open purchase flow 2021-10-04 17:03:20 -03:00
Gorjan Petrovski
b312df41a6 feat(preferences): not logged in segment (#649)
* feat(preferences): not logged in segment

* Update app/assets/javascripts/preferences/panes/account/Authentication.tsx

Co-authored-by: Mo Bitar <mo@standardnotes.org>

* Update app/assets/javascripts/preferences/panes/account/Authentication.tsx

Co-authored-by: Mo Bitar <mo@standardnotes.org>

Co-authored-by: Mo Bitar <mo@standardnotes.org>
2021-09-27 18:01:12 +02:00
Gorjan Petrovski
73f03e6ea6 feat: passcode lock in preferences (#644)
* feat: implement existing passcode lock in prefs

* chore: cleanup commented code and unused imports

* feat: improve design for passcode lock

* fix: propert folder naming

* feat: passcode lock form buttons margin
2021-09-23 17:25:39 +02:00
Gorjan Petrovski
77525a56cd feat: implement UI for logging out (#638)
* feat: implement UI for logging out

* feat: use old style dialogs for logout confirmation

* feat: implement manage sessions

* feat: implement session logout success dialog

* feat: use snjs alert for revoking sessions confirmation

* fix: make OtherSessionsLogout easier to read
2021-09-21 19:01:32 +02:00
Gorjan Petrovski
8464824c61 feat: use existing change password wizard in preferences (#639) 2021-09-21 17:36:52 +02:00
Gorjan Petrovski
8fb34f2e85 feat: improve 2fa styles based on feedback (#635)
* feat: improve 2fa styles based on feedback

* fix: preferences panes and dialogs electron compatibility

* fix: no horizontal line when opening two factor activation

* feat: improve two factor activation styles

* feat: further 2fa style improvements

* feat: padding 2fa widgets

* feat: add padding between QR code and content

* feat: refresh 2fa after passcode confirmation

* feat: don't autocomplete passwords for DecoratedInput
2021-09-17 18:14:53 +02:00
Antonella Sgarlatta
ccb80ed6da Merge branch 'develop' into feature/subscription-info-in-preferences 2021-09-13 12:05:23 -03:00
Antonella Sgarlatta
b3f2d77846 chore(version-snjs): 2.14.1 2021-09-13 12:02:30 -03:00
Karol Sójko
6afce84324 feat: add changing email (#634) 2021-09-13 10:01:32 +02:00
Vardan Hakobyan
b0ed19d6a3 feat: implement credentials information on Prefs -> Account pane (#632)
* feat: implement prefs -> credentials section UI (w/o backend integration)

* feat: implement credentials information on Prefs -> Account pane

- implement email changing UI (w/o backend integration)
- implement password changing UI and reuse existing change password logic
- replace 2FA dialog with shared one
- implement React hook for preventing window refresh

* fix: provide correct types

* refactor: reuse styles from stylekit, rename components and create enum for input types

* refactor: update default exports to named ones, correct texts

* chore: remove unnecessary depenedency

* chore: yarn.lock without unnecessary packages

* Revert "chore: yarn.lock without unnecessary packages"

This reverts commit 64aa75e8408b06884d6e7383180292a4a9a3e8ad.
2021-09-09 19:23:21 +04:00
Antonella Sgarlatta
2696f5b735 refactor: merge active and cancelled components into one 2021-09-07 15:11:27 -03:00
Antonella Sgarlatta
dee0c74ebb Update app/assets/javascripts/preferences/panes/account/subscription/subscription_state.tsx
Co-authored-by: Mo Bitar <mo@standardnotes.org>
2021-09-07 14:37:37 -03:00
Antonella Sgarlatta
41257977a7 fix: fix state and add loading state 2021-09-07 13:14:12 -03:00
Antonella Sgarlatta
99ef854ae8 fix: set mobx store as local state 2021-09-07 12:06:25 -03:00
Antonella Sgarlatta
28dab13fb1 refactor: use mobx for state and separate files for components 2021-09-07 12:04:25 -03:00
Antonella Sgarlatta
1b87df18bc feat: get plan name from subscriptions endpoint 2021-09-07 11:19:51 -03:00
Antonella Sgarlatta
84ba497857 feat: subscription info in preferences 2021-09-06 03:57:33 -03:00
Vardan Hakobyan
5b18fc7146 feat: add "sync" pane to preferences -> account tab (#621)
* feat: add "sync" pane to preferences -> account tab

* chore: configure eslint to add new line at the end of file and remove trailing spaces

* chore: add newline at the end of file
2021-08-26 22:57:27 +04:00