Destroy view-models when destroying trees

This commit is contained in:
Thomas Nordquist
2019-05-07 13:18:02 +02:00
parent dfaae34cf5
commit 63f89d628e
7 changed files with 21 additions and 7 deletions

View File

@@ -97,7 +97,7 @@ class TreeNodeComponent extends React.Component<Props, State> {
treeNode.viewModel.change.subscribe(this.viewStateHasChanged)
}
private viewStateHasChanged = (msg: void) => {
private viewStateHasChanged = () => {
this.props.treeNode.viewModel && this.setState({ selected: this.props.treeNode.viewModel.isSelected() })
}

View File

@@ -1,6 +1,7 @@
import { Destroyable } from '../../../backend/src/Model/Destroyable'
import { EventDispatcher } from '../../../events'
export class TopicViewModel {
export class TopicViewModel implements Destroyable {
private selected: boolean
public change = new EventDispatcher<void, TopicViewModel>()
@@ -8,6 +9,10 @@ export class TopicViewModel {
this.selected = false
}
public destroy() {
this.change.removeAllListeners()
}
public isSelected() {
return this.selected
}