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 }