feat: persist tags expanded state

This commit is contained in:
Mo
2022-02-08 22:27:00 -06:00
parent dcf07f70fd
commit 0c3d1fce0c
4 changed files with 18 additions and 9 deletions

View File

@@ -41,7 +41,7 @@ export const TagsListItem: FunctionComponent<Props> = 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<Props> = 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(() => {

View File

@@ -267,6 +267,12 @@ export class TagsState {
this.selected_ = tag;
}
public setExpanded(tag: SNTag, exapnded: boolean) {
this.application.changeAndSaveItem<TagMutator>(tag.uuid, (mutator) => {
mutator.expanded = exapnded;
});
}
public get selectedUuid(): UuidString | undefined {
return this.selected_?.uuid;
}

View File

@@ -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",

View File

@@ -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"