feat: add parent chain tags when adding a tag

This commit is contained in:
Antonella Sgarlatta
2021-06-07 14:39:58 -03:00
parent c44c7348e9
commit 6617362783
3 changed files with 42 additions and 30 deletions

View File

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

View File

@@ -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();
} }

View File

@@ -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();
} }