|
|
|
@ -201,8 +201,18 @@ export function SingleTag(props: { |
|
|
|
|
] |
|
|
|
|
}) |
|
|
|
|
}} |
|
|
|
|
onCreateChild={(name: string) => { |
|
|
|
|
|
|
|
|
|
onMergeInto={(into: string) => { |
|
|
|
|
props.dispatch({ |
|
|
|
|
type: ManageTagsWindowActions.SetPendingChanges, |
|
|
|
|
value: [ |
|
|
|
|
...props.state.pendingChanges, |
|
|
|
|
{ |
|
|
|
|
type: TagChangeType.MergeTo, |
|
|
|
|
id: tag.tagId, |
|
|
|
|
into: into, |
|
|
|
|
} |
|
|
|
|
] |
|
|
|
|
}) |
|
|
|
|
}} |
|
|
|
|
tag={tag} |
|
|
|
|
changedTags={props.changedTags} |
|
|
|
@ -230,6 +240,9 @@ function annotateTagsWithChanges(tags: Record<string, any>, changes: TagChange[] |
|
|
|
|
case TagChangeType.MoveTo: |
|
|
|
|
retval[change.id].proposedParent = change.parent; |
|
|
|
|
break; |
|
|
|
|
case TagChangeType.MergeTo: |
|
|
|
|
retval[change.id].proposedMergeInto = change.into; |
|
|
|
|
break; |
|
|
|
|
case TagChangeType.Create: |
|
|
|
|
retval[change.id] = { |
|
|
|
|
isNewTag: true, |
|
|
|
@ -270,6 +283,9 @@ function applyTagsChanges(tags: Record<string, any>, changes: TagChange[]) { |
|
|
|
|
retval[change.id].parentId = change.parent; |
|
|
|
|
if (change.parent === null) { delete retval[change.id].parentId; } |
|
|
|
|
break; |
|
|
|
|
case TagChangeType.MergeTo: |
|
|
|
|
applyDelete(change.id); |
|
|
|
|
break; |
|
|
|
|
case TagChangeType.Create: |
|
|
|
|
retval[change.id] = { |
|
|
|
|
name: change.name, |
|
|
|
|