import { html, type TemplateResult } from '@design.estate/dees-element'; import type { DeesInputFileupload } from './component.js'; export const renderFileupload = (component: DeesInputFileupload): TemplateResult => { const hasFiles = component.value.length > 0; const showClearAll = hasFiles && component.value.length > 1; return html`
${component.label ? html` ` : ''}
${hasFiles ? html` ${showClearAll ? html`
` : ''}
${component.value.map((fileArg) => { const fileType = component.getFileType(fileArg); const isImage = fileType === 'image'; return html`
${isImage && component.canShowPreview(fileArg) ? html` ${fileArg.name} ` : html` `}
${fileArg.name}
${component.formatFileSize(fileArg.size)}
`; })}
` : html`
Drag files here or click to browse
`}
${component.isLoading ? html`
Opening... ` : html` ${component.buttonText} `}
${component.description ? html`
${component.description}
` : ''} ${component.validationState === 'invalid' && component.validationMessage ? html`
${component.validationMessage}
` : ''}
`; };