From 76f23e13ecc8795b4e6cbbb37c32db262c0084c2 Mon Sep 17 00:00:00 2001 From: Aman Harwara Date: Thu, 20 Oct 2022 20:24:56 +0530 Subject: [PATCH] fix: mobx warnings and react render phase set state error --- .../web/src/javascripts/Components/Tags/TagsListItem.tsx | 9 ++++----- .../Controllers/ItemList/ItemListController.ts | 2 ++ .../javascripts/Controllers/SelectedItemsController.ts | 2 +- 3 files changed, 7 insertions(+), 6 deletions(-) diff --git a/packages/web/src/javascripts/Components/Tags/TagsListItem.tsx b/packages/web/src/javascripts/Components/Tags/TagsListItem.tsx index 9bc147dc7..b0d497f30 100644 --- a/packages/web/src/javascripts/Components/Tags/TagsListItem.tsx +++ b/packages/web/src/javascripts/Components/Tags/TagsListItem.tsx @@ -80,12 +80,11 @@ export const TagsListItem: FunctionComponent = observer( const toggleChildren: MouseEventHandler = useCallback( (e) => { e.stopPropagation() - setShowChildren((x) => { - tagsState.setExpanded(tag, !x) - return !x - }) + const shouldShowChildren = !showChildren + setShowChildren(shouldShowChildren) + tagsState.setExpanded(tag, !shouldShowChildren) }, - [setShowChildren, tag, tagsState], + [showChildren, tag, tagsState], ) const selectCurrentTag = useCallback(async () => { diff --git a/packages/web/src/javascripts/Controllers/ItemList/ItemListController.ts b/packages/web/src/javascripts/Controllers/ItemList/ItemListController.ts index 098cf52c3..2f568ce36 100644 --- a/packages/web/src/javascripts/Controllers/ItemList/ItemListController.ts +++ b/packages/web/src/javascripts/Controllers/ItemList/ItemListController.ts @@ -214,6 +214,8 @@ export class ItemListController optionsSubtitle: computed, activeControllerItem: computed, + + hydrateFromPersistedValue: action, }) window.onresize = () => { diff --git a/packages/web/src/javascripts/Controllers/SelectedItemsController.ts b/packages/web/src/javascripts/Controllers/SelectedItemsController.ts index 9cef4f4b5..999f612c3 100644 --- a/packages/web/src/javascripts/Controllers/SelectedItemsController.ts +++ b/packages/web/src/javascripts/Controllers/SelectedItemsController.ts @@ -192,7 +192,7 @@ export class SelectedItemsController private replaceSelection = (item: ListableContentItem): void => { this.deselectAll() - this.setSelectedUuids(this.selectedUuids.add(item.uuid)) + runInAction(() => this.setSelectedUuids(this.selectedUuids.add(item.uuid))) this.lastSelectedItem = item }