From 0d37de62b4539c687367ea666ef810b9c36736ce Mon Sep 17 00:00:00 2001 From: Jacob Overgaard <752371+iOvergaard@users.noreply.github.com> Date: Thu, 23 Feb 2023 16:06:48 +0100 Subject: [PATCH] add store to hold packages --- .../packages/repository/package.store.ts | 41 +++++++++++++++++++ 1 file changed, 41 insertions(+) create mode 100644 src/Umbraco.Web.UI.Client/src/backoffice/packages/repository/package.store.ts diff --git a/src/Umbraco.Web.UI.Client/src/backoffice/packages/repository/package.store.ts b/src/Umbraco.Web.UI.Client/src/backoffice/packages/repository/package.store.ts new file mode 100644 index 0000000000..5972bc8cf5 --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/backoffice/packages/repository/package.store.ts @@ -0,0 +1,41 @@ +import { BehaviorSubject } from 'rxjs'; +import { UmbContextToken } from '@umbraco-cms/context-api'; +import { UmbControllerHostInterface } from '@umbraco-cms/controller'; +import { UmbStoreBase } from '@umbraco-cms/store'; + +/** + * Store for Packages + * @export + * @extends {UmbStoreBase} + */ +export class UmbPackageStore extends UmbStoreBase { + /** + * Array of packages with extensions + * @private + */ + #data = new BehaviorSubject([]); // TODO: Replace with PackageModel + + /** + * Observable of packages with extensions + */ + rootItems = this.#data.asObservable(); + + /** + * Creates an instance of PackageStore. + * @param {UmbControllerHostInterface} host + * @memberof PackageStore + */ + constructor(host: UmbControllerHostInterface) { + super(host, UmbPackageStore.name); + } + + // TODO: Add model for packages when available + /** + * Append items to the store + */ + appendItems(packages: Array) { + this.#data.next(packages); + } +} + +export const UMB_PACKAGE_STORE_TOKEN = new UmbContextToken(UmbPackageStore.name);