asObservablePart
This commit is contained in:
@@ -83,7 +83,7 @@ describe('ArrayState', () => {
|
||||
});
|
||||
|
||||
it('getObservablePart for a specific entry of array', (done) => {
|
||||
const subObserver = subject.getObservablePart((data) => data.find((x) => x.key === '2'));
|
||||
const subObserver = subject.asObservablePart((data) => data.find((x) => x.key === '2'));
|
||||
subObserver.subscribe((entry) => {
|
||||
if (entry) {
|
||||
expect(entry.another).to.be.equal(initialData[1].another);
|
||||
@@ -96,7 +96,7 @@ describe('ArrayState', () => {
|
||||
let amountOfCallbacks = 0;
|
||||
const newItem = { key: '4', another: 'myValue4' };
|
||||
|
||||
const subObserver = subject.getObservablePart((data) => data.find((x) => x.key === newItem.key));
|
||||
const subObserver = subject.asObservablePart((data) => data.find((x) => x.key === newItem.key));
|
||||
subObserver.subscribe((entry) => {
|
||||
amountOfCallbacks++;
|
||||
if (amountOfCallbacks === 1) {
|
||||
@@ -132,7 +132,7 @@ describe('ArrayState', () => {
|
||||
const newItem = { key: '2', another: 'myValue4' };
|
||||
subject.appendOne(newItem);
|
||||
|
||||
const subObserver = subject.getObservablePart((data) => data.find((x) => x.key === newItem.key));
|
||||
const subObserver = subject.asObservablePart((data) => data.find((x) => x.key === newItem.key));
|
||||
subObserver.subscribe((entry) => {
|
||||
expect(entry).to.be.equal(newItem); // Second callback should give us the right data:
|
||||
if (entry) {
|
||||
@@ -145,7 +145,7 @@ describe('ArrayState', () => {
|
||||
it('getObservablePart replays existing data to any amount of subscribers.', (done) => {
|
||||
let amountOfCallbacks = 0;
|
||||
|
||||
const subObserver = subject.getObservablePart((data) => data.find((x) => x.key === '2'));
|
||||
const subObserver = subject.asObservablePart((data) => data.find((x) => x.key === '2'));
|
||||
subObserver.subscribe((entry) => {
|
||||
if (entry) {
|
||||
amountOfCallbacks++;
|
||||
@@ -166,7 +166,7 @@ describe('ArrayState', () => {
|
||||
it('getObservablePart replays existing data to any amount of subscribers.', (done) => {
|
||||
let amountOfCallbacks = 0;
|
||||
|
||||
const subObserver = subject.getObservablePart((data) => data.find((x) => x.key === '2'));
|
||||
const subObserver = subject.asObservablePart((data) => data.find((x) => x.key === '2'));
|
||||
subObserver.subscribe((entry) => {
|
||||
if (entry) {
|
||||
amountOfCallbacks++;
|
||||
|
||||
@@ -35,7 +35,7 @@ describe('UmbDeepState', () => {
|
||||
it('use gObservablePart, updates on its specific change.', (done) => {
|
||||
let amountOfCallbacks = 0;
|
||||
|
||||
const subObserver = subject.getObservablePart((data) => data.another);
|
||||
const subObserver = subject.asObservablePart((data) => data.another);
|
||||
subObserver.subscribe((value) => {
|
||||
amountOfCallbacks++;
|
||||
if (amountOfCallbacks === 1) {
|
||||
|
||||
@@ -17,7 +17,7 @@ export class UmbDeepState<T> extends BehaviorSubject<T> {
|
||||
super(deepFreeze(initialData));
|
||||
}
|
||||
|
||||
getObservablePart<ReturnType>(
|
||||
asObservablePart<ReturnType>(
|
||||
mappingFunction: MappingFunction<T, ReturnType>,
|
||||
memoizationFunction?: MemoizationFunction<ReturnType>
|
||||
) {
|
||||
|
||||
@@ -26,7 +26,7 @@ describe('UmbObjectState', () => {
|
||||
it('use getObservablePart, updates on its specific change.', (done) => {
|
||||
let amountOfCallbacks = 0;
|
||||
|
||||
const subObserver = subject.getObservablePart((data) => data.another);
|
||||
const subObserver = subject.asObservablePart((data) => data.another);
|
||||
subObserver.subscribe((value) => {
|
||||
amountOfCallbacks++;
|
||||
if (amountOfCallbacks === 1) {
|
||||
|
||||
@@ -22,7 +22,7 @@ export class UmbEntityTreeStore
|
||||
* An observable to observe the root items
|
||||
* @memberof UmbEntityTreeStore
|
||||
*/
|
||||
rootItems = this._data.getObservablePart((items) => items.filter((item) => item.parentId === null));
|
||||
rootItems = this._data.asObservablePart((items) => items.filter((item) => item.parentId === null));
|
||||
|
||||
/**
|
||||
* Returns an observable to observe the children of a given parent
|
||||
@@ -31,7 +31,7 @@ export class UmbEntityTreeStore
|
||||
* @memberof UmbEntityTreeStore
|
||||
*/
|
||||
childrenOf(parentId: string | null) {
|
||||
return this._data.getObservablePart((items) => items.filter((item) => item.parentId === parentId));
|
||||
return this._data.asObservablePart((items) => items.filter((item) => item.parentId === parentId));
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -41,6 +41,6 @@ export class UmbEntityTreeStore
|
||||
* @memberof UmbEntityTreeStore
|
||||
*/
|
||||
items(ids: Array<string | null>) {
|
||||
return this._data.getObservablePart((items) => items.filter((item) => ids.includes(item.id ?? '')));
|
||||
return this._data.asObservablePart((items) => items.filter((item) => ids.includes(item.id ?? '')));
|
||||
}
|
||||
}
|
||||
|
||||
@@ -22,7 +22,7 @@ export class UmbFileSystemTreeStore
|
||||
* An observable to observe the root items
|
||||
* @memberof UmbFileSystemTreeStore
|
||||
*/
|
||||
rootItems = this._data.getObservablePart((items) => items.filter((item) => item.path?.includes('/') === false));
|
||||
rootItems = this._data.asObservablePart((items) => items.filter((item) => item.path?.includes('/') === false));
|
||||
|
||||
/**
|
||||
* Returns an observable to observe the children of a given parent
|
||||
@@ -31,7 +31,7 @@ export class UmbFileSystemTreeStore
|
||||
* @memberof UmbFileSystemTreeStore
|
||||
*/
|
||||
childrenOf(parentPath: string | null) {
|
||||
return this._data.getObservablePart((items) =>
|
||||
return this._data.asObservablePart((items) =>
|
||||
items.filter((item) => item.path?.startsWith(parentPath + '/') || parentPath === null)
|
||||
);
|
||||
}
|
||||
@@ -43,6 +43,6 @@ export class UmbFileSystemTreeStore
|
||||
* @memberof UmbFileSystemTreeStore
|
||||
*/
|
||||
items(paths: Array<string>) {
|
||||
return this._data.getObservablePart((items) => items.filter((item) => paths.includes(item.path ?? '')));
|
||||
return this._data.asObservablePart((items) => items.filter((item) => paths.includes(item.path ?? '')));
|
||||
}
|
||||
}
|
||||
|
||||
@@ -25,11 +25,11 @@ export class UmbWorkspacePropertyContext<ValueType = any> {
|
||||
|
||||
#data = new UmbObjectState<WorkspacePropertyData<ValueType>>({});
|
||||
|
||||
public readonly alias = this.#data.getObservablePart((data) => data.alias);
|
||||
public readonly label = this.#data.getObservablePart((data) => data.label);
|
||||
public readonly description = this.#data.getObservablePart((data) => data.description);
|
||||
public readonly value = this.#data.getObservablePart((data) => data.value);
|
||||
public readonly configValues = this.#data.getObservablePart((data) => data.config);
|
||||
public readonly alias = this.#data.asObservablePart((data) => data.alias);
|
||||
public readonly label = this.#data.asObservablePart((data) => data.label);
|
||||
public readonly description = this.#data.asObservablePart((data) => data.description);
|
||||
public readonly value = this.#data.asObservablePart((data) => data.value);
|
||||
public readonly configValues = this.#data.asObservablePart((data) => data.config);
|
||||
|
||||
#configCollection = new UmbClassState<UmbDataTypeConfigCollection | undefined>(undefined);
|
||||
public readonly config = this.#configCollection.asObservable();
|
||||
|
||||
@@ -46,7 +46,7 @@ export class UmbWorkspaceSplitViewManager {
|
||||
}
|
||||
|
||||
public activeVariantByIndex(index: number) {
|
||||
return this.#activeVariantsInfo.getObservablePart((data) => data[index] || undefined);
|
||||
return this.#activeVariantsInfo.asObservablePart((data) => data[index] || undefined);
|
||||
}
|
||||
|
||||
public switchVariant(index: number, variantId: UmbVariantId) {
|
||||
|
||||
@@ -32,9 +32,9 @@ export class UmbWorkspaceVariantContext {
|
||||
#currentVariant = new UmbObjectState<DocumentVariantResponseModel | undefined>(undefined);
|
||||
currentVariant = this.#currentVariant.asObservable();
|
||||
|
||||
name = this.#currentVariant.getObservablePart((x) => x?.name);
|
||||
culture = this.#currentVariant.getObservablePart((x) => x?.culture);
|
||||
segment = this.#currentVariant.getObservablePart((x) => x?.segment);
|
||||
name = this.#currentVariant.asObservablePart((x) => x?.name);
|
||||
culture = this.#currentVariant.asObservablePart((x) => x?.culture);
|
||||
segment = this.#currentVariant.asObservablePart((x) => x?.segment);
|
||||
|
||||
#variantId = new UmbClassState<UmbVariantId | undefined>(undefined);
|
||||
variantId = this.#variantId.asObservable();
|
||||
|
||||
@@ -35,7 +35,7 @@ export class UmbDocumentBlueprintStore extends UmbStoreBase {
|
||||
this._data.append(data);
|
||||
});
|
||||
|
||||
return this._data.getObservablePart((documents) => documents.find((document) => document.id === id));
|
||||
return this._data.asObservablePart((documents) => documents.find((document) => document.id === id));
|
||||
}
|
||||
|
||||
getScaffold(entityType: string, parentId: string | null) {
|
||||
|
||||
@@ -39,7 +39,7 @@ export class UmbDocumentTypeStore extends UmbStoreBase {
|
||||
* @memberof UmbDocumentTypeStore
|
||||
*/
|
||||
byId(id: DocumentTypeResponseModel['id']) {
|
||||
return this._data.getObservablePart((x) => x.find((y) => y.id === id));
|
||||
return this._data.asObservablePart((x) => x.find((y) => y.id === id));
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
@@ -35,7 +35,7 @@ export class UmbDocumentStore extends UmbStoreBase {
|
||||
* @memberof UmbDocumentStore
|
||||
*/
|
||||
byId(id: DocumentResponseModel['id']) {
|
||||
return this._data.getObservablePart((x) => x.find((y) => y.id === id));
|
||||
return this._data.asObservablePart((x) => x.find((y) => y.id === id));
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
@@ -35,12 +35,12 @@ export class UmbDocumentWorkspaceContext
|
||||
* The document is the current state/draft version of the document.
|
||||
*/
|
||||
#draft = new UmbObjectState<EntityType | undefined>(undefined);
|
||||
readonly unique = this.#draft.getObservablePart((data) => data?.id);
|
||||
readonly documentTypeKey = this.#draft.getObservablePart((data) => data?.contentTypeId);
|
||||
readonly unique = this.#draft.asObservablePart((data) => data?.id);
|
||||
readonly documentTypeKey = this.#draft.asObservablePart((data) => data?.contentTypeId);
|
||||
|
||||
readonly variants = this.#draft.getObservablePart((data) => data?.variants || []);
|
||||
readonly urls = this.#draft.getObservablePart((data) => data?.urls || []);
|
||||
readonly templateId = this.#draft.getObservablePart((data) => data?.templateId || null);
|
||||
readonly variants = this.#draft.asObservablePart((data) => data?.variants || []);
|
||||
readonly urls = this.#draft.asObservablePart((data) => data?.urls || []);
|
||||
readonly templateId = this.#draft.asObservablePart((data) => data?.templateId || null);
|
||||
|
||||
readonly structure;
|
||||
readonly splitView;
|
||||
@@ -125,18 +125,18 @@ export class UmbDocumentWorkspaceContext
|
||||
}
|
||||
|
||||
propertyValuesOf(variantId?: UmbVariantId) {
|
||||
return this.#draft.getObservablePart((data) =>
|
||||
return this.#draft.asObservablePart((data) =>
|
||||
variantId ? data?.values?.filter((x) => variantId.compare(x)) : data?.values
|
||||
);
|
||||
}
|
||||
|
||||
propertyDataByAlias(propertyAlias: string, variantId?: UmbVariantId) {
|
||||
return this.#draft.getObservablePart((data) =>
|
||||
return this.#draft.asObservablePart((data) =>
|
||||
data?.values?.find((x) => x?.alias === propertyAlias && (variantId ? variantId.compare(x) : true))
|
||||
);
|
||||
}
|
||||
propertyValueByAlias(propertyAlias: string, variantId?: UmbVariantId) {
|
||||
return this.#draft.getObservablePart(
|
||||
return this.#draft.asObservablePart(
|
||||
(data) =>
|
||||
data?.values?.find((x) => x?.alias === propertyAlias && (variantId ? variantId.compare(x) : true))?.value
|
||||
);
|
||||
|
||||
@@ -11,7 +11,7 @@ export class UmbWorkspaceMediaTypeContext
|
||||
{
|
||||
#data = new UmbObjectState<MediaTypeDetails | undefined>(undefined);
|
||||
data = this.#data.asObservable();
|
||||
name = this.#data.getObservablePart((data) => data?.name);
|
||||
name = this.#data.asObservablePart((data) => data?.name);
|
||||
|
||||
constructor(host: UmbControllerHostElement) {
|
||||
super(host, new UmbMediaTypeRepository(host));
|
||||
|
||||
@@ -35,7 +35,7 @@ export class UmbMediaStore extends UmbStoreBase {
|
||||
* @memberof UmbMediaStore
|
||||
*/
|
||||
byId(id: MediaDetails['id']) {
|
||||
return this._data.getObservablePart((x) => x.find((y) => y.id === id));
|
||||
return this._data.asObservablePart((x) => x.find((y) => y.id === id));
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
@@ -11,7 +11,7 @@ export class UmbMediaWorkspaceContext
|
||||
{
|
||||
#data = new UmbObjectState<EntityType | undefined>(undefined);
|
||||
data = this.#data.asObservable();
|
||||
name = this.#data.getObservablePart((data) => data?.name);
|
||||
name = this.#data.asObservablePart((data) => data?.name);
|
||||
|
||||
constructor(host: UmbControllerHostElement) {
|
||||
super(host, new UmbMediaRepository(host));
|
||||
|
||||
@@ -31,7 +31,7 @@ export class UmbMemberGroupStore extends UmbStoreBase {
|
||||
* @memberof UmbMemberGroupStore
|
||||
*/
|
||||
byId(id: MemberGroupDetails['id']) {
|
||||
return this._data.getObservablePart((x) => x.find((y) => y.id === id));
|
||||
return this._data.asObservablePart((x) => x.find((y) => y.id === id));
|
||||
}
|
||||
|
||||
remove(uniques: string[]) {
|
||||
|
||||
@@ -11,7 +11,7 @@ export class UmbWorkspaceMemberGroupContext
|
||||
{
|
||||
#data = new UmbObjectState<EntityType | undefined>(undefined);
|
||||
data = this.#data.asObservable();
|
||||
name = this.#data.getObservablePart((data) => data?.name);
|
||||
name = this.#data.asObservablePart((data) => data?.name);
|
||||
|
||||
constructor(host: UmbControllerHostElement) {
|
||||
super(host, new UmbMemberGroupRepository(host));
|
||||
|
||||
@@ -25,7 +25,7 @@ export class UmbMemberTypeStore extends UmbStoreBase {
|
||||
* @memberof UmbMemberTypeStore
|
||||
*/
|
||||
byId(id: MemberTypeDetails['id']) {
|
||||
return this._data.getObservablePart((x) => x.find((y) => y.id === id));
|
||||
return this._data.asObservablePart((x) => x.find((y) => y.id === id));
|
||||
}
|
||||
|
||||
remove(uniques: string[]) {
|
||||
|
||||
@@ -11,7 +11,7 @@ export class UmbMemberTypeWorkspaceContext
|
||||
implements UmbEntityWorkspaceContextInterface<EntityType | undefined>
|
||||
{
|
||||
#data = new UmbObjectState<EntityType | undefined>(undefined);
|
||||
name = this.#data.getObservablePart((data) => data?.name);
|
||||
name = this.#data.asObservablePart((data) => data?.name);
|
||||
|
||||
constructor(host: UmbControllerHostElement) {
|
||||
super(host, new UmbMemberTypeRepository(host));
|
||||
|
||||
@@ -29,7 +29,7 @@ export class UmbDataTypeItemStore
|
||||
}
|
||||
|
||||
items(ids: Array<string>) {
|
||||
return this._data.getObservablePart((items) => items.filter((item) => ids.includes(item.id ?? '')));
|
||||
return this._data.asObservablePart((items) => items.filter((item) => ids.includes(item.id ?? '')));
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -41,7 +41,7 @@ export class UmbDataTypeStore extends UmbStoreBase<DataTypeResponseModel> {
|
||||
* @memberof UmbDataTypeStore
|
||||
*/
|
||||
byId(id: DataTypeResponseModel['id']) {
|
||||
return this._data.getObservablePart((x) => x.find((y) => y.id === id));
|
||||
return this._data.asObservablePart((x) => x.find((y) => y.id === id));
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -55,7 +55,7 @@ export class UmbDataTypeStore extends UmbStoreBase<DataTypeResponseModel> {
|
||||
|
||||
withPropertyEditorUiAlias(propertyEditorUiAlias: string) {
|
||||
// TODO: Use a model for the data-type tree items: ^^Most likely it should be parsed to the UmbEntityTreeStore as a generic type.
|
||||
return this._data.getObservablePart((items) =>
|
||||
return this._data.asObservablePart((items) =>
|
||||
items.filter((item) => (item as any).propertyEditorUiAlias === propertyEditorUiAlias)
|
||||
);
|
||||
}
|
||||
|
||||
@@ -12,8 +12,8 @@ export class UmbDataTypeWorkspaceContext
|
||||
#data = new UmbObjectState<DataTypeResponseModel | undefined>(undefined);
|
||||
data = this.#data.asObservable();
|
||||
|
||||
name = this.#data.getObservablePart((data) => data?.name);
|
||||
id = this.#data.getObservablePart((data) => data?.id);
|
||||
name = this.#data.asObservablePart((data) => data?.name);
|
||||
id = this.#data.asObservablePart((data) => data?.id);
|
||||
|
||||
constructor(host: UmbControllerHostElement) {
|
||||
super(host, new UmbDataTypeRepository(host));
|
||||
|
||||
@@ -26,6 +26,6 @@ export class UmbLanguageItemStore
|
||||
}
|
||||
|
||||
items(isoCodes: Array<string>) {
|
||||
return this._data.getObservablePart((items) => items.filter((item) => isoCodes.includes(item.isoCode ?? '')));
|
||||
return this._data.asObservablePart((items) => items.filter((item) => isoCodes.includes(item.isoCode ?? '')));
|
||||
}
|
||||
}
|
||||
|
||||
@@ -33,6 +33,6 @@ export class UmbLanguageStore extends UmbStoreBase {
|
||||
|
||||
// TODO: how do we best handle this? They might have a smaller data set than the details
|
||||
items(isoCodes: Array<string>) {
|
||||
return this._data.getObservablePart((items) => items.filter((item) => isoCodes.includes(item.isoCode ?? '')));
|
||||
return this._data.asObservablePart((items) => items.filter((item) => isoCodes.includes(item.isoCode ?? '')));
|
||||
}
|
||||
}
|
||||
|
||||
@@ -41,7 +41,7 @@ export class UmbRelationTypeStore extends UmbStoreBase {
|
||||
* @memberof UmbRelationTypeStore
|
||||
*/
|
||||
byId(id: RelationTypeResponseModel['id']) {
|
||||
return this._data.getObservablePart((x) => x.find((y) => y.id === id));
|
||||
return this._data.asObservablePart((x) => x.find((y) => y.id === id));
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
@@ -10,8 +10,8 @@ export class UmbRelationTypeWorkspaceContext
|
||||
{
|
||||
#data = new UmbObjectState<RelationTypeResponseModel | undefined>(undefined);
|
||||
data = this.#data.asObservable();
|
||||
name = this.#data.getObservablePart((data) => data?.name);
|
||||
id = this.#data.getObservablePart((data) => data?.id);
|
||||
name = this.#data.asObservablePart((data) => data?.name);
|
||||
id = this.#data.asObservablePart((data) => data?.id);
|
||||
|
||||
constructor(host: UmbControllerHostElement) {
|
||||
super(host, new UmbRelationTypeRepository(host));
|
||||
|
||||
@@ -38,11 +38,11 @@ export class UmbTagStore extends UmbStoreBase {
|
||||
* @memberof UmbTagStore
|
||||
*/
|
||||
byId(id: TagResponseModel['id']) {
|
||||
return this._data.getObservablePart((x) => x.find((y) => y.id === id));
|
||||
return this._data.asObservablePart((x) => x.find((y) => y.id === id));
|
||||
}
|
||||
|
||||
items(group: TagResponseModel['group'], culture: string) {
|
||||
return this._data.getObservablePart((items) =>
|
||||
return this._data.asObservablePart((items) =>
|
||||
items.filter((item) => item.group === group && item.culture === culture)
|
||||
);
|
||||
}
|
||||
@@ -54,7 +54,7 @@ export class UmbTagStore extends UmbStoreBase {
|
||||
// If we already has picked lets say 4 of them, the list will only show 1 more, even though there is more remaining in the database.
|
||||
|
||||
byQuery(group: TagResponseModel['group'], culture: string, query: string) {
|
||||
return this._data.getObservablePart((items) =>
|
||||
return this._data.asObservablePart((items) =>
|
||||
items.filter(
|
||||
(item) =>
|
||||
item.group === group &&
|
||||
|
||||
@@ -29,7 +29,7 @@ export class UmbTemplateItemStore
|
||||
}
|
||||
|
||||
items(ids: Array<string>) {
|
||||
return this._data.getObservablePart((items) => items.filter((item) => ids.includes(item.id ?? '')));
|
||||
return this._data.asObservablePart((items) => items.filter((item) => ids.includes(item.id ?? '')));
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -35,11 +35,11 @@ export class UmbTemplateStore extends UmbStoreBase {
|
||||
* @memberof UmbTemplateStore
|
||||
*/
|
||||
byId(id: TemplateResponseModel['id']) {
|
||||
return this._data.getObservablePart((x) => x.find((y) => y.id === id));
|
||||
return this._data.asObservablePart((x) => x.find((y) => y.id === id));
|
||||
}
|
||||
|
||||
items(uniques: string[]) {
|
||||
return this._data.getObservablePart((x) => x.filter((y) => uniques.includes(y.id)));
|
||||
return this._data.asObservablePart((x) => x.filter((y) => uniques.includes(y.id)));
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
@@ -29,7 +29,7 @@ export class UmbDictionaryStore extends UmbStoreBase {
|
||||
* @memberof UmbDictionaryStore
|
||||
*/
|
||||
byId(id: DictionaryItemResponseModel['id']) {
|
||||
return this._data.getObservablePart((x) => x.find((y) => y.id === id));
|
||||
return this._data.asObservablePart((x) => x.find((y) => y.id === id));
|
||||
}
|
||||
|
||||
remove(uniques: string[]) {
|
||||
|
||||
@@ -11,8 +11,8 @@ export class UmbDictionaryWorkspaceContext
|
||||
#data = new UmbObjectState<DictionaryItemResponseModel | undefined>(undefined);
|
||||
data = this.#data.asObservable();
|
||||
|
||||
name = this.#data.getObservablePart((data) => data?.name);
|
||||
dictionary = this.#data.getObservablePart((data) => data);
|
||||
name = this.#data.asObservablePart((data) => data?.name);
|
||||
dictionary = this.#data.asObservablePart((data) => data);
|
||||
|
||||
constructor(host: UmbControllerHostElement) {
|
||||
super(host, new UmbDictionaryRepository(host));
|
||||
|
||||
@@ -13,7 +13,7 @@ export type UmbCurrentUserHistoryItem = {
|
||||
|
||||
export class UmbCurrentUserHistoryStore extends UmbStoreBase<UmbCurrentUserHistoryItem> {
|
||||
public readonly history = this._data.asObservable();
|
||||
public readonly latestHistory = this._data.getObservablePart((historyItems) => historyItems.slice(-10));
|
||||
public readonly latestHistory = this._data.asObservablePart((historyItems) => historyItems.slice(-10));
|
||||
|
||||
constructor(host: UmbControllerHost) {
|
||||
super(
|
||||
|
||||
@@ -29,7 +29,7 @@ export class UmbUserGroupItemStore
|
||||
}
|
||||
|
||||
items(ids: Array<string>) {
|
||||
return this._data.getObservablePart((items) => items.filter((item) => ids.includes(item.id ?? '')));
|
||||
return this._data.asObservablePart((items) => items.filter((item) => ids.includes(item.id ?? '')));
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -58,7 +58,7 @@ export class UmbUserGroupStore extends UmbStoreBase implements UmbEntityDetailSt
|
||||
this.#groups.append([data]);
|
||||
});
|
||||
|
||||
return this.#groups.getObservablePart((userGroups) => userGroups.find((userGroup) => userGroup.id === id));
|
||||
return this.#groups.asObservablePart((userGroups) => userGroups.find((userGroup) => userGroup.id === id));
|
||||
}
|
||||
|
||||
async save(userGroups: Array<UserGroupDetails>) {
|
||||
|
||||
@@ -29,7 +29,7 @@ export class UmbUserItemStore
|
||||
}
|
||||
|
||||
items(ids: Array<string>) {
|
||||
return this._data.getObservablePart((items) => items.filter((item) => ids.includes(item.id ?? '')));
|
||||
return this._data.asObservablePart((items) => items.filter((item) => ids.includes(item.id ?? '')));
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -34,7 +34,7 @@ export class UmbUserStore extends UmbStoreBase {
|
||||
* @memberof UmbUserStore
|
||||
*/
|
||||
byId(id: UserResponseModel['id']) {
|
||||
return this._data.getObservablePart((x) => x.find((y) => y.id === id));
|
||||
return this._data.asObservablePart((x) => x.find((y) => y.id === id));
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
@@ -4,8 +4,8 @@ import { Meta } from '@storybook/addon-docs';
|
||||
|
||||
# Store
|
||||
|
||||
A store is the link between a Resource and a data implementation. A store is mainly taken form as a Context, In other words we will have to Consume the Context(Store) to get the Store.
|
||||
Generally a Store will be holding one or more RxJS Subjects, each Subject is made available for Subscription via a RxJS Observable.
|
||||
A store is the link between a Resource and a Repository. A store is mainly taken form as a Context, In other words we will have to Consume the Context(Store) to get the Store.
|
||||
Generally a Store will be holding one or more State Objects, each Subject is made available for Observation via a Observables.
|
||||
|
||||
### A Simple Store:
|
||||
|
||||
@@ -75,7 +75,7 @@ class MyProductStore {
|
||||
});
|
||||
|
||||
// Return a Observable part, to listen for this specific product and the future changes of it.
|
||||
return this.#data.getObservablePart((documents) =>
|
||||
return this.#data.asObservablePart((documents) =>
|
||||
documents.find((document) => document.id === id)
|
||||
);
|
||||
}
|
||||
@@ -121,8 +121,8 @@ class MyProductStore {
|
||||
#products = new UmbArrayState(<Array<MyProductType>>[]);
|
||||
|
||||
public readonly products = this.#products.asObservable();
|
||||
public readonly amountOfProducts = this.#products.getObservablePart((products) => products.length);
|
||||
public readonly topTenRatedProducts = this.#products.getObservablePart((products) => products.sort((a, b) => b.rating - a.rating).slice(0, 10));
|
||||
public readonly amountOfProducts = this.#products.asObservablePart((products) => products.length);
|
||||
public readonly topTenRatedProducts = this.#products.asObservablePart((products) => products.sort((a, b) => b.rating - a.rating).slice(0, 10));
|
||||
|
||||
...
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user