diff --git a/app/assets/javascripts/components/Tags/TagsListItem.tsx b/app/assets/javascripts/components/Tags/TagsListItem.tsx index b71922a92..7c10a3d56 100644 --- a/app/assets/javascripts/components/Tags/TagsListItem.tsx +++ b/app/assets/javascripts/components/Tags/TagsListItem.tsx @@ -41,7 +41,7 @@ export const TagsListItem: FunctionComponent = observer( const premiumModal = usePremiumModal(); - const [showChildren, setShowChildren] = useState(hasChildren); + const [showChildren, setShowChildren] = useState(tag.expanded); const [hadChildren, setHadChildren] = useState(hasChildren); useEffect(() => { @@ -58,9 +58,12 @@ export const TagsListItem: FunctionComponent = observer( const toggleChildren = useCallback( (e: MouseEvent) => { e.stopPropagation(); - setShowChildren((x) => !x); + setShowChildren((x) => { + tagsState.setExpanded(tag, !x); + return !x; + }); }, - [setShowChildren] + [setShowChildren, tag, tagsState] ); const selectCurrentTag = useCallback(() => { diff --git a/app/assets/javascripts/ui_models/app_state/tags_state.ts b/app/assets/javascripts/ui_models/app_state/tags_state.ts index 4004c15e4..2add046b7 100644 --- a/app/assets/javascripts/ui_models/app_state/tags_state.ts +++ b/app/assets/javascripts/ui_models/app_state/tags_state.ts @@ -267,6 +267,12 @@ export class TagsState { this.selected_ = tag; } + public setExpanded(tag: SNTag, exapnded: boolean) { + this.application.changeAndSaveItem(tag.uuid, (mutator) => { + mutator.expanded = exapnded; + }); + } + public get selectedUuid(): UuidString | undefined { return this.selected_?.uuid; } diff --git a/package.json b/package.json index a7bb1f4f2..bd9b61aee 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "standard-notes-web", - "version": "3.10.0-beta.2", + "version": "3.10.0-beta.3", "license": "AGPL-3.0-or-later", "repository": { "type": "git", @@ -84,7 +84,7 @@ "@reach/tooltip": "^0.16.2", "@standardnotes/components": "1.7.0", "@standardnotes/features": "1.29.0", - "@standardnotes/snjs": "2.52.2", + "@standardnotes/snjs": "2.53.0", "@standardnotes/settings": "^1.11.3", "@standardnotes/sncrypto-web": "1.6.2", "mobx": "^6.3.5", diff --git a/yarn.lock b/yarn.lock index 184f82c9c..42964f697 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2650,10 +2650,10 @@ buffer "^6.0.3" libsodium-wrappers "^0.7.9" -"@standardnotes/snjs@2.52.2": - version "2.52.2" - resolved "https://registry.yarnpkg.com/@standardnotes/snjs/-/snjs-2.52.2.tgz#34d1edd3028aa860648548292291d6ecf8666a5f" - integrity sha512-5w2RXSquTmyYNSyKgEYqmLLqbHyYCsyrqfWlL0nuQ//hBFcf8OUbsY+Ys132TodpGZn637Al+kygoZxGBVcSyA== +"@standardnotes/snjs@2.53.0": + version "2.53.0" + resolved "https://registry.yarnpkg.com/@standardnotes/snjs/-/snjs-2.53.0.tgz#151ff71dbc05d1d650fb8d6907d92af9122f5c91" + integrity sha512-xJLB1W4OP2ApbLZTuO/kVnuq4IS0LHR3aM5WsSmk3g84PiAjvOTYAf/hsUp2/YWq5msxx9wOUi3fB8YFieDqxg== dependencies: "@standardnotes/auth" "^3.15.4" "@standardnotes/common" "^1.9.0"