Use disposables in base view model

This commit is contained in:
R Midhun Suresh 2025-07-26 22:41:18 +05:30
parent de4b48b170
commit e387ca3b57
No known key found for this signature in database

View File

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