UNPKG

@cainiaofe/cn-ui-m

Version:
61 lines (60 loc) 2.54 kB
import { __assign, __rest } from "tslib"; import $i18n from "../../locales/i18n"; import React from 'react'; import { getRequestService, CnUploadContext, defaultCnUploadRequestConfig, } from '@cainiaofe/cn-ui-common'; import { getErrorMsg } from '@cainiaofe/cn-ui-utils'; import { CnMessage } from "../cn-message"; import { UploadView } from './components/upload'; export var OSSUpload = React.forwardRef(function (props, ref) { var service = props.service, requestConfig = props.requestConfig, onErrorProps = props.onError, placeholder = props.placeholder, uploadConfirm = props.uploadConfirm, restProps = __rest(props, ["service", "requestConfig", "onError", "placeholder", "uploadConfirm"]); var fetchOSSToken = function (params) { var _a; var getRequestConfig = function () { // 标准逻辑 if (requestConfig) return requestConfig; // start 兼容逻辑 var _service = service; if (_service) { // 自定义函数 if (typeof _service === 'function') { return { service: _service }; } // requestConfig 配置 return _service; } // end 兼容逻辑 return defaultCnUploadRequestConfig; }; return (_a = getRequestService(getRequestConfig())) === null || _a === void 0 ? void 0 : _a(params); }; /** * 组件内部主动通过 CnMessage.error 暴露错误内容 */ var onError = function (file) { var error = file.error; if (!error) return; var result = onErrorProps === null || onErrorProps === void 0 ? void 0 : onErrorProps(error, file); if (result === false) return; var msg = getErrorMsg(error, file.errorMsg || $i18n.get({ id: 'OssCredentialAcquisitionFailed', dm: 'OSS凭证获取失败', })); CnMessage.error({ content: msg }); }; return (React.createElement(CnUploadContext, __assign({}, restProps, { onError: onError, fetchOSSToken: fetchOSSToken }), React.createElement(UploadView, __assign({ ref: ref, placeholder: placeholder, uploadConfirm: uploadConfirm }, restProps)))); }); OSSUpload.defaultProps = { headers: {}, multiple: false, readOnly: false, showPreview: true, showRemove: true, showDownload: true, openFileDialogOnClick: true, }; OSSUpload.displayName = 'CnOSSUpload';