UNPKG

@uimkit/uikit-react

Version:

<img style="width:64px" src="https://mgmt.uimkit.chat/media/img/avatar.png"/>

55 lines (52 loc) 3.09 kB
import { __assign } from 'tslib'; import React__default, { useState, useEffect } from 'react'; import { MESSAGE_STATUS } from '../../constants.js'; import { MessageType } from '../../types/models.js'; import '../../types/events.js'; import '../../context/TranslationContext.js'; import '../../context/UIKitContext.js'; import '../../context/ComponentContext.js'; import '../../context/ChatActionContext.js'; import '../../context/MessageInputContext.js'; import { useUIMessageContext } from '../../context/UIMessageContext.js'; import { useChatStateContext } from '../../context/ChatStateContext.js'; function MessageProgressWithContext(props) { var message = props.message, children = props.children, propsProgress = props.Progress, _a = props.isShow, propsIsShow = _a === void 0 ? true : _a; var _b = useState(), progressMessage = _b[0], setProgressMessage = _b[1]; var _c = useState(0); _c[0]; var setProgress = _c[1]; var uploadPenddingMessageList = useChatStateContext('MessageProgressWithContext').uploadPenddingMessageList; var _d = 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) === MessageType.Image || (message === null || message === void 0 ? void 0 : message.type) === MessageType.Video || (message === null || message === void 0 ? void 0 : message.type) === MessageType.File) && (!(message === null || message === void 0 ? void 0 : message.status) || (message === null || message === void 0 ? void 0 : message.status) === MESSAGE_STATUS.UNSEND)); }; 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.createElement(Progress, { message: progressMessage }); } return handleLoading() && (React__default.createElement("div", { className: "progress-box" }, React__default.createElement("span", { className: "progress", style: { width: "".concat(message.progress * 100, "%"), } }), children)); } var MemoizedMessageProgress = React__default.memo(MessageProgressWithContext); function MessageProgress(props) { return (React__default.createElement(MemoizedMessageProgress, __assign({}, props))); } export { MessageProgress }; //# sourceMappingURL=MessageProgress.js.map