asterisks, forMimeType required

This commit is contained in:
Lone Iversen
2024-08-26 10:10:44 +02:00
committed by Jacob Overgaard
parent 7f6067e8ae
commit d5ea707c16
3 changed files with 7 additions and 5 deletions

View File

@@ -3,5 +3,5 @@ import type { ManifestElement } from '@umbraco-cms/backoffice/extension-api';
export interface ManifestFileUploadPreview extends ManifestElement<UmbFileUploadPreviewElement> {
type: 'fileUploadPreview';
forMimeTypes?: Array<string>;
forMimeTypes: Array<string>;
}

View File

@@ -63,7 +63,7 @@ export class UmbInputUploadFieldElement extends UmbLitElement {
private _extensions?: string[];
@state()
private _previewAlias = '';
private _previewAlias?: string;
@query('#dropzone')
private _dropzone?: UUIFileDropzoneElement;
@@ -92,7 +92,7 @@ export class UmbInputUploadFieldElement extends UmbLitElement {
#getPreviewElementAlias() {
const previews = this.#previewers.getValue();
const fallbackAlias = previews.find((preview) => !preview.forMimeTypes?.length)?.alias ?? '';
const fallbackAlias = previews.find((preview) => preview.forMimeTypes.includes('*/*'))?.alias;
const mimeType = this.#getMimeTypeFromPath(this._src);
if (!mimeType) return fallbackAlias;
@@ -101,7 +101,8 @@ export class UmbInputUploadFieldElement extends UmbLitElement {
return preview.forMimeTypes?.find((type) => {
if (mimeType === type) preview.alias;
const snippet = type.replace('*', '');
const snippet = type.replace(/\*/g, '');
if (mimeType.startsWith(snippet)) return preview.alias;
if (mimeType.endsWith(snippet)) return preview.alias;
return undefined;
@@ -174,7 +175,7 @@ export class UmbInputUploadFieldElement extends UmbLitElement {
`;
}
#renderFile(src: string, previewAlias: string, file?: File) {
#renderFile(src: string, previewAlias?: string, file?: File) {
if (!previewAlias) return 'An error occurred. No previewer found for the file type.';
return html`
<div id="wrapper">

View File

@@ -13,6 +13,7 @@ const previews: Array<ManifestFileUploadPreview> = [
alias: 'Umb.FileUploadPreview.File',
name: 'File File Upload Preview',
element: () => import('./input-upload-field-file.element.js'),
forMimeTypes: ['*/*'],
},
{
type: 'fileUploadPreview',