From 98c6078a0db741d35569eb695884e05c73645e75 Mon Sep 17 00:00:00 2001 From: Antonella Sgarlatta Date: Mon, 7 Jun 2021 19:07:31 -0300 Subject: [PATCH 01/20] fix: don't wait until regaining focus to lock app --- .../javascripts/services/autolock_service.ts | 70 +++++-------------- .../ui_models/app_state/app_state.ts | 2 +- .../views/abstract/pure_view_ctrl.ts | 4 +- 3 files changed, 20 insertions(+), 56 deletions(-) diff --git a/app/assets/javascripts/services/autolock_service.ts b/app/assets/javascripts/services/autolock_service.ts index 895674dcd..b1f1f5b50 100644 --- a/app/assets/javascripts/services/autolock_service.ts +++ b/app/assets/javascripts/services/autolock_service.ts @@ -1,10 +1,8 @@ import { ApplicationService } from '@standardnotes/snjs'; -import { WebApplication } from '@/ui_models/application'; import { isDesktopApplication } from '@/utils'; -import { AppStateEvent } from '@/ui_models/app_state'; const MILLISECONDS_PER_SECOND = 1000; -const FOCUS_POLL_INTERVAL = 1 * MILLISECONDS_PER_SECOND; +const POLL_INTERVAL = 10; const LOCK_INTERVAL_NONE = 0; const LOCK_INTERVAL_IMMEDIATE = 1; const LOCK_INTERVAL_ONE_MINUTE = 60 * MILLISECONDS_PER_SECOND; @@ -15,37 +13,21 @@ const STORAGE_KEY_AUTOLOCK_INTERVAL = "AutoLockIntervalKey"; export class AutolockService extends ApplicationService { - private unsubState?: () => void; - private pollFocusInterval: any + private pollInterval: any private lastFocusState?: 'hidden' | 'visible' private lockAfterDate?: Date - private lockTimeout?: any onAppLaunch() { - this.observeVisibility(); + if (!isDesktopApplication()) { + this.beginPolling(); + } return super.onAppLaunch(); } - observeVisibility() { - this.unsubState = (this.application as WebApplication).getAppState().addObserver( - async (eventName) => { - if (eventName === AppStateEvent.WindowDidBlur) { - this.documentVisibilityChanged(false); - } else if (eventName === AppStateEvent.WindowDidFocus) { - this.documentVisibilityChanged(true); - } - } - ); - if (!isDesktopApplication()) { - this.beginWebFocusPolling(); - } - } - deinit() { - this.unsubState?.(); this.cancelAutoLockTimer(); - if (this.pollFocusInterval) { - clearInterval(this.pollFocusInterval); + if (this.pollInterval) { + clearInterval(this.pollInterval); } } @@ -85,11 +67,15 @@ export class AutolockService extends ApplicationService { * Verify document is in focus every so often as visibilitychange event is * not triggered on a typical window blur event but rather on tab changes. */ - beginWebFocusPolling() { - this.pollFocusInterval = setInterval(() => { - if (document.hidden) { - /** Native event listeners will have fired */ - return; + beginPolling() { + this.pollInterval = setInterval(async () => { + const locked = await this.application.isLocked(); + if ( + !locked && + this.lockAfterDate && + new Date() > this.lockAfterDate + ) { + this.lockApplication(); } const hasFocus = document.hasFocus(); if (hasFocus && this.lastFocusState === 'hidden') { @@ -99,7 +85,7 @@ export class AutolockService extends ApplicationService { } /* Save this to compare against next time around */ this.lastFocusState = hasFocus ? 'visible' : 'hidden'; - }, FOCUS_POLL_INTERVAL); + }, POLL_INTERVAL); } getAutoLockIntervalOptions() { @@ -129,14 +115,6 @@ export class AutolockService extends ApplicationService { async documentVisibilityChanged(visible: boolean) { if (visible) { - const locked = await this.application.isLocked(); - if ( - !locked && - this.lockAfterDate && - new Date() > this.lockAfterDate - ) { - this.lockApplication(); - } this.cancelAutoLockTimer(); } else { this.beginAutoLockTimer(); @@ -148,29 +126,15 @@ export class AutolockService extends ApplicationService { if (interval === LOCK_INTERVAL_NONE) { return; } - /** - * Use a timeout if possible, but if the computer is put to sleep, timeouts won't - * work. Need to set a date as backup. this.lockAfterDate does not need to be - * persisted, as living in memory is sufficient. If memory is cleared, then the - * application will lock anyway. - */ const addToNow = (seconds: number) => { const date = new Date(); date.setSeconds(date.getSeconds() + seconds); return date; }; this.lockAfterDate = addToNow(interval / MILLISECONDS_PER_SECOND); - clearTimeout(this.lockTimeout); - this.lockTimeout = setTimeout(() => { - this.cancelAutoLockTimer(); - this.lockApplication(); - this.lockAfterDate = undefined; - }, interval); } cancelAutoLockTimer() { - clearTimeout(this.lockTimeout); this.lockAfterDate = undefined; - this.lockTimeout = undefined; } } diff --git a/app/assets/javascripts/ui_models/app_state/app_state.ts b/app/assets/javascripts/ui_models/app_state/app_state.ts index ba8c7ea11..1bd6ba729 100644 --- a/app/assets/javascripts/ui_models/app_state/app_state.ts +++ b/app/assets/javascripts/ui_models/app_state/app_state.ts @@ -134,7 +134,7 @@ export class AppState { this.noAccountWarning.reset(); } this.actionsMenu.reset(); - this.unsubApp(); + this.unsubApp?.(); this.unsubApp = undefined; this.observers.length = 0; this.appEventObserverRemovers.forEach((remover) => remover()); diff --git a/app/assets/javascripts/views/abstract/pure_view_ctrl.ts b/app/assets/javascripts/views/abstract/pure_view_ctrl.ts index 6f2a24297..71d7bae6f 100644 --- a/app/assets/javascripts/views/abstract/pure_view_ctrl.ts +++ b/app/assets/javascripts/views/abstract/pure_view_ctrl.ts @@ -40,8 +40,8 @@ export class PureViewCtrl

{ } deinit(): void { - this.unsubApp(); - this.unsubState(); + this.unsubApp?.(); + this.unsubState?.(); for (const disposer of this.reactionDisposers) { disposer(); } From c38b1f042f401f9ccb8cf9dd14dfa9b0a1bb3f2a Mon Sep 17 00:00:00 2001 From: Antonella Sgarlatta Date: Tue, 8 Jun 2021 19:07:22 -0300 Subject: [PATCH 02/20] feat: make delete backups checkbox off by default --- app/assets/javascripts/components/ConfirmSignoutModal.tsx | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/app/assets/javascripts/components/ConfirmSignoutModal.tsx b/app/assets/javascripts/components/ConfirmSignoutModal.tsx index b432caf83..6d1b9ef8f 100644 --- a/app/assets/javascripts/components/ConfirmSignoutModal.tsx +++ b/app/assets/javascripts/components/ConfirmSignoutModal.tsx @@ -23,9 +23,7 @@ const ConfirmSignoutContainer = observer((props: Props) => { }); const ConfirmSignoutModal = observer(({ application, appState }: Props) => { - const [deleteLocalBackups, setDeleteLocalBackups] = useState( - application.hasAccount() - ); + const [deleteLocalBackups, setDeleteLocalBackups] = useState(false); const cancelRef = useRef(); function close() { From 0e59a6c4319518f134b8e17a37c34abebe62bd0a Mon Sep 17 00:00:00 2001 From: Antonella Sgarlatta Date: Tue, 8 Jun 2021 19:25:25 -0300 Subject: [PATCH 03/20] fix: make sessions modal scrollable --- app/assets/javascripts/components/SessionsModal.tsx | 4 ++-- app/assets/stylesheets/_sn.scss | 9 +++++++++ 2 files changed, 11 insertions(+), 2 deletions(-) diff --git a/app/assets/javascripts/components/SessionsModal.tsx b/app/assets/javascripts/components/SessionsModal.tsx index 6079e3aca..aa375505e 100644 --- a/app/assets/javascripts/components/SessionsModal.tsx +++ b/app/assets/javascripts/components/SessionsModal.tsx @@ -126,7 +126,7 @@ const SessionsModal: FunctionComponent<{ return ( <> -

+
@@ -145,7 +145,7 @@ const SessionsModal: FunctionComponent<{
-
+
{refreshing ? ( <>
diff --git a/app/assets/stylesheets/_sn.scss b/app/assets/stylesheets/_sn.scss index a312819ce..ad89dd0b6 100644 --- a/app/assets/stylesheets/_sn.scss +++ b/app/assets/stylesheets/_sn.scss @@ -109,6 +109,11 @@ padding-bottom: 0.375rem; } +.py-8 { + padding-top: 2rem; + padding-bottom: 2rem; +} + .outline-none { outline: none; } @@ -254,6 +259,10 @@ height: 4.5rem; } +.h-screen { + height: 100vh; +} + .max-h-120 { max-height: 30rem; } From 1894b13da92b2d1c8f27c735455fc00df91f3a39 Mon Sep 17 00:00:00 2001 From: Antonella Sgarlatta Date: Tue, 8 Jun 2021 19:36:04 -0300 Subject: [PATCH 04/20] styles: remove outline from tag input --- app/assets/stylesheets/_tags.scss | 2 ++ 1 file changed, 2 insertions(+) diff --git a/app/assets/stylesheets/_tags.scss b/app/assets/stylesheets/_tags.scss index 95060e799..300d5af52 100644 --- a/app/assets/stylesheets/_tags.scss +++ b/app/assets/stylesheets/_tags.scss @@ -72,6 +72,8 @@ } > .title { + @extend .focus\:outline-none; + @extend .focus\:shadow-none; width: 80%; background-color: transparent; font-weight: 600; From c09a2f02c2ac7842131955931252b3cad4bd4fc4 Mon Sep 17 00:00:00 2001 From: Antonella Sgarlatta Date: Wed, 9 Jun 2021 12:52:07 -0300 Subject: [PATCH 05/20] fix: update poll interval --- app/assets/javascripts/services/autolock_service.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/assets/javascripts/services/autolock_service.ts b/app/assets/javascripts/services/autolock_service.ts index b1f1f5b50..4cfe8f9f1 100644 --- a/app/assets/javascripts/services/autolock_service.ts +++ b/app/assets/javascripts/services/autolock_service.ts @@ -2,7 +2,7 @@ import { ApplicationService } from '@standardnotes/snjs'; import { isDesktopApplication } from '@/utils'; const MILLISECONDS_PER_SECOND = 1000; -const POLL_INTERVAL = 10; +const POLL_INTERVAL = 50; const LOCK_INTERVAL_NONE = 0; const LOCK_INTERVAL_IMMEDIATE = 1; const LOCK_INTERVAL_ONE_MINUTE = 60 * MILLISECONDS_PER_SECOND; From b1a4eeed776c10ec731b71e490eed8f869471d86 Mon Sep 17 00:00:00 2001 From: Antonella Sgarlatta Date: Wed, 9 Jun 2021 14:18:26 -0300 Subject: [PATCH 06/20] chore(version-snjs): 2.6.1 --- package.json | 2 +- yarn.lock | 8 ++++---- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/package.json b/package.json index bcc502563..fb2b32c70 100644 --- a/package.json +++ b/package.json @@ -71,7 +71,7 @@ "@reach/checkbox": "^0.13.2", "@reach/dialog": "^0.13.0", "@standardnotes/sncrypto-web": "1.2.10", - "@standardnotes/snjs": "2.6.0", + "@standardnotes/snjs": "2.6.1", "mobx": "^6.1.6", "mobx-react-lite": "^3.2.0", "preact": "^10.5.12" diff --git a/yarn.lock b/yarn.lock index de7bfddca..35a42eddb 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1936,10 +1936,10 @@ "@standardnotes/sncrypto-common" "^1.2.7" libsodium-wrappers "^0.7.8" -"@standardnotes/snjs@2.6.0": - version "2.6.0" - resolved "https://registry.yarnpkg.com/@standardnotes/snjs/-/snjs-2.6.0.tgz#8ebdfcb0918c308198b38a63d7aa946387b83ac4" - integrity sha512-Gb/kAdMtjVlSiQH7pkDzFxKtIrrY43i2hSejO2c+zCviZspiDZPpXLpEhMJ295ow2tluhOf8zfBUda3LMC6oDw== +"@standardnotes/snjs@2.6.1": + version "2.6.1" + resolved "https://registry.yarnpkg.com/@standardnotes/snjs/-/snjs-2.6.1.tgz#45c3906086a649d03e5c139ef0b30fa90a639e65" + integrity sha512-ZuygivyJvqLMGeOurmg5K3lR0tk6zDgf53qIecFD8redaUpFicegeOlV+RW4m0QthU+ne74DHSCqk2U85oUxrA== dependencies: "@standardnotes/auth" "^2.0.0" "@standardnotes/sncrypto-common" "^1.2.9" From ead8d5dcf68fccd870691af20f6cc9d787e8fcd6 Mon Sep 17 00:00:00 2001 From: Antonella Sgarlatta Date: Wed, 9 Jun 2021 16:38:53 -0300 Subject: [PATCH 07/20] fix: if tag already exists it shouldn't be added to the list --- app/assets/javascripts/views/tags/tags_view.ts | 1 + 1 file changed, 1 insertion(+) diff --git a/app/assets/javascripts/views/tags/tags_view.ts b/app/assets/javascripts/views/tags/tags_view.ts index d7ce1bbc8..b44f7b076 100644 --- a/app/assets/javascripts/views/tags/tags_view.ts +++ b/app/assets/javascripts/views/tags/tags_view.ts @@ -345,6 +345,7 @@ class TagsViewCtrl extends PureViewCtrl { this.application.alertService!.alert( "A tag with this name already exists." ); + this.undoCreateTag(newTag); return; } const insertedTag = await this.application.insertItem(newTag); From 717d52dd8afab41076ea15488ded6d50d19a659c Mon Sep 17 00:00:00 2001 From: Antonella Sgarlatta Date: Wed, 9 Jun 2021 16:39:19 -0300 Subject: [PATCH 08/20] fix: tag rename to empty string should preserve its original title --- app/assets/javascripts/views/tags/tags_view.ts | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/app/assets/javascripts/views/tags/tags_view.ts b/app/assets/javascripts/views/tags/tags_view.ts index b44f7b076..5a10a69e1 100644 --- a/app/assets/javascripts/views/tags/tags_view.ts +++ b/app/assets/javascripts/views/tags/tags_view.ts @@ -267,6 +267,7 @@ class TagsViewCtrl extends PureViewCtrl { async clickedAddNewTag() { if (this.getState().editingTag) { + console.log('editing'); return; } const newTag = await this.application.createTemplateItem( @@ -289,10 +290,10 @@ class TagsViewCtrl extends PureViewCtrl { async saveTag($event: Event, tag: SNTag) { ($event.target! as HTMLInputElement).blur(); - if (!this.titles[tag.uuid]?.length) { - return this.undoCreateTag(tag); - } if (this.getState().templateTag) { + if (!this.titles[tag.uuid]?.length) { + return this.undoCreateTag(tag); + } return this.saveNewTag(); } else { return this.saveTagRename(tag); @@ -314,6 +315,9 @@ class TagsViewCtrl extends PureViewCtrl { if (newTitle.length === 0) { this.titles[tag.uuid] = this.editingOriginalName; this.editingOriginalName = undefined; + await this.setState({ + editingTag: undefined + }); return; } const existingTag = this.application.findTagByTitle(newTitle); From f43357693028725a2aab583492fdd4c719ba547c Mon Sep 17 00:00:00 2001 From: Antonella Sgarlatta Date: Wed, 9 Jun 2021 17:16:22 -0300 Subject: [PATCH 09/20] fix: add close on blur to tags dropdown --- app/assets/javascripts/components/AutocompleteTagInput.tsx | 1 + 1 file changed, 1 insertion(+) diff --git a/app/assets/javascripts/components/AutocompleteTagInput.tsx b/app/assets/javascripts/components/AutocompleteTagInput.tsx index 8ccfb3d56..6be62ad80 100644 --- a/app/assets/javascripts/components/AutocompleteTagInput.tsx +++ b/app/assets/javascripts/components/AutocompleteTagInput.tsx @@ -115,6 +115,7 @@ export const AutocompleteTagInput = observer(({ appState }: Props) => { ref={dropdownRef} className={`${tags.length > 0 ? 'w-80' : 'w-70 mr-10'} sn-dropdown flex flex-col py-2 absolute`} style={{ maxHeight: dropdownMaxHeight, maxWidth: tagsContainerMaxWidth }} + onBlur={closeOnBlur} >
{autocompleteTagResults.map((tagResult) => ( From c0348a0d0a1239de4484778c67fa821118e27d8e Mon Sep 17 00:00:00 2001 From: Antonella Sgarlatta Date: Thu, 10 Jun 2021 10:59:39 -0300 Subject: [PATCH 10/20] styles: fix sessions modal height --- app/assets/javascripts/components/SessionsModal.tsx | 2 +- app/assets/stylesheets/_sn.scss | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/app/assets/javascripts/components/SessionsModal.tsx b/app/assets/javascripts/components/SessionsModal.tsx index aa375505e..8e5c9298b 100644 --- a/app/assets/javascripts/components/SessionsModal.tsx +++ b/app/assets/javascripts/components/SessionsModal.tsx @@ -126,7 +126,7 @@ const SessionsModal: FunctionComponent<{ return ( <> - +
diff --git a/app/assets/stylesheets/_sn.scss b/app/assets/stylesheets/_sn.scss index ad89dd0b6..b18d61dc8 100644 --- a/app/assets/stylesheets/_sn.scss +++ b/app/assets/stylesheets/_sn.scss @@ -259,8 +259,8 @@ height: 4.5rem; } -.h-screen { - height: 100vh; +.h-90vh { + height: 90vh; } .max-h-120 { From 860e30de202309e2a818e13e6f4c69a2693f9f87 Mon Sep 17 00:00:00 2001 From: Antonella Sgarlatta Date: Thu, 10 Jun 2021 11:18:29 -0300 Subject: [PATCH 11/20] styles: change overflow to auto and add back dropdowns min width --- app/assets/javascripts/components/AutocompleteTagInput.tsx | 2 +- app/assets/javascripts/components/NotesContextMenu.tsx | 2 +- app/assets/javascripts/components/NotesOptions.tsx | 2 +- app/assets/javascripts/components/NotesOptionsPanel.tsx | 2 +- app/assets/javascripts/components/SessionsModal.tsx | 2 +- app/assets/stylesheets/_sn.scss | 6 +++--- 6 files changed, 8 insertions(+), 8 deletions(-) diff --git a/app/assets/javascripts/components/AutocompleteTagInput.tsx b/app/assets/javascripts/components/AutocompleteTagInput.tsx index 6be62ad80..6567a9cf0 100644 --- a/app/assets/javascripts/components/AutocompleteTagInput.tsx +++ b/app/assets/javascripts/components/AutocompleteTagInput.tsx @@ -117,7 +117,7 @@ export const AutocompleteTagInput = observer(({ appState }: Props) => { style={{ maxHeight: dropdownMaxHeight, maxWidth: tagsContainerMaxWidth }} onBlur={closeOnBlur} > -
+
{autocompleteTagResults.map((tagResult) => ( { return appState.notes.contextMenuOpen ? (
{appState.tags.tags.map((tag) => (
-
+
{refreshing ? ( <>
diff --git a/app/assets/stylesheets/_sn.scss b/app/assets/stylesheets/_sn.scss index b18d61dc8..2736ab43d 100644 --- a/app/assets/stylesheets/_sn.scss +++ b/app/assets/stylesheets/_sn.scss @@ -275,8 +275,8 @@ position: fixed; } -.overflow-y-scroll { - overflow-y: scroll; +.overflow-y-auto { + overflow-y: auto; } .overflow-auto { @@ -360,7 +360,7 @@ .sn-dropdown { @extend .bg-default; - // @extend .min-w-80; + @extend .min-w-80; @extend .rounded; @extend .box-shadow; From 813228aa37b1017d555ea2828297fea8a3efeedf Mon Sep 17 00:00:00 2001 From: Antonella Sgarlatta Date: Thu, 10 Jun 2021 11:44:36 -0300 Subject: [PATCH 12/20] chore(version): 3.8.1 --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index fb2b32c70..1bd3933d0 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "standard-notes-web", - "version": "3.9.0-beta01", + "version": "3.8.1", "license": "AGPL-3.0-or-later", "repository": { "type": "git", From c4db37ff94f69ce782bb3ee42f851a0e05eef9f2 Mon Sep 17 00:00:00 2001 From: Antonella Sgarlatta Date: Thu, 10 Jun 2021 11:58:10 -0300 Subject: [PATCH 13/20] fix: disallow creating empty tag --- app/assets/javascripts/components/AutocompleteTagInput.tsx | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/app/assets/javascripts/components/AutocompleteTagInput.tsx b/app/assets/javascripts/components/AutocompleteTagInput.tsx index 6567a9cf0..e7d242798 100644 --- a/app/assets/javascripts/components/AutocompleteTagInput.tsx +++ b/app/assets/javascripts/components/AutocompleteTagInput.tsx @@ -47,7 +47,9 @@ export const AutocompleteTagInput = observer(({ appState }: Props) => { const onFormSubmit = async (event: Event) => { event.preventDefault(); - await appState.noteTags.createAndAddNewTag(); + if (autocompleteSearchQuery !== '') { + await appState.noteTags.createAndAddNewTag(); + } }; const onKeyDown = (event: KeyboardEvent) => { From c86a57e7478f56a1ebb3327fb64c6b525c644736 Mon Sep 17 00:00:00 2001 From: Antonella Sgarlatta Date: Thu, 10 Jun 2021 11:59:10 -0300 Subject: [PATCH 14/20] chore(version-snjs): 2.6.2 --- package.json | 2 +- yarn.lock | 8 ++++---- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/package.json b/package.json index 1bd3933d0..71f7c0de1 100644 --- a/package.json +++ b/package.json @@ -71,7 +71,7 @@ "@reach/checkbox": "^0.13.2", "@reach/dialog": "^0.13.0", "@standardnotes/sncrypto-web": "1.2.10", - "@standardnotes/snjs": "2.6.1", + "@standardnotes/snjs": "2.6.2", "mobx": "^6.1.6", "mobx-react-lite": "^3.2.0", "preact": "^10.5.12" diff --git a/yarn.lock b/yarn.lock index 35a42eddb..42e488c2d 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1936,10 +1936,10 @@ "@standardnotes/sncrypto-common" "^1.2.7" libsodium-wrappers "^0.7.8" -"@standardnotes/snjs@2.6.1": - version "2.6.1" - resolved "https://registry.yarnpkg.com/@standardnotes/snjs/-/snjs-2.6.1.tgz#45c3906086a649d03e5c139ef0b30fa90a639e65" - integrity sha512-ZuygivyJvqLMGeOurmg5K3lR0tk6zDgf53qIecFD8redaUpFicegeOlV+RW4m0QthU+ne74DHSCqk2U85oUxrA== +"@standardnotes/snjs@2.6.2": + version "2.6.2" + resolved "https://registry.yarnpkg.com/@standardnotes/snjs/-/snjs-2.6.2.tgz#dbd835f8c0fcdf951f636b3a5b6d0b54c00de458" + integrity sha512-/6U9sEBtT2MouwbH0OBaQW4eqnvwwNnXUXq+zDfV8UKqJPoEnwLGumnb72cJ8d/67e0haoltc2C8wHicbZgFrQ== dependencies: "@standardnotes/auth" "^2.0.0" "@standardnotes/sncrypto-common" "^1.2.9" From df1257ac7e5f707a1d4361176e1110184344e972 Mon Sep 17 00:00:00 2001 From: Antonella Sgarlatta Date: Thu, 10 Jun 2021 12:18:18 -0300 Subject: [PATCH 15/20] styles: remove min width from tags dropdown --- app/assets/javascripts/components/NotesContextMenu.tsx | 2 +- app/assets/javascripts/components/NotesOptions.tsx | 2 +- app/assets/javascripts/components/NotesOptionsPanel.tsx | 2 +- app/assets/javascripts/components/SearchOptions.tsx | 2 +- app/assets/stylesheets/_sn.scss | 1 - 5 files changed, 4 insertions(+), 5 deletions(-) diff --git a/app/assets/javascripts/components/NotesContextMenu.tsx b/app/assets/javascripts/components/NotesContextMenu.tsx index ec6b4be01..abd4fa354 100644 --- a/app/assets/javascripts/components/NotesContextMenu.tsx +++ b/app/assets/javascripts/components/NotesContextMenu.tsx @@ -23,7 +23,7 @@ const NotesContextMenu = observer(({ appState }: Props) => { return appState.notes.contextMenuOpen ? (
{appState.tags.tags.map((tag) => (