UNPKG

design-react-kit

Version:

Componenti React per Bootstrap 5

37 lines 1.96 kB
import classNames from 'classnames'; import React from 'react'; import { Icon } from '../Icon/Icon'; export const Upload = ({ id, className, icon = 'it-upload', iconSize, label = 'Upload', tag = 'input', isAvatar, avatarImg, avatarSmall, testId, ...attributes }) => { const Tag = tag, classes = classNames(className, { upload: isAvatar ? false : true }, { 'upload-avatar': isAvatar }), classesAvatarWrapper = classNames({ 'avatar-upload-wrapper': true, 'size-sm': avatarSmall }), extraAttributes = { id, type: 'file' }; // associate the input field with the help text const infoId = id ? `${id}Description` : undefined; if (id) { extraAttributes['aria-describedby'] = infoId; } if (isAvatar) { return (React.createElement("div", { className: classesAvatarWrapper }, React.createElement("div", { className: 'avatar size-xxl avatar-upload' }, avatarImg, React.createElement("div", { className: 'upload-avatar-container' }, React.createElement(Tag, { ...attributes, ...extraAttributes, className: classes, "data-testid": testId }), React.createElement("label", { htmlFor: id }, React.createElement(Icon, { icon: icon, size: iconSize }), React.createElement("span", null, label)))), React.createElement("div", { className: 'avatar-upload-icon' }, React.createElement(Icon, { icon: 'it-camera', size: 'sm' })))); } return (React.createElement(React.Fragment, null, React.createElement(Tag, { ...attributes, ...extraAttributes, className: classes, "data-testid": testId }), React.createElement("label", { htmlFor: id }, React.createElement(Icon, { icon: icon, size: iconSize }), React.createElement("span", null, label)))); }; //# sourceMappingURL=Upload.js.map