@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
|
@@ -3,37 +3,28 @@
|
|
|
3
3
|
import OpenIMSDK, { OpenIMEvent } from '@droppii/openim-rn-client-sdk';
|
|
4
4
|
import { useCallback, useEffect, useRef, useState } from 'react';
|
|
5
5
|
import { ChatMessageAPI } from "../services/message.js";
|
|
6
|
-
import { belongsToConversation,
|
|
6
|
+
import { belongsToConversation, hasNewHistoryMessages, mergeMessages } from "../utils/message.js";
|
|
7
|
+
import { useMessageStore } from "../store/message.js";
|
|
7
8
|
export function useChatMessages({
|
|
8
9
|
conversationId,
|
|
9
10
|
enabled = true,
|
|
10
11
|
pageSize = 20
|
|
11
12
|
}) {
|
|
12
|
-
const
|
|
13
|
+
const messages = useMessageStore(s => s.messages);
|
|
14
|
+
const hasMoreEarlier = useMessageStore(s => s.hasMoreEarlier);
|
|
15
|
+
const hasMoreNewer = useMessageStore(s => s.hasMoreNewer);
|
|
16
|
+
const setMessages = useMessageStore(s => s.setMessages);
|
|
17
|
+
const pushNewMessage = useMessageStore(s => s.pushNewMessage);
|
|
18
|
+
const reset = useMessageStore(s => s.reset);
|
|
13
19
|
const [currentUserId, setCurrentUserId] = useState();
|
|
14
20
|
const [isLoading, setIsLoading] = useState(false);
|
|
15
21
|
const [isLoadingEarlier, setIsLoadingEarlier] = useState(false);
|
|
16
|
-
const [
|
|
22
|
+
const [isLoadingNewer, setIsLoadingNewer] = useState(false);
|
|
17
23
|
const [error, setError] = useState(null);
|
|
18
24
|
const conversationIdRef = useRef(conversationId);
|
|
19
25
|
conversationIdRef.current = conversationId;
|
|
20
|
-
const
|
|
21
|
-
|
|
22
|
-
const hasMoreEarlierRef = useRef(hasMoreEarlier);
|
|
23
|
-
const historyAnchorRef = useRef(null);
|
|
24
|
-
messagesRef.current = messages;
|
|
25
|
-
hasMoreEarlierRef.current = hasMoreEarlier;
|
|
26
|
-
const resetState = useCallback(() => {
|
|
27
|
-
setMessages([]);
|
|
28
|
-
setHasMoreEarlier(false);
|
|
29
|
-
setError(null);
|
|
30
|
-
isLoadingEarlierRef.current = false;
|
|
31
|
-
historyAnchorRef.current = null;
|
|
32
|
-
}, []);
|
|
33
|
-
const loadInitialMessages = useCallback(async () => {
|
|
34
|
-
if (!conversationId) {
|
|
35
|
-
return;
|
|
36
|
-
}
|
|
26
|
+
const fetchInitial = useCallback(async () => {
|
|
27
|
+
if (!conversationId) return;
|
|
37
28
|
setIsLoading(true);
|
|
38
29
|
setError(null);
|
|
39
30
|
try {
|
|
@@ -41,102 +32,72 @@ export function useChatMessages({
|
|
|
41
32
|
count: pageSize
|
|
42
33
|
}), ChatMessageAPI.getCurrentUserId()]);
|
|
43
34
|
const initialMessages = history.messageList;
|
|
44
|
-
const oldestAnchor = getHistoryPaginationAnchor(initialMessages);
|
|
45
35
|
setCurrentUserId(userId);
|
|
46
|
-
setMessages(mergeMessages([], initialMessages));
|
|
47
|
-
historyAnchorRef.current = oldestAnchor ? {
|
|
48
|
-
clientMsgID: oldestAnchor.clientMsgID
|
|
49
|
-
// lastMinSeq: resolveHistoryLastMinSeq(
|
|
50
|
-
// history,
|
|
51
|
-
// initialMessages.find(
|
|
52
|
-
// (message) => message.clientMsgID === oldestAnchor.clientMsgID
|
|
53
|
-
// )
|
|
54
|
-
// ),
|
|
55
|
-
} : null;
|
|
56
|
-
setHasMoreEarlier(!history.isEnd && !!oldestAnchor);
|
|
36
|
+
setMessages(mergeMessages([], initialMessages), !history.isEnd);
|
|
57
37
|
ChatMessageAPI.markConversationAsRead(conversationId).catch(() => undefined);
|
|
58
38
|
} catch (err) {
|
|
59
39
|
setError(err instanceof Error ? err : new Error(String(err)));
|
|
60
40
|
} finally {
|
|
61
41
|
setIsLoading(false);
|
|
62
42
|
}
|
|
63
|
-
}, [conversationId, pageSize]);
|
|
43
|
+
}, [conversationId, pageSize, setMessages]);
|
|
64
44
|
const onLoadEarlier = useCallback(async () => {
|
|
65
|
-
if (
|
|
66
|
-
return;
|
|
67
|
-
}
|
|
68
|
-
isLoadingEarlierRef.current = true;
|
|
45
|
+
if (isLoadingEarlier || !hasMoreEarlier || !messages.length) return;
|
|
69
46
|
setIsLoadingEarlier(true);
|
|
70
47
|
setError(null);
|
|
71
|
-
const anchor = historyAnchorRef.current;
|
|
72
|
-
if (!anchor?.clientMsgID) {
|
|
73
|
-
isLoadingEarlierRef.current = false;
|
|
74
|
-
setIsLoadingEarlier(false);
|
|
75
|
-
return;
|
|
76
|
-
}
|
|
77
48
|
try {
|
|
78
49
|
const history = await ChatMessageAPI.fetchHistoryMessages(conversationId, {
|
|
79
50
|
count: pageSize,
|
|
80
|
-
startClientMsgID:
|
|
51
|
+
startClientMsgID: messages[0].clientMsgID
|
|
81
52
|
});
|
|
82
53
|
const incoming = history.messageList;
|
|
83
|
-
const
|
|
84
|
-
if (
|
|
85
|
-
setMessages(
|
|
54
|
+
const hasNew = hasNewHistoryMessages(messages, incoming);
|
|
55
|
+
if (hasNew) {
|
|
56
|
+
setMessages(mergeMessages(messages, incoming), !history.isEnd && hasNew);
|
|
57
|
+
} else {
|
|
58
|
+
setMessages(messages, false);
|
|
86
59
|
}
|
|
87
|
-
const nextAnchor = getHistoryPaginationAnchor(incoming);
|
|
88
|
-
historyAnchorRef.current = nextAnchor ? {
|
|
89
|
-
clientMsgID: nextAnchor.clientMsgID
|
|
90
|
-
// lastMinSeq: resolveHistoryLastMinSeq(
|
|
91
|
-
// history,
|
|
92
|
-
// incoming.find(
|
|
93
|
-
// (message) => message.clientMsgID === nextAnchor.clientMsgID
|
|
94
|
-
// )
|
|
95
|
-
// ),
|
|
96
|
-
} : null;
|
|
97
|
-
setHasMoreEarlier(!history.isEnd && hasNewMessages && !!nextAnchor);
|
|
98
60
|
} catch (err) {
|
|
99
61
|
setError(err instanceof Error ? err : new Error(String(err)));
|
|
100
62
|
} finally {
|
|
101
|
-
isLoadingEarlierRef.current = false;
|
|
102
63
|
setIsLoadingEarlier(false);
|
|
103
64
|
}
|
|
104
|
-
}, [conversationId, pageSize]);
|
|
105
|
-
const
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
65
|
+
}, [conversationId, hasMoreEarlier, isLoadingEarlier, messages, pageSize, setMessages]);
|
|
66
|
+
const onLoadNewer = useCallback(async () => {
|
|
67
|
+
if (isLoadingNewer || !hasMoreNewer || !messages.length) return;
|
|
68
|
+
setIsLoadingNewer(true);
|
|
69
|
+
setError(null);
|
|
70
|
+
try {
|
|
71
|
+
const history = await ChatMessageAPI.fetchHistoryMessages(conversationId, {
|
|
72
|
+
count: pageSize,
|
|
73
|
+
startClientMsgID: messages[messages.length - 1].clientMsgID
|
|
74
|
+
});
|
|
75
|
+
const incoming = history.messageList;
|
|
76
|
+
const hasNew = incoming.length > 0;
|
|
77
|
+
if (hasNew) {
|
|
78
|
+
setMessages(mergeMessages(messages, incoming), !history.isEnd && hasNew);
|
|
79
|
+
}
|
|
80
|
+
} catch (err) {
|
|
81
|
+
setError(err instanceof Error ? err : new Error(String(err)));
|
|
82
|
+
} finally {
|
|
83
|
+
setIsLoadingNewer(false);
|
|
109
84
|
}
|
|
110
|
-
|
|
111
|
-
text: trimmed
|
|
112
|
-
});
|
|
113
|
-
setMessages(current => mergeMessages(current, [sentMessage]));
|
|
114
|
-
}, []);
|
|
85
|
+
}, [conversationId, hasMoreNewer, isLoadingNewer, messages, pageSize, setMessages]);
|
|
115
86
|
const appendIncomingMessages = useCallback(incoming => {
|
|
116
87
|
const relevant = incoming.filter(message => belongsToConversation(message, conversationIdRef.current));
|
|
117
|
-
if (!relevant.length)
|
|
118
|
-
|
|
119
|
-
}
|
|
120
|
-
setMessages(current => mergeMessages(current, relevant));
|
|
88
|
+
if (!relevant.length) return;
|
|
89
|
+
relevant.forEach(msg => pushNewMessage(msg));
|
|
121
90
|
ChatMessageAPI.markConversationAsRead(conversationIdRef.current).catch(() => undefined);
|
|
122
|
-
}, []);
|
|
91
|
+
}, [pushNewMessage]);
|
|
123
92
|
useEffect(() => {
|
|
124
|
-
|
|
125
|
-
if (!enabled || !conversationId)
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
loadInitialMessages();
|
|
129
|
-
}, [conversationId, enabled, loadInitialMessages, resetState]);
|
|
93
|
+
reset();
|
|
94
|
+
if (!enabled || !conversationId) return;
|
|
95
|
+
fetchInitial();
|
|
96
|
+
}, [conversationId, enabled, fetchInitial, reset]);
|
|
130
97
|
useEffect(() => {
|
|
131
|
-
if (!enabled || !conversationId)
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
const handleNewMessages = incoming => {
|
|
135
|
-
appendIncomingMessages(incoming);
|
|
136
|
-
};
|
|
137
|
-
const handleNewMessage = incoming => {
|
|
138
|
-
appendIncomingMessages([incoming]);
|
|
139
|
-
};
|
|
98
|
+
if (!enabled || !conversationId) return;
|
|
99
|
+
const handleNewMessages = incoming => appendIncomingMessages(incoming);
|
|
100
|
+
const handleNewMessage = incoming => appendIncomingMessages([incoming]);
|
|
140
101
|
OpenIMSDK.on(OpenIMEvent.OnRecvNewMessages, handleNewMessages);
|
|
141
102
|
OpenIMSDK.on(OpenIMEvent.OnRecvNewMessage, handleNewMessage);
|
|
142
103
|
return () => {
|
|
@@ -150,10 +111,12 @@ export function useChatMessages({
|
|
|
150
111
|
isLoading,
|
|
151
112
|
isLoadingEarlier,
|
|
152
113
|
hasMoreEarlier,
|
|
114
|
+
isLoadingNewer,
|
|
115
|
+
hasMoreNewer,
|
|
153
116
|
error,
|
|
154
117
|
onLoadEarlier,
|
|
155
|
-
|
|
156
|
-
refresh:
|
|
118
|
+
onLoadNewer,
|
|
119
|
+
refresh: fetchInitial
|
|
157
120
|
};
|
|
158
121
|
}
|
|
159
122
|
//# sourceMappingURL=useChatMessages.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["OpenIMSDK","OpenIMEvent","useCallback","useEffect","useRef","useState","ChatMessageAPI","belongsToConversation","
|
|
1
|
+
{"version":3,"names":["OpenIMSDK","OpenIMEvent","useCallback","useEffect","useRef","useState","ChatMessageAPI","belongsToConversation","hasNewHistoryMessages","mergeMessages","useMessageStore","useChatMessages","conversationId","enabled","pageSize","messages","s","hasMoreEarlier","hasMoreNewer","setMessages","pushNewMessage","reset","currentUserId","setCurrentUserId","isLoading","setIsLoading","isLoadingEarlier","setIsLoadingEarlier","isLoadingNewer","setIsLoadingNewer","error","setError","conversationIdRef","current","fetchInitial","history","userId","Promise","all","fetchHistoryMessages","count","getCurrentUserId","initialMessages","messageList","isEnd","markConversationAsRead","catch","undefined","err","Error","String","onLoadEarlier","length","startClientMsgID","clientMsgID","incoming","hasNew","onLoadNewer","appendIncomingMessages","relevant","filter","message","forEach","msg","handleNewMessages","handleNewMessage","on","OnRecvNewMessages","OnRecvNewMessage","off","refresh"],"sourceRoot":"../../../src","sources":["hooks/useChatMessages.ts"],"mappings":"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","ignoreList":[]}
|
|
@@ -3,10 +3,31 @@
|
|
|
3
3
|
import { useEffect } from 'react';
|
|
4
4
|
import { useQuery } from '@tanstack/react-query';
|
|
5
5
|
import OpenIMSDK from '@droppii/openim-rn-client-sdk';
|
|
6
|
-
import { ChatAPI } from "../services/index.js";
|
|
7
6
|
import { conversationQueryKeys } from "./query-keys.js";
|
|
8
7
|
import { useConversationStore } from "../store/index.js";
|
|
9
|
-
|
|
8
|
+
function toConversationItem(raw) {
|
|
9
|
+
let lastMessage;
|
|
10
|
+
if (raw.latestMsg) {
|
|
11
|
+
try {
|
|
12
|
+
lastMessage = JSON.parse(raw.latestMsg);
|
|
13
|
+
} catch {
|
|
14
|
+
// leave undefined
|
|
15
|
+
}
|
|
16
|
+
}
|
|
17
|
+
let applicationType;
|
|
18
|
+
if (raw.ex) {
|
|
19
|
+
try {
|
|
20
|
+
applicationType = JSON.parse(raw.ex).applicationType;
|
|
21
|
+
} catch {
|
|
22
|
+
// leave undefined
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
return {
|
|
26
|
+
...raw,
|
|
27
|
+
lastMessage,
|
|
28
|
+
applicationType
|
|
29
|
+
};
|
|
30
|
+
}
|
|
10
31
|
export function useConversationList({
|
|
11
32
|
applicationType,
|
|
12
33
|
page = 1,
|
|
@@ -18,23 +39,14 @@ export function useConversationList({
|
|
|
18
39
|
enabled: enabled !== false,
|
|
19
40
|
queryFn: async () => {
|
|
20
41
|
const offset = (page - 1) * 20;
|
|
21
|
-
const
|
|
22
|
-
data: droppiiList
|
|
23
|
-
}, openimList] = await Promise.all([ChatAPI.queryConversations({
|
|
24
|
-
applicationType,
|
|
25
|
-
page,
|
|
26
|
-
pageSize: 20
|
|
27
|
-
}), OpenIMSDK.getConversationListSplit({
|
|
42
|
+
const rawList = await OpenIMSDK.getConversationListSplitApp({
|
|
28
43
|
offset,
|
|
29
|
-
count: 20
|
|
30
|
-
|
|
31
|
-
const openimMap = new Map(openimList.map(c => [c.conversationID, c]));
|
|
32
|
-
const merged = droppiiList.map(conv => {
|
|
33
|
-
const openimConv = openimMap.get(conv.conversationId);
|
|
34
|
-
return openimConv ? mergeOpenIMIntoConversation(conv, openimConv) : conv;
|
|
44
|
+
count: 20,
|
|
45
|
+
applicationType
|
|
35
46
|
});
|
|
36
|
-
|
|
37
|
-
|
|
47
|
+
const conversations = rawList.map(toConversationItem);
|
|
48
|
+
useConversationStore.getState().updateConversations(conversations);
|
|
49
|
+
return conversations;
|
|
38
50
|
}
|
|
39
51
|
});
|
|
40
52
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["useEffect","useQuery","OpenIMSDK","
|
|
1
|
+
{"version":3,"names":["useEffect","useQuery","OpenIMSDK","conversationQueryKeys","useConversationStore","toConversationItem","raw","lastMessage","latestMsg","JSON","parse","applicationType","ex","useConversationList","page","enabled","newConversationSignal","s","query","queryKey","list","queryFn","offset","rawList","getConversationListSplitApp","count","conversations","map","getState","updateConversations","refetch"],"sourceRoot":"../../../src","sources":["hooks/useConversationList.ts"],"mappings":";;AAAA,SAASA,SAAS,QAAQ,OAAO;AACjC,SAASC,QAAQ,QAAQ,uBAAuB;AAChD,OAAOC,SAAS,MAET,+BAA+B;AACtC,SAASC,qBAAqB,QAAQ,iBAAc;AACpD,SAASC,oBAAoB,QAAQ,mBAAU;AAS/C,SAASC,kBAAkBA,CAACC,GAAqB,EAAqB;EACpE,IAAIC,WAAqC;EACzC,IAAID,GAAG,CAACE,SAAS,EAAE;IACjB,IAAI;MACFD,WAAW,GAAGE,IAAI,CAACC,KAAK,CAACJ,GAAG,CAACE,SAAS,CAAiB;IACzD,CAAC,CAAC,MAAM;MACN;IAAA;EAEJ;EAEA,IAAIG,eAAmC;EACvC,IAAIL,GAAG,CAACM,EAAE,EAAE;IACV,IAAI;MACFD,eAAe,GAAIF,IAAI,CAACC,KAAK,CAACJ,GAAG,CAACM,EAAE,CAAC,CAClCD,eAAe;IACpB,CAAC,CAAC,MAAM;MACN;IAAA;EAEJ;EAEA,OAAO;IAAE,GAAIL,GAAyB;IAAEC,WAAW;IAAEI;EAAgB,CAAC;AACxE;AAEA,OAAO,SAASE,mBAAmBA,CAAC;EAClCF,eAAe;EACfG,IAAI,GAAG,CAAC;EACRC,OAAO,GAAG;AACJ,CAAC,EAAE;EACT,MAAMC,qBAAqB,GAAGZ,oBAAoB,CAC/Ca,CAAC,IAAKA,CAAC,CAACD,qBACX,CAAC;EAED,MAAME,KAAK,GAAGjB,QAAQ,CAAC;IACrBkB,QAAQ,EAAE,CAAC,GAAGhB,qBAAqB,CAACiB,IAAI,CAACT,eAAe,CAAC,EAAEG,IAAI,CAAC;IAChEC,OAAO,EAAEA,OAAO,KAAK,KAAK;IAC1BM,OAAO,EAAE,MAAAA,CAAA,KAAY;MACnB,MAAMC,MAAM,GAAG,CAACR,IAAI,GAAG,CAAC,IAAI,EAAE;MAC9B,MAAMS,OAAO,GAAG,MAAMrB,SAAS,CAACsB,2BAA2B,CAAC;QAC1DF,MAAM;QACNG,KAAK,EAAE,EAAE;QACTd;MACF,CAAC,CAAC;MAEF,MAAMe,aAAa,GAAGH,OAAO,CAACI,GAAG,CAACtB,kBAAkB,CAAC;MACrDD,oBAAoB,CAACwB,QAAQ,CAAC,CAAC,CAACC,mBAAmB,CAACH,aAAa,CAAC;MAClE,OAAOA,aAAa;IACtB;EACF,CAAC,CAAC;;EAEF;EACA;EACA1B,SAAS,CAAC,MAAM;IACd,IAAIgB,qBAAqB,GAAG,CAAC,EAAE;MAC7BE,KAAK,CAACY,OAAO,CAAC,CAAC;IACjB;IACA;EACF,CAAC,EAAE,CAACd,qBAAqB,CAAC,CAAC;EAE3B,OAAOE,KAAK;AACd","ignoreList":[]}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
import { keepPreviousData, useQuery } from '@tanstack/react-query';
|
|
4
|
+
import { commonQueryKeys } from "../query-keys.js";
|
|
5
|
+
import { apiInstance } from "../../services/apis.js";
|
|
6
|
+
import { ENDPOINTS } from "../../services/endpoints.js";
|
|
7
|
+
export const useFetchUrlMetadata = url => useQuery({
|
|
8
|
+
queryKey: commonQueryKeys.urlMetadata(url || ''),
|
|
9
|
+
queryFn: async () => {
|
|
10
|
+
const path = `${ENDPOINTS.chatService.urlMetadata}?url=${url}`;
|
|
11
|
+
const res = await apiInstance?.get(path);
|
|
12
|
+
return res?.data?.data;
|
|
13
|
+
},
|
|
14
|
+
enabled: !!url,
|
|
15
|
+
placeholderData: keepPreviousData
|
|
16
|
+
});
|
|
17
|
+
//# sourceMappingURL=useFetchUrlMetadata.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["keepPreviousData","useQuery","commonQueryKeys","apiInstance","ENDPOINTS","useFetchUrlMetadata","url","queryKey","urlMetadata","queryFn","path","chatService","res","get","data","enabled","placeholderData"],"sourceRoot":"../../../../src","sources":["hooks/useLinkPreview/useFetchUrlMetadata.ts"],"mappings":";;AAAA,SAASA,gBAAgB,EAAEC,QAAQ,QAAQ,uBAAuB;AAClE,SAASC,eAAe,QAAQ,kBAAe;AAC/C,SAASC,WAAW,QAAQ,wBAAqB;AAGjD,SAASC,SAAS,QAAQ,6BAA0B;AAEpD,OAAO,MAAMC,mBAAmB,GAAIC,GAAY,IAC9CL,QAAQ,CAAC;EACPM,QAAQ,EAAEL,eAAe,CAACM,WAAW,CAACF,GAAG,IAAI,EAAE,CAAC;EAChDG,OAAO,EAAE,MAAAA,CAAA,KAAY;IACnB,MAAMC,IAAI,GAAG,GAAGN,SAAS,CAACO,WAAW,CAACH,WAAW,QAAQF,GAAG,EAAE;IAC9D,MAAMM,GAAG,GAAG,MAAMT,WAAW,EAAEU,GAAG,CAA6BH,IAAI,CAAC;IACpE,OAAOE,GAAG,EAAEE,IAAI,EAAEA,IAAI;EACxB,CAAC;EACDC,OAAO,EAAE,CAAC,CAACT,GAAG;EACdU,eAAe,EAAEhB;AACnB,CAAC,CAAC","ignoreList":[]}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
import { useCallback, useEffect, useRef, useState } from 'react';
|
|
4
|
+
import { useFetchUrlMetadata } from "./useFetchUrlMetadata.js";
|
|
5
|
+
import { extractUrls } from "../../utils/url.js";
|
|
6
|
+
export function useLinkPreview(value) {
|
|
7
|
+
const [detectedUrl, setDetectedUrl] = useState(undefined);
|
|
8
|
+
const [isDismissed, setIsDismissed] = useState(false);
|
|
9
|
+
const timerRef = useRef(null);
|
|
10
|
+
useEffect(() => {
|
|
11
|
+
if (timerRef.current) clearTimeout(timerRef.current);
|
|
12
|
+
timerRef.current = setTimeout(() => {
|
|
13
|
+
const urls = value ? extractUrls(value) : [];
|
|
14
|
+
const url = urls.length === 1 ? urls[0] : undefined;
|
|
15
|
+
setDetectedUrl(url);
|
|
16
|
+
if (url) setIsDismissed(false);
|
|
17
|
+
}, 500);
|
|
18
|
+
return () => {
|
|
19
|
+
if (timerRef.current) clearTimeout(timerRef.current);
|
|
20
|
+
};
|
|
21
|
+
}, [value]);
|
|
22
|
+
const {
|
|
23
|
+
data: metadata,
|
|
24
|
+
isFetching: isLoading
|
|
25
|
+
} = useFetchUrlMetadata(detectedUrl);
|
|
26
|
+
const dismiss = useCallback(() => setIsDismissed(true), []);
|
|
27
|
+
const isVisible = !!detectedUrl && !isDismissed;
|
|
28
|
+
return {
|
|
29
|
+
isVisible,
|
|
30
|
+
metadata,
|
|
31
|
+
isLoading,
|
|
32
|
+
dismiss
|
|
33
|
+
};
|
|
34
|
+
}
|
|
35
|
+
//# sourceMappingURL=useLinkPreview.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["useCallback","useEffect","useRef","useState","useFetchUrlMetadata","extractUrls","useLinkPreview","value","detectedUrl","setDetectedUrl","undefined","isDismissed","setIsDismissed","timerRef","current","clearTimeout","setTimeout","urls","url","length","data","metadata","isFetching","isLoading","dismiss","isVisible"],"sourceRoot":"../../../../src","sources":["hooks/useLinkPreview/useLinkPreview.ts"],"mappings":";;AAAA,SAASA,WAAW,EAAEC,SAAS,EAAEC,MAAM,EAAEC,QAAQ,QAAQ,OAAO;AAChE,SAASC,mBAAmB,QAAQ,0BAAuB;AAC3D,SAASC,WAAW,QAAQ,oBAAiB;AAE7C,OAAO,SAASC,cAAcA,CAACC,KAAyB,EAAE;EACxD,MAAM,CAACC,WAAW,EAAEC,cAAc,CAAC,GAAGN,QAAQ,CAAqBO,SAAS,CAAC;EAC7E,MAAM,CAACC,WAAW,EAAEC,cAAc,CAAC,GAAGT,QAAQ,CAAC,KAAK,CAAC;EACrD,MAAMU,QAAQ,GAAGX,MAAM,CAAuC,IAAI,CAAC;EAEnED,SAAS,CAAC,MAAM;IACd,IAAIY,QAAQ,CAACC,OAAO,EAAEC,YAAY,CAACF,QAAQ,CAACC,OAAO,CAAC;IACpDD,QAAQ,CAACC,OAAO,GAAGE,UAAU,CAAC,MAAM;MAClC,MAAMC,IAAI,GAAGV,KAAK,GAAGF,WAAW,CAACE,KAAK,CAAC,GAAG,EAAE;MAC5C,MAAMW,GAAG,GAAGD,IAAI,CAACE,MAAM,KAAK,CAAC,GAAGF,IAAI,CAAC,CAAC,CAAC,GAAGP,SAAS;MACnDD,cAAc,CAACS,GAAG,CAAC;MACnB,IAAIA,GAAG,EAAEN,cAAc,CAAC,KAAK,CAAC;IAChC,CAAC,EAAE,GAAG,CAAC;IACP,OAAO,MAAM;MACX,IAAIC,QAAQ,CAACC,OAAO,EAAEC,YAAY,CAACF,QAAQ,CAACC,OAAO,CAAC;IACtD,CAAC;EACH,CAAC,EAAE,CAACP,KAAK,CAAC,CAAC;EAEX,MAAM;IAAEa,IAAI,EAAEC,QAAQ;IAAEC,UAAU,EAAEC;EAAU,CAAC,GAC7CnB,mBAAmB,CAACI,WAAW,CAAC;EAElC,MAAMgB,OAAO,GAAGxB,WAAW,CAAC,MAAMY,cAAc,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC;EAE3D,MAAMa,SAAS,GAAG,CAAC,CAACjB,WAAW,IAAI,CAACG,WAAW;EAE/C,OAAO;IAAEc,SAAS;IAAEJ,QAAQ;IAAEE,SAAS;IAAEC;EAAQ,CAAC;AACpD","ignoreList":[]}
|
package/lib/module/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["ChatAPI","Avatar","ThreadCard","Inbox","ChatDetail","ChatDetailHeader","ChatList","ChatComposer","ChatQuickActions","ChatAttachmentPanel","DEFAULT_Chat_QUICK_ACTIONS","DEFAULT_ATTACHMENT_ACTIONS","mapOpenIMMessageToGiftedChat","mapOpenIMMessagesToGiftedChat"],"sourceRoot":"../../src","sources":["index.tsx"],"mappings":";;AAAA,SAASA,OAAO,QAAQ,qBAAY;AACpC,cAAc,iBAAQ;AACtB,cAAc,kBAAS;AACvB,cAAc,oBAAW;AACzB,cAAc,gCAA6B;AAC3C,cAAc,4BAAyB;AACvC,cAAc,iBAAc;AAC5B,SAASC,MAAM,QAAQ,8BAAqB;AAC5C,SAASC,UAAU,QAAQ,kCAAyB;AACpD,SAASC,KAAK,QAAQ,0BAAiB;AACvC,SACEC,UAAU,EACVC,gBAAgB,EAChBC,QAAQ,EACRC,YAAY,EACZC,gBAAgB,EAChBC,mBAAmB,EACnBC,0BAA0B,EAC1BC,0BAA0B,QACrB,gCAAuB;
|
|
1
|
+
{"version":3,"names":["ChatAPI","Avatar","ThreadCard","Inbox","ChatDetail","ChatDetailHeader","ChatList","ChatComposer","ChatQuickActions","ChatAttachmentPanel","DEFAULT_Chat_QUICK_ACTIONS","DEFAULT_ATTACHMENT_ACTIONS","mapOpenIMMessageToGiftedChat","mapOpenIMMessagesToGiftedChat"],"sourceRoot":"../../src","sources":["index.tsx"],"mappings":";;AAAA,SAASA,OAAO,QAAQ,qBAAY;AACpC,cAAc,iBAAQ;AACtB,cAAc,kBAAS;AACvB,cAAc,oBAAW;AACzB,cAAc,gCAA6B;AAC3C,cAAc,4BAAyB;AACvC,cAAc,iBAAc;AAC5B,SAASC,MAAM,QAAQ,8BAAqB;AAC5C,SAASC,UAAU,QAAQ,kCAAyB;AACpD,SAASC,KAAK,QAAQ,0BAAiB;AACvC,SACEC,UAAU,EACVC,gBAAgB,EAChBC,QAAQ,EACRC,YAAY,EACZC,gBAAgB,EAChBC,mBAAmB,EACnBC,0BAA0B,EAC1BC,0BAA0B,QACrB,gCAAuB;AAe9B,SACEC,4BAA4B,EAC5BC,6BAA6B,QACxB,8BAA2B","ignoreList":[]}
|
|
@@ -8,7 +8,9 @@ import { useSafeAreaInsets } from 'react-native-safe-area-context';
|
|
|
8
8
|
import { KContainer, KImage, KColors, KSpacingValue } from '@droppii/libs';
|
|
9
9
|
import { ChatQuickActions } from "./ChatQuickActions.js";
|
|
10
10
|
import { ChatAttachmentPanel } from "./ChatAttachmentPanel.js";
|
|
11
|
+
import { ChatLinkPreview } from "./ChatLinkPreview.js";
|
|
11
12
|
import { getAttachmentPanelHeight } from "./constants.js";
|
|
13
|
+
import { useLinkPreview } from "../../hooks/useLinkPreview/useLinkPreview.js";
|
|
12
14
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
13
15
|
const ACCESSORY_ANIMATION_MS = 250;
|
|
14
16
|
const ACCESSORY_SETTLE_MS = 150;
|
|
@@ -25,11 +27,13 @@ export const ChatComposer = /*#__PURE__*/memo(({
|
|
|
25
27
|
onSend,
|
|
26
28
|
onPressAttach,
|
|
27
29
|
onPressEmoji,
|
|
30
|
+
showQuickActions = true,
|
|
28
31
|
quickActions,
|
|
29
32
|
attachmentActions,
|
|
30
33
|
onQuickActionPress,
|
|
31
34
|
onAttachmentAction,
|
|
32
35
|
renderQuickAction,
|
|
36
|
+
renderQuickActions,
|
|
33
37
|
renderAttachmentAction,
|
|
34
38
|
attachmentColumns
|
|
35
39
|
}) => {
|
|
@@ -40,6 +44,12 @@ export const ChatComposer = /*#__PURE__*/memo(({
|
|
|
40
44
|
const [isInputFocused, setIsInputFocused] = useState(false);
|
|
41
45
|
const [isInputWrapped, setIsInputWrapped] = useState(false);
|
|
42
46
|
const insets = useSafeAreaInsets();
|
|
47
|
+
const {
|
|
48
|
+
isVisible: showLinkPreview,
|
|
49
|
+
metadata: urlMetadata,
|
|
50
|
+
isLoading: isMetadataLoading,
|
|
51
|
+
dismiss: handleDismissPreview
|
|
52
|
+
} = useLinkPreview(value);
|
|
43
53
|
const isKeyboardVisible = useKeyboardState(state => state.isVisible);
|
|
44
54
|
const keyboardHeight = useKeyboardState(state => state.height);
|
|
45
55
|
const {
|
|
@@ -113,8 +123,8 @@ export const ChatComposer = /*#__PURE__*/memo(({
|
|
|
113
123
|
};
|
|
114
124
|
});
|
|
115
125
|
const handleSend = useCallback(() => {
|
|
116
|
-
onSend?.();
|
|
117
|
-
}, [onSend]);
|
|
126
|
+
onSend?.(showLinkPreview ? urlMetadata : undefined);
|
|
127
|
+
}, [onSend, urlMetadata, showLinkPreview]);
|
|
118
128
|
const handleToggleAttachment = useCallback(() => {
|
|
119
129
|
if (!hasAttachmentActions) {
|
|
120
130
|
return;
|
|
@@ -177,10 +187,16 @@ export const ChatComposer = /*#__PURE__*/memo(({
|
|
|
177
187
|
return /*#__PURE__*/_jsxs(KContainer.View, {
|
|
178
188
|
background: 'rgba(131, 137, 157, 0.05)',
|
|
179
189
|
children: [/*#__PURE__*/_jsx(ChatQuickActions, {
|
|
190
|
+
visible: showQuickActions,
|
|
180
191
|
actions: quickActions,
|
|
181
192
|
onActionPress: onQuickActionPress,
|
|
182
|
-
renderAction: renderQuickAction
|
|
183
|
-
|
|
193
|
+
renderAction: renderQuickAction,
|
|
194
|
+
renderQuickActions: renderQuickActions
|
|
195
|
+
}), showLinkPreview ? /*#__PURE__*/_jsx(ChatLinkPreview, {
|
|
196
|
+
metadata: urlMetadata,
|
|
197
|
+
isLoading: isMetadataLoading,
|
|
198
|
+
onDismiss: handleDismissPreview
|
|
199
|
+
}) : null, /*#__PURE__*/_jsxs(KContainer.View, {
|
|
184
200
|
row: true,
|
|
185
201
|
alignItems: true,
|
|
186
202
|
paddingH: "0.75rem",
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["memo","useCallback","useEffect","useMemo","useRef","useState","Keyboard","Platform","StyleSheet","TextInput","Reanimated","runOnJS","useAnimatedReaction","useAnimatedStyle","useSharedValue","withTiming","useKeyboardState","useReanimatedKeyboardAnimation","useSafeAreaInsets","KContainer","KImage","KColors","KSpacingValue","ChatQuickActions","ChatAttachmentPanel","getAttachmentPanelHeight","jsx","_jsx","jsxs","_jsxs","ACCESSORY_ANIMATION_MS","ACCESSORY_SETTLE_MS","IS_IOS","OS","INPUT_FONT_SIZE","INPUT_LINE_HEIGHT","INPUT_MAX_HEIGHT","WRAPPED_HEIGHT_THRESHOLD","ChatComposer","value","placeholder","onChangeText","onSend","onPressAttach","onPressEmoji","quickActions","attachmentActions","onQuickActionPress","onAttachmentAction","renderQuickAction","renderAttachmentAction","attachmentColumns","hasAttachmentActions","length","inputRef","isSwitchingToAttachmentRef","isAttachmentOpen","setIsAttachmentOpen","isInputFocused","setIsInputFocused","isInputWrapped","setIsInputWrapped","insets","isKeyboardVisible","state","isVisible","keyboardHeight","height","progress","keyboardProgress","panelHeight","attachmentHeightSV","panelHeightSV","switchKeyboardHeightSV","isKeyboardToAttachmentSwitchSV","openAttachment","duration","closeAttachment","finishKeyboardToAttachmentSwitch","current","targetHeight","startHeight","Math","abs","switching","previous","accessorySlotStyle","handleSend","handleToggleAttachment","blur","dismiss","handleInputFocus","handleInputBlur","handleInputContentSizeChange","event","nativeEvent","contentSize","isMultilineInput","includes","renderEmojiNode","Touchable","marginR","onPress","children","VectorIcons","name","size","color","gray","normal","inputRowStyle","paddingBottom","bottom","View","background","actions","onActionPress","renderAction","row","alignItems","paddingH","paddingT","paddingB","style","center","br","palette","primary","w400","w600","flex","marginL","undefined","styles","inputWrapper","brW","brC","w100","white","paddingL","inputContainer","ref","placeholderTextColor","w200","onFocus","onBlur","onContentSizeChange","multiline","blurOnSubmit","scrollEnabled","allowFontScaling","underlineColorAndroid","transparent","selectionColor","selector","textAlignVertical","textInput","width","provider","accessorySlot","pointerEvents","columns","displayName","create","overflow","backgroundColor","w25","borderRadius","minHeight","paddingVertical","maxHeight","fontSize","lineHeight","w900","paddingHorizontal","includeFontPadding"],"sourceRoot":"../../../../src","sources":["screens/chat-detail/ChatComposer.tsx"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["memo","useCallback","useEffect","useMemo","useRef","useState","Keyboard","Platform","StyleSheet","TextInput","Reanimated","runOnJS","useAnimatedReaction","useAnimatedStyle","useSharedValue","withTiming","useKeyboardState","useReanimatedKeyboardAnimation","useSafeAreaInsets","KContainer","KImage","KColors","KSpacingValue","ChatQuickActions","ChatAttachmentPanel","ChatLinkPreview","getAttachmentPanelHeight","useLinkPreview","jsx","_jsx","jsxs","_jsxs","ACCESSORY_ANIMATION_MS","ACCESSORY_SETTLE_MS","IS_IOS","OS","INPUT_FONT_SIZE","INPUT_LINE_HEIGHT","INPUT_MAX_HEIGHT","WRAPPED_HEIGHT_THRESHOLD","ChatComposer","value","placeholder","onChangeText","onSend","onPressAttach","onPressEmoji","showQuickActions","quickActions","attachmentActions","onQuickActionPress","onAttachmentAction","renderQuickAction","renderQuickActions","renderAttachmentAction","attachmentColumns","hasAttachmentActions","length","inputRef","isSwitchingToAttachmentRef","isAttachmentOpen","setIsAttachmentOpen","isInputFocused","setIsInputFocused","isInputWrapped","setIsInputWrapped","insets","isVisible","showLinkPreview","metadata","urlMetadata","isLoading","isMetadataLoading","dismiss","handleDismissPreview","isKeyboardVisible","state","keyboardHeight","height","progress","keyboardProgress","panelHeight","attachmentHeightSV","panelHeightSV","switchKeyboardHeightSV","isKeyboardToAttachmentSwitchSV","openAttachment","duration","closeAttachment","finishKeyboardToAttachmentSwitch","current","targetHeight","startHeight","Math","abs","switching","previous","accessorySlotStyle","handleSend","undefined","handleToggleAttachment","blur","handleInputFocus","handleInputBlur","handleInputContentSizeChange","event","nativeEvent","contentSize","isMultilineInput","includes","renderEmojiNode","Touchable","marginR","onPress","children","VectorIcons","name","size","color","gray","normal","inputRowStyle","paddingBottom","bottom","View","background","visible","actions","onActionPress","renderAction","onDismiss","row","alignItems","paddingH","paddingT","paddingB","style","center","br","palette","primary","w400","w600","flex","marginL","styles","inputWrapper","brW","brC","w100","white","paddingL","inputContainer","ref","placeholderTextColor","w200","onFocus","onBlur","onContentSizeChange","multiline","blurOnSubmit","scrollEnabled","allowFontScaling","underlineColorAndroid","transparent","selectionColor","selector","textAlignVertical","textInput","width","provider","accessorySlot","pointerEvents","columns","displayName","create","overflow","backgroundColor","w25","borderRadius","minHeight","paddingVertical","maxHeight","fontSize","lineHeight","w900","paddingHorizontal","includeFontPadding"],"sourceRoot":"../../../../src","sources":["screens/chat-detail/ChatComposer.tsx"],"mappings":"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","ignoreList":[]}
|