@smart-link/rn-im 1.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +34 -0
- package/assets/avatars-busi-notify.png +0 -0
- package/assets/avatars-empty.png +0 -0
- package/assets/avatars-group.jpg +0 -0
- package/assets/avatars-man.jpg +0 -0
- package/assets/avatars-woman.jpg +0 -0
- package/assets/cloud-backup-begin.png +0 -0
- package/assets/cloud-backup.png +0 -0
- package/assets/group-mgr.png +0 -0
- package/assets/group-owner.png +0 -0
- package/assets/hook-black-double.png +0 -0
- package/assets/hook-black.png +0 -0
- package/assets/hook-blue-double.png +0 -0
- package/assets/hook-blue.png +0 -0
- package/assets/hook-green.png +0 -0
- package/assets/no_message.png +0 -0
- package/assets/share.jpeg +0 -0
- package/assets/voice-left-playing.gif +0 -0
- package/assets/voice-left.png +0 -0
- package/dist/api/addressList.d.ts +27 -0
- package/dist/api/addressList.js +18 -0
- package/dist/api/backup.d.ts +18 -0
- package/dist/api/backup.js +29 -0
- package/dist/api/file.d.ts +4 -0
- package/dist/api/file.js +49 -0
- package/dist/api/user.d.ts +8 -0
- package/dist/api/user.js +16 -0
- package/dist/components/CachedImage.d.ts +11 -0
- package/dist/components/CachedImage.js +48 -0
- package/dist/components/Camera/Camera.d.ts +10 -0
- package/dist/components/Camera/Camera.js +100 -0
- package/dist/components/Camera/CameraCapture.d.ts +32 -0
- package/dist/components/Camera/CameraCapture.js +360 -0
- package/dist/components/Camera/CameraResult.d.ts +11 -0
- package/dist/components/Camera/CameraResult.js +102 -0
- package/dist/components/ChatAvatar/ChatAvatar.d.ts +15 -0
- package/dist/components/ChatAvatar/ChatAvatar.js +134 -0
- package/dist/components/ChatAvatar/ChatAvatarId.d.ts +8 -0
- package/dist/components/ChatAvatar/ChatAvatarId.js +92 -0
- package/dist/components/ChatAvatar/ChatAvatarLocal.d.ts +9 -0
- package/dist/components/ChatAvatar/ChatAvatarLocal.js +76 -0
- package/dist/components/ChatAvatar/index.d.ts +2 -0
- package/dist/components/ChatAvatar/index.js +23 -0
- package/dist/components/Favicon.d.ts +7 -0
- package/dist/components/Favicon.js +74 -0
- package/dist/components/FormatTimeText.d.ts +8 -0
- package/dist/components/FormatTimeText.js +24 -0
- package/dist/components/Highlighter.d.ts +9 -0
- package/dist/components/Highlighter.js +42 -0
- package/dist/components/IndicatorText.d.ts +10 -0
- package/dist/components/IndicatorText.js +47 -0
- package/dist/components/LocalImage.d.ts +10 -0
- package/dist/components/LocalImage.js +37 -0
- package/dist/components/NetworkUnconnected.d.ts +3 -0
- package/dist/components/NetworkUnconnected.js +55 -0
- package/dist/components/PopoverWrapper.d.ts +13 -0
- package/dist/components/PopoverWrapper.js +78 -0
- package/dist/components/VideoPlayer.d.ts +13 -0
- package/dist/components/VideoPlayer.js +288 -0
- package/dist/components/styles.d.ts +19 -0
- package/dist/components/styles.js +23 -0
- package/dist/default-assets.d.ts +18 -0
- package/dist/default-assets.js +22 -0
- package/dist/hooks/useFormatMsgTime.d.ts +4 -0
- package/dist/hooks/useFormatMsgTime.js +53 -0
- package/dist/hooks/useImSelector.d.ts +15 -0
- package/dist/hooks/useImSelector.js +48 -0
- package/dist/hooks/useTranslation.d.ts +13 -0
- package/dist/hooks/useTranslation.js +12 -0
- package/dist/index.d.ts +7 -0
- package/dist/index.js +28 -0
- package/dist/init.d.ts +17 -0
- package/dist/init.js +116 -0
- package/dist/interface.d.ts +47 -0
- package/dist/interface.js +2 -0
- package/dist/locales/en/addressList.d.ts +3 -0
- package/dist/locales/en/addressList.js +31 -0
- package/dist/locales/index.d.ts +4 -0
- package/dist/locales/index.js +27 -0
- package/dist/locales/lao/addressList.d.ts +3 -0
- package/dist/locales/lao/addressList.js +31 -0
- package/dist/locales/zh/addressList.d.ts +30 -0
- package/dist/locales/zh/addressList.js +32 -0
- package/dist/pages/address-list/AddressList.d.ts +6 -0
- package/dist/pages/address-list/AddressList.js +158 -0
- package/dist/pages/address-list/CardInfo.d.ts +15 -0
- package/dist/pages/address-list/CardInfo.js +42 -0
- package/dist/pages/address-list/ChooseContact.d.ts +6 -0
- package/dist/pages/address-list/ChooseContact.js +197 -0
- package/dist/pages/address-list/Icons.d.ts +5 -0
- package/dist/pages/address-list/Icons.js +16 -0
- package/dist/pages/address-list/Organization.d.ts +13 -0
- package/dist/pages/address-list/Organization.js +221 -0
- package/dist/pages/address-list/UserDetail.d.ts +6 -0
- package/dist/pages/address-list/UserDetail.js +131 -0
- package/dist/pages/address-list/UserJobs.d.ts +6 -0
- package/dist/pages/address-list/UserJobs.js +50 -0
- package/dist/pages/address-list/UserSearch.d.ts +6 -0
- package/dist/pages/address-list/UserSearch.js +82 -0
- package/dist/pages/address-list/addressList.routes.d.ts +50 -0
- package/dist/pages/address-list/addressList.routes.js +50 -0
- package/dist/pages/collection/Collection.d.ts +3 -0
- package/dist/pages/collection/Collection.js +136 -0
- package/dist/pages/collection/ContentFactory.d.ts +6 -0
- package/dist/pages/collection/ContentFactory.js +167 -0
- package/dist/pages/collection/collection.routes.d.ts +9 -0
- package/dist/pages/collection/collection.routes.js +17 -0
- package/dist/pages/conversation/ForwardToConversation.d.ts +6 -0
- package/dist/pages/conversation/ForwardToConversation.js +172 -0
- package/dist/pages/conversation/List.d.ts +6 -0
- package/dist/pages/conversation/List.js +204 -0
- package/dist/pages/conversation/components/ConversationCard.d.ts +12 -0
- package/dist/pages/conversation/components/ConversationCard.js +142 -0
- package/dist/pages/conversation/components/ConversationOption.d.ts +11 -0
- package/dist/pages/conversation/components/ConversationOption.js +99 -0
- package/dist/pages/conversation/conversation.routes.d.ts +2 -0
- package/dist/pages/conversation/conversation.routes.js +74 -0
- package/dist/pages/conversation/setting/GroupTransfer.d.ts +6 -0
- package/dist/pages/conversation/setting/GroupTransfer.js +88 -0
- package/dist/pages/conversation/setting/OptionAvatars.d.ts +22 -0
- package/dist/pages/conversation/setting/OptionAvatars.js +152 -0
- package/dist/pages/conversation/setting/OptionCancelGroup.d.ts +6 -0
- package/dist/pages/conversation/setting/OptionCancelGroup.js +49 -0
- package/dist/pages/conversation/setting/OptionConversation.d.ts +19 -0
- package/dist/pages/conversation/setting/OptionConversation.js +71 -0
- package/dist/pages/conversation/setting/OptionGroup.d.ts +17 -0
- package/dist/pages/conversation/setting/OptionGroup.js +76 -0
- package/dist/pages/conversation/setting/OptionGroupManage.d.ts +6 -0
- package/dist/pages/conversation/setting/OptionGroupManage.js +68 -0
- package/dist/pages/conversation/setting/OptionGroupMoreMember.d.ts +4 -0
- package/dist/pages/conversation/setting/OptionGroupMoreMember.js +124 -0
- package/dist/pages/conversation/setting/OptionGroupNameOrNoticeEdit.d.ts +6 -0
- package/dist/pages/conversation/setting/OptionGroupNameOrNoticeEdit.js +149 -0
- package/dist/pages/conversation/setting/Setting.d.ts +6 -0
- package/dist/pages/conversation/setting/Setting.js +184 -0
- package/dist/pages/conversation/setting/SettingChatBg.d.ts +6 -0
- package/dist/pages/conversation/setting/SettingChatBg.js +95 -0
- package/dist/pages/index.d.ts +8 -0
- package/dist/pages/index.js +27 -0
- package/dist/pages/message/ChooseMember.d.ts +6 -0
- package/dist/pages/message/ChooseMember.js +185 -0
- package/dist/pages/message/MessageBackup/Bar.d.ts +8 -0
- package/dist/pages/message/MessageBackup/Bar.js +77 -0
- package/dist/pages/message/MessageBackup/MessageBackup.d.ts +10 -0
- package/dist/pages/message/MessageBackup/MessageBackup.js +133 -0
- package/dist/pages/message/MessageBackup/RestoreBackupPage.d.ts +6 -0
- package/dist/pages/message/MessageBackup/RestoreBackupPage.js +135 -0
- package/dist/pages/message/MessageBackup/StartBackupPage.d.ts +6 -0
- package/dist/pages/message/MessageBackup/StartBackupPage.js +135 -0
- package/dist/pages/message/MessageBackup/index.d.ts +3 -0
- package/dist/pages/message/MessageBackup/index.js +12 -0
- package/dist/pages/message/MessageBackup/utils.d.ts +46 -0
- package/dist/pages/message/MessageBackup/utils.js +239 -0
- package/dist/pages/message/MessageList.d.ts +6 -0
- package/dist/pages/message/MessageList.js +175 -0
- package/dist/pages/message/MessageRecord.d.ts +6 -0
- package/dist/pages/message/MessageRecord.js +97 -0
- package/dist/pages/message/components/BusiNotifyCard.d.ts +6 -0
- package/dist/pages/message/components/BusiNotifyCard.js +132 -0
- package/dist/pages/message/components/ChatBg.d.ts +7 -0
- package/dist/pages/message/components/ChatBg.js +65 -0
- package/dist/pages/message/components/MessageItem.d.ts +16 -0
- package/dist/pages/message/components/MessageItem.js +205 -0
- package/dist/pages/message/components/MessageItemQuote.d.ts +7 -0
- package/dist/pages/message/components/MessageItemQuote.js +83 -0
- package/dist/pages/message/components/MessageItemTips.d.ts +9 -0
- package/dist/pages/message/components/MessageItemTips.js +67 -0
- package/dist/pages/message/components/MessageOption.d.ts +11 -0
- package/dist/pages/message/components/MessageOption.js +360 -0
- package/dist/pages/message/components/MessagePayload.d.ts +14 -0
- package/dist/pages/message/components/MessagePayload.js +96 -0
- package/dist/pages/message/components/MessagePictureAlbum.d.ts +10 -0
- package/dist/pages/message/components/MessagePictureAlbum.js +105 -0
- package/dist/pages/message/components/MessageReceiptStatus.d.ts +6 -0
- package/dist/pages/message/components/MessageReceiptStatus.js +61 -0
- package/dist/pages/message/components/MessageUndo.d.ts +10 -0
- package/dist/pages/message/components/MessageUndo.js +75 -0
- package/dist/pages/message/components/MultipleBar/index.d.ts +5 -0
- package/dist/pages/message/components/MultipleBar/index.js +116 -0
- package/dist/pages/message/components/Payload/PayloadContact.d.ts +4 -0
- package/dist/pages/message/components/Payload/PayloadContact.js +86 -0
- package/dist/pages/message/components/Payload/PayloadFile.d.ts +4 -0
- package/dist/pages/message/components/Payload/PayloadFile.js +115 -0
- package/dist/pages/message/components/Payload/PayloadMultiple.d.ts +4 -0
- package/dist/pages/message/components/Payload/PayloadMultiple.js +102 -0
- package/dist/pages/message/components/Payload/PayloadNotify.d.ts +9 -0
- package/dist/pages/message/components/Payload/PayloadNotify.js +92 -0
- package/dist/pages/message/components/Payload/PayloadPicture.d.ts +7 -0
- package/dist/pages/message/components/Payload/PayloadPicture.js +69 -0
- package/dist/pages/message/components/Payload/PayloadShare.d.ts +4 -0
- package/dist/pages/message/components/Payload/PayloadShare.js +100 -0
- package/dist/pages/message/components/Payload/PayloadText.d.ts +4 -0
- package/dist/pages/message/components/Payload/PayloadText.js +128 -0
- package/dist/pages/message/components/Payload/PayloadVideo.d.ts +4 -0
- package/dist/pages/message/components/Payload/PayloadVideo.js +78 -0
- package/dist/pages/message/components/Payload/PayloadVoice.d.ts +6 -0
- package/dist/pages/message/components/Payload/PayloadVoice.js +155 -0
- package/dist/pages/message/components/Payload/PayloadWrapper.d.ts +12 -0
- package/dist/pages/message/components/Payload/PayloadWrapper.js +73 -0
- package/dist/pages/message/components/Payload/type.d.ts +9 -0
- package/dist/pages/message/components/Payload/type.js +2 -0
- package/dist/pages/message/components/ReceiptBack.d.ts +7 -0
- package/dist/pages/message/components/ReceiptBack.js +82 -0
- package/dist/pages/message/components/TextMixMessage.d.ts +9 -0
- package/dist/pages/message/components/TextMixMessage.js +62 -0
- package/dist/pages/message/components/TextMixQuote.d.ts +61 -0
- package/dist/pages/message/components/TextMixQuote.js +276 -0
- package/dist/pages/message/components/TextMixQuoteMessage.d.ts +14 -0
- package/dist/pages/message/components/TextMixQuoteMessage.js +74 -0
- package/dist/pages/message/components/UploadProgress.d.ts +9 -0
- package/dist/pages/message/components/UploadProgress.js +51 -0
- package/dist/pages/message/components/messageBar/EmojiPanel.d.ts +11 -0
- package/dist/pages/message/components/messageBar/EmojiPanel.js +101 -0
- package/dist/pages/message/components/messageBar/Icons.d.ts +18 -0
- package/dist/pages/message/components/messageBar/Icons.js +88 -0
- package/dist/pages/message/components/messageBar/MessageBar.d.ts +12 -0
- package/dist/pages/message/components/messageBar/MessageBar.js +273 -0
- package/dist/pages/message/components/messageBar/MessageInput.d.ts +21 -0
- package/dist/pages/message/components/messageBar/MessageInput.js +203 -0
- package/dist/pages/message/components/messageBar/OptionPanel.d.ts +8 -0
- package/dist/pages/message/components/messageBar/OptionPanel.js +240 -0
- package/dist/pages/message/components/messageBar/VoiceBar.d.ts +3 -0
- package/dist/pages/message/components/messageBar/VoiceBar.js +272 -0
- package/dist/pages/message/components/messageBar/index.d.ts +2 -0
- package/dist/pages/message/components/messageBar/index.js +23 -0
- package/dist/pages/message/message.routes.d.ts +2 -0
- package/dist/pages/message/message.routes.js +79 -0
- package/dist/pages/search/Search.d.ts +6 -0
- package/dist/pages/search/Search.js +84 -0
- package/dist/pages/search/SearchChatRecords.d.ts +3 -0
- package/dist/pages/search/SearchChatRecords.js +173 -0
- package/dist/pages/search/SearchFile.d.ts +3 -0
- package/dist/pages/search/SearchFile.js +202 -0
- package/dist/pages/search/SearchManager.d.ts +6 -0
- package/dist/pages/search/SearchManager.js +111 -0
- package/dist/pages/search/SearchPicturePage.d.ts +6 -0
- package/dist/pages/search/SearchPicturePage.js +56 -0
- package/dist/pages/search/components/ChatRecords.d.ts +6 -0
- package/dist/pages/search/components/ChatRecords.js +151 -0
- package/dist/pages/search/components/MyGroupChat.d.ts +6 -0
- package/dist/pages/search/components/MyGroupChat.js +128 -0
- package/dist/pages/search/components/PictureMulipleBar.d.ts +10 -0
- package/dist/pages/search/components/PictureMulipleBar.js +105 -0
- package/dist/pages/search/components/SearchFileList.d.ts +7 -0
- package/dist/pages/search/components/SearchFileList.js +173 -0
- package/dist/pages/search/components/SearchPictures.d.ts +8 -0
- package/dist/pages/search/components/SearchPictures.js +220 -0
- package/dist/pages/search/components/SearchShareLinkList.d.ts +7 -0
- package/dist/pages/search/components/SearchShareLinkList.js +112 -0
- package/dist/pages/search/components/SearchUser.d.ts +6 -0
- package/dist/pages/search/components/SearchUser.js +83 -0
- package/dist/pages/search/components/useSearchMessage.d.ts +11 -0
- package/dist/pages/search/components/useSearchMessage.js +68 -0
- package/dist/pages/search/search.routes.d.ts +2 -0
- package/dist/pages/search/search.routes.js +48 -0
- package/dist/pages/search/utils.d.ts +12 -0
- package/dist/pages/search/utils.js +42 -0
- package/dist/pages/types.d.ts +70 -0
- package/dist/pages/types.js +2 -0
- package/dist/slice/contact/contact.action.d.ts +1 -0
- package/dist/slice/contact/contact.action.js +2 -0
- package/dist/slice/contact/contact.slice.d.ts +12 -0
- package/dist/slice/contact/contact.slice.js +60 -0
- package/dist/slice/index.d.ts +9 -0
- package/dist/slice/index.js +15 -0
- package/dist/slice/panel/panel.slice.d.ts +8 -0
- package/dist/slice/panel/panel.slice.js +19 -0
- package/dist/slice/video/video.action.d.ts +5 -0
- package/dist/slice/video/video.action.js +65 -0
- package/dist/slice/video/video.slice.d.ts +17 -0
- package/dist/slice/video/video.slice.js +40 -0
- package/dist/utils/color.d.ts +1 -0
- package/dist/utils/color.js +9 -0
- package/dist/utils/common-action-sheet.d.ts +8 -0
- package/dist/utils/common-action-sheet.js +45 -0
- package/dist/utils/cookie.d.ts +1 -0
- package/dist/utils/cookie.js +29 -0
- package/dist/utils/emoji.d.ts +9 -0
- package/dist/utils/emoji.js +627 -0
- package/dist/utils/file-icon.d.ts +7 -0
- package/dist/utils/file-icon.js +80 -0
- package/dist/utils/file-operate.d.ts +1 -0
- package/dist/utils/file-operate.js +4 -0
- package/dist/utils/file.d.ts +23 -0
- package/dist/utils/file.js +255 -0
- package/dist/utils/golden-rectangle.d.ts +4 -0
- package/dist/utils/golden-rectangle.js +34 -0
- package/dist/utils/phone.d.ts +2 -0
- package/dist/utils/phone.js +24 -0
- package/dist/utils/request.d.ts +34 -0
- package/dist/utils/request.js +67 -0
- package/dist/utils/scroll.d.ts +1 -0
- package/dist/utils/scroll.js +12 -0
- package/dist/utils/summary.d.ts +2 -0
- package/dist/utils/summary.js +42 -0
- package/dist/utils/take-camera.d.ts +2 -0
- package/dist/utils/take-camera.js +41 -0
- package/dist/utils/text-mix.d.ts +9 -0
- package/dist/utils/text-mix.js +82 -0
- package/dist/utils/upload.d.ts +5 -0
- package/dist/utils/upload.js +80 -0
- package/package.json +79 -0
@@ -0,0 +1,74 @@
|
|
1
|
+
"use strict";
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
3
|
+
if (k2 === undefined) k2 = k;
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
7
|
+
}
|
8
|
+
Object.defineProperty(o, k2, desc);
|
9
|
+
}) : (function(o, m, k, k2) {
|
10
|
+
if (k2 === undefined) k2 = k;
|
11
|
+
o[k2] = m[k];
|
12
|
+
}));
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
15
|
+
}) : function(o, v) {
|
16
|
+
o["default"] = v;
|
17
|
+
});
|
18
|
+
var __importStar = (this && this.__importStar) || function (mod) {
|
19
|
+
if (mod && mod.__esModule) return mod;
|
20
|
+
var result = {};
|
21
|
+
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
22
|
+
__setModuleDefault(result, mod);
|
23
|
+
return result;
|
24
|
+
};
|
25
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
26
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
27
|
+
};
|
28
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
29
|
+
const react_1 = __importStar(require("react"));
|
30
|
+
const TextMixQuote_1 = require("./TextMixQuote");
|
31
|
+
const react_native_1 = require("react-native");
|
32
|
+
const TextMixMessage_1 = __importDefault(require("./TextMixMessage"));
|
33
|
+
const im_base_1 = require("@smart-link/im-base");
|
34
|
+
const { TEXT, VOICE, VIDEO, PICTURE, FILE, MULTIPLE } = im_base_1.PayloadType;
|
35
|
+
const TextMixQuoteMessage = (0, react_1.memo)(props => {
|
36
|
+
const { text, quote, textStyle, quoteStyle, quoteBgColor, onLongPressPhone, onLongPressURL, onPressQuote } = props;
|
37
|
+
let quotePayloadType;
|
38
|
+
let quoteMessageSeq;
|
39
|
+
const haveQuote = quote && Object.keys(quote).length > 0;
|
40
|
+
if (haveQuote) {
|
41
|
+
quotePayloadType = quote.quoteMessage ? quote.quoteMessage.payloadType : TEXT;
|
42
|
+
quoteMessageSeq = quote.quoteMessage ? quote.quoteMessage.messageSeq : null;
|
43
|
+
}
|
44
|
+
return (<>
|
45
|
+
{haveQuote && (<>
|
46
|
+
{quotePayloadType === TEXT && (<TextMixQuote_1.QuoteTextMix quoteTitle={quote.quoteTitle} quoteText={quote.quoteText} color={quoteBgColor} quoteStyle={quoteStyle} textStyle={textStyle} onLongPressPhone={onLongPressPhone} onLongPressURL={onLongPressURL} onPressQuote={() => {
|
47
|
+
onPressQuote === null || onPressQuote === void 0 ? void 0 : onPressQuote(quoteMessageSeq);
|
48
|
+
}}/>)}
|
49
|
+
|
50
|
+
{quotePayloadType === PICTURE && (<TextMixQuote_1.QuotePicture quoteTitle={quote.quoteTitle} quoteMessage={quote.quoteMessage} quoteStyle={quoteStyle} color={quoteBgColor} textStyle={textStyle} backgroundColor={quoteBgColor} borderColor={quoteBgColor} onPressQuote={() => {
|
51
|
+
onPressQuote && onPressQuote(quoteMessageSeq);
|
52
|
+
}}/>)}
|
53
|
+
|
54
|
+
{quotePayloadType === VIDEO && (<TextMixQuote_1.QuoteVideo quoteTitle={quote.quoteTitle} quoteMessage={quote.quoteMessage} quoteStyle={quoteStyle} color={quoteBgColor} textStyle={textStyle} backgroundColor={quoteBgColor} borderColor={quoteBgColor} onPressQuote={() => {
|
55
|
+
onPressQuote && onPressQuote(quoteMessageSeq);
|
56
|
+
}}/>)}
|
57
|
+
|
58
|
+
{quotePayloadType === FILE && (<TextMixQuote_1.QuoteFile quoteTitle={quote.quoteTitle} quoteMessage={quote.quoteMessage} color={quoteBgColor} textStyle={textStyle} onPressQuote={() => {
|
59
|
+
onPressQuote && onPressQuote(quoteMessageSeq);
|
60
|
+
}}/>)}
|
61
|
+
|
62
|
+
{quotePayloadType === VOICE && (<TextMixQuote_1.QuoteVoice quoteTitle={quote.quoteTitle} quoteMessage={quote.quoteMessage} color={quoteBgColor} textStyle={textStyle} onPressQuote={() => {
|
63
|
+
onPressQuote && onPressQuote(quoteMessageSeq);
|
64
|
+
}}/>)}
|
65
|
+
{quotePayloadType === MULTIPLE && (<TextMixQuote_1.QuoteMultiple quoteTitle={quote.quoteTitle} quoteMessage={quote.quoteMessage} color={quoteBgColor} textStyle={textStyle} onPressQuote={() => {
|
66
|
+
onPressQuote && onPressQuote(quoteMessageSeq);
|
67
|
+
}}/>)}
|
68
|
+
<react_native_1.View style={{ height: 10 }}/>
|
69
|
+
</>)}
|
70
|
+
|
71
|
+
<TextMixMessage_1.default text={text} textStyle={textStyle} onLongPressPhone={onLongPressPhone} onLongPressURL={onLongPressURL}/>
|
72
|
+
</>);
|
73
|
+
});
|
74
|
+
exports.default = TextMixQuoteMessage;
|
@@ -0,0 +1,9 @@
|
|
1
|
+
import React from 'react';
|
2
|
+
type UploadProgressProps = {
|
3
|
+
show: boolean;
|
4
|
+
width: number;
|
5
|
+
sendSize: number;
|
6
|
+
totalSize: number;
|
7
|
+
};
|
8
|
+
declare const _default: React.MemoExoticComponent<({ show, sendSize, totalSize, width }: UploadProgressProps) => React.JSX.Element | null>;
|
9
|
+
export default _default;
|
@@ -0,0 +1,51 @@
|
|
1
|
+
"use strict";
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
3
|
+
if (k2 === undefined) k2 = k;
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
7
|
+
}
|
8
|
+
Object.defineProperty(o, k2, desc);
|
9
|
+
}) : (function(o, m, k, k2) {
|
10
|
+
if (k2 === undefined) k2 = k;
|
11
|
+
o[k2] = m[k];
|
12
|
+
}));
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
15
|
+
}) : function(o, v) {
|
16
|
+
o["default"] = v;
|
17
|
+
});
|
18
|
+
var __importStar = (this && this.__importStar) || function (mod) {
|
19
|
+
if (mod && mod.__esModule) return mod;
|
20
|
+
var result = {};
|
21
|
+
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
22
|
+
__setModuleDefault(result, mod);
|
23
|
+
return result;
|
24
|
+
};
|
25
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
26
|
+
const react_1 = __importStar(require("react"));
|
27
|
+
const rn_ui_1 = require("@smart-link/rn-ui");
|
28
|
+
const react_native_progress_1 = require("react-native-progress");
|
29
|
+
const react_native_1 = require("react-native");
|
30
|
+
const file_1 = require("../../../utils/file");
|
31
|
+
const UploadProgress = ({ show, sendSize, totalSize, width }) => {
|
32
|
+
if (!show) {
|
33
|
+
return null;
|
34
|
+
}
|
35
|
+
if (!totalSize || totalSize === 0) {
|
36
|
+
return null;
|
37
|
+
}
|
38
|
+
const progress = sendSize / totalSize;
|
39
|
+
return (<react_native_1.View>
|
40
|
+
<react_native_progress_1.Bar progress={progress} width={width} height={(0, rn_ui_1.dp)(3)} color={'#999'} borderRadius={(0, rn_ui_1.dp)(1)}/>
|
41
|
+
<react_native_1.Text style={styles.rate}>{(0, file_1.numberToFileSize)(sendSize) + ' / ' + (0, file_1.numberToFileSize)(totalSize)}</react_native_1.Text>
|
42
|
+
</react_native_1.View>);
|
43
|
+
};
|
44
|
+
const styles = react_native_1.StyleSheet.create({
|
45
|
+
rate: {
|
46
|
+
alignSelf: 'flex-end',
|
47
|
+
fontSize: (0, rn_ui_1.dp)(10),
|
48
|
+
color: '#999'
|
49
|
+
}
|
50
|
+
});
|
51
|
+
exports.default = (0, react_1.memo)(UploadProgress);
|
@@ -0,0 +1,11 @@
|
|
1
|
+
import React from 'react';
|
2
|
+
type EmojiPanelProps = {
|
3
|
+
onCheck: (emoji: string) => void;
|
4
|
+
onBackspace: () => void;
|
5
|
+
};
|
6
|
+
export type EmojiPanelMethods = {
|
7
|
+
show: (height: number) => void;
|
8
|
+
hide: () => void;
|
9
|
+
};
|
10
|
+
declare const _default: React.MemoExoticComponent<React.ForwardRefExoticComponent<EmojiPanelProps & React.RefAttributes<EmojiPanelMethods>>>;
|
11
|
+
export default _default;
|
@@ -0,0 +1,101 @@
|
|
1
|
+
"use strict";
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
3
|
+
if (k2 === undefined) k2 = k;
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
7
|
+
}
|
8
|
+
Object.defineProperty(o, k2, desc);
|
9
|
+
}) : (function(o, m, k, k2) {
|
10
|
+
if (k2 === undefined) k2 = k;
|
11
|
+
o[k2] = m[k];
|
12
|
+
}));
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
15
|
+
}) : function(o, v) {
|
16
|
+
o["default"] = v;
|
17
|
+
});
|
18
|
+
var __importStar = (this && this.__importStar) || function (mod) {
|
19
|
+
if (mod && mod.__esModule) return mod;
|
20
|
+
var result = {};
|
21
|
+
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
22
|
+
__setModuleDefault(result, mod);
|
23
|
+
return result;
|
24
|
+
};
|
25
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
26
|
+
const react_1 = __importStar(require("react"));
|
27
|
+
const react_native_1 = require("react-native");
|
28
|
+
const emoji_1 = require("../../../../utils/emoji");
|
29
|
+
const Icons_1 = require("./Icons");
|
30
|
+
const emojis = Array.from(new Set([...emoji_1.face]));
|
31
|
+
const EMOJI_SIZE = (react_native_1.Dimensions.get('screen').width - 20) / 8;
|
32
|
+
const keyExtractor = (item) => item;
|
33
|
+
const EmojiPanel = (0, react_1.forwardRef)(({ onCheck, onBackspace }, ref) => {
|
34
|
+
const visible = (0, react_1.useRef)(false);
|
35
|
+
const [, forceUpdate] = (0, react_1.useState)({});
|
36
|
+
const timer = (0, react_1.useRef)(null);
|
37
|
+
const start = (0, react_1.useRef)(false);
|
38
|
+
//通过动画设置表情面板高度
|
39
|
+
const [heightAnim] = (0, react_1.useState)(new react_native_1.Animated.Value(0));
|
40
|
+
const renderItem = ({ item }) => (<react_native_1.TouchableOpacity style={{
|
41
|
+
width: EMOJI_SIZE,
|
42
|
+
height: EMOJI_SIZE,
|
43
|
+
alignItems: 'center',
|
44
|
+
}} onPress={() => {
|
45
|
+
onCheck(item);
|
46
|
+
}}>
|
47
|
+
<react_native_1.Text style={{ fontSize: 22, color: '#333' }}>{item}</react_native_1.Text>
|
48
|
+
</react_native_1.TouchableOpacity>);
|
49
|
+
(0, react_1.useImperativeHandle)(ref, () => ({
|
50
|
+
show: (height) => {
|
51
|
+
visible.current = true;
|
52
|
+
heightAnim.setValue(height);
|
53
|
+
forceUpdate({});
|
54
|
+
},
|
55
|
+
hide: () => {
|
56
|
+
visible.current = false;
|
57
|
+
heightAnim.setValue(0);
|
58
|
+
forceUpdate({});
|
59
|
+
},
|
60
|
+
}), []);
|
61
|
+
return (<react_native_1.Animated.View style={{
|
62
|
+
height: heightAnim,
|
63
|
+
position: 'relative',
|
64
|
+
flexDirection: 'column',
|
65
|
+
paddingBottom: visible.current ? 20 : 0,
|
66
|
+
}} pointerEvents='auto'>
|
67
|
+
<react_native_1.FlatList numColumns={8} initialNumToRender={80} data={emojis} keyExtractor={keyExtractor} contentContainerStyle={{
|
68
|
+
paddingHorizontal: 10,
|
69
|
+
paddingBottom: 50,
|
70
|
+
}} pointerEvents='auto' keyboardShouldPersistTaps={'handled'} renderItem={renderItem} scrollEnabled/>
|
71
|
+
{visible.current && <react_native_1.View style={{
|
72
|
+
position: 'absolute',
|
73
|
+
height: EMOJI_SIZE,
|
74
|
+
width: 80,
|
75
|
+
backgroundColor: '#fff',
|
76
|
+
bottom: 20,
|
77
|
+
right: 18,
|
78
|
+
borderRadius: 6,
|
79
|
+
elevation: 1,
|
80
|
+
}}>
|
81
|
+
<react_native_1.TouchableOpacity style={{ flex: 1, alignItems: 'center', justifyContent: 'center' }} onPressIn={() => {
|
82
|
+
console.log('onPressIn: backspace');
|
83
|
+
onBackspace();
|
84
|
+
start.current = true;
|
85
|
+
timer.current = setInterval(() => {
|
86
|
+
if (start.current) {
|
87
|
+
console.log('onPressIn: backspace');
|
88
|
+
onBackspace();
|
89
|
+
}
|
90
|
+
}, 160);
|
91
|
+
}} onPressOut={() => {
|
92
|
+
console.log('onPressOut: backspace');
|
93
|
+
start.current = false;
|
94
|
+
clearInterval(timer.current);
|
95
|
+
}}>
|
96
|
+
<Icons_1.DeleteSvg />
|
97
|
+
</react_native_1.TouchableOpacity>
|
98
|
+
</react_native_1.View>}
|
99
|
+
</react_native_1.Animated.View>);
|
100
|
+
});
|
101
|
+
exports.default = (0, react_1.memo)(EmojiPanel);
|
@@ -0,0 +1,18 @@
|
|
1
|
+
import React from 'react';
|
2
|
+
type IconProps = {
|
3
|
+
size?: number;
|
4
|
+
color?: string;
|
5
|
+
};
|
6
|
+
export declare const VoiceSvg: () => React.JSX.Element;
|
7
|
+
export declare const KeyboardSvg: () => React.JSX.Element;
|
8
|
+
export declare const EmojiSvg: () => React.JSX.Element;
|
9
|
+
export declare const OptionSvg: () => React.JSX.Element;
|
10
|
+
export declare const DeleteSvg: () => React.JSX.Element;
|
11
|
+
export declare const PhotosIcon: (props: IconProps) => React.JSX.Element;
|
12
|
+
export declare const ShootingIcon: (props: IconProps) => React.JSX.Element;
|
13
|
+
export declare const TelPhoneIcon: (props: IconProps) => React.JSX.Element;
|
14
|
+
export declare const VideoIcon: (props: IconProps) => React.JSX.Element;
|
15
|
+
export declare const FileIcon: (props: IconProps) => React.JSX.Element;
|
16
|
+
export declare const CollectionIcon: (props: IconProps) => React.JSX.Element;
|
17
|
+
export declare const UserIcon: (props: IconProps) => React.JSX.Element;
|
18
|
+
export {};
|
@@ -0,0 +1,88 @@
|
|
1
|
+
"use strict";
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
4
|
+
};
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
6
|
+
exports.UserIcon = exports.CollectionIcon = exports.FileIcon = exports.VideoIcon = exports.TelPhoneIcon = exports.ShootingIcon = exports.PhotosIcon = exports.DeleteSvg = exports.OptionSvg = exports.EmojiSvg = exports.KeyboardSvg = exports.VoiceSvg = void 0;
|
7
|
+
const rn_ui_1 = require("@smart-link/rn-ui");
|
8
|
+
const react_1 = __importDefault(require("react"));
|
9
|
+
const react_native_svg_1 = require("react-native-svg");
|
10
|
+
const VoiceSvg = () => (<react_native_svg_1.Svg viewBox="0 0 1024 1024" width={(0, rn_ui_1.dp)(32)} height={(0, rn_ui_1.dp)(32)}>
|
11
|
+
<react_native_svg_1.Path d="M512.5 54C765.723 54 971 259.277 971 512.5S765.723 971 512.5 971 54 765.723 54 512.5 259.277 54 512.5 54z m0 64C294.624 118 118 294.624 118 512.5S294.624 907 512.5 907 907 730.376 907 512.5 730.376 118 512.5 118z m84.457 158.623c61.57 61.569 96.816 144.901 96.816 233.734s-35.247 172.165-96.816 233.734c-12.497 12.497-32.758 12.497-45.255 0-12.496-12.497-12.496-32.758 0-45.255 49.686-49.686 78.07-116.795 78.07-188.48 0-71.684-28.384-138.793-78.07-188.479-12.496-12.496-12.496-32.758 0-45.254 12.497-12.497 32.758-12.497 45.255 0zM491.405 382.175C525.16 415.93 544.5 461.653 544.5 510.357c0 48.704-19.34 94.426-53.096 128.18-12.497 12.497-32.759 12.496-45.255-0.001-12.496-12.498-12.495-32.759 0.002-45.255 21.872-21.87 34.349-51.369 34.349-82.924 0-31.555-12.477-61.054-34.35-82.927-12.497-12.497-12.497-32.758 0-45.255s32.758-12.497 45.255 0z m-128.18 85.53c23.556 0 42.65 19.094 42.65 42.65 0 23.555-19.094 42.65-42.65 42.65-23.556 0-42.65-19.095-42.65-42.65 0-23.556 19.094-42.65 42.65-42.65z"/>
|
12
|
+
</react_native_svg_1.Svg>);
|
13
|
+
exports.VoiceSvg = VoiceSvg;
|
14
|
+
const KeyboardSvg = () => (<react_native_svg_1.Svg viewBox="0 0 1024 1024" width={(0, rn_ui_1.dp)(32)} height={(0, rn_ui_1.dp)(32)}>
|
15
|
+
<react_native_svg_1.Path d="M736 352c-17.696 0-32 14.336-32 32l0 96-96 0c-17.696 0-32 14.336-32 32s14.304 32 32 32l128 0c17.696 0 32-14.336 32-32l0-128C768 366.336 753.696 352 736 352zM736 672 288 672c-17.664 0-32-14.304-32-32s14.336-32 32-32l448 0c17.696 0 32 14.304 32 32S753.696 672 736 672zM480 544l-32 0c-17.664 0-32-14.336-32-32s14.336-32 32-32l32 0c17.664 0 32 14.336 32 32S497.664 544 480 544zM320 544 288 544c-17.664 0-32-14.336-32-32s14.336-32 32-32l32 0c17.664 0 32 14.336 32 32S337.664 544 320 544zM480 416l-32 0c-17.664 0-32-14.336-32-32s14.336-32 32-32l32 0c17.664 0 32 14.336 32 32S497.664 416 480 416zM640 416l-32 0c-17.696 0-32-14.336-32-32s14.304-32 32-32l32 0c17.696 0 32 14.336 32 32S657.696 416 640 416zM320 416 288 416c-17.664 0-32-14.336-32-32s14.336-32 32-32l32 0c17.664 0 32 14.336 32 32S337.664 416 320 416zM512.128 957.344c-247.04 0-448-200.96-448-448s200.96-448 448-448 448 200.96 448 448S759.168 957.344 512.128 957.344zM512.128 125.344c-211.744 0-384 172.256-384 384 0 211.744 172.256 384 384 384 211.744 0 384-172.256 384-384C896.128 297.6 723.872 125.344 512.128 125.344z"/>
|
16
|
+
</react_native_svg_1.Svg>);
|
17
|
+
exports.KeyboardSvg = KeyboardSvg;
|
18
|
+
const EmojiSvg = () => (<react_native_svg_1.Svg viewBox="0 0 1024 1024" width={(0, rn_ui_1.dp)(32)} height={(0, rn_ui_1.dp)(32)}>
|
19
|
+
<react_native_svg_1.Path d="M510.944 960c-247.04 0-448-200.96-448-448s200.992-448 448-448c247.008 0 448 200.96 448 448S757.984 960 510.944 960zM510.944 128c-211.744 0-384 172.256-384 384 0 211.744 172.256 384 384 384 211.744 0 384-172.256 384-384C894.944 300.256 722.688 128 510.944 128zM512 773.344c-89.184 0-171.904-40.32-226.912-110.624-10.88-13.92-8.448-34.016 5.472-44.896 13.888-10.912 34.016-8.48 44.928 5.472 42.784 54.688 107.136 86.048 176.512 86.048 70.112 0 134.88-31.904 177.664-87.552 10.784-14.016 30.848-16.672 44.864-5.888 14.016 10.784 16.672 30.88 5.888 44.864C685.408 732.32 602.144 773.344 512 773.344zM368 515.2c-26.528 0-48-21.472-48-48l0-64c0-26.528 21.472-48 48-48s48 21.472 48 48l0 64C416 493.696 394.496 515.2 368 515.2zM656 515.2c-26.496 0-48-21.472-48-48l0-64c0-26.528 21.504-48 48-48s48 21.472 48 48l0 64C704 493.696 682.496 515.2 656 515.2z"/>
|
20
|
+
</react_native_svg_1.Svg>);
|
21
|
+
exports.EmojiSvg = EmojiSvg;
|
22
|
+
const OptionSvg = () => (<react_native_svg_1.Svg viewBox="0 0 1024 1024" width={(0, rn_ui_1.dp)(32)} height={(0, rn_ui_1.dp)(32)}>
|
23
|
+
<react_native_svg_1.Path d="M512 128c211.2 0 384 172.8 384 384s-172.8 384-384 384-384-172.8-384-384 172.8-384 384-384m0-64C262.4 64 64 262.4 64 512s198.4 448 448 448 448-198.4 448-448-198.4-448-448-448z"/>
|
24
|
+
<react_native_svg_1.Path d="M320 512m-32 0a32 32 0 1 0 64 0 32 32 0 1 0-64 0Z"/>
|
25
|
+
<react_native_svg_1.Path d="M704 512m-32 0a32 32 0 1 0 64 0 32 32 0 1 0-64 0Z"/>
|
26
|
+
<react_native_svg_1.Path d="M512 320m-32 0a32 32 0 1 0 64 0 32 32 0 1 0-64 0Z"/>
|
27
|
+
<react_native_svg_1.Path d="M512 704m-32 0a32 32 0 1 0 64 0 32 32 0 1 0-64 0Z"/>
|
28
|
+
<react_native_svg_1.Path d="M320 480h384v64H320z"/>
|
29
|
+
<react_native_svg_1.Path d="M480 320h64v384h-64z"/>
|
30
|
+
</react_native_svg_1.Svg>);
|
31
|
+
exports.OptionSvg = OptionSvg;
|
32
|
+
const DeleteSvg = () => (<react_native_svg_1.Svg fill={'#333'} viewBox="0 0 1024 1024" width={(0, rn_ui_1.dp)(24)} height={(0, rn_ui_1.dp)(24)}>
|
33
|
+
<react_native_svg_1.Path d="M896 896H341.333333a42.666667 42.666667 0 0 1-32-14.506667l-298.666666-341.333333a42.666667 42.666667 0 0 1 0-56.32l298.666666-341.333333A42.666667 42.666667 0 0 1 341.333333 128h554.666667a128 128 0 0 1 128 128v512a128 128 0 0 1-128 128zM360.533333 810.666667H896a42.666667 42.666667 0 0 0 42.666667-42.666667V256a42.666667 42.666667 0 0 0-42.666667-42.666667H360.533333l-261.12 298.666667z"/>
|
34
|
+
<react_native_svg_1.Path d="M512 682.666667a42.666667 42.666667 0 0 1-30.293333-12.373334 42.666667 42.666667 0 0 1 0-60.586666l256-256a42.666667 42.666667 0 0 1 60.586666 60.586666l-256 256A42.666667 42.666667 0 0 1 512 682.666667z"/>
|
35
|
+
<react_native_svg_1.Path d="M768 682.666667a42.666667 42.666667 0 0 1-30.293333-12.373334l-256-256a42.666667 42.666667 0 0 1 60.586666-60.586666l256 256a42.666667 42.666667 0 0 1 0 60.586666A42.666667 42.666667 0 0 1 768 682.666667z"/>
|
36
|
+
</react_native_svg_1.Svg>);
|
37
|
+
exports.DeleteSvg = DeleteSvg;
|
38
|
+
const PhotosIcon = (props) => {
|
39
|
+
const { size = 24, color = '#333' } = props;
|
40
|
+
return (<react_native_svg_1.Svg fill={color} width={(0, rn_ui_1.dp)(size)} height={(0, rn_ui_1.dp)(size)} viewBox="0 0 1024 1024">
|
41
|
+
<react_native_svg_1.Path d="M730.3 432.9c53.5 0 97-43.4 97-97 0-53.5-43.4-97-97-97-53.5 0-97 43.4-97 97s43.6 97 97 97zM900 109.7H108c-31.5 0-56.6 25.7-56.6 57.2v661.4c0 31.5 25 57.2 56.6 57.2h792c31.5 0 56.6-25.7 56.6-57.2V166.9c0-31.5-25.1-57.2-56.6-57.2zM691.8 509.1c-6.1-7.1-15.3-12.5-25.9-12.5-10.2 0-17.5 4.8-25.9 11.5L602.2 540c-7.8 5.6-14.2 9.5-23.3 9.5-8.8 0-16.6-3.2-22.2-8.2-2-1.9-5.6-5.2-8.8-8.2L439.2 415.6c-8-9.3-20.1-15.1-33.7-15.1-13.6 0-26.1 6.7-33.9 15.8L116.2 724.2V198c2-13.8 12.7-23.7 26.4-23.7h722.7c14 0 25.3 10.2 26.1 24.2l0.6 526-200.2-215.4z"></react_native_svg_1.Path>
|
42
|
+
</react_native_svg_1.Svg>);
|
43
|
+
};
|
44
|
+
exports.PhotosIcon = PhotosIcon;
|
45
|
+
const ShootingIcon = (props) => {
|
46
|
+
const { size = 24, color = '#333' } = props;
|
47
|
+
return (<react_native_svg_1.Svg fill={color} width={(0, rn_ui_1.dp)(size)} height={(0, rn_ui_1.dp)(size)} viewBox="0 0 1024 1024">
|
48
|
+
<react_native_svg_1.Path d="M294.41 822.05c-53.11-9-95.48-49.27-107.16-101.85a681.035 681.035 0 0 1 0-295.52c11.69-52.58 54.05-92.85 107.16-101.85a1316.232 1316.232 0 0 1 439.84 0c53.11 9 95.48 49.27 107.16 101.85a681.035 681.035 0 0 1 0 295.52c-11.69 52.58-54.05 92.85-107.16 101.85a1316.232 1316.232 0 0 1-439.84 0z"></react_native_svg_1.Path>
|
49
|
+
<react_native_svg_1.Path d="M668 331.32c0-22.18-2.42-44.36-7.26-66.14-5.23-23.54-24.19-41.56-47.97-45.59a589.311 589.311 0 0 0-196.88 0c-23.77 4.03-42.74 22.05-47.97 45.59a304.887 304.887 0 0 0-7.26 66.14"></react_native_svg_1.Path>
|
50
|
+
<react_native_svg_1.Path d="M514.33 571.91m-139.27 0a139.27 139.27 0 1 0 278.54 0 139.27 139.27 0 1 0-278.54 0Z" fill="#FFFFFF"></react_native_svg_1.Path>
|
51
|
+
</react_native_svg_1.Svg>);
|
52
|
+
};
|
53
|
+
exports.ShootingIcon = ShootingIcon;
|
54
|
+
const TelPhoneIcon = (props) => {
|
55
|
+
const { size = 24, color = '#333' } = props;
|
56
|
+
return (<react_native_svg_1.Svg fill={color} width={(0, rn_ui_1.dp)(size)} height={(0, rn_ui_1.dp)(size)} viewBox="0 0 1024 1024">
|
57
|
+
<react_native_svg_1.Path d="M585 584.9c-94 94-202.9 183.9-245.9 140.9-61.7-61.6-99.6-115.3-235.4-6.1s-31.5 182 28.2 241.7c68.9 68.8 325.6 3.7 579.4-250.1 253.7-253.8 319-510.5 250.1-579.4-59.7-59.7-132.4-164-241.6-28.1-109.2 135.8-55.5 173.7 6.1 235.4C768.8 382 679 490.9 585 584.9z"></react_native_svg_1.Path>
|
58
|
+
</react_native_svg_1.Svg>);
|
59
|
+
};
|
60
|
+
exports.TelPhoneIcon = TelPhoneIcon;
|
61
|
+
const VideoIcon = (props) => {
|
62
|
+
const { size = 24, color = '#333' } = props;
|
63
|
+
return (<react_native_svg_1.Svg fill={color} width={(0, rn_ui_1.dp)(size)} height={(0, rn_ui_1.dp)(size)} viewBox="0 0 1024 1024">
|
64
|
+
<react_native_svg_1.Path d="M768 415.744q0 5.12-10.752 17.92t-23.04 30.208-23.04 37.888-10.752 41.984 10.752 41.472 23.04 36.352 23.04 27.136 10.752 13.824l0 107.52q0 17.408-12.8 39.424t-31.744 41.472-41.984 32.256-43.52 12.8l-508.928 0q-27.648 0-50.688-9.728t-40.448-27.136-27.136-40.96-9.728-51.2l0-441.344q0-20.48 9.216-42.496t26.112-40.448 39.936-30.72 50.688-12.288l508.928 0q27.648 0 51.712 9.728t41.984 26.624 28.16 40.448 10.24 50.176l0 89.088zM1086.464 319.488l0 467.968q0 22.528-11.776 39.936t-35.328 17.408q-8.192 0-20.992-6.144t-25.6-14.336-24.064-16.384-16.384-13.312q-13.312-11.264-40.448-38.912t-54.784-62.464-48.64-71.68-20.992-67.584 22.528-70.144 54.272-77.312 66.56-70.144 58.368-48.64q9.216-6.144 25.088-14.848t28.16-8.704q27.648 0 35.84 15.36t8.192 37.888l0 2.048z"></react_native_svg_1.Path>
|
65
|
+
</react_native_svg_1.Svg>);
|
66
|
+
};
|
67
|
+
exports.VideoIcon = VideoIcon;
|
68
|
+
const FileIcon = (props) => {
|
69
|
+
const { size = 24, color = '#333' } = props;
|
70
|
+
return (<react_native_svg_1.Svg fill={color} width={(0, rn_ui_1.dp)(size)} height={(0, rn_ui_1.dp)(size)} viewBox="0 0 1024 1024">
|
71
|
+
<react_native_svg_1.Path d="M519.283382 163.91421l0 232.024447 232.315066 0L519.283382 163.91421zM490.341213 425.124374 490.341213 163.91421l0 0L257.879813 163.91421l0 696.170556 508.23935 0L766.119163 425.124374 490.341213 425.124374z"></react_native_svg_1.Path>
|
72
|
+
</react_native_svg_1.Svg>);
|
73
|
+
};
|
74
|
+
exports.FileIcon = FileIcon;
|
75
|
+
const CollectionIcon = (props) => {
|
76
|
+
const { size = 24, color = '#333' } = props;
|
77
|
+
return (<react_native_svg_1.Svg fill={color} width={(0, rn_ui_1.dp)(size)} height={(0, rn_ui_1.dp)(size)} viewBox="0 0 1024 1024">
|
78
|
+
<react_native_svg_1.Path d="M832 128H192a64.19 64.19 0 0 0-64 64v640a64.19 64.19 0 0 0 64 64h640a64.19 64.19 0 0 0 64-64V192a64.19 64.19 0 0 0-64-64zM685.41 750.68L512 659.51l-173.41 91.17 33.12-193.1-140.3-136.75 193.88-28.17L512 217l86.71 175.69 193.88 28.17-140.3 136.72z"></react_native_svg_1.Path>
|
79
|
+
</react_native_svg_1.Svg>);
|
80
|
+
};
|
81
|
+
exports.CollectionIcon = CollectionIcon;
|
82
|
+
const UserIcon = (props) => {
|
83
|
+
const { size = 24, color = '#333' } = props;
|
84
|
+
return (<react_native_svg_1.Svg fill={color} width={(0, rn_ui_1.dp)(size)} height={(0, rn_ui_1.dp)(size)} viewBox="0 0 1024 1024">
|
85
|
+
<react_native_svg_1.Path d="M525.973 511.844c106.044 0 192.026-86.011 192.026-192.026 0-106.077-85.982-192.026-192.026-192.026-106.048 0-192.029 85.949-192.029 192.026 0 106.015 85.981 192.026 192.029 192.026z m0 32.004c-176.745 0-320.077 140.853-320.077 317.63 0 12.563 0.937 34.773 2.344 34.773h635.402c1.406 0 2.344-22.21 2.344-34.774 0-176.777-143.272-317.629-320.013-317.629z"></react_native_svg_1.Path>
|
86
|
+
</react_native_svg_1.Svg>);
|
87
|
+
};
|
88
|
+
exports.UserIcon = UserIcon;
|
@@ -0,0 +1,12 @@
|
|
1
|
+
import React from 'react';
|
2
|
+
export interface MessageBarProps {
|
3
|
+
onKeyboardAt?: () => void;
|
4
|
+
}
|
5
|
+
export interface MessageBarMethods {
|
6
|
+
reset(): void;
|
7
|
+
focusTextInput(): void;
|
8
|
+
appendInputText(text: string): void;
|
9
|
+
setMessageText(text: string): void;
|
10
|
+
}
|
11
|
+
declare const _default: React.MemoExoticComponent<React.ForwardRefExoticComponent<MessageBarProps & React.RefAttributes<MessageBarMethods>>>;
|
12
|
+
export default _default;
|
@@ -0,0 +1,273 @@
|
|
1
|
+
"use strict";
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
3
|
+
if (k2 === undefined) k2 = k;
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
7
|
+
}
|
8
|
+
Object.defineProperty(o, k2, desc);
|
9
|
+
}) : (function(o, m, k, k2) {
|
10
|
+
if (k2 === undefined) k2 = k;
|
11
|
+
o[k2] = m[k];
|
12
|
+
}));
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
15
|
+
}) : function(o, v) {
|
16
|
+
o["default"] = v;
|
17
|
+
});
|
18
|
+
var __importStar = (this && this.__importStar) || function (mod) {
|
19
|
+
if (mod && mod.__esModule) return mod;
|
20
|
+
var result = {};
|
21
|
+
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
22
|
+
__setModuleDefault(result, mod);
|
23
|
+
return result;
|
24
|
+
};
|
25
|
+
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
26
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
27
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
28
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
29
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
30
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
31
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
32
|
+
});
|
33
|
+
};
|
34
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
35
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
36
|
+
};
|
37
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
38
|
+
const rn_ui_1 = require("@smart-link/rn-ui");
|
39
|
+
const ahooks_1 = require("ahooks");
|
40
|
+
const react_1 = __importStar(require("react"));
|
41
|
+
const react_native_1 = require("react-native");
|
42
|
+
const useImSelector_1 = require("../../../../hooks/useImSelector");
|
43
|
+
const useTranslation_1 = __importDefault(require("../../../../hooks/useTranslation"));
|
44
|
+
const init_1 = require("../../../../init");
|
45
|
+
const EmojiPanel_1 = __importDefault(require("./EmojiPanel"));
|
46
|
+
const Icons_1 = require("./Icons");
|
47
|
+
const MessageInput_1 = __importDefault(require("./MessageInput"));
|
48
|
+
const OptionPanel_1 = __importDefault(require("./OptionPanel"));
|
49
|
+
const VoiceBar_1 = __importDefault(require("./VoiceBar"));
|
50
|
+
const panel_slice_1 = require("../../../../slice/panel/panel.slice");
|
51
|
+
const react_redux_1 = require("react-redux");
|
52
|
+
const im_base_1 = require("@smart-link/im-base");
|
53
|
+
const debounce_1 = __importDefault(require("lodash-es/debounce"));
|
54
|
+
const MessageBar = (0, react_1.forwardRef)(({ onKeyboardAt }, ref) => {
|
55
|
+
const { t } = (0, useTranslation_1.default)();
|
56
|
+
const dispatch = (0, react_redux_1.useDispatch)();
|
57
|
+
const debounceAt = (0, react_1.useRef)(null);
|
58
|
+
const inputRef = (0, react_1.useRef)(null);
|
59
|
+
const emojiPanelRef = (0, react_1.useRef)(null);
|
60
|
+
const optionPanelRef = (0, react_1.useRef)(null);
|
61
|
+
const lazy = (0, react_1.useRef)(false);
|
62
|
+
const tempText = (0, react_1.useRef)('');
|
63
|
+
const { currentConversation } = (0, useImSelector_1.useConversation)();
|
64
|
+
const { quote, messageText } = (0, useImSelector_1.useMessage)();
|
65
|
+
const [showSend, setShowSend] = (0, react_1.useState)(false);
|
66
|
+
const keyboardDuration = (0, react_1.useRef)(100);
|
67
|
+
const modeRef = (0, react_1.useRef)('text');
|
68
|
+
const [inputMode, setInputMode] = (0, react_1.useState)('text');
|
69
|
+
const keyboardHeight = (0, react_1.useRef)(240);
|
70
|
+
const handleChange = (0, react_1.useCallback)((text) => {
|
71
|
+
tempText.current = text;
|
72
|
+
if (text.length && !lazy.current) {
|
73
|
+
setShowSend(true);
|
74
|
+
lazy.current = true;
|
75
|
+
}
|
76
|
+
else if (!text.length) {
|
77
|
+
setShowSend(false);
|
78
|
+
lazy.current = false;
|
79
|
+
}
|
80
|
+
dispatch(im_base_1.MessageActions.setDraftText(text));
|
81
|
+
}, []);
|
82
|
+
const handleInsertEmoji = (0, react_1.useCallback)((emoji) => {
|
83
|
+
var _a;
|
84
|
+
(_a = inputRef.current) === null || _a === void 0 ? void 0 : _a.insertEmoji(emoji);
|
85
|
+
}, []);
|
86
|
+
const switchVoice = (0, react_1.useCallback)(() => {
|
87
|
+
var _a, _b;
|
88
|
+
(_a = emojiPanelRef.current) === null || _a === void 0 ? void 0 : _a.hide();
|
89
|
+
(_b = optionPanelRef.current) === null || _b === void 0 ? void 0 : _b.hide();
|
90
|
+
react_native_1.Keyboard.dismiss();
|
91
|
+
modeRef.current = 'voice';
|
92
|
+
setInputMode('voice');
|
93
|
+
setShowSend(false);
|
94
|
+
}, []);
|
95
|
+
const switchKeyboardInputMode = (0, react_1.useCallback)(() => {
|
96
|
+
var _a, _b;
|
97
|
+
(_a = emojiPanelRef.current) === null || _a === void 0 ? void 0 : _a.hide();
|
98
|
+
(_b = optionPanelRef.current) === null || _b === void 0 ? void 0 : _b.hide();
|
99
|
+
let timeout = 0;
|
100
|
+
if (modeRef.current === 'voice') {
|
101
|
+
timeout = keyboardDuration.current;
|
102
|
+
}
|
103
|
+
modeRef.current = 'text';
|
104
|
+
setInputMode('text');
|
105
|
+
setTimeout(() => {
|
106
|
+
var _a, _b, _c;
|
107
|
+
(_a = inputRef.current) === null || _a === void 0 ? void 0 : _a.setText(tempText.current || '');
|
108
|
+
if ((_b = tempText.current) === null || _b === void 0 ? void 0 : _b.length) {
|
109
|
+
setShowSend(true);
|
110
|
+
}
|
111
|
+
(_c = inputRef.current) === null || _c === void 0 ? void 0 : _c.focus();
|
112
|
+
}, timeout);
|
113
|
+
}, []);
|
114
|
+
const switchEmojiInputMode = (0, react_1.useCallback)(() => {
|
115
|
+
modeRef.current = 'emoji';
|
116
|
+
setInputMode('emoji');
|
117
|
+
react_native_1.Keyboard.dismiss();
|
118
|
+
setTimeout(() => {
|
119
|
+
var _a, _b, _c;
|
120
|
+
(_a = optionPanelRef.current) === null || _a === void 0 ? void 0 : _a.hide();
|
121
|
+
(_b = emojiPanelRef.current) === null || _b === void 0 ? void 0 : _b.show(keyboardHeight.current);
|
122
|
+
(_c = inputRef.current) === null || _c === void 0 ? void 0 : _c.focusNoSoftKeyboard();
|
123
|
+
}, keyboardDuration.current);
|
124
|
+
}, []);
|
125
|
+
const switchOptionPanelMode = (0, ahooks_1.useMemoizedFn)(() => {
|
126
|
+
var _a;
|
127
|
+
if ((_a = optionPanelRef.current) === null || _a === void 0 ? void 0 : _a.getVisible()) {
|
128
|
+
switchKeyboardInputMode();
|
129
|
+
return;
|
130
|
+
}
|
131
|
+
setInputMode('option');
|
132
|
+
modeRef.current = 'option';
|
133
|
+
react_native_1.Keyboard.dismiss();
|
134
|
+
setTimeout(() => {
|
135
|
+
var _a, _b;
|
136
|
+
(_a = emojiPanelRef.current) === null || _a === void 0 ? void 0 : _a.hide();
|
137
|
+
(_b = optionPanelRef.current) === null || _b === void 0 ? void 0 : _b.show(keyboardHeight.current);
|
138
|
+
}, keyboardDuration.current);
|
139
|
+
});
|
140
|
+
const onKeyPress = (0, react_1.useCallback)((e) => {
|
141
|
+
if (e.nativeEvent.key === '@') {
|
142
|
+
if (!debounceAt.current) {
|
143
|
+
debounceAt.current = (0, debounce_1.default)(() => {
|
144
|
+
onKeyboardAt && onKeyboardAt();
|
145
|
+
}, 500);
|
146
|
+
debounceAt.current();
|
147
|
+
}
|
148
|
+
else {
|
149
|
+
debounceAt.current();
|
150
|
+
}
|
151
|
+
}
|
152
|
+
}, []);
|
153
|
+
const handleSendText = (0, react_1.useCallback)(() => __awaiter(void 0, void 0, void 0, function* () {
|
154
|
+
var _a, _b;
|
155
|
+
const text = (_a = inputRef.current) === null || _a === void 0 ? void 0 : _a.getText();
|
156
|
+
(_b = inputRef.current) === null || _b === void 0 ? void 0 : _b.clear();
|
157
|
+
tempText.current = '';
|
158
|
+
handleChange('');
|
159
|
+
react_native_1.InteractionManager.runAfterInteractions(() => {
|
160
|
+
imManager.scrollToLatest(true);
|
161
|
+
});
|
162
|
+
const imManager = (0, init_1.getImManager)();
|
163
|
+
yield imManager.handleSend(text);
|
164
|
+
}), [quote, handleChange, currentConversation]);
|
165
|
+
(0, react_1.useImperativeHandle)(ref, () => ({
|
166
|
+
reset: () => {
|
167
|
+
var _a, _b, _c;
|
168
|
+
(_a = inputRef.current) === null || _a === void 0 ? void 0 : _a.blur();
|
169
|
+
(_b = emojiPanelRef.current) === null || _b === void 0 ? void 0 : _b.hide();
|
170
|
+
(_c = optionPanelRef.current) === null || _c === void 0 ? void 0 : _c.hide();
|
171
|
+
},
|
172
|
+
focusTextInput: () => {
|
173
|
+
var _a, _b, _c;
|
174
|
+
(_a = inputRef.current) === null || _a === void 0 ? void 0 : _a.focus();
|
175
|
+
(_b = emojiPanelRef.current) === null || _b === void 0 ? void 0 : _b.hide();
|
176
|
+
(_c = optionPanelRef.current) === null || _c === void 0 ? void 0 : _c.hide();
|
177
|
+
},
|
178
|
+
appendInputText: (text) => {
|
179
|
+
var _a, _b, _c;
|
180
|
+
tempText.current += text;
|
181
|
+
(_a = inputRef.current) === null || _a === void 0 ? void 0 : _a.setText(tempText.current);
|
182
|
+
setTimeout(() => {
|
183
|
+
var _a;
|
184
|
+
(_a = inputRef.current) === null || _a === void 0 ? void 0 : _a.focus();
|
185
|
+
}, keyboardDuration.current);
|
186
|
+
(_b = emojiPanelRef.current) === null || _b === void 0 ? void 0 : _b.hide();
|
187
|
+
(_c = optionPanelRef.current) === null || _c === void 0 ? void 0 : _c.hide();
|
188
|
+
},
|
189
|
+
setMessageText: (text) => {
|
190
|
+
var _a, _b, _c;
|
191
|
+
tempText.current = text;
|
192
|
+
(_a = inputRef.current) === null || _a === void 0 ? void 0 : _a.setText(tempText.current);
|
193
|
+
setTimeout(() => {
|
194
|
+
var _a;
|
195
|
+
(_a = inputRef.current) === null || _a === void 0 ? void 0 : _a.focus();
|
196
|
+
}, keyboardDuration.current);
|
197
|
+
(_b = emojiPanelRef.current) === null || _b === void 0 ? void 0 : _b.hide();
|
198
|
+
(_c = optionPanelRef.current) === null || _c === void 0 ? void 0 : _c.hide();
|
199
|
+
dispatch(im_base_1.MessageActions.setDraftText(text));
|
200
|
+
}
|
201
|
+
}), []);
|
202
|
+
(0, react_1.useEffect)(() => {
|
203
|
+
var _a;
|
204
|
+
if (currentConversation === null || currentConversation === void 0 ? void 0 : currentConversation.draftText) {
|
205
|
+
(_a = inputRef.current) === null || _a === void 0 ? void 0 : _a.setText(currentConversation === null || currentConversation === void 0 ? void 0 : currentConversation.draftText);
|
206
|
+
tempText.current = currentConversation === null || currentConversation === void 0 ? void 0 : currentConversation.draftText;
|
207
|
+
setShowSend(true);
|
208
|
+
setTimeout(() => {
|
209
|
+
var _a;
|
210
|
+
(_a = inputRef.current) === null || _a === void 0 ? void 0 : _a.focus();
|
211
|
+
}, 150);
|
212
|
+
}
|
213
|
+
const keyboardDidShowListener = react_native_1.Keyboard.addListener('keyboardDidShow', event => {
|
214
|
+
var _a, _b;
|
215
|
+
keyboardHeight.current = Math.max(event.endCoordinates.height, 240);
|
216
|
+
keyboardDuration.current = event.duration;
|
217
|
+
(_a = emojiPanelRef.current) === null || _a === void 0 ? void 0 : _a.hide();
|
218
|
+
(_b = optionPanelRef.current) === null || _b === void 0 ? void 0 : _b.hide();
|
219
|
+
});
|
220
|
+
return () => {
|
221
|
+
keyboardDidShowListener.remove();
|
222
|
+
};
|
223
|
+
}, []);
|
224
|
+
return (<>
|
225
|
+
<react_native_1.View style={styles.root} onLayout={event => {
|
226
|
+
dispatch((0, panel_slice_1.setMessageBarHeight)(event.nativeEvent.layout.height));
|
227
|
+
}}>
|
228
|
+
<react_native_1.View style={styles.switchInput}>
|
229
|
+
{inputMode === 'voice' ? (<react_native_1.TouchableOpacity onPress={switchKeyboardInputMode}>
|
230
|
+
<Icons_1.KeyboardSvg />
|
231
|
+
</react_native_1.TouchableOpacity>) : (<react_native_1.TouchableOpacity onPress={switchVoice}>
|
232
|
+
<Icons_1.VoiceSvg />
|
233
|
+
</react_native_1.TouchableOpacity>)}
|
234
|
+
</react_native_1.View>
|
235
|
+
{inputMode === 'voice' ? <VoiceBar_1.default /> : <MessageInput_1.default ref={inputRef} onChangeText={handleChange} onKeyPress={onKeyPress}/>}
|
236
|
+
|
237
|
+
<react_native_1.View style={[styles.switchInput, { paddingRight: 0 }]}>
|
238
|
+
{inputMode === 'emoji' ? (<react_native_1.TouchableOpacity onPress={switchKeyboardInputMode}>
|
239
|
+
<Icons_1.KeyboardSvg />
|
240
|
+
</react_native_1.TouchableOpacity>) : (<react_native_1.TouchableOpacity onPress={switchEmojiInputMode}>
|
241
|
+
<Icons_1.EmojiSvg />
|
242
|
+
</react_native_1.TouchableOpacity>)}
|
243
|
+
</react_native_1.View>
|
244
|
+
<react_native_1.View style={styles.switchInput}>
|
245
|
+
{showSend ? (<rn_ui_1.Button type="primary" size="s" onPress={handleSendText}>
|
246
|
+
{t('sent')}
|
247
|
+
</rn_ui_1.Button>) : (<react_native_1.TouchableOpacity onPress={switchOptionPanelMode}>
|
248
|
+
<Icons_1.OptionSvg />
|
249
|
+
</react_native_1.TouchableOpacity>)}
|
250
|
+
</react_native_1.View>
|
251
|
+
</react_native_1.View>
|
252
|
+
<EmojiPanel_1.default ref={emojiPanelRef} onCheck={handleInsertEmoji} onBackspace={() => { var _a; return (_a = inputRef.current) === null || _a === void 0 ? void 0 : _a.backspace(); }}/>
|
253
|
+
<OptionPanel_1.default ref={optionPanelRef}/>
|
254
|
+
</>);
|
255
|
+
});
|
256
|
+
const styles = react_native_1.StyleSheet.create({
|
257
|
+
root: {
|
258
|
+
justifyContent: 'flex-end',
|
259
|
+
flexDirection: 'row',
|
260
|
+
borderTopWidth: (0, rn_ui_1.dp)(1),
|
261
|
+
borderTopColor: '#e3e3e3',
|
262
|
+
},
|
263
|
+
switchInput: {
|
264
|
+
justifyContent: 'flex-end',
|
265
|
+
paddingVertical: (0, rn_ui_1.dp)(8),
|
266
|
+
paddingHorizontal: (0, rn_ui_1.dp)(8),
|
267
|
+
},
|
268
|
+
icon: {
|
269
|
+
width: (0, rn_ui_1.dp)(28),
|
270
|
+
height: (0, rn_ui_1.dp)(28),
|
271
|
+
},
|
272
|
+
});
|
273
|
+
exports.default = (0, react_1.memo)(MessageBar);
|