@droppii-org/chat-mobile 0.2.24 → 0.2.26
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/lib/module/assets/images/btn_resend.png +0 -0
- package/lib/module/assets/images/index.js +2 -1
- package/lib/module/assets/images/index.js.map +1 -1
- package/lib/module/components/AttachmentPreview/FilePreview.js +1 -1
- package/lib/module/components/AttachmentPreview/FilePreview.js.map +1 -1
- package/lib/module/components/flows/inputButtons/index.js +3 -6
- package/lib/module/components/flows/inputButtons/index.js.map +1 -1
- package/lib/module/components/messages/MessageStatusIndicator.js +70 -0
- package/lib/module/components/messages/MessageStatusIndicator.js.map +1 -0
- package/lib/module/components/messages/fileMessage/index.js +1 -1
- package/lib/module/components/messages/fileMessage/index.js.map +1 -1
- package/lib/module/components/messages/imageMessage/index.js +60 -51
- package/lib/module/components/messages/imageMessage/index.js.map +1 -1
- package/lib/module/components/messages/linkMessage/index.js +17 -9
- package/lib/module/components/messages/linkMessage/index.js.map +1 -1
- package/lib/module/components/messages/mergedMessage/index.js +5 -8
- package/lib/module/components/messages/mergedMessage/index.js.map +1 -1
- package/lib/module/components/messages/styles.js +12 -0
- package/lib/module/components/messages/styles.js.map +1 -1
- package/lib/module/components/messages/textMessage/index.js +20 -9
- package/lib/module/components/messages/textMessage/index.js.map +1 -1
- package/lib/module/components/messages/videoMessage/index.js +7 -11
- package/lib/module/components/messages/videoMessage/index.js.map +1 -1
- package/lib/module/config/uploadLimits.js +1 -1
- package/lib/module/config/uploadLimits.js.map +1 -1
- package/lib/module/core/useChatListener.js +35 -4
- package/lib/module/core/useChatListener.js.map +1 -1
- package/lib/module/core/useUserListener.js +17 -7
- package/lib/module/core/useUserListener.js.map +1 -1
- package/lib/module/hooks/message/useSendMessage.js +62 -15
- package/lib/module/hooks/message/useSendMessage.js.map +1 -1
- package/lib/module/hooks/useChatCompose.js +39 -28
- package/lib/module/hooks/useChatCompose.js.map +1 -1
- package/lib/module/hooks/useChatMessages.js +39 -8
- package/lib/module/hooks/useChatMessages.js.map +1 -1
- package/lib/module/hooks/useFileAttachment.js +1 -1
- package/lib/module/hooks/useFileAttachment.js.map +1 -1
- package/lib/module/hooks/useFileDownload.js +1 -1
- package/lib/module/hooks/useFileDownload.js.map +1 -1
- package/lib/module/hooks/useImageAttachment.js +12 -3
- package/lib/module/hooks/useImageAttachment.js.map +1 -1
- package/lib/module/index.js +1 -0
- package/lib/module/index.js.map +1 -1
- package/lib/module/screens/chat-detail/ChatDetail.js +24 -1
- package/lib/module/screens/chat-detail/ChatDetail.js.map +1 -1
- package/lib/module/screens/chat-detail/ChatListLegend.js +40 -28
- package/lib/module/screens/chat-detail/ChatListLegend.js.map +1 -1
- package/lib/module/screens/chat-detail/constants.js +3 -2
- package/lib/module/screens/chat-detail/constants.js.map +1 -1
- package/lib/module/screens/chat-detail/legend/LegendChatMessage.js +48 -15
- package/lib/module/screens/chat-detail/legend/LegendChatMessage.js.map +1 -1
- package/lib/module/screens/chat-detail/messageToolbox/MessageToolboxMenu.js +98 -0
- package/lib/module/screens/chat-detail/messageToolbox/MessageToolboxMenu.js.map +1 -0
- package/lib/module/screens/chat-detail/messageToolbox/MessageToolboxOverlay.js +110 -0
- package/lib/module/screens/chat-detail/messageToolbox/MessageToolboxOverlay.js.map +1 -0
- package/lib/module/screens/chat-detail/messageToolbox/MessageToolboxWrapper.js +64 -0
- package/lib/module/screens/chat-detail/messageToolbox/MessageToolboxWrapper.js.map +1 -0
- package/lib/module/screens/chat-detail/messageToolbox/messageToolbox.utils.js +37 -0
- package/lib/module/screens/chat-detail/messageToolbox/messageToolbox.utils.js.map +1 -0
- package/lib/module/screens/chat-detail/messageToolbox/types.js +4 -0
- package/lib/module/screens/chat-detail/messageToolbox/types.js.map +1 -0
- package/lib/module/services/attachmentOrchestrator.js +34 -12
- package/lib/module/services/attachmentOrchestrator.js.map +1 -1
- package/lib/module/services/message.js +13 -5
- package/lib/module/services/message.js.map +1 -1
- package/lib/module/translation/resources/i18n.js +9 -3
- package/lib/module/translation/resources/i18n.js.map +1 -1
- package/lib/module/types/chat.js.map +1 -1
- package/lib/module/types/global.d.js +2 -0
- package/lib/module/types/global.d.js.map +1 -0
- package/lib/module/types/index.d.js +3 -0
- package/lib/module/types/index.d.js.map +1 -0
- package/lib/module/utils/UIUtils.js +37 -0
- package/lib/module/utils/UIUtils.js.map +1 -0
- package/lib/module/utils/ui.js +15 -13
- package/lib/module/utils/ui.js.map +1 -1
- package/lib/module/utils/videoThumbnailUpload.js +1 -1
- package/lib/module/utils/videoThumbnailUpload.js.map +1 -1
- package/lib/typescript/src/assets/images/index.d.ts +1 -0
- package/lib/typescript/src/assets/images/index.d.ts.map +1 -1
- package/lib/typescript/src/components/flows/inputButtons/index.d.ts.map +1 -1
- package/lib/typescript/src/components/messages/MessageStatusIndicator.d.ts +9 -0
- package/lib/typescript/src/components/messages/MessageStatusIndicator.d.ts.map +1 -0
- package/lib/typescript/src/components/messages/fileMessage/index.d.ts.map +1 -1
- package/lib/typescript/src/components/messages/imageMessage/index.d.ts.map +1 -1
- package/lib/typescript/src/components/messages/linkMessage/index.d.ts +3 -8
- package/lib/typescript/src/components/messages/linkMessage/index.d.ts.map +1 -1
- package/lib/typescript/src/components/messages/mergedMessage/index.d.ts.map +1 -1
- package/lib/typescript/src/components/messages/styles.d.ts +15 -3
- package/lib/typescript/src/components/messages/styles.d.ts.map +1 -1
- package/lib/typescript/src/components/messages/textMessage/index.d.ts +2 -8
- package/lib/typescript/src/components/messages/textMessage/index.d.ts.map +1 -1
- package/lib/typescript/src/components/messages/videoMessage/index.d.ts.map +1 -1
- package/lib/typescript/src/core/useChatListener.d.ts.map +1 -1
- package/lib/typescript/src/core/useUserListener.d.ts.map +1 -1
- package/lib/typescript/src/hooks/message/useSendMessage.d.ts +2 -0
- package/lib/typescript/src/hooks/message/useSendMessage.d.ts.map +1 -1
- package/lib/typescript/src/hooks/useChatCompose.d.ts.map +1 -1
- package/lib/typescript/src/hooks/useChatMessages.d.ts.map +1 -1
- package/lib/typescript/src/hooks/useImageAttachment.d.ts.map +1 -1
- package/lib/typescript/src/index.d.ts +1 -0
- package/lib/typescript/src/index.d.ts.map +1 -1
- package/lib/typescript/src/screens/chat-detail/ChatDetail.d.ts.map +1 -1
- package/lib/typescript/src/screens/chat-detail/ChatListLegend.d.ts +1 -1
- package/lib/typescript/src/screens/chat-detail/ChatListLegend.d.ts.map +1 -1
- package/lib/typescript/src/screens/chat-detail/constants.d.ts +2 -2
- package/lib/typescript/src/screens/chat-detail/constants.d.ts.map +1 -1
- package/lib/typescript/src/screens/chat-detail/legend/LegendChatMessage.d.ts +4 -5
- package/lib/typescript/src/screens/chat-detail/legend/LegendChatMessage.d.ts.map +1 -1
- package/lib/typescript/src/screens/chat-detail/messageToolbox/MessageToolboxMenu.d.ts +11 -0
- package/lib/typescript/src/screens/chat-detail/messageToolbox/MessageToolboxMenu.d.ts.map +1 -0
- package/lib/typescript/src/screens/chat-detail/messageToolbox/MessageToolboxOverlay.d.ts +10 -0
- package/lib/typescript/src/screens/chat-detail/messageToolbox/MessageToolboxOverlay.d.ts.map +1 -0
- package/lib/typescript/src/screens/chat-detail/messageToolbox/MessageToolboxWrapper.d.ts +11 -0
- package/lib/typescript/src/screens/chat-detail/messageToolbox/MessageToolboxWrapper.d.ts.map +1 -0
- package/lib/typescript/src/screens/chat-detail/messageToolbox/messageToolbox.utils.d.ts +18 -0
- package/lib/typescript/src/screens/chat-detail/messageToolbox/messageToolbox.utils.d.ts.map +1 -0
- package/lib/typescript/src/screens/chat-detail/messageToolbox/types.d.ts +12 -0
- package/lib/typescript/src/screens/chat-detail/messageToolbox/types.d.ts.map +1 -0
- package/lib/typescript/src/screens/chat-detail/types.d.ts +2 -0
- package/lib/typescript/src/screens/chat-detail/types.d.ts.map +1 -1
- package/lib/typescript/src/services/attachmentOrchestrator.d.ts.map +1 -1
- package/lib/typescript/src/services/message.d.ts +7 -0
- package/lib/typescript/src/services/message.d.ts.map +1 -1
- package/lib/typescript/src/translation/resources/i18n.d.ts.map +1 -1
- package/lib/typescript/src/types/chat.d.ts +11 -0
- package/lib/typescript/src/types/chat.d.ts.map +1 -1
- package/lib/typescript/src/utils/UIUtils.d.ts +4 -0
- package/lib/typescript/src/utils/UIUtils.d.ts.map +1 -0
- package/lib/typescript/src/utils/ui.d.ts +1 -12
- package/lib/typescript/src/utils/ui.d.ts.map +1 -1
- package/package.json +4 -2
- package/src/assets/images/btn_resend.png +0 -0
- package/src/assets/images/index.ts +1 -0
- package/src/components/AttachmentPreview/FilePreview.tsx +1 -1
- package/src/components/flows/inputButtons/index.tsx +3 -5
- package/src/components/messages/MessageStatusIndicator.tsx +82 -0
- package/src/components/messages/fileMessage/index.tsx +0 -2
- package/src/components/messages/imageMessage/index.tsx +72 -58
- package/src/components/messages/linkMessage/index.tsx +16 -21
- package/src/components/messages/mergedMessage/index.tsx +13 -18
- package/src/components/messages/styles.ts +12 -0
- package/src/components/messages/textMessage/index.tsx +20 -20
- package/src/components/messages/videoMessage/index.tsx +8 -11
- package/src/config/uploadLimits.ts +1 -1
- package/src/core/useChatListener.ts +38 -4
- package/src/core/useUserListener.ts +17 -7
- package/src/hooks/message/useSendMessage.ts +103 -24
- package/src/hooks/useChatCompose.ts +42 -33
- package/src/hooks/useChatMessages.ts +54 -10
- package/src/hooks/useFileAttachment.ts +1 -1
- package/src/hooks/useFileDownload.ts +1 -1
- package/src/hooks/useImageAttachment.ts +13 -5
- package/src/index.tsx +2 -0
- package/src/screens/chat-detail/ChatDetail.tsx +29 -0
- package/src/screens/chat-detail/ChatListLegend.tsx +45 -28
- package/src/screens/chat-detail/constants.ts +3 -2
- package/src/screens/chat-detail/legend/LegendChatMessage.tsx +60 -15
- package/src/screens/chat-detail/messageToolbox/MessageToolboxMenu.tsx +114 -0
- package/src/screens/chat-detail/messageToolbox/MessageToolboxOverlay.tsx +130 -0
- package/src/screens/chat-detail/messageToolbox/MessageToolboxWrapper.tsx +99 -0
- package/src/screens/chat-detail/messageToolbox/messageToolbox.utils.ts +56 -0
- package/src/screens/chat-detail/messageToolbox/types.ts +13 -0
- package/src/screens/chat-detail/types.ts +2 -0
- package/src/services/attachmentOrchestrator.ts +45 -21
- package/src/services/message.ts +21 -4
- package/src/translation/resources/i18n.ts +11 -3
- package/src/types/chat.ts +6 -0
- package/src/types/global.d.ts +299 -0
- package/src/types/index.d.ts +1 -0
- package/src/utils/UIUtils.ts +31 -0
- package/src/utils/ui.ts +20 -16
- package/src/utils/videoThumbnailUpload.ts +1 -1
- package/lib/module/hooks/useVideoAttachment.js +0 -251
- package/lib/module/hooks/useVideoAttachment.js.map +0 -1
- package/lib/typescript/src/hooks/useVideoAttachment.d.ts +0 -29
- package/lib/typescript/src/hooks/useVideoAttachment.d.ts.map +0 -1
- package/src/hooks/useVideoAttachment.ts +0 -334
|
@@ -6,7 +6,8 @@ import { getMessageText } from "../../../utils/legendListMessage.js";
|
|
|
6
6
|
import { CHAT_BUBBLE_COLORS } from "../../../screens/chat-detail/constants.js";
|
|
7
7
|
import { messageStyles } from "../styles.js";
|
|
8
8
|
import { formatMessageTime } from "../types.js";
|
|
9
|
-
import {
|
|
9
|
+
import { StyleSheet } from 'react-native';
|
|
10
|
+
import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-runtime";
|
|
10
11
|
export const TextMessage = /*#__PURE__*/memo(({
|
|
11
12
|
message,
|
|
12
13
|
isOutgoing,
|
|
@@ -17,8 +18,7 @@ export const TextMessage = /*#__PURE__*/memo(({
|
|
|
17
18
|
if (!messageText?.trim()) {
|
|
18
19
|
return null;
|
|
19
20
|
}
|
|
20
|
-
return /*#__PURE__*/_jsxs(
|
|
21
|
-
style: messageStyles.wrapper,
|
|
21
|
+
return /*#__PURE__*/_jsxs(_Fragment, {
|
|
22
22
|
children: [/*#__PURE__*/_jsx(KContainer.View, {
|
|
23
23
|
style: [messageStyles.bubble, isOutgoing ? messageStyles.bubbleSent : messageStyles.bubbleReceived],
|
|
24
24
|
children: /*#__PURE__*/_jsx(KLabel.Text, {
|
|
@@ -26,13 +26,24 @@ export const TextMessage = /*#__PURE__*/memo(({
|
|
|
26
26
|
color: CHAT_BUBBLE_COLORS.text,
|
|
27
27
|
children: messageText
|
|
28
28
|
})
|
|
29
|
-
}),
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
children: timeLabel
|
|
34
|
-
|
|
29
|
+
}), /*#__PURE__*/_jsx(KContainer.View, {
|
|
30
|
+
row: true,
|
|
31
|
+
alignItems: true,
|
|
32
|
+
style: styles.timeLabel,
|
|
33
|
+
children: !isOutgoing && timeLabel ? /*#__PURE__*/_jsx(KLabel.Text, {
|
|
34
|
+
typo: "TextXsNormal",
|
|
35
|
+
color: CHAT_BUBBLE_COLORS.timestamp,
|
|
36
|
+
marginL: '0.25rem',
|
|
37
|
+
children: timeLabel
|
|
38
|
+
}) : null
|
|
39
|
+
})]
|
|
35
40
|
});
|
|
36
41
|
});
|
|
37
42
|
TextMessage.displayName = 'TextMessage';
|
|
43
|
+
const styles = StyleSheet.create({
|
|
44
|
+
timeLabel: {
|
|
45
|
+
gap: 4,
|
|
46
|
+
marginTop: 2
|
|
47
|
+
}
|
|
48
|
+
});
|
|
38
49
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["memo","KContainer","KLabel","getMessageText","CHAT_BUBBLE_COLORS","messageStyles","formatMessageTime","jsx","_jsx","jsxs","_jsxs","TextMessage","message","isOutgoing","createdAtTime","messageText","timeLabel","trim","
|
|
1
|
+
{"version":3,"names":["memo","KContainer","KLabel","getMessageText","CHAT_BUBBLE_COLORS","messageStyles","formatMessageTime","StyleSheet","jsx","_jsx","Fragment","_Fragment","jsxs","_jsxs","TextMessage","message","isOutgoing","createdAtTime","messageText","timeLabel","trim","children","View","style","bubble","bubbleSent","bubbleReceived","Text","typo","color","text","row","alignItems","styles","timestamp","marginL","displayName","create","gap","marginTop"],"sourceRoot":"../../../../../src","sources":["components/messages/textMessage/index.tsx"],"mappings":";;AAAA,SAASA,IAAI,QAAQ,OAAO;AAC5B,SAASC,UAAU,EAAEC,MAAM,QAAQ,eAAe;AAClD,SAASC,cAAc,QAAQ,qCAAkC;AACjE,SAASC,kBAAkB,QAAQ,2CAAwC;AAC3E,SAASC,aAAa,QAAQ,cAAW;AACzC,SAASC,iBAAiB,QAAQ,aAAU;AAE5C,SAASC,UAAU,QAAQ,cAAc;AAAC,SAAAC,GAAA,IAAAC,IAAA,EAAAC,QAAA,IAAAC,SAAA,EAAAC,IAAA,IAAAC,KAAA;AAC1C,OAAO,MAAMC,WAAW,gBAAGd,IAAI,CAC7B,CAAC;EAAEe,OAAO;EAAEC,UAAU;EAAEC;AAAsC,CAAC,KAAK;EAClE,MAAMC,WAAW,GAAGf,cAAc,CAACY,OAAO,CAAC;EAC3C,MAAMI,SAAS,GAAGb,iBAAiB,CAACW,aAAa,CAAC;EAElD,IAAI,CAACC,WAAW,EAAEE,IAAI,CAAC,CAAC,EAAE;IACxB,OAAO,IAAI;EACb;EAEA,oBACEP,KAAA,CAAAF,SAAA;IAAAU,QAAA,gBACEZ,IAAA,CAACR,UAAU,CAACqB,IAAI;MACdC,KAAK,EAAE,CACLlB,aAAa,CAACmB,MAAM,EACpBR,UAAU,GACNX,aAAa,CAACoB,UAAU,GACxBpB,aAAa,CAACqB,cAAc,CAChC;MAAAL,QAAA,eAEFZ,IAAA,CAACP,MAAM,CAACyB,IAAI;QAACC,IAAI,EAAC,cAAc;QAACC,KAAK,EAAEzB,kBAAkB,CAAC0B,IAAK;QAAAT,QAAA,EAC7DH;MAAW,CACD;IAAC,CACC,CAAC,eAElBT,IAAA,CAACR,UAAU,CAACqB,IAAI;MAACS,GAAG;MAACC,UAAU;MAACT,KAAK,EAAEU,MAAM,CAACd,SAAU;MAAAE,QAAA,EACrD,CAACL,UAAU,IAAIG,SAAS,gBACvBV,IAAA,CAACP,MAAM,CAACyB,IAAI;QACVC,IAAI,EAAC,cAAc;QACnBC,KAAK,EAAEzB,kBAAkB,CAAC8B,SAAU;QACpCC,OAAO,EAAE,SAAU;QAAAd,QAAA,EAElBF;MAAS,CACC,CAAC,GACZ;IAAI,CACO,CAAC;EAAA,CAClB,CAAC;AAEP,CACF,CAAC;AAEDL,WAAW,CAACsB,WAAW,GAAG,aAAa;AAEvC,MAAMH,MAAM,GAAG1B,UAAU,CAAC8B,MAAM,CAAC;EAC/BlB,SAAS,EAAE;IAAEmB,GAAG,EAAE,CAAC;IAAEC,SAAS,EAAE;EAAE;AACpC,CAAC,CAAC","ignoreList":[]}
|
|
@@ -6,7 +6,7 @@ import { KContainer, KImage, KLabel } from '@droppii/libs';
|
|
|
6
6
|
import ChatImageDimens, { CHAT_IMAGE_VIEW_SOURCE } from "../../../utils/chatImageDimens.js";
|
|
7
7
|
import { CHAT_BUBBLE_COLORS } from "../../../screens/chat-detail/constants.js";
|
|
8
8
|
import { messageStyles } from "../styles.js";
|
|
9
|
-
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
9
|
+
import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
|
|
10
10
|
const formatDuration = durationMs => {
|
|
11
11
|
const totalSeconds = Math.floor(durationMs / 1000);
|
|
12
12
|
const minutes = Math.floor(totalSeconds / 60);
|
|
@@ -31,20 +31,16 @@ export const VideoMessage = /*#__PURE__*/memo(({
|
|
|
31
31
|
}, [videoUrl, onMediaPress]);
|
|
32
32
|
if (!videoUrl) {
|
|
33
33
|
return /*#__PURE__*/_jsx(KContainer.View, {
|
|
34
|
-
style: messageStyles.
|
|
35
|
-
children: /*#__PURE__*/_jsx(
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
color: CHAT_BUBBLE_COLORS.text,
|
|
40
|
-
children: "\uD83D\uDCF9 [Video unavailable]"
|
|
41
|
-
})
|
|
34
|
+
style: [messageStyles.bubble, messageStyles.videoPlaceholder],
|
|
35
|
+
children: /*#__PURE__*/_jsx(KLabel.Text, {
|
|
36
|
+
typo: "TextSmNormal",
|
|
37
|
+
color: CHAT_BUBBLE_COLORS.text,
|
|
38
|
+
children: "\uD83D\uDCF9 [Video unavailable]"
|
|
42
39
|
})
|
|
43
40
|
});
|
|
44
41
|
}
|
|
45
42
|
const dimen = ChatImageDimens.getDimensions(CHAT_IMAGE_VIEW_SOURCE.MessageListThumbnail);
|
|
46
|
-
return /*#__PURE__*/_jsx(
|
|
47
|
-
style: messageStyles.wrapper,
|
|
43
|
+
return /*#__PURE__*/_jsx(_Fragment, {
|
|
48
44
|
children: /*#__PURE__*/_jsxs(KContainer.Touchable, {
|
|
49
45
|
onPress: handlePress,
|
|
50
46
|
style: [styles.videoContainer, {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["memo","useCallback","StyleSheet","KContainer","KImage","KLabel","ChatImageDimens","CHAT_IMAGE_VIEW_SOURCE","CHAT_BUBBLE_COLORS","messageStyles","jsx","_jsx","jsxs","_jsxs","formatDuration","durationMs","totalSeconds","Math","floor","minutes","seconds","String","padStart","VideoMessage","message","onMediaPress","videoElem","videoUrl","duration","thumbnail","snapshotUrl","handlePress","url","isVideo","View","style","
|
|
1
|
+
{"version":3,"names":["memo","useCallback","StyleSheet","KContainer","KImage","KLabel","ChatImageDimens","CHAT_IMAGE_VIEW_SOURCE","CHAT_BUBBLE_COLORS","messageStyles","jsx","_jsx","jsxs","_jsxs","Fragment","_Fragment","formatDuration","durationMs","totalSeconds","Math","floor","minutes","seconds","String","padStart","VideoMessage","message","onMediaPress","videoElem","videoUrl","duration","thumbnail","snapshotUrl","handlePress","url","isVideo","View","style","bubble","videoPlaceholder","children","Text","typo","color","text","dimen","getDimensions","MessageListThumbnail","Touchable","onPress","styles","videoContainer","width","height","Base","uri","resizeMode","videoBg","playOverlay","center","VectorIcons","name","provider","size","durationBadge","displayName","create","overflow","borderRadius","backgroundColor","flex","position","top","left","right","bottom","paddingHorizontal","paddingVertical"],"sourceRoot":"../../../../../src","sources":["components/messages/videoMessage/index.tsx"],"mappings":"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","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["MB","UPLOAD_LIMITS","image","video","file","UPLOAD_CONCURRENCY"],"sourceRoot":"../../../src","sources":["config/uploadLimits.ts"],"mappings":";;AAAA,MAAMA,EAAE,GAAG,IAAI,GAAG,IAAI;AAEtB,OAAO,MAAMC,aAAa,GAAG;EAC3BC,KAAK,EAAE,
|
|
1
|
+
{"version":3,"names":["MB","UPLOAD_LIMITS","image","video","file","UPLOAD_CONCURRENCY"],"sourceRoot":"../../../src","sources":["config/uploadLimits.ts"],"mappings":";;AAAA,MAAMA,EAAE,GAAG,IAAI,GAAG,IAAI;AAEtB,OAAO,MAAMC,aAAa,GAAG;EAC3BC,KAAK,EAAE,EAAE,GAAGF,EAAE;EACdG,KAAK,EAAE,GAAG,GAAGH,EAAE;EACfI,IAAI,EAAE,EAAE,GAAGJ;AACb,CAAU;;AAEV;AACA;AACA,OAAO,MAAMK,kBAAkB,GAAG,CAAC","ignoreList":[]}
|
|
@@ -3,20 +3,45 @@
|
|
|
3
3
|
import OpenIMSDK, { OpenIMEvent } from '@droppii/openim-rn-client-sdk';
|
|
4
4
|
import { useCallback, useEffect } from 'react';
|
|
5
5
|
import { useConversationStore } from "../store/conversation.js";
|
|
6
|
+
import { useMessageStore } from "../store/message.js";
|
|
6
7
|
export const useChatListener = () => {
|
|
8
|
+
const updateOneMessage = useMessageStore(state => state.updateOneMessage);
|
|
9
|
+
const onSendMessageProgress = useCallback(({
|
|
10
|
+
progress,
|
|
11
|
+
message
|
|
12
|
+
}) => {
|
|
13
|
+
console.log('[Listener] SendMessageProgress', {
|
|
14
|
+
clientMsgID: message.clientMsgID,
|
|
15
|
+
status: message.status,
|
|
16
|
+
progress
|
|
17
|
+
});
|
|
18
|
+
updateOneMessage(message);
|
|
19
|
+
}, [updateOneMessage]);
|
|
7
20
|
const onConversationChanged = useCallback(conversations => {
|
|
8
|
-
console.log('
|
|
21
|
+
console.log('[Listener] OnConversationChanged', {
|
|
22
|
+
count: conversations.length,
|
|
23
|
+
ids: conversations.map(c => c.conversationID)
|
|
24
|
+
});
|
|
9
25
|
useConversationStore.getState().updateConversations(conversations);
|
|
10
26
|
}, []);
|
|
11
27
|
const onNewConversation = useCallback(conversations => {
|
|
12
|
-
console.log('
|
|
28
|
+
console.log('[Listener] OnNewConversation', {
|
|
29
|
+
count: conversations.length,
|
|
30
|
+
ids: conversations.map(c => c.conversationID)
|
|
31
|
+
});
|
|
13
32
|
useConversationStore.getState().updateConversations(conversations);
|
|
14
33
|
}, []);
|
|
15
34
|
const onGroupMemberAdded = useCallback(member => {
|
|
16
|
-
console.log('
|
|
35
|
+
console.log('[Listener] OnGroupMemberAdded', {
|
|
36
|
+
userID: member.userID,
|
|
37
|
+
groupID: member.groupID
|
|
38
|
+
});
|
|
17
39
|
}, []);
|
|
18
40
|
const onGroupMemberDeleted = useCallback(member => {
|
|
19
|
-
console.log('
|
|
41
|
+
console.log('[Listener] OnGroupMemberDeleted', {
|
|
42
|
+
userID: member.userID,
|
|
43
|
+
groupID: member.groupID
|
|
44
|
+
});
|
|
20
45
|
}, []);
|
|
21
46
|
useEffect(() => {
|
|
22
47
|
// Conversation
|
|
@@ -26,6 +51,9 @@ export const useChatListener = () => {
|
|
|
26
51
|
// Group members
|
|
27
52
|
OpenIMSDK.on(OpenIMEvent.OnGroupMemberAdded, onGroupMemberAdded);
|
|
28
53
|
OpenIMSDK.on(OpenIMEvent.OnGroupMemberDeleted, onGroupMemberDeleted);
|
|
54
|
+
|
|
55
|
+
// Message status
|
|
56
|
+
OpenIMSDK.on(OpenIMEvent.SendMessageProgress, onSendMessageProgress);
|
|
29
57
|
return () => {
|
|
30
58
|
// Conversation
|
|
31
59
|
OpenIMSDK.off(OpenIMEvent.OnConversationChanged, onConversationChanged);
|
|
@@ -34,6 +62,9 @@ export const useChatListener = () => {
|
|
|
34
62
|
// Group members
|
|
35
63
|
OpenIMSDK.off(OpenIMEvent.OnGroupMemberAdded, onGroupMemberAdded);
|
|
36
64
|
OpenIMSDK.off(OpenIMEvent.OnGroupMemberDeleted, onGroupMemberDeleted);
|
|
65
|
+
|
|
66
|
+
// Message status
|
|
67
|
+
OpenIMSDK.off(OpenIMEvent.SendMessageProgress, onSendMessageProgress);
|
|
37
68
|
};
|
|
38
69
|
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
39
70
|
}, []);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["OpenIMSDK","OpenIMEvent","useCallback","useEffect","useConversationStore","useChatListener","
|
|
1
|
+
{"version":3,"names":["OpenIMSDK","OpenIMEvent","useCallback","useEffect","useConversationStore","useMessageStore","useChatListener","updateOneMessage","state","onSendMessageProgress","progress","message","console","log","clientMsgID","status","onConversationChanged","conversations","count","length","ids","map","c","conversationID","getState","updateConversations","onNewConversation","onGroupMemberAdded","member","userID","groupID","onGroupMemberDeleted","on","OnConversationChanged","OnNewConversation","OnGroupMemberAdded","OnGroupMemberDeleted","SendMessageProgress","off"],"sourceRoot":"../../../src","sources":["core/useChatListener.ts"],"mappings":"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","ignoreList":[]}
|
|
@@ -21,30 +21,40 @@ export const useUserListener = () => {
|
|
|
21
21
|
}
|
|
22
22
|
}, [isLoggedIn, fetchAndUpdateUser]);
|
|
23
23
|
const onConnecting = useCallback(() => {
|
|
24
|
+
console.log('[Listener] OnConnecting');
|
|
24
25
|
useUserStore.getState().updateConnectStatus(LoginStatus.Logging);
|
|
25
26
|
}, []);
|
|
26
27
|
const onConnectSuccess = useCallback(() => {
|
|
28
|
+
console.log('[Listener] OnConnectSuccess');
|
|
27
29
|
useUserStore.getState().updateConnectStatus(LoginStatus.Logged);
|
|
28
30
|
}, []);
|
|
29
|
-
const onConnectFailed = useCallback(
|
|
30
|
-
|
|
31
|
+
const onConnectFailed = useCallback(data => {
|
|
32
|
+
console.log('[Listener] OnConnectFailed', data);
|
|
31
33
|
}, []);
|
|
32
|
-
const onSyncServerStart = useCallback(
|
|
34
|
+
const onSyncServerStart = useCallback(isSyncing => {
|
|
35
|
+
console.log('[Listener] OnSyncServerStart', {
|
|
36
|
+
isSyncing
|
|
37
|
+
});
|
|
33
38
|
useUserStore.getState().updateSyncStatus(SyncStatus.Loading);
|
|
34
39
|
}, []);
|
|
35
40
|
const onSyncServerFinish = useCallback(() => {
|
|
41
|
+
console.log('[Listener] OnSyncServerFinish');
|
|
36
42
|
useUserStore.getState().updateSyncStatus(SyncStatus.Success);
|
|
37
43
|
}, []);
|
|
38
44
|
const onSyncServerFailed = useCallback(() => {
|
|
45
|
+
console.log('[Listener] OnSyncServerFailed');
|
|
39
46
|
useUserStore.getState().updateSyncStatus(SyncStatus.Failed);
|
|
40
47
|
}, []);
|
|
48
|
+
const onUserToken = useCallback(() => {
|
|
49
|
+
console.log('[Listener] OnUserToken expired/invalid');
|
|
50
|
+
}, []);
|
|
41
51
|
useEffect(() => {
|
|
42
52
|
// User
|
|
43
53
|
OpenIMSDK.on(OpenIMEvent.OnConnecting, onConnecting);
|
|
44
54
|
OpenIMSDK.on(OpenIMEvent.OnConnectSuccess, onConnectSuccess);
|
|
45
55
|
OpenIMSDK.on(OpenIMEvent.OnConnectFailed, onConnectFailed);
|
|
46
|
-
OpenIMSDK.on(OpenIMEvent.OnUserTokenExpired,
|
|
47
|
-
OpenIMSDK.on(OpenIMEvent.OnUserTokenInvalid,
|
|
56
|
+
OpenIMSDK.on(OpenIMEvent.OnUserTokenExpired, onUserToken);
|
|
57
|
+
OpenIMSDK.on(OpenIMEvent.OnUserTokenInvalid, onUserToken);
|
|
48
58
|
|
|
49
59
|
// Sync
|
|
50
60
|
OpenIMSDK.on(OpenIMEvent.OnSyncServerStart, onSyncServerStart);
|
|
@@ -55,8 +65,8 @@ export const useUserListener = () => {
|
|
|
55
65
|
OpenIMSDK.off(OpenIMEvent.OnConnecting, onConnecting);
|
|
56
66
|
OpenIMSDK.off(OpenIMEvent.OnConnectSuccess, onConnectSuccess);
|
|
57
67
|
OpenIMSDK.off(OpenIMEvent.OnConnectFailed, onConnectFailed);
|
|
58
|
-
OpenIMSDK.
|
|
59
|
-
OpenIMSDK.
|
|
68
|
+
OpenIMSDK.off(OpenIMEvent.OnUserTokenExpired, onUserToken);
|
|
69
|
+
OpenIMSDK.off(OpenIMEvent.OnUserTokenInvalid, onUserToken);
|
|
60
70
|
|
|
61
71
|
// Sync
|
|
62
72
|
OpenIMSDK.off(OpenIMEvent.OnSyncServerStart, onSyncServerStart);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["OpenIMSDK","LoginStatus","OpenIMEvent","useCallback","useEffect","useUserStore","SyncStatus","ChatAPI","useUserListener","isLoggedIn","state","connectStatus","Logged","fetchAndUpdateUser","user","getUser","getState","setUser","error","console","onConnecting","updateConnectStatus","Logging","onConnectSuccess","onConnectFailed","
|
|
1
|
+
{"version":3,"names":["OpenIMSDK","LoginStatus","OpenIMEvent","useCallback","useEffect","useUserStore","SyncStatus","ChatAPI","useUserListener","isLoggedIn","state","connectStatus","Logged","fetchAndUpdateUser","user","getUser","getState","setUser","error","console","onConnecting","log","updateConnectStatus","Logging","onConnectSuccess","onConnectFailed","data","onSyncServerStart","isSyncing","updateSyncStatus","Loading","onSyncServerFinish","Success","onSyncServerFailed","Failed","onUserToken","on","OnConnecting","OnConnectSuccess","OnConnectFailed","OnUserTokenExpired","OnUserTokenInvalid","OnSyncServerStart","OnSyncServerFinish","OnSyncServerFailed","off"],"sourceRoot":"../../../src","sources":["core/useUserListener.ts"],"mappings":"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","ignoreList":[]}
|
|
@@ -1,15 +1,43 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
3
|
import { useCallback } from 'react';
|
|
4
|
-
import { useConversationStore } from "../../store/
|
|
4
|
+
import { useConversationStore } from "../../store/conversation.js";
|
|
5
|
+
import { MessageStatus, MessageType } from '@droppii/openim-rn-client-sdk';
|
|
5
6
|
import { extractUrls } from "../../utils/url.js";
|
|
6
7
|
import OpenIMSDK from '@droppii/openim-rn-client-sdk';
|
|
7
8
|
import { useChatContext } from "../../context/index.js";
|
|
8
9
|
import { generateContentBasedOnMessageType } from "../../utils/conversation.js";
|
|
9
10
|
import { useMessageStore } from "../../store/message.js";
|
|
11
|
+
const buildSendParams = (message, recvID, groupID, extendMessageInfo, plainText) => ({
|
|
12
|
+
groupID,
|
|
13
|
+
recvID,
|
|
14
|
+
message: {
|
|
15
|
+
...message,
|
|
16
|
+
ex: JSON.stringify(extendMessageInfo) || '{}'
|
|
17
|
+
},
|
|
18
|
+
offlinePushInfo: generateOfflinePushInfo(message.contentType, plainText)
|
|
19
|
+
});
|
|
10
20
|
export const useSendMessage = () => {
|
|
11
21
|
const applicationType = useChatContext().applicationType;
|
|
12
22
|
const pushNewMessage = useMessageStore(state => state.pushNewMessage);
|
|
23
|
+
const updateOneMessage = useMessageStore(state => state.updateOneMessage);
|
|
24
|
+
const deleteOneMessage = useMessageStore(state => state.deleteOneMessage);
|
|
25
|
+
const dispatchSend = useCallback(async (message, recvID, groupID, extendMessageInfo, plainText) => {
|
|
26
|
+
pushNewMessage({
|
|
27
|
+
...message,
|
|
28
|
+
status: MessageStatus.Sending
|
|
29
|
+
});
|
|
30
|
+
try {
|
|
31
|
+
const sent = await OpenIMSDK.sendMessage(buildSendParams(message, recvID, groupID, extendMessageInfo, plainText));
|
|
32
|
+
deleteOneMessage(message.clientMsgID);
|
|
33
|
+
pushNewMessage(sent);
|
|
34
|
+
} catch {
|
|
35
|
+
updateOneMessage({
|
|
36
|
+
...message,
|
|
37
|
+
status: MessageStatus.Failed
|
|
38
|
+
});
|
|
39
|
+
}
|
|
40
|
+
}, [pushNewMessage, updateOneMessage, deleteOneMessage]);
|
|
13
41
|
const sendMessage = useCallback(async ({
|
|
14
42
|
plainText,
|
|
15
43
|
files,
|
|
@@ -25,8 +53,6 @@ export const useSendMessage = () => {
|
|
|
25
53
|
for (const file of files || []) {
|
|
26
54
|
if (!file) continue;
|
|
27
55
|
}
|
|
28
|
-
|
|
29
|
-
// Allow empty text if urlMetadata (preview link) is present
|
|
30
56
|
const hasText = !!plainText && plainText.trim() !== '';
|
|
31
57
|
const hasPreview = !!urlMetadata?.url;
|
|
32
58
|
if (hasText || hasPreview) {
|
|
@@ -34,7 +60,6 @@ export const useSendMessage = () => {
|
|
|
34
60
|
const isUrlMessage = urls.length > 0 || hasPreview;
|
|
35
61
|
let message = null;
|
|
36
62
|
if (isUrlMessage) {
|
|
37
|
-
// Create URL message even with empty text if preview exists
|
|
38
63
|
message = await createUrlTextMessage(plainText || '', urls);
|
|
39
64
|
} else if (hasText) {
|
|
40
65
|
message = await createTextMessage(plainText);
|
|
@@ -48,20 +73,42 @@ export const useSendMessage = () => {
|
|
|
48
73
|
urlMetadata,
|
|
49
74
|
flow
|
|
50
75
|
};
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
76
|
+
await dispatchSend(message, recvID || '', groupID || '', extendMessageInfo, plainText || '');
|
|
77
|
+
}
|
|
78
|
+
}, [applicationType, dispatchSend]);
|
|
79
|
+
const retryMessage = useCallback(async message => {
|
|
80
|
+
const {
|
|
81
|
+
userID: recvID,
|
|
82
|
+
groupID
|
|
83
|
+
} = useConversationStore.getState().getCurrentConversation() || {};
|
|
84
|
+
if (!recvID && !groupID) return;
|
|
85
|
+
updateOneMessage({
|
|
86
|
+
...message,
|
|
87
|
+
status: MessageStatus.Sending
|
|
88
|
+
});
|
|
89
|
+
|
|
90
|
+
// Attachment messages were sent via sendMessageNotOss (URL already uploaded).
|
|
91
|
+
// Text/URL messages use sendMessage (SDK handles upload).
|
|
92
|
+
const isAttachment = [MessageType.PictureMessage, MessageType.VideoMessage, MessageType.FileMessage, MessageType.MergeMessage].includes(message.contentType);
|
|
93
|
+
const params = {
|
|
94
|
+
recvID: recvID || '',
|
|
95
|
+
groupID: groupID || '',
|
|
96
|
+
message
|
|
97
|
+
};
|
|
98
|
+
try {
|
|
99
|
+
const sent = isAttachment ? await OpenIMSDK.sendMessageNotOss(params) : await OpenIMSDK.sendMessage(buildSendParams(message, recvID || '', groupID || '', JSON.parse(message.ex || '{}'), ''));
|
|
100
|
+
deleteOneMessage(message.clientMsgID);
|
|
101
|
+
pushNewMessage(sent);
|
|
102
|
+
} catch {
|
|
103
|
+
updateOneMessage({
|
|
104
|
+
...message,
|
|
105
|
+
status: MessageStatus.Failed
|
|
59
106
|
});
|
|
60
|
-
pushNewMessage(successMessage);
|
|
61
107
|
}
|
|
62
|
-
}, [
|
|
108
|
+
}, [pushNewMessage, updateOneMessage, deleteOneMessage]);
|
|
63
109
|
return {
|
|
64
|
-
sendMessage
|
|
110
|
+
sendMessage,
|
|
111
|
+
retryMessage
|
|
65
112
|
};
|
|
66
113
|
};
|
|
67
114
|
const generateOfflinePushInfo = (contentType, plainText) => {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["useCallback","useConversationStore","extractUrls","OpenIMSDK","useChatContext","generateContentBasedOnMessageType","useMessageStore","useSendMessage","applicationType","pushNewMessage","state","
|
|
1
|
+
{"version":3,"names":["useCallback","useConversationStore","MessageStatus","MessageType","extractUrls","OpenIMSDK","useChatContext","generateContentBasedOnMessageType","useMessageStore","buildSendParams","message","recvID","groupID","extendMessageInfo","plainText","ex","JSON","stringify","offlinePushInfo","generateOfflinePushInfo","contentType","useSendMessage","applicationType","pushNewMessage","state","updateOneMessage","deleteOneMessage","dispatchSend","status","Sending","sent","sendMessage","clientMsgID","Failed","files","urlMetadata","flow","userID","getState","getCurrentConversation","messageList","file","hasText","trim","hasPreview","url","urls","isUrlMessage","length","createUrlTextMessage","createTextMessage","push","retryMessage","isAttachment","PictureMessage","VideoMessage","FileMessage","MergeMessage","includes","params","sendMessageNotOss","parse","conversationData","title","showName","desc","icon","faceURL","conversationId","conversationID","iOSPushSound","iOSBadgeCount","text","textMessage","Date","getTime","toString","then","data","catch","errCode","errMsg","console","error","urlTextMessage"],"sourceRoot":"../../../../src","sources":["hooks/message/useSendMessage.ts"],"mappings":"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","ignoreList":[]}
|
|
@@ -40,10 +40,13 @@ export function useChatCompose() {
|
|
|
40
40
|
const uploadedImages = actualImages.filter(img => img.uploadedUrl);
|
|
41
41
|
const uploadedVideos = videos.filter(v => v.uploadedUrl);
|
|
42
42
|
|
|
43
|
-
//
|
|
43
|
+
// Thumbnails are generated + uploaded at pick time (useImageAttachment).
|
|
44
|
+
// Only fall back to generating here for videos that don't already have one
|
|
45
|
+
// (e.g. thumbnail generation failed or hadn't finished before send).
|
|
46
|
+
const videosMissingThumbnail = uploadedVideos.filter(v => !v.thumbnailUrl);
|
|
44
47
|
let videoThumbnails = {};
|
|
45
|
-
if (
|
|
46
|
-
videoThumbnails = await generateAndUploadVideoThumbnails(
|
|
48
|
+
if (videosMissingThumbnail.length > 0) {
|
|
49
|
+
videoThumbnails = await generateAndUploadVideoThumbnails(videosMissingThumbnail);
|
|
47
50
|
}
|
|
48
51
|
|
|
49
52
|
// Send images + videos
|
|
@@ -68,45 +71,53 @@ export function useChatCompose() {
|
|
|
68
71
|
error: vid.error,
|
|
69
72
|
isUploading: vid.isUploading,
|
|
70
73
|
uploadedUrl: vid.uploadedUrl,
|
|
71
|
-
thumbnailUrl: thumb?.url,
|
|
72
|
-
thumbnailSize: thumb?.size
|
|
74
|
+
thumbnailUrl: vid.thumbnailUrl ?? thumb?.url,
|
|
75
|
+
thumbnailSize: vid.thumbnailSize ?? thumb?.size
|
|
73
76
|
};
|
|
74
77
|
})];
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
78
|
+
|
|
79
|
+
// Clear composer immediately — message is already in chat list with Sending status.
|
|
80
|
+
// User retries from the bubble, not the composer.
|
|
81
|
+
ImagePicker.clean().catch(() => {});
|
|
82
|
+
clearAllImages();
|
|
83
|
+
// Awaited so files (lower priority per attachment-priority config)
|
|
84
|
+
// only start sending after images/videos are done.
|
|
85
|
+
await sendAttachments(attachmentItems, undefined);
|
|
81
86
|
}
|
|
82
87
|
|
|
83
|
-
// Send each file as its own message
|
|
88
|
+
// Send each file as its own message (never merged), in priority order
|
|
89
|
+
// after images/videos, one at a time to preserve pick order.
|
|
84
90
|
const uploadedFiles = selectedFiles.filter(f => f.uploadedUrl && !f.error);
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
91
|
+
if (uploadedFiles.length > 0) {
|
|
92
|
+
clearAllFiles();
|
|
93
|
+
for (const file of uploadedFiles) {
|
|
94
|
+
await sendAttachments([{
|
|
95
|
+
type: 'file',
|
|
96
|
+
file: {
|
|
97
|
+
path: file.uri,
|
|
98
|
+
filename: file.name,
|
|
99
|
+
size: file.size
|
|
100
|
+
},
|
|
101
|
+
uploadProgress: 100,
|
|
102
|
+
error: null,
|
|
103
|
+
isUploading: false,
|
|
104
|
+
uploadedUrl: file.uploadedUrl
|
|
105
|
+
}], undefined);
|
|
106
|
+
}
|
|
98
107
|
}
|
|
99
|
-
if (uploadedFiles.length > 0) clearAllFiles();
|
|
100
108
|
}
|
|
101
109
|
|
|
102
110
|
// --- Text / link preview ---
|
|
103
111
|
if (text.trim() || urlMeta) {
|
|
112
|
+
const plainText = text.trim();
|
|
113
|
+
// Clear composer immediately — message is already in chat list with Sending status.
|
|
114
|
+
// User retries from the bubble, not the composer.
|
|
115
|
+
setText('');
|
|
104
116
|
await sendMessage({
|
|
105
117
|
files: [],
|
|
106
|
-
plainText
|
|
118
|
+
plainText,
|
|
107
119
|
urlMetadata: urlMeta
|
|
108
120
|
});
|
|
109
|
-
setText('');
|
|
110
121
|
}
|
|
111
122
|
}, [imageAttachment, fileAttachment, linkPreview.isVisible, linkPreview.metadata, sendAttachments, sendMessage, text]);
|
|
112
123
|
return {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["useCallback","useMemo","useState","ImagePicker","useImageAttachment","useFileAttachment","useLinkPreview","useSendAttachment","useSendMessage","isVideoFromPicker","generateAndUploadVideoThumbnails","useChatCompose","text","setText","imageAttachment","fileAttachment","linkPreview","send","sendAttachments","sendMessage","isUploading","selectedImages","some","img","selectedFiles","f","error","canSend","trim","length","clearAllImages","clearAllFiles","urlMeta","isVisible","metadata","undefined","actualImages","filter","image","videos","uploadedImages","uploadedUrl","uploadedVideos","v","videoThumbnails","attachmentItems","map","type","vid","vidIdx","videoId","thumb","video","path","filename","size","width","height","duration","uploadProgress","
|
|
1
|
+
{"version":3,"names":["useCallback","useMemo","useState","ImagePicker","useImageAttachment","useFileAttachment","useLinkPreview","useSendAttachment","useSendMessage","isVideoFromPicker","generateAndUploadVideoThumbnails","useChatCompose","text","setText","imageAttachment","fileAttachment","linkPreview","send","sendAttachments","sendMessage","isUploading","selectedImages","some","img","selectedFiles","f","error","canSend","trim","length","clearAllImages","clearAllFiles","urlMeta","isVisible","metadata","undefined","actualImages","filter","image","videos","uploadedImages","uploadedUrl","uploadedVideos","v","videosMissingThumbnail","thumbnailUrl","videoThumbnails","attachmentItems","map","type","vid","vidIdx","videoId","thumb","video","path","filename","size","width","height","duration","uploadProgress","url","thumbnailSize","clean","catch","uploadedFiles","file","uri","name","plainText","files","urlMetadata","isImagePreviewVisible","isFilePreviewVisible","addImages","handleImageAttach","addFiles","handleFileAttach","removeImage","handleImageRemove","removeFile","handleFileRemove","showLinkPreview","isMetadataLoading","isLoading","dismissPreview","dismiss","clearAll"],"sourceRoot":"../../../src","sources":["hooks/useChatCompose.ts"],"mappings":"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","ignoreList":[]}
|