feat: add parent chain tags when adding a tag
This commit is contained in:
@@ -69,7 +69,7 @@ export const NotesOptionsPanel = observer(({ appState }: Props) => {
|
|||||||
ref={panelRef}
|
ref={panelRef}
|
||||||
style={{
|
style={{
|
||||||
...position,
|
...position,
|
||||||
maxHeight
|
maxHeight,
|
||||||
}}
|
}}
|
||||||
className="sn-dropdown sn-dropdown--animated max-h-120 max-w-xs flex flex-col py-2 overflow-y-scroll fixed"
|
className="sn-dropdown sn-dropdown--animated max-h-120 max-w-xs flex flex-col py-2 overflow-y-scroll fixed"
|
||||||
>
|
>
|
||||||
|
|||||||
@@ -181,9 +181,15 @@ export class NoteTagsState {
|
|||||||
async addTagToActiveNote(tag: SNTag): Promise<void> {
|
async addTagToActiveNote(tag: SNTag): Promise<void> {
|
||||||
const { activeNote } = this;
|
const { activeNote } = this;
|
||||||
if (activeNote) {
|
if (activeNote) {
|
||||||
|
const parentChainTags = this.application.getTagParentChain(tag);
|
||||||
|
const tagsToAdd = [...parentChainTags, tag];
|
||||||
|
await Promise.all(
|
||||||
|
tagsToAdd.map(async (tag) => {
|
||||||
await this.application.changeItem(tag.uuid, (mutator) => {
|
await this.application.changeItem(tag.uuid, (mutator) => {
|
||||||
mutator.addItemAsRelationship(activeNote);
|
mutator.addItemAsRelationship(activeNote);
|
||||||
});
|
});
|
||||||
|
})
|
||||||
|
);
|
||||||
this.application.sync();
|
this.application.sync();
|
||||||
this.reloadTags();
|
this.reloadTags();
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -330,11 +330,17 @@ export class NotesState {
|
|||||||
|
|
||||||
async addTagToSelectedNotes(tag: SNTag): Promise<void> {
|
async addTagToSelectedNotes(tag: SNTag): Promise<void> {
|
||||||
const selectedNotes = Object.values(this.selectedNotes);
|
const selectedNotes = Object.values(this.selectedNotes);
|
||||||
|
const parentChainTags = this.application.getTagParentChain(tag);
|
||||||
|
const tagsToAdd = [...parentChainTags, tag];
|
||||||
|
await Promise.all(
|
||||||
|
tagsToAdd.map(async (tag) => {
|
||||||
await this.application.changeItem(tag.uuid, (mutator) => {
|
await this.application.changeItem(tag.uuid, (mutator) => {
|
||||||
for (const note of selectedNotes) {
|
for (const note of selectedNotes) {
|
||||||
mutator.addItemAsRelationship(note);
|
mutator.addItemAsRelationship(note);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
})
|
||||||
|
);
|
||||||
this.application.sync();
|
this.application.sync();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user