mirror of
https://github.com/vector-im/element-web.git
synced 2026-01-08 01:51:12 +01:00
Use disposables in base view model
This commit is contained in:
parent
de4b48b170
commit
e387ca3b57
@ -6,6 +6,7 @@ Please see LICENSE files in the repository root for full details.
|
||||
*/
|
||||
|
||||
import type { ViewModelNew } from "../../shared-components/ViewModel";
|
||||
import { Disposables } from "./Disposables";
|
||||
|
||||
export abstract class BaseViewModel<P> implements ViewModelNew {
|
||||
/**
|
||||
@ -15,6 +16,7 @@ export abstract class BaseViewModel<P> implements ViewModelNew {
|
||||
*/
|
||||
private snapshot: unknown = {};
|
||||
private callbacks: Set<() => void> = new Set();
|
||||
protected disposables = new Disposables();
|
||||
|
||||
public constructor(protected props: P) {}
|
||||
|
||||
@ -45,4 +47,11 @@ export abstract class BaseViewModel<P> implements ViewModelNew {
|
||||
callback();
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Relinquish any resources held by this view-model.
|
||||
*/
|
||||
public dispose(): void {
|
||||
this.disposables.dispose();
|
||||
}
|
||||
}
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user