UNPKG

@i-novus/ui-core

Version:

Базовые UI компоненты

36 lines (35 loc) 1.52 kB
import { jsx as _jsx } from "react/jsx-runtime"; import { useCallback } from 'react'; import classNames from 'classnames'; import { useConfigProvider } from '../../core'; import { UploadError } from './components/UploadError'; import { UploadInProgress } from './components/UploadInProgress'; import { UploadSuccess } from './components/UploadSuccess'; import { isUploadError, isUploadInProgress, isUploadSuccess } from './utils'; export const FileItem = ({ file, onCancelLoad, onRemove, visible = true, className, children, prefix, style, readOnly }) => { const { getPrefix } = useConfigProvider(); const prefixCls = getPrefix(prefix); const onCancelLoadFile = useCallback(() => { if (onCancelLoad) { onCancelLoad(file); } }, [onCancelLoad, file]); const onRemoveFile = useCallback(() => { if (onRemove) { onRemove(file); } }, [onRemove, file]); if (!visible) { return null; } if (isUploadError(file)) { return _jsx(UploadError, { prefix: prefix, file: file, onRemove: onRemoveFile }); } if (isUploadInProgress(file)) { return _jsx(UploadInProgress, { prefix: prefix, file: file, onCancel: onCancelLoadFile }); } if (isUploadSuccess(file) || readOnly) { return _jsx(UploadSuccess, { file: file, onRemove: onRemoveFile, readOnly: readOnly }); } return (_jsx("div", { className: classNames(`${prefixCls}-file-list-item`, className), style: style, children: children })); };