@uimkit/uikit-react
Version:
<img style="width:64px" src="https://mgmt.uimkit.chat/media/img/avatar.png"/>
63 lines (56 loc) • 3.47 kB
JavaScript
;
Object.defineProperty(exports, '__esModule', { value: true });
var tslib = require('tslib');
var React = require('react');
var constants = require('../../constants.js');
var models = require('../../types/models.js');
require('../../types/events.js');
require('../../context/TranslationContext.js');
require('../../context/UIKitContext.js');
require('../../context/ComponentContext.js');
require('../../context/ChatActionContext.js');
require('../../context/MessageInputContext.js');
var UIMessageContext = require('../../context/UIMessageContext.js');
var ChatStateContext = require('../../context/ChatStateContext.js');
function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
var React__default = /*#__PURE__*/_interopDefaultLegacy(React);
function MessageProgressWithContext(props) {
var message = props.message, children = props.children, propsProgress = props.Progress, _a = props.isShow, propsIsShow = _a === void 0 ? true : _a;
var _b = React.useState(), progressMessage = _b[0], setProgressMessage = _b[1];
var _c = React.useState(0); _c[0]; var setProgress = _c[1];
var uploadPenddingMessageList = ChatStateContext.useChatStateContext('MessageProgressWithContext').uploadPenddingMessageList;
var _d = UIMessageContext.useUIMessageContext('MessageProgressWithContext'), _e = _d.isShowProgress, contextIsShow = _e === void 0 ? false : _e, contextProgress = _d.Progress;
var Progress = propsProgress || contextProgress;
var isShow = propsIsShow || contextIsShow;
var handleLoading = function () { return !!(((message === null || message === void 0 ? void 0 : message.type) === models.MessageType.Image
|| (message === null || message === void 0 ? void 0 : message.type) === models.MessageType.Video
|| (message === null || message === void 0 ? void 0 : message.type) === models.MessageType.File) && (!(message === null || message === void 0 ? void 0 : message.status) || (message === null || message === void 0 ? void 0 : message.status) === constants.MESSAGE_STATUS.UNSEND)); };
React.useEffect(function () {
if (uploadPenddingMessageList && uploadPenddingMessageList.length > 0) {
uploadPenddingMessageList.map(function (item) {
if ((item === null || item === void 0 ? void 0 : item.id) === (message === null || message === void 0 ? void 0 : message.id)) {
setProgressMessage(item);
setProgress(item === null || item === void 0 ? void 0 : item.progress);
}
return item;
});
}
}, [uploadPenddingMessageList]);
if (!isShow) {
return null;
}
if (Progress) {
return React__default["default"].createElement(Progress, { message: progressMessage });
}
return handleLoading() && (React__default["default"].createElement("div", { className: "progress-box" },
React__default["default"].createElement("span", { className: "progress", style: {
width: "".concat(message.progress * 100, "%"),
} }),
children));
}
var MemoizedMessageProgress = React__default["default"].memo(MessageProgressWithContext);
function MessageProgress(props) {
return (React__default["default"].createElement(MemoizedMessageProgress, tslib.__assign({}, props)));
}
exports.MessageProgress = MessageProgress;
//# sourceMappingURL=MessageProgress.js.map