@droppii-org/chat-mobile 0.2.4 → 0.2.7
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/components/ThreadCard/AvatarSection.js +4 -4
- package/lib/module/components/ThreadCard/AvatarSection.js.map +1 -1
- package/lib/module/components/ThreadCard/NamePrefixIcon.js +13 -16
- package/lib/module/components/ThreadCard/NamePrefixIcon.js.map +1 -1
- package/lib/module/components/ThreadCard/ThreadCard.js +13 -33
- package/lib/module/components/ThreadCard/ThreadCard.js.map +1 -1
- package/lib/module/config/feature-flags.js +38 -0
- package/lib/module/config/feature-flags.js.map +1 -0
- package/lib/module/context/ChatContext.js +7 -6
- package/lib/module/context/ChatContext.js.map +1 -1
- package/lib/module/hooks/message/useSendMessage.js +101 -0
- package/lib/module/hooks/message/useSendMessage.js.map +1 -0
- package/lib/module/hooks/query-keys.js +4 -0
- package/lib/module/hooks/query-keys.js.map +1 -1
- package/lib/module/hooks/useChatMessages.js +54 -91
- package/lib/module/hooks/useChatMessages.js.map +1 -1
- package/lib/module/hooks/useConversationList.js +29 -17
- package/lib/module/hooks/useConversationList.js.map +1 -1
- package/lib/module/hooks/useLinkPreview/useFetchUrlMetadata.js +17 -0
- package/lib/module/hooks/useLinkPreview/useFetchUrlMetadata.js.map +1 -0
- package/lib/module/hooks/useLinkPreview/useLinkPreview.js +35 -0
- package/lib/module/hooks/useLinkPreview/useLinkPreview.js.map +1 -0
- package/lib/module/index.js.map +1 -1
- package/lib/module/screens/chat-detail/ChatComposer.js +20 -4
- package/lib/module/screens/chat-detail/ChatComposer.js.map +1 -1
- package/lib/module/screens/chat-detail/ChatDetail.js +116 -22
- package/lib/module/screens/chat-detail/ChatDetail.js.map +1 -1
- package/lib/module/screens/chat-detail/ChatDetailHeader.js +5 -8
- package/lib/module/screens/chat-detail/ChatDetailHeader.js.map +1 -1
- package/lib/module/screens/chat-detail/ChatLinkPreview.js +79 -0
- package/lib/module/screens/chat-detail/ChatLinkPreview.js.map +1 -0
- package/lib/module/screens/chat-detail/ChatList.js +2 -0
- package/lib/module/screens/chat-detail/ChatList.js.map +1 -1
- package/lib/module/screens/chat-detail/ChatListLegend.js +350 -0
- package/lib/module/screens/chat-detail/ChatListLegend.js.map +1 -0
- package/lib/module/screens/chat-detail/ChatQuickActions.js +12 -2
- package/lib/module/screens/chat-detail/ChatQuickActions.js.map +1 -1
- package/lib/module/screens/chat-detail/conversationHeader.utils.js +29 -0
- package/lib/module/screens/chat-detail/conversationHeader.utils.js.map +1 -0
- package/lib/module/screens/chat-detail/index.js +1 -0
- package/lib/module/screens/chat-detail/index.js.map +1 -1
- package/lib/module/screens/chat-detail/legend/LegendChatDay.js +57 -0
- package/lib/module/screens/chat-detail/legend/LegendChatDay.js.map +1 -0
- package/lib/module/screens/chat-detail/legend/LegendChatLoadEarlier.js +21 -0
- package/lib/module/screens/chat-detail/legend/LegendChatLoadEarlier.js.map +1 -0
- package/lib/module/screens/chat-detail/legend/LegendChatMessage.js +34 -0
- package/lib/module/screens/chat-detail/legend/LegendChatMessage.js.map +1 -0
- package/lib/module/screens/chat-detail/legend/LegendChatScrollToBottom.js +58 -0
- package/lib/module/screens/chat-detail/legend/LegendChatScrollToBottom.js.map +1 -0
- package/lib/module/screens/chat-detail/legend/message-types.js +244 -0
- package/lib/module/screens/chat-detail/legend/message-types.js.map +1 -0
- package/lib/module/screens/chat-detail/messages/ChatMessageBubble.js.map +1 -1
- package/lib/module/services/apis.js +1 -1
- package/lib/module/services/apis.js.map +1 -1
- package/lib/module/services/endpoints.js +8 -0
- package/lib/module/services/endpoints.js.map +1 -0
- package/lib/module/store/conversation.js +1 -1
- package/lib/module/store/conversation.js.map +1 -1
- package/lib/module/store/message.js +45 -0
- package/lib/module/store/message.js.map +1 -0
- package/lib/module/translation/resources/i18n.js +7 -1
- package/lib/module/translation/resources/i18n.js.map +1 -1
- package/lib/module/types/chat.js +2 -7
- package/lib/module/types/chat.js.map +1 -1
- package/lib/module/types/common.js +2 -0
- package/lib/module/types/common.js.map +1 -0
- package/lib/module/utils/conversation.js +34 -13
- package/lib/module/utils/conversation.js.map +1 -1
- package/lib/module/utils/legendListMessage.js +77 -0
- package/lib/module/utils/legendListMessage.js.map +1 -0
- package/lib/module/utils/message.js +5 -8
- package/lib/module/utils/message.js.map +1 -1
- package/lib/module/utils/url.js +7 -0
- package/lib/module/utils/url.js.map +1 -0
- package/lib/typescript/src/components/Avatar/Avatar.d.ts +1 -1
- package/lib/typescript/src/components/Avatar/Avatar.d.ts.map +1 -1
- package/lib/typescript/src/components/Avatar/AvatarBadge.d.ts +1 -1
- package/lib/typescript/src/components/Avatar/AvatarBadge.d.ts.map +1 -1
- package/lib/typescript/src/components/Avatar/DoubleAvatar.d.ts +1 -1
- package/lib/typescript/src/components/Avatar/DoubleAvatar.d.ts.map +1 -1
- package/lib/typescript/src/components/Avatar/SingleAvatar.d.ts +1 -1
- package/lib/typescript/src/components/Avatar/SingleAvatar.d.ts.map +1 -1
- package/lib/typescript/src/components/ThreadCard/AvatarSection.d.ts +2 -2
- package/lib/typescript/src/components/ThreadCard/AvatarSection.d.ts.map +1 -1
- package/lib/typescript/src/components/ThreadCard/NamePrefixIcon.d.ts +3 -4
- package/lib/typescript/src/components/ThreadCard/NamePrefixIcon.d.ts.map +1 -1
- package/lib/typescript/src/components/ThreadCard/ThreadCard.d.ts +1 -1
- package/lib/typescript/src/components/ThreadCard/ThreadCard.d.ts.map +1 -1
- package/lib/typescript/src/components/ThreadCard/UnreadBadge.d.ts +1 -1
- package/lib/typescript/src/components/ThreadCard/UnreadBadge.d.ts.map +1 -1
- package/lib/typescript/src/config/feature-flags.d.ts +12 -0
- package/lib/typescript/src/config/feature-flags.d.ts.map +1 -0
- package/lib/typescript/src/context/ChatContext.d.ts +1 -1
- package/lib/typescript/src/context/ChatContext.d.ts.map +1 -1
- package/lib/typescript/src/hooks/message/useSendMessage.d.ts +12 -0
- package/lib/typescript/src/hooks/message/useSendMessage.d.ts.map +1 -0
- package/lib/typescript/src/hooks/query-keys.d.ts +4 -0
- package/lib/typescript/src/hooks/query-keys.d.ts.map +1 -1
- package/lib/typescript/src/hooks/useChatMessages.d.ts +3 -1
- package/lib/typescript/src/hooks/useChatMessages.d.ts.map +1 -1
- package/lib/typescript/src/hooks/useConversationList.d.ts +2 -1
- package/lib/typescript/src/hooks/useConversationList.d.ts.map +1 -1
- package/lib/typescript/src/hooks/useLinkPreview/useFetchUrlMetadata.d.ts +3 -0
- package/lib/typescript/src/hooks/useLinkPreview/useFetchUrlMetadata.d.ts.map +1 -0
- package/lib/typescript/src/hooks/useLinkPreview/useLinkPreview.d.ts +7 -0
- package/lib/typescript/src/hooks/useLinkPreview/useLinkPreview.d.ts.map +1 -0
- package/lib/typescript/src/index.d.ts +1 -1
- package/lib/typescript/src/index.d.ts.map +1 -1
- package/lib/typescript/src/screens/chat-detail/ChatAttachmentPanel.d.ts +1 -1
- package/lib/typescript/src/screens/chat-detail/ChatAttachmentPanel.d.ts.map +1 -1
- package/lib/typescript/src/screens/chat-detail/ChatComposer.d.ts +1 -1
- package/lib/typescript/src/screens/chat-detail/ChatComposer.d.ts.map +1 -1
- package/lib/typescript/src/screens/chat-detail/ChatDay.d.ts +1 -1
- package/lib/typescript/src/screens/chat-detail/ChatDay.d.ts.map +1 -1
- package/lib/typescript/src/screens/chat-detail/ChatDetail.d.ts +1 -1
- package/lib/typescript/src/screens/chat-detail/ChatDetail.d.ts.map +1 -1
- package/lib/typescript/src/screens/chat-detail/ChatDetailHeader.d.ts +1 -1
- package/lib/typescript/src/screens/chat-detail/ChatDetailHeader.d.ts.map +1 -1
- package/lib/typescript/src/screens/chat-detail/ChatLinkPreview.d.ts +9 -0
- package/lib/typescript/src/screens/chat-detail/ChatLinkPreview.d.ts.map +1 -0
- package/lib/typescript/src/screens/chat-detail/ChatList.d.ts +1 -1
- package/lib/typescript/src/screens/chat-detail/ChatList.d.ts.map +1 -1
- package/lib/typescript/src/screens/chat-detail/ChatListLegend.d.ts +3 -0
- package/lib/typescript/src/screens/chat-detail/ChatListLegend.d.ts.map +1 -0
- package/lib/typescript/src/screens/chat-detail/ChatLoadEarlier.d.ts +1 -1
- package/lib/typescript/src/screens/chat-detail/ChatLoadEarlier.d.ts.map +1 -1
- package/lib/typescript/src/screens/chat-detail/ChatQuickActions.d.ts +1 -1
- package/lib/typescript/src/screens/chat-detail/ChatQuickActions.d.ts.map +1 -1
- package/lib/typescript/src/screens/chat-detail/ChatScrollToBottom.d.ts +1 -1
- package/lib/typescript/src/screens/chat-detail/ChatScrollToBottom.d.ts.map +1 -1
- package/lib/typescript/src/screens/chat-detail/ChatTextBubble.d.ts +1 -1
- package/lib/typescript/src/screens/chat-detail/ChatTextBubble.d.ts.map +1 -1
- package/lib/typescript/src/screens/chat-detail/conversationHeader.utils.d.ts +6 -0
- package/lib/typescript/src/screens/chat-detail/conversationHeader.utils.d.ts.map +1 -0
- package/lib/typescript/src/screens/chat-detail/index.d.ts +2 -1
- package/lib/typescript/src/screens/chat-detail/index.d.ts.map +1 -1
- package/lib/typescript/src/screens/chat-detail/legend/LegendChatDay.d.ts +6 -0
- package/lib/typescript/src/screens/chat-detail/legend/LegendChatDay.d.ts.map +1 -0
- package/lib/typescript/src/screens/chat-detail/legend/LegendChatLoadEarlier.d.ts +6 -0
- package/lib/typescript/src/screens/chat-detail/legend/LegendChatLoadEarlier.d.ts.map +1 -0
- package/lib/typescript/src/screens/chat-detail/legend/LegendChatMessage.d.ts +13 -0
- package/lib/typescript/src/screens/chat-detail/legend/LegendChatMessage.d.ts.map +1 -0
- package/lib/typescript/src/screens/chat-detail/legend/LegendChatScrollToBottom.d.ts +6 -0
- package/lib/typescript/src/screens/chat-detail/legend/LegendChatScrollToBottom.d.ts.map +1 -0
- package/lib/typescript/src/screens/chat-detail/legend/message-types.d.ts +13 -0
- package/lib/typescript/src/screens/chat-detail/legend/message-types.d.ts.map +1 -0
- package/lib/typescript/src/screens/chat-detail/messages/ChatMessageBubble.d.ts +1 -1
- package/lib/typescript/src/screens/chat-detail/messages/ChatMessageBubble.d.ts.map +1 -1
- package/lib/typescript/src/screens/chat-detail/types.d.ts +33 -7
- package/lib/typescript/src/screens/chat-detail/types.d.ts.map +1 -1
- package/lib/typescript/src/screens/inbox/Inbox.d.ts +1 -1
- package/lib/typescript/src/screens/inbox/Inbox.d.ts.map +1 -1
- package/lib/typescript/src/screens/inbox/MessagesTab.d.ts +1 -1
- package/lib/typescript/src/screens/inbox/MessagesTab.d.ts.map +1 -1
- package/lib/typescript/src/services/apis.d.ts +1 -0
- package/lib/typescript/src/services/apis.d.ts.map +1 -1
- package/lib/typescript/src/services/endpoints.d.ts +6 -0
- package/lib/typescript/src/services/endpoints.d.ts.map +1 -0
- package/lib/typescript/src/store/message.d.ts +3 -0
- package/lib/typescript/src/store/message.d.ts.map +1 -0
- package/lib/typescript/src/translation/resources/i18n.d.ts.map +1 -1
- package/lib/typescript/src/types/chat.d.ts +28 -27
- package/lib/typescript/src/types/chat.d.ts.map +1 -1
- package/lib/typescript/src/types/common.d.ts +7 -0
- package/lib/typescript/src/types/common.d.ts.map +1 -0
- package/lib/typescript/src/utils/conversation.d.ts +3 -2
- package/lib/typescript/src/utils/conversation.d.ts.map +1 -1
- package/lib/typescript/src/utils/legendListMessage.d.ts +23 -0
- package/lib/typescript/src/utils/legendListMessage.d.ts.map +1 -0
- package/lib/typescript/src/utils/message.d.ts.map +1 -1
- package/lib/typescript/src/utils/url.d.ts +2 -0
- package/lib/typescript/src/utils/url.d.ts.map +1 -0
- package/package.json +5 -3
- package/src/components/ThreadCard/AvatarSection.tsx +5 -8
- package/src/components/ThreadCard/NamePrefixIcon.tsx +27 -38
- package/src/components/ThreadCard/ThreadCard.tsx +16 -30
- package/src/config/feature-flags.ts +49 -0
- package/src/context/ChatContext.tsx +12 -4
- package/src/hooks/message/useSendMessage.ts +136 -0
- package/src/hooks/query-keys.ts +5 -0
- package/src/hooks/useChatMessages.ts +90 -118
- package/src/hooks/useConversationList.ts +34 -16
- package/src/hooks/useLinkPreview/useFetchUrlMetadata.ts +18 -0
- package/src/hooks/useLinkPreview/useLinkPreview.ts +31 -0
- package/src/index.tsx +1 -0
- package/src/screens/chat-detail/ChatComposer.tsx +23 -2
- package/src/screens/chat-detail/ChatDetail.tsx +163 -30
- package/src/screens/chat-detail/ChatDetailHeader.tsx +4 -10
- package/src/screens/chat-detail/ChatLinkPreview.tsx +86 -0
- package/src/screens/chat-detail/ChatList.tsx +3 -0
- package/src/screens/chat-detail/ChatListLegend.tsx +403 -0
- package/src/screens/chat-detail/ChatQuickActions.tsx +19 -2
- package/src/screens/chat-detail/conversationHeader.utils.ts +49 -0
- package/src/screens/chat-detail/index.ts +7 -0
- package/src/screens/chat-detail/legend/LegendChatDay.tsx +70 -0
- package/src/screens/chat-detail/legend/LegendChatLoadEarlier.tsx +21 -0
- package/src/screens/chat-detail/legend/LegendChatMessage.tsx +48 -0
- package/src/screens/chat-detail/legend/LegendChatScrollToBottom.tsx +56 -0
- package/src/screens/chat-detail/legend/message-types.tsx +304 -0
- package/src/screens/chat-detail/messages/ChatMessageBubble.tsx +0 -1
- package/src/screens/chat-detail/types.ts +45 -7
- package/src/services/apis.ts +1 -1
- package/src/services/endpoints.ts +5 -0
- package/src/store/conversation.ts +1 -1
- package/src/store/message.ts +44 -0
- package/src/translation/resources/i18n.ts +6 -0
- package/src/types/chat.ts +31 -30
- package/src/types/common.ts +6 -0
- package/src/utils/conversation.ts +44 -17
- package/src/utils/legendListMessage.ts +97 -0
- package/src/utils/message.ts +10 -12
- package/src/utils/url.ts +5 -0
|
@@ -2,15 +2,15 @@
|
|
|
2
2
|
|
|
3
3
|
import { memo } from 'react';
|
|
4
4
|
import { Avatar } from "../Avatar/index.js";
|
|
5
|
-
import {
|
|
5
|
+
import { PeerType } from '@droppii/openim-rn-client-sdk';
|
|
6
6
|
import { jsx as _jsx } from "react/jsx-runtime";
|
|
7
7
|
export const AvatarSection = /*#__PURE__*/memo(({
|
|
8
8
|
avatar,
|
|
9
9
|
fullName,
|
|
10
|
-
|
|
10
|
+
peerType,
|
|
11
11
|
applicationType
|
|
12
12
|
}) => {
|
|
13
|
-
if (
|
|
13
|
+
if (peerType === PeerType.Bot) {
|
|
14
14
|
return /*#__PURE__*/_jsx(Avatar, {
|
|
15
15
|
source: avatar,
|
|
16
16
|
fullName: fullName,
|
|
@@ -19,7 +19,7 @@ export const AvatarSection = /*#__PURE__*/memo(({
|
|
|
19
19
|
}
|
|
20
20
|
});
|
|
21
21
|
}
|
|
22
|
-
if (applicationType === 'MALL') {
|
|
22
|
+
if (peerType === PeerType.Customer || applicationType === 'MALL') {
|
|
23
23
|
return /*#__PURE__*/_jsx(Avatar, {
|
|
24
24
|
source: avatar,
|
|
25
25
|
fullName: fullName,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["memo","Avatar","
|
|
1
|
+
{"version":3,"names":["memo","Avatar","PeerType","jsx","_jsx","AvatarSection","avatar","fullName","peerType","applicationType","Bot","source","badge","variant","Customer","displayName"],"sourceRoot":"../../../../src","sources":["components/ThreadCard/AvatarSection.tsx"],"mappings":";;AAAA,SAASA,IAAI,QAAQ,OAAO;AAC5B,SAASC,MAAM,QAAQ,oBAAW;AAElC,SAASC,QAAQ,QAAQ,+BAA+B;AAAC,SAAAC,GAAA,IAAAC,IAAA;AASzD,OAAO,MAAMC,aAAa,gBAAGL,IAAI,CAC/B,CAAC;EAAEM,MAAM;EAAEC,QAAQ;EAAEC,QAAQ;EAAEC;AAAoC,CAAC,KAAK;EACvE,IAAID,QAAQ,KAAKN,QAAQ,CAACQ,GAAG,EAAE;IAC7B,oBACEN,IAAA,CAACH,MAAM;MACLU,MAAM,EAAEL,MAAO;MACfC,QAAQ,EAAEA,QAAS;MACnBK,KAAK,EAAE;QAAEC,OAAO,EAAE;MAAM;IAAE,CAC3B,CAAC;EAEN;EAEA,IAAIL,QAAQ,KAAKN,QAAQ,CAACY,QAAQ,IAAIL,eAAe,KAAK,MAAM,EAAE;IAChE,oBACEL,IAAA,CAACH,MAAM;MACLU,MAAM,EAAEL,MAAO;MACfC,QAAQ,EAAEA,QAAS;MACnBK,KAAK,EAAE;QAAEC,OAAO,EAAE;MAAO;IAAE,CAC5B,CAAC;EAEN;EAEA,oBAAOT,IAAA,CAACH,MAAM;IAACU,MAAM,EAAEL,MAAO;IAACC,QAAQ,EAAEA;EAAS,CAAE,CAAC;AACvD,CACF,CAAC;AAEDF,aAAa,CAACU,WAAW,GAAG,eAAe","ignoreList":[]}
|
|
@@ -3,8 +3,8 @@
|
|
|
3
3
|
import { memo } from 'react';
|
|
4
4
|
import { Image, StyleSheet } from 'react-native';
|
|
5
5
|
import { KContainer, KImage, KColors } from '@droppii/libs';
|
|
6
|
-
import { DChatCategory, DChatType } from "../../types/chat.js";
|
|
7
6
|
import Images from "../../assets/images/index.js";
|
|
7
|
+
import { PeerType } from '@droppii/openim-rn-client-sdk';
|
|
8
8
|
import { jsx as _jsx } from "react/jsx-runtime";
|
|
9
9
|
const styles = StyleSheet.create({
|
|
10
10
|
icon: {
|
|
@@ -13,10 +13,9 @@ const styles = StyleSheet.create({
|
|
|
13
13
|
}
|
|
14
14
|
});
|
|
15
15
|
export const NamePrefixIcon = /*#__PURE__*/memo(({
|
|
16
|
-
|
|
17
|
-
chatType
|
|
16
|
+
peerType
|
|
18
17
|
}) => {
|
|
19
|
-
if (
|
|
18
|
+
if (peerType === PeerType.Bot) {
|
|
20
19
|
return /*#__PURE__*/_jsx(KContainer.View, {
|
|
21
20
|
marginR: "0.25rem",
|
|
22
21
|
children: /*#__PURE__*/_jsx(Image, {
|
|
@@ -25,18 +24,7 @@ export const NamePrefixIcon = /*#__PURE__*/memo(({
|
|
|
25
24
|
})
|
|
26
25
|
});
|
|
27
26
|
}
|
|
28
|
-
if (
|
|
29
|
-
return /*#__PURE__*/_jsx(KContainer.View, {
|
|
30
|
-
marginR: "0.25rem",
|
|
31
|
-
children: /*#__PURE__*/_jsx(KImage.VectorIcons, {
|
|
32
|
-
name: "robot-outline",
|
|
33
|
-
provider: "MaterialCommunityIcons",
|
|
34
|
-
size: 14,
|
|
35
|
-
color: KColors.palette.primary.w400
|
|
36
|
-
})
|
|
37
|
-
});
|
|
38
|
-
}
|
|
39
|
-
if (chatType === DChatType.GROUP) {
|
|
27
|
+
if (peerType === PeerType.Group) {
|
|
40
28
|
return /*#__PURE__*/_jsx(KContainer.View, {
|
|
41
29
|
marginR: "0.25rem",
|
|
42
30
|
children: /*#__PURE__*/_jsx(KImage.VectorIcons, {
|
|
@@ -46,6 +34,15 @@ export const NamePrefixIcon = /*#__PURE__*/memo(({
|
|
|
46
34
|
})
|
|
47
35
|
});
|
|
48
36
|
}
|
|
37
|
+
|
|
38
|
+
// if (peerType === DChatPeerType.CUSTOMER) {
|
|
39
|
+
// return (
|
|
40
|
+
// <KContainer.View marginR="0.25rem">
|
|
41
|
+
// <Image source={Images.ICON_DROPPII} style={styles.icon} />
|
|
42
|
+
// </KContainer.View>
|
|
43
|
+
// );
|
|
44
|
+
// }
|
|
45
|
+
|
|
49
46
|
return null;
|
|
50
47
|
});
|
|
51
48
|
NamePrefixIcon.displayName = 'NamePrefixIcon';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["memo","Image","StyleSheet","KContainer","KImage","KColors","
|
|
1
|
+
{"version":3,"names":["memo","Image","StyleSheet","KContainer","KImage","KColors","Images","PeerType","jsx","_jsx","styles","create","icon","width","height","NamePrefixIcon","peerType","Bot","View","marginR","children","source","ICON_DROPPII","style","Group","VectorIcons","name","size","color","black","displayName"],"sourceRoot":"../../../../src","sources":["components/ThreadCard/NamePrefixIcon.tsx"],"mappings":";;AAAA,SAASA,IAAI,QAAQ,OAAO;AAC5B,SAASC,KAAK,EAAEC,UAAU,QAAQ,cAAc;AAChD,SAASC,UAAU,EAAEC,MAAM,EAAEC,OAAO,QAAQ,eAAe;AAC3D,OAAOC,MAAM,MAAM,8BAAqB;AACxC,SAASC,QAAQ,QAAQ,+BAA+B;AAAC,SAAAC,GAAA,IAAAC,IAAA;AAEzD,MAAMC,MAAM,GAAGR,UAAU,CAACS,MAAM,CAAC;EAC/BC,IAAI,EAAE;IACJC,KAAK,EAAE,EAAE;IACTC,MAAM,EAAE;EACV;AACF,CAAC,CAAC;AAMF,OAAO,MAAMC,cAAc,gBAAGf,IAAI,CAAC,CAAC;EAAEgB;AAA8B,CAAC,KAAK;EACxE,IAAIA,QAAQ,KAAKT,QAAQ,CAACU,GAAG,EAAE;IAC7B,oBACER,IAAA,CAACN,UAAU,CAACe,IAAI;MAACC,OAAO,EAAC,SAAS;MAAAC,QAAA,eAChCX,IAAA,CAACR,KAAK;QAACoB,MAAM,EAAEf,MAAM,CAACgB,YAAa;QAACC,KAAK,EAAEb,MAAM,CAACE;MAAK,CAAE;IAAC,CAC3C,CAAC;EAEtB;EAEA,IAAII,QAAQ,KAAKT,QAAQ,CAACiB,KAAK,EAAE;IAC/B,oBACEf,IAAA,CAACN,UAAU,CAACe,IAAI;MAACC,OAAO,EAAC,SAAS;MAAAC,QAAA,eAChCX,IAAA,CAACL,MAAM,CAACqB,WAAW;QAACC,IAAI,EAAC,YAAY;QAACC,IAAI,EAAE,EAAG;QAACC,KAAK,EAAEvB,OAAO,CAACwB;MAAM,CAAE;IAAC,CACzD,CAAC;EAEtB;;EAEA;EACA;EACA;EACA;EACA;EACA;EACA;;EAEA,OAAO,IAAI;AACb,CAAC,CAAC;AAEFd,cAAc,CAACe,WAAW,GAAG,gBAAgB","ignoreList":[]}
|
|
@@ -1,14 +1,11 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
3
|
import { memo, useCallback } from 'react';
|
|
4
|
-
import { StyleSheet } from 'react-native';
|
|
5
4
|
import { KContainer, KImage, KLabel, KColors } from '@droppii/libs';
|
|
6
|
-
import { DChatCategory } from "../../types/chat.js";
|
|
7
5
|
import { AvatarSection } from "./AvatarSection.js";
|
|
8
6
|
import { NamePrefixIcon } from "./NamePrefixIcon.js";
|
|
9
7
|
import { UnreadBadge } from "./UnreadBadge.js";
|
|
10
8
|
import { formatTimestamp, getLastMessageText } from "./thread-card.utils.js";
|
|
11
|
-
import Images from "../../assets/images/index.js";
|
|
12
9
|
import { useConversation, useUserStore } from "../../store/index.js";
|
|
13
10
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
14
11
|
const ThreadCard = /*#__PURE__*/memo(({
|
|
@@ -16,18 +13,19 @@ const ThreadCard = /*#__PURE__*/memo(({
|
|
|
16
13
|
onPress
|
|
17
14
|
}) => {
|
|
18
15
|
const {
|
|
19
|
-
|
|
20
|
-
|
|
16
|
+
peerType,
|
|
17
|
+
showName,
|
|
18
|
+
faceURL,
|
|
21
19
|
lastMessage,
|
|
22
20
|
unreadCount = 0,
|
|
23
|
-
|
|
24
|
-
|
|
21
|
+
recvMsgOpt,
|
|
22
|
+
isPinned,
|
|
25
23
|
applicationType,
|
|
26
|
-
chatType,
|
|
27
24
|
latestMsgSendTime
|
|
28
25
|
} = useConversation(item) ?? {};
|
|
29
|
-
const fullName =
|
|
26
|
+
const fullName = showName ?? '';
|
|
30
27
|
const hasUnread = unreadCount > 0;
|
|
28
|
+
const isMuted = (recvMsgOpt ?? 0) !== 0;
|
|
31
29
|
const timestamp = formatTimestamp(latestMsgSendTime ?? lastMessage?.sendTime ?? null);
|
|
32
30
|
const currentUserId = useUserStore(s => s.user?.userID);
|
|
33
31
|
const lastMessageText = getLastMessageText(lastMessage, currentUserId);
|
|
@@ -45,11 +43,10 @@ const ThreadCard = /*#__PURE__*/memo(({
|
|
|
45
43
|
onPress: handlePress,
|
|
46
44
|
activeOpacity: 0.7,
|
|
47
45
|
children: [/*#__PURE__*/_jsx(AvatarSection, {
|
|
48
|
-
avatar:
|
|
46
|
+
avatar: faceURL ?? null,
|
|
49
47
|
fullName: fullName,
|
|
50
|
-
|
|
51
|
-
applicationType: applicationType
|
|
52
|
-
chatType: chatType
|
|
48
|
+
peerType: peerType,
|
|
49
|
+
applicationType: applicationType
|
|
53
50
|
}), /*#__PURE__*/_jsxs(KContainer.View, {
|
|
54
51
|
flex: true,
|
|
55
52
|
marginL: "0.5rem",
|
|
@@ -58,17 +55,7 @@ const ThreadCard = /*#__PURE__*/memo(({
|
|
|
58
55
|
row: true,
|
|
59
56
|
alignItems: "center",
|
|
60
57
|
children: [/*#__PURE__*/_jsx(NamePrefixIcon, {
|
|
61
|
-
|
|
62
|
-
chatType: chatType
|
|
63
|
-
}), /*#__PURE__*/_jsx(KContainer.VisibleView, {
|
|
64
|
-
visible:
|
|
65
|
-
// chatCategory === DChatCategory.BIZ_BOT_CRM ||
|
|
66
|
-
chatCategory === DChatCategory.BIZ_BOT_PDP,
|
|
67
|
-
children: /*#__PURE__*/_jsx(KImage.Base, {
|
|
68
|
-
uri: Images.ICON_BOT,
|
|
69
|
-
size: 14,
|
|
70
|
-
style: styles.botIcon
|
|
71
|
-
})
|
|
58
|
+
peerType: peerType
|
|
72
59
|
}), /*#__PURE__*/_jsx(KLabel.Text, {
|
|
73
60
|
typo: hasUnread ? 'TextMdBold' : 'TextMdNormal',
|
|
74
61
|
numberOfLines: 1,
|
|
@@ -76,7 +63,7 @@ const ThreadCard = /*#__PURE__*/memo(({
|
|
|
76
63
|
flex: true,
|
|
77
64
|
children: fullName
|
|
78
65
|
}), /*#__PURE__*/_jsx(KContainer.VisibleView, {
|
|
79
|
-
visible:
|
|
66
|
+
visible: isMuted,
|
|
80
67
|
children: /*#__PURE__*/_jsx(KContainer.View, {
|
|
81
68
|
marginL: "0.25rem",
|
|
82
69
|
children: /*#__PURE__*/_jsx(KImage.VectorIcons, {
|
|
@@ -105,7 +92,7 @@ const ThreadCard = /*#__PURE__*/memo(({
|
|
|
105
92
|
flex: true,
|
|
106
93
|
children: lastMessageText
|
|
107
94
|
}), /*#__PURE__*/_jsx(KContainer.VisibleView, {
|
|
108
|
-
visible: Boolean(
|
|
95
|
+
visible: Boolean(isPinned),
|
|
109
96
|
children: /*#__PURE__*/_jsx(KContainer.View, {
|
|
110
97
|
marginL: "0.5rem",
|
|
111
98
|
children: /*#__PURE__*/_jsx(KImage.VectorIcons, {
|
|
@@ -124,11 +111,4 @@ const ThreadCard = /*#__PURE__*/memo(({
|
|
|
124
111
|
});
|
|
125
112
|
ThreadCard.displayName = 'ThreadCard';
|
|
126
113
|
export default ThreadCard;
|
|
127
|
-
const styles = StyleSheet.create({
|
|
128
|
-
botIcon: {
|
|
129
|
-
width: 16,
|
|
130
|
-
height: 16,
|
|
131
|
-
marginRight: 4
|
|
132
|
-
}
|
|
133
|
-
});
|
|
134
114
|
//# sourceMappingURL=ThreadCard.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["memo","useCallback","
|
|
1
|
+
{"version":3,"names":["memo","useCallback","KContainer","KImage","KLabel","KColors","AvatarSection","NamePrefixIcon","UnreadBadge","formatTimestamp","getLastMessageText","useConversation","useUserStore","jsx","_jsx","jsxs","_jsxs","ThreadCard","item","onPress","peerType","showName","faceURL","lastMessage","unreadCount","recvMsgOpt","isPinned","applicationType","latestMsgSendTime","fullName","hasUnread","isMuted","timestamp","sendTime","currentUserId","s","user","userID","lastMessageText","handlePress","event","Touchable","row","alignItems","paddingH","paddingV","activeOpacity","children","avatar","View","flex","marginL","paddingB","Text","typo","numberOfLines","color","black","VisibleView","visible","VectorIcons","name","provider","size","palette","gray","w500","Boolean","w400","normal","count","displayName"],"sourceRoot":"../../../../src","sources":["components/ThreadCard/ThreadCard.tsx"],"mappings":"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","ignoreList":[]}
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
const DEFAULT_FLAGS = {
|
|
4
|
+
USE_LEGEND_LIST_CHAT: false,
|
|
5
|
+
CHAT_LIST_VARIANT: 'legend',
|
|
6
|
+
ENABLE_PERFORMANCE_METRICS: true,
|
|
7
|
+
METRICS_SAMPLE_RATE: 1.0
|
|
8
|
+
};
|
|
9
|
+
let flags = {
|
|
10
|
+
...DEFAULT_FLAGS
|
|
11
|
+
};
|
|
12
|
+
export const getFeatureFlag = flag => {
|
|
13
|
+
return flags[flag];
|
|
14
|
+
};
|
|
15
|
+
export const setFeatureFlag = (flag, value) => {
|
|
16
|
+
flags[flag] = value;
|
|
17
|
+
notifyListeners();
|
|
18
|
+
};
|
|
19
|
+
export const resetFlags = () => {
|
|
20
|
+
flags = {
|
|
21
|
+
...DEFAULT_FLAGS
|
|
22
|
+
};
|
|
23
|
+
notifyListeners();
|
|
24
|
+
};
|
|
25
|
+
const listeners = new Set();
|
|
26
|
+
export const onFlagsChange = callback => {
|
|
27
|
+
listeners.add(callback);
|
|
28
|
+
return () => {
|
|
29
|
+
listeners.delete(callback);
|
|
30
|
+
};
|
|
31
|
+
};
|
|
32
|
+
const notifyListeners = () => {
|
|
33
|
+
listeners.forEach(cb => cb());
|
|
34
|
+
};
|
|
35
|
+
export const getAllFlags = () => ({
|
|
36
|
+
...flags
|
|
37
|
+
});
|
|
38
|
+
//# sourceMappingURL=feature-flags.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["DEFAULT_FLAGS","USE_LEGEND_LIST_CHAT","CHAT_LIST_VARIANT","ENABLE_PERFORMANCE_METRICS","METRICS_SAMPLE_RATE","flags","getFeatureFlag","flag","setFeatureFlag","value","notifyListeners","resetFlags","listeners","Set","onFlagsChange","callback","add","delete","forEach","cb","getAllFlags"],"sourceRoot":"../../../src","sources":["config/feature-flags.ts"],"mappings":";;AAOA,MAAMA,aAA2B,GAAG;EAClCC,oBAAoB,EAAE,KAAK;EAC3BC,iBAAiB,EAAE,QAAQ;EAC3BC,0BAA0B,EAAE,IAAI;EAChCC,mBAAmB,EAAE;AACvB,CAAC;AAED,IAAIC,KAAmB,GAAG;EAAE,GAAGL;AAAc,CAAC;AAE9C,OAAO,MAAMM,cAAc,GACzBC,IAAO,IACa;EACpB,OAAOF,KAAK,CAACE,IAAI,CAAC;AACpB,CAAC;AAED,OAAO,MAAMC,cAAc,GAAGA,CAC5BD,IAAO,EACPE,KAAsB,KACnB;EACHJ,KAAK,CAACE,IAAI,CAAC,GAAGE,KAAK;EACnBC,eAAe,CAAC,CAAC;AACnB,CAAC;AAED,OAAO,MAAMC,UAAU,GAAGA,CAAA,KAAM;EAC9BN,KAAK,GAAG;IAAE,GAAGL;EAAc,CAAC;EAC5BU,eAAe,CAAC,CAAC;AACnB,CAAC;AAED,MAAME,SAAS,GAAG,IAAIC,GAAG,CAAa,CAAC;AAEvC,OAAO,MAAMC,aAAa,GAAIC,QAAoB,IAAK;EACrDH,SAAS,CAACI,GAAG,CAACD,QAAQ,CAAC;EACvB,OAAO,MAAM;IACXH,SAAS,CAACK,MAAM,CAACF,QAAQ,CAAC;EAC5B,CAAC;AACH,CAAC;AAED,MAAML,eAAe,GAAGA,CAAA,KAAM;EAC5BE,SAAS,CAACM,OAAO,CAAEC,EAAE,IAAKA,EAAE,CAAC,CAAC,CAAC;AACjC,CAAC;AAED,OAAO,MAAMC,WAAW,GAAGA,CAAA,MAAqB;EAAE,GAAGf;AAAM,CAAC,CAAC","ignoreList":[]}
|
|
@@ -12,20 +12,21 @@ export const useChatContext = () => {
|
|
|
12
12
|
};
|
|
13
13
|
const ChatProviderInner = ({
|
|
14
14
|
logGA,
|
|
15
|
-
children
|
|
15
|
+
children,
|
|
16
|
+
applicationType
|
|
16
17
|
}) => {
|
|
17
18
|
const value = useMemo(() => ({
|
|
18
|
-
logGA
|
|
19
|
-
|
|
19
|
+
logGA,
|
|
20
|
+
applicationType
|
|
21
|
+
}), [logGA, applicationType]);
|
|
20
22
|
return /*#__PURE__*/_jsx(ChatContext.Provider, {
|
|
21
23
|
value: value,
|
|
22
24
|
children: children
|
|
23
25
|
});
|
|
24
26
|
};
|
|
25
27
|
export const ChatProvider = ({
|
|
26
|
-
enabled,
|
|
27
28
|
...props
|
|
28
|
-
}) =>
|
|
29
|
+
}) => /*#__PURE__*/_jsx(ChatProviderInner, {
|
|
29
30
|
...props
|
|
30
|
-
})
|
|
31
|
+
});
|
|
31
32
|
//# sourceMappingURL=ChatContext.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["createContext","useContext","useMemo","jsx","_jsx","ChatContext","undefined","useChatContext","context","Error","ChatProviderInner","logGA","children","value","Provider","ChatProvider","
|
|
1
|
+
{"version":3,"names":["createContext","useContext","useMemo","jsx","_jsx","ChatContext","undefined","useChatContext","context","Error","ChatProviderInner","logGA","children","applicationType","value","Provider","ChatProvider","props"],"sourceRoot":"../../../src","sources":["context/ChatContext.tsx"],"mappings":";;AAAA,SAASA,aAAa,EAAEC,UAAU,EAAEC,OAAO,QAAQ,OAAO;AAAC,SAAAC,GAAA,IAAAC,IAAA;AAG3D,OAAO,MAAMC,WAAW,gBAAGL,aAAa,CACtCM,SACF,CAAC;AAED,OAAO,MAAMC,cAAc,GAAGA,CAAA,KAAuB;EACnD,MAAMC,OAAO,GAAGP,UAAU,CAACI,WAAW,CAAC;EACvC,IAAI,CAACG,OAAO,EAAE;IACZ,MAAM,IAAIC,KAAK,CAAC,iDAAiD,CAAC;EACpE;EACA,OAAOD,OAAO;AAChB,CAAC;AAED,MAAME,iBAAiB,GAAGA,CAAC;EACzBC,KAAK;EACLC,QAAQ;EACRC;AACiB,CAAC,KAAK;EACvB,MAAMC,KAAK,GAAGZ,OAAO,CACnB,OAAO;IAAES,KAAK;IAAEE;EAAgB,CAAC,CAAC,EAClC,CAACF,KAAK,EAAEE,eAAe,CACzB,CAAC;EAED,oBAAOT,IAAA,CAACC,WAAW,CAACU,QAAQ;IAACD,KAAK,EAAEA,KAAM;IAAAF,QAAA,EAAEA;EAAQ,CAAuB,CAAC;AAC9E,CAAC;AAED,OAAO,MAAMI,YAAY,GAAGA,CAAC;EAAE,GAAGC;AAAyB,CAAC,kBAC1Db,IAAA,CAACM,iBAAiB;EAAA,GAAKO;AAAK,CAAG,CAChC","ignoreList":[]}
|
|
@@ -0,0 +1,101 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
import { useCallback } from 'react';
|
|
4
|
+
import { useConversationStore } from "../../store/index.js";
|
|
5
|
+
import { extractUrls } from "../../utils/url.js";
|
|
6
|
+
import OpenIMSDK from '@droppii/openim-rn-client-sdk';
|
|
7
|
+
import { useChatContext } from "../../context/index.js";
|
|
8
|
+
import { generateContentBasedOnMessageType } from "../../utils/conversation.js";
|
|
9
|
+
import { useMessageStore } from "../../store/message.js";
|
|
10
|
+
export const useSendMessage = () => {
|
|
11
|
+
const applicationType = useChatContext().applicationType;
|
|
12
|
+
const pushNewMessage = useMessageStore(state => state.pushNewMessage);
|
|
13
|
+
const sendMessage = useCallback(async ({
|
|
14
|
+
plainText,
|
|
15
|
+
files,
|
|
16
|
+
urlMetadata
|
|
17
|
+
}) => {
|
|
18
|
+
const {
|
|
19
|
+
userID: recvID,
|
|
20
|
+
groupID
|
|
21
|
+
} = useConversationStore.getState().getCurrentConversation() || {};
|
|
22
|
+
if (!recvID && !groupID) return;
|
|
23
|
+
const messageList = [];
|
|
24
|
+
for (const file of files || []) {
|
|
25
|
+
if (!file) continue;
|
|
26
|
+
}
|
|
27
|
+
if (!!plainText && plainText.trim() !== '') {
|
|
28
|
+
const urls = extractUrls(plainText);
|
|
29
|
+
const isUrlMessage = urls.length > 0;
|
|
30
|
+
let message = null;
|
|
31
|
+
if (isUrlMessage) {
|
|
32
|
+
message = await createUrlTextMessage(plainText, urls);
|
|
33
|
+
} else {
|
|
34
|
+
message = await createTextMessage(plainText);
|
|
35
|
+
}
|
|
36
|
+
if (!message) return;
|
|
37
|
+
messageList.push(message);
|
|
38
|
+
}
|
|
39
|
+
for (const message of messageList) {
|
|
40
|
+
const extendMessageInfo = {
|
|
41
|
+
applicationType,
|
|
42
|
+
urlMetadata
|
|
43
|
+
};
|
|
44
|
+
const successMessage = await OpenIMSDK.sendMessage({
|
|
45
|
+
groupID: groupID || '',
|
|
46
|
+
recvID: recvID || '',
|
|
47
|
+
message: {
|
|
48
|
+
...message,
|
|
49
|
+
ex: JSON.stringify(extendMessageInfo) || '{}'
|
|
50
|
+
},
|
|
51
|
+
offlinePushInfo: generateOfflinePushInfo(message.contentType, plainText || '')
|
|
52
|
+
});
|
|
53
|
+
pushNewMessage(successMessage);
|
|
54
|
+
}
|
|
55
|
+
}, [applicationType, pushNewMessage]);
|
|
56
|
+
return {
|
|
57
|
+
sendMessage
|
|
58
|
+
};
|
|
59
|
+
};
|
|
60
|
+
const generateOfflinePushInfo = (contentType, plainText) => {
|
|
61
|
+
const conversationData = useConversationStore?.getState?.()?.getCurrentConversation();
|
|
62
|
+
const title = conversationData?.showName || 'Droppii';
|
|
63
|
+
const desc = generateContentBasedOnMessageType(contentType, plainText);
|
|
64
|
+
return {
|
|
65
|
+
title,
|
|
66
|
+
desc,
|
|
67
|
+
ex: JSON.stringify({
|
|
68
|
+
icon: conversationData?.faceURL || '',
|
|
69
|
+
conversationId: conversationData?.conversationId || '',
|
|
70
|
+
title,
|
|
71
|
+
desc
|
|
72
|
+
}),
|
|
73
|
+
iOSPushSound: 'default',
|
|
74
|
+
iOSBadgeCount: true
|
|
75
|
+
};
|
|
76
|
+
};
|
|
77
|
+
export const createTextMessage = async text => {
|
|
78
|
+
let textMessage = await OpenIMSDK.createTextMessage(text, new Date().getTime().toString()).then(data => {
|
|
79
|
+
return data;
|
|
80
|
+
}).catch(({
|
|
81
|
+
errCode,
|
|
82
|
+
errMsg
|
|
83
|
+
}) => {
|
|
84
|
+
console.error('createTextMessage', errCode, errMsg);
|
|
85
|
+
return null;
|
|
86
|
+
});
|
|
87
|
+
return textMessage;
|
|
88
|
+
};
|
|
89
|
+
export const createUrlTextMessage = async (text, urls) => {
|
|
90
|
+
let urlTextMessage = await OpenIMSDK.createUrlTextMessage(text, urls, new Date().getTime().toString()).then(data => {
|
|
91
|
+
return data;
|
|
92
|
+
}).catch(({
|
|
93
|
+
errCode,
|
|
94
|
+
errMsg
|
|
95
|
+
}) => {
|
|
96
|
+
console.error('createUrlTextMessage', errCode, errMsg);
|
|
97
|
+
return null;
|
|
98
|
+
});
|
|
99
|
+
return urlTextMessage;
|
|
100
|
+
};
|
|
101
|
+
//# sourceMappingURL=useSendMessage.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["useCallback","useConversationStore","extractUrls","OpenIMSDK","useChatContext","generateContentBasedOnMessageType","useMessageStore","useSendMessage","applicationType","pushNewMessage","state","sendMessage","plainText","files","urlMetadata","userID","recvID","groupID","getState","getCurrentConversation","messageList","file","trim","urls","isUrlMessage","length","message","createUrlTextMessage","createTextMessage","push","extendMessageInfo","successMessage","ex","JSON","stringify","offlinePushInfo","generateOfflinePushInfo","contentType","conversationData","title","showName","desc","icon","faceURL","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":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["
|
|
1
|
+
{"version":3,"names":["commonQueryKeys","all","urlMetadata","url","conversationQueryKeys","lists","list","applicationType","details","detail","conversationId"],"sourceRoot":"../../../src","sources":["hooks/query-keys.ts"],"mappings":";;AAAA,OAAO,MAAMA,eAAe,GAAG;EAC7BC,GAAG,EAAE,CAAC,QAAQ,CAAU;EACxBC,WAAW,EAAGC,GAAW,IAAK,CAAC,MAAM,EAAEA,GAAG;AAC5C,CAAC;AAED,OAAO,MAAMC,qBAAqB,GAAG;EACnCH,GAAG,EAAE,CAAC,eAAe,CAAU;EAC/BI,KAAK,EAAEA,CAAA,KAAM,CAAC,GAAGD,qBAAqB,CAACH,GAAG,EAAE,MAAM,CAAU;EAC5DK,IAAI,EAAGC,eAAuB,IAC5B,CAAC,GAAGH,qBAAqB,CAACC,KAAK,CAAC,CAAC,EAAEE,eAAe,CAAU;EAC9DC,OAAO,EAAEA,CAAA,KAAM,CAAC,GAAGJ,qBAAqB,CAACH,GAAG,EAAE,QAAQ,CAAU;EAChEQ,MAAM,EAAGC,cAAsB,IAC7B,CAAC,GAAGN,qBAAqB,CAACI,OAAO,CAAC,CAAC,EAAEE,cAAc;AACvD,CAAC","ignoreList":[]}
|