Skip to content

Commit d0f9354

Browse files
authored
[node] reintroduce applyChildrenChanges property (#64)
1 parent f0f1d50 commit d0f9354

File tree

2 files changed

+7
-0
lines changed

2 files changed

+7
-0
lines changed

Sources/CohesionKit/EntityStore.swift

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -183,9 +183,11 @@ public class EntityStore {
183183
// clear all children to avoid a removed child to be kept as child
184184
node.removeAllChildren()
185185

186+
node.applyChildrenChanges = false
186187
for keyPathContainer in entity.nestedEntitiesKeyPaths {
187188
keyPathContainer.accept(node, entity, modifiedAt, storeVisitor)
188189
}
190+
node.applyChildrenChanges = true
189191

190192
do {
191193
try node.updateEntity(entity, modifiedAt: modifiedAt)

Sources/CohesionKit/Storage/EntityNode.swift

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@ class EntityNode<T>: AnyEntityNode {
1919

2020
var value: Any { ref.value }
2121

22+
var applyChildrenChanges = true
2223
/// An observable entity reference
2324
let ref: Observable<T>
2425

@@ -84,6 +85,10 @@ class EntityNode<T>: AnyEntityNode {
8485
}
8586

8687
let subscription = childNode.ref.addObserver { [unowned self] newValue in
88+
guard self.applyChildrenChanges else {
89+
return
90+
}
91+
8792
update(&self.ref.value, newValue)
8893
self.onChange?(self)
8994
}

0 commit comments

Comments
 (0)