UNPKG

@cainiaofe/cn-ui-m

Version:
64 lines (63 loc) 2.57 kB
import { __assign, __rest } from "tslib"; import $i18n from "../../locales/i18n"; import './index.scss'; import React from 'react'; import { CnUploadContext, defaultCnUploadRequestConfig, getRequestService, } from '@cainiaofe/cn-ui-common'; import { CnMessage } from "../cn-message"; import { getErrorMsg } from '@cainiaofe/cn-ui-utils'; import { acceptList } from './constant/accept-list'; import { UploadView } from './view/update-view'; export var OSSImageUpload = React.forwardRef(function (props, ref) { var service = props.service, requestConfig = props.requestConfig, onErrorProps = props.onError, mode = props.mode, restProps = __rest(props, ["service", "requestConfig", "onError", "mode"]); 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, { accept: acceptList.join(', '), onError: onError, fetchOSSToken: fetchOSSToken }), React.createElement(UploadView, __assign({ mode: mode, ref: ref }, restProps)))); }); OSSImageUpload.defaultProps = { headers: {}, multiple: false, readOnly: false, showPreview: true, showRemove: true, openFileDialogOnClick: true, }; OSSImageUpload.displayName = 'CnOSSImageUpload';