From e387ca3b579d3e8decc356278daca7a89c28b294 Mon Sep 17 00:00:00 2001 From: R Midhun Suresh Date: Sat, 26 Jul 2025 22:41:18 +0530 Subject: [PATCH] Use disposables in base view model --- src/viewmodels/base/BaseViewModel.ts | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/src/viewmodels/base/BaseViewModel.ts b/src/viewmodels/base/BaseViewModel.ts index f08edb8681..41cb3fbfd6 100644 --- a/src/viewmodels/base/BaseViewModel.ts +++ b/src/viewmodels/base/BaseViewModel.ts @@ -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

implements ViewModelNew { /** @@ -15,6 +16,7 @@ export abstract class BaseViewModel

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

implements ViewModelNew { callback(); } } + + /** + * Relinquish any resources held by this view-model. + */ + public dispose(): void { + this.disposables.dispose(); + } }