/* eslint-disable @typescript-eslint/no-explicit-any */ /* eslint-disable react/require-default-props */ /* eslint-disable jsx-a11y/alt-text */ import classNames from 'classnames'; import PropTypes from 'prop-types'; import React from 'react'; import { tagPropType } from '../utils/helper'; // component - CoreUI / CImg const CImg = (props: any) => { const { className, // innerRef, fluid, block, thumbnail, shape, align, src, width, height, placeholderColor, fluidGrow, ...attributes } = props; let alignClass = ''; if (align === 'center') alignClass = 'mx-auto'; if (align === 'right') alignClass = 'float-right'; if (align === 'left') alignClass = 'float-left'; // render const classes = classNames( className, alignClass, thumbnail && 'img-thumbnail', fluid || (fluidGrow && 'img-fluid'), fluidGrow && 'w-100', block && 'd-block', shape ); if (src) { return ( <> ); } return ( <> ); }; CImg.propTypes = { tag: tagPropType, className: PropTypes.oneOfType([ PropTypes.string, PropTypes.array, PropTypes.object, ]), // innerRef: PropTypes.oneOfType([PropTypes.object, PropTypes.func]), src: PropTypes.string, width: PropTypes.oneOfType([PropTypes.number, PropTypes.string]), height: PropTypes.oneOfType([PropTypes.number, PropTypes.string]), block: PropTypes.bool, fluid: PropTypes.bool, fluidGrow: PropTypes.bool, shape: PropTypes.string, // oneOf(['', 'rounded']), thumbnail: PropTypes.bool, align: PropTypes.oneOf(['', 'left', 'right', 'center']), placeholderColor: PropTypes.string, alt: PropTypes.string, }; CImg.defaultProps = { placeholderColor: 'transparent', }; export default CImg;