Skip to content

Commit a60b177

Browse files
committed
feat: use the <umb-imaging-thumbnail> element in the media picker modal
1 parent 83e2785 commit a60b177

File tree

1 file changed

+6
-29
lines changed

1 file changed

+6
-29
lines changed

src/packages/media/media/modals/media-picker/media-picker-modal.element.ts

Lines changed: 6 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -2,13 +2,11 @@ import { UmbMediaItemRepository } from '../../repository/index.js';
22
import { UmbMediaTreeRepository } from '../../tree/media-tree.repository.js';
33
import { UMB_MEDIA_ROOT_ENTITY_TYPE } from '../../entity.js';
44
import type { UmbDropzoneElement } from '../../dropzone/dropzone.element.js';
5-
import type { UmbMediaItemModel } from '../../repository/index.js';
65
import type { UmbMediaCardItemModel, UmbMediaPathModel } from './types.js';
76
import type { UmbMediaPickerFolderPathElement } from './components/media-picker-folder-path.element.js';
87
import type { UmbMediaPickerModalData, UmbMediaPickerModalValue } from './media-picker-modal.token.js';
98
import { css, html, customElement, state, repeat, ifDefined, query } from '@umbraco-cms/backoffice/external/lit';
109
import { debounce } from '@umbraco-cms/backoffice/utils';
11-
import { UmbImagingRepository } from '@umbraco-cms/backoffice/imaging';
1210
import { UmbModalBaseElement } from '@umbraco-cms/backoffice/modal';
1311
import { UMB_CONTENT_PROPERTY_CONTEXT } from '@umbraco-cms/backoffice/content';
1412
import type { UUIInputEvent } from '@umbraco-cms/backoffice/external/uui';
@@ -22,13 +20,9 @@ export class UmbMediaPickerModalElement extends UmbModalBaseElement<
2220
> {
2321
#mediaTreeRepository = new UmbMediaTreeRepository(this); // used to get file structure
2422
#mediaItemRepository = new UmbMediaItemRepository(this); // used to search
25-
#imagingRepository = new UmbImagingRepository(this); // used to get image renditions
2623

2724
#dataType?: { unique: string };
2825

29-
@state()
30-
private _filter: (item: UmbMediaCardItemModel) => boolean = () => true;
31-
3226
@state()
3327
private _selectableFilter: (item: UmbMediaCardItemModel) => boolean = () => true;
3428

@@ -62,7 +56,6 @@ export class UmbMediaPickerModalElement extends UmbModalBaseElement<
6256
override async connectedCallback(): Promise<void> {
6357
super.connectedCallback();
6458

65-
if (this.data?.filter) this._filter = this.data?.filter;
6659
if (this.data?.pickableFilter) this._selectableFilter = this.data?.pickableFilter;
6760

6861
if (this.data?.startNode) {
@@ -87,27 +80,10 @@ export class UmbMediaPickerModalElement extends UmbModalBaseElement<
8780
take: 100,
8881
});
8982

90-
this.#mediaItemsCurrentFolder = await this.#mapMediaUrls(data?.items ?? []);
83+
this.#mediaItemsCurrentFolder = data?.items ?? [];
9184
this.#filterMediaItems();
9285
}
9386

94-
async #mapMediaUrls(items: Array<UmbMediaItemModel>): Promise<Array<UmbMediaCardItemModel>> {
95-
if (!items.length) return [];
96-
97-
const { data } = await this.#imagingRepository.requestThumbnailUrls(
98-
items.map((item) => item.unique),
99-
400,
100-
400,
101-
);
102-
103-
return items
104-
.map((item): UmbMediaCardItemModel => {
105-
const src = data?.find((media) => media.unique === item.unique)?.url;
106-
return { ...item, src };
107-
})
108-
.filter((item) => this._filter(item));
109-
}
110-
11187
#onOpen(item: UmbMediaCardItemModel) {
11288
this._currentMediaEntity = {
11389
name: item.name,
@@ -152,7 +128,7 @@ export class UmbMediaPickerModalElement extends UmbModalBaseElement<
152128
}
153129

154130
// Map urls for search results as we are going to show for all folders (as long they aren't trashed).
155-
this._mediaFilteredList = await this.#mapMediaUrls(data.filter((found) => found.isTrashed === false));
131+
this._mediaFilteredList = data.filter((found) => found.isTrashed === false);
156132
}
157133

158134
#debouncedSearch = debounce(() => {
@@ -240,9 +216,10 @@ export class UmbMediaPickerModalElement extends UmbModalBaseElement<
240216
@deselected=${() => this.#onDeselected(item)}
241217
?selected=${this.value?.selection?.find((value) => value === item.unique)}
242218
?selectable=${!disabled}>
243-
${item.src
244-
? html`<img src=${item.src} alt=${ifDefined(item.name)} />`
245-
: html`<umb-icon .name=${item.mediaType.icon}></umb-icon>`}
219+
<umb-imaging-thumbnail
220+
unique=${item.unique}
221+
alt=${item.name}
222+
icon=${item.mediaType.icon}></umb-imaging-thumbnail>
246223
</uui-card-media>
247224
`;
248225
}

0 commit comments

Comments
 (0)