Repository Details Manager: Prevent making requests for empty arrays (#19731)
* fix: Prevent Repository Details Manager making requests for empty arrays Fixes #19604 * Reworked to pass the `uniques` through to the `#requestNewDetails()` method The unique values are included as a closure, persisting after the `#init` promise is resolved. Rather than call `getUniques()` to get an async'd value. * Updated with Copilot suggestions https://github.com/umbraco/Umbraco-CMS/pull/19731#discussion_r2221512463
This commit is contained in:
@@ -88,7 +88,7 @@ export class UmbRepositoryDetailsManager<DetailType extends { unique: string }>
|
|||||||
this.removeUmbControllerByAlias('observeEntry_' + entry);
|
this.removeUmbControllerByAlias('observeEntry_' + entry);
|
||||||
});
|
});
|
||||||
|
|
||||||
this.#requestNewDetails();
|
this.#requestNewDetails(uniques);
|
||||||
},
|
},
|
||||||
null,
|
null,
|
||||||
);
|
);
|
||||||
@@ -181,13 +181,13 @@ export class UmbRepositoryDetailsManager<DetailType extends { unique: string }>
|
|||||||
return this.#entries.asObservablePart((items) => items.find((item) => item.unique === unique));
|
return this.#entries.asObservablePart((items) => items.find((item) => item.unique === unique));
|
||||||
}
|
}
|
||||||
|
|
||||||
async #requestNewDetails(): Promise<void> {
|
async #requestNewDetails(uniques?: Array<DetailType['unique']>): Promise<void> {
|
||||||
|
if (!uniques?.length) return;
|
||||||
|
|
||||||
await this.#init;
|
await this.#init;
|
||||||
if (!this.repository) throw new Error('Repository is not initialized');
|
if (!this.repository) throw new Error('Repository is not initialized');
|
||||||
|
|
||||||
const requestedUniques = this.getUniques();
|
const newRequestedUniques = uniques.filter((unique) => {
|
||||||
|
|
||||||
const newRequestedUniques = requestedUniques.filter((unique) => {
|
|
||||||
const item = this.#statuses.getValue().find((status) => status.unique === unique);
|
const item = this.#statuses.getValue().find((status) => status.unique === unique);
|
||||||
return !item;
|
return !item;
|
||||||
});
|
});
|
||||||
|
|||||||
Reference in New Issue
Block a user