@droppii-org/chat-mobile 0.2.81 → 0.2.83
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/MentionBadge.js +24 -0
- package/lib/module/components/ThreadCard/MentionBadge.js.map +1 -0
- package/lib/module/components/ThreadCard/ThreadCard.js +5 -1
- package/lib/module/components/ThreadCard/ThreadCard.js.map +1 -1
- package/lib/module/components/messages/linkMessage/LinkPreviewCard.js +67 -0
- package/lib/module/components/messages/linkMessage/LinkPreviewCard.js.map +1 -0
- package/lib/module/components/messages/linkMessage/index.js +49 -92
- package/lib/module/components/messages/linkMessage/index.js.map +1 -1
- package/lib/module/components/messages/quotedMessage/QuotedMessagePreviewStrip.js +152 -0
- package/lib/module/components/messages/quotedMessage/QuotedMessagePreviewStrip.js.map +1 -0
- package/lib/module/components/messages/quotedMessage/index.js +79 -55
- package/lib/module/components/messages/quotedMessage/index.js.map +1 -1
- package/lib/module/components/messages/stickerMessage/index.js +38 -13
- package/lib/module/components/messages/stickerMessage/index.js.map +1 -1
- package/lib/module/components/messages/textMessage/index.js +126 -13
- package/lib/module/components/messages/textMessage/index.js.map +1 -1
- package/lib/module/components/messages/types.js.map +1 -1
- package/lib/module/core/useChatListener.js +1 -1
- package/lib/module/core/useChatListener.js.map +1 -1
- package/lib/module/hooks/message/useSendMessage.js +64 -3
- package/lib/module/hooks/message/useSendMessage.js.map +1 -1
- package/lib/module/hooks/query-keys.js +4 -0
- package/lib/module/hooks/query-keys.js.map +1 -1
- package/lib/module/hooks/useChatCompose.js +3 -2
- package/lib/module/hooks/useChatCompose.js.map +1 -1
- package/lib/module/screens/chat-detail/ChatComposer.js +170 -48
- package/lib/module/screens/chat-detail/ChatComposer.js.map +1 -1
- package/lib/module/screens/chat-detail/ChatListLegend.js +16 -7
- package/lib/module/screens/chat-detail/ChatListLegend.js.map +1 -1
- package/lib/module/screens/chat-detail/components/ChatMessageInput.js +23 -2
- package/lib/module/screens/chat-detail/components/ChatMessageInput.js.map +1 -1
- package/lib/module/screens/chat-detail/components/MentionHighlightAdapter.js +51 -0
- package/lib/module/screens/chat-detail/components/MentionHighlightAdapter.js.map +1 -0
- package/lib/module/screens/chat-detail/components/MentionSuggestionItem.js +49 -0
- package/lib/module/screens/chat-detail/components/MentionSuggestionItem.js.map +1 -0
- package/lib/module/screens/chat-detail/components/MentionSuggestionList.js +114 -0
- package/lib/module/screens/chat-detail/components/MentionSuggestionList.js.map +1 -0
- package/lib/module/screens/chat-detail/hooks/useChatComposerState.js +8 -0
- package/lib/module/screens/chat-detail/hooks/useChatComposerState.js.map +1 -1
- package/lib/module/screens/chat-detail/hooks/useMentionComposer.js +251 -0
- package/lib/module/screens/chat-detail/hooks/useMentionComposer.js.map +1 -0
- package/lib/module/screens/chat-detail/legend/LegendChatDay.js +4 -9
- package/lib/module/screens/chat-detail/legend/LegendChatDay.js.map +1 -1
- package/lib/module/screens/chat-detail/legend/LegendChatMessage.js +14 -2
- package/lib/module/screens/chat-detail/legend/LegendChatMessage.js.map +1 -1
- package/lib/module/services/mentionSearch.js +49 -0
- package/lib/module/services/mentionSearch.js.map +1 -0
- package/lib/module/services/message.js +6 -1
- package/lib/module/services/message.js.map +1 -1
- package/lib/module/translation/resources/i18n.js +5 -0
- package/lib/module/translation/resources/i18n.js.map +1 -1
- package/lib/module/types/chat.js.map +1 -1
- package/lib/module/types/mention.js +2 -0
- package/lib/module/types/mention.js.map +1 -0
- package/lib/module/utils/legendListMessage.js +9 -1
- package/lib/module/utils/legendListMessage.js.map +1 -1
- package/lib/module/utils/mentionSerializer.js +113 -0
- package/lib/module/utils/mentionSerializer.js.map +1 -0
- package/lib/module/utils/mentions/index.js +7 -0
- package/lib/module/utils/mentions/index.js.map +1 -0
- package/lib/module/utils/mentions/mentionDetector.js +49 -0
- package/lib/module/utils/mentions/mentionDetector.js.map +1 -0
- package/lib/module/utils/mentions/mentionDiff.js +66 -0
- package/lib/module/utils/mentions/mentionDiff.js.map +1 -0
- package/lib/module/utils/mentions/mentionRange.js +188 -0
- package/lib/module/utils/mentions/mentionRange.js.map +1 -0
- package/lib/module/utils/mentions/mentionTokenize.js +50 -0
- package/lib/module/utils/mentions/mentionTokenize.js.map +1 -0
- package/lib/module/utils/messageUtils.js +6 -1
- package/lib/module/utils/messageUtils.js.map +1 -1
- package/lib/module/utils/url.js +33 -0
- package/lib/module/utils/url.js.map +1 -1
- package/lib/typescript/src/components/ThreadCard/MentionBadge.d.ts +7 -0
- package/lib/typescript/src/components/ThreadCard/MentionBadge.d.ts.map +1 -0
- package/lib/typescript/src/components/ThreadCard/ThreadCard.d.ts.map +1 -1
- package/lib/typescript/src/components/messages/linkMessage/LinkPreviewCard.d.ts +16 -0
- package/lib/typescript/src/components/messages/linkMessage/LinkPreviewCard.d.ts.map +1 -0
- package/lib/typescript/src/components/messages/linkMessage/index.d.ts +2 -2
- package/lib/typescript/src/components/messages/linkMessage/index.d.ts.map +1 -1
- package/lib/typescript/src/components/messages/quotedMessage/QuotedMessagePreviewStrip.d.ts +13 -0
- package/lib/typescript/src/components/messages/quotedMessage/QuotedMessagePreviewStrip.d.ts.map +1 -0
- package/lib/typescript/src/components/messages/quotedMessage/index.d.ts.map +1 -1
- package/lib/typescript/src/components/messages/stickerMessage/index.d.ts +2 -2
- package/lib/typescript/src/components/messages/stickerMessage/index.d.ts.map +1 -1
- package/lib/typescript/src/components/messages/textMessage/index.d.ts +4 -2
- package/lib/typescript/src/components/messages/textMessage/index.d.ts.map +1 -1
- package/lib/typescript/src/components/messages/types.d.ts +1 -0
- package/lib/typescript/src/components/messages/types.d.ts.map +1 -1
- package/lib/typescript/src/hooks/message/useSendMessage.d.ts +5 -2
- package/lib/typescript/src/hooks/message/useSendMessage.d.ts.map +1 -1
- 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/useChatCompose.d.ts +2 -1
- package/lib/typescript/src/hooks/useChatCompose.d.ts.map +1 -1
- package/lib/typescript/src/screens/chat-detail/ChatComposer.d.ts.map +1 -1
- package/lib/typescript/src/screens/chat-detail/ChatListLegend.d.ts.map +1 -1
- package/lib/typescript/src/screens/chat-detail/components/ChatMessageInput.d.ts +10 -2
- package/lib/typescript/src/screens/chat-detail/components/ChatMessageInput.d.ts.map +1 -1
- package/lib/typescript/src/screens/chat-detail/components/MentionHighlightAdapter.d.ts +29 -0
- package/lib/typescript/src/screens/chat-detail/components/MentionHighlightAdapter.d.ts.map +1 -0
- package/lib/typescript/src/screens/chat-detail/components/MentionSuggestionItem.d.ts +8 -0
- package/lib/typescript/src/screens/chat-detail/components/MentionSuggestionItem.d.ts.map +1 -0
- package/lib/typescript/src/screens/chat-detail/components/MentionSuggestionList.d.ts +12 -0
- package/lib/typescript/src/screens/chat-detail/components/MentionSuggestionList.d.ts.map +1 -0
- package/lib/typescript/src/screens/chat-detail/hooks/useChatComposerState.d.ts +1 -1
- package/lib/typescript/src/screens/chat-detail/hooks/useChatComposerState.d.ts.map +1 -1
- package/lib/typescript/src/screens/chat-detail/hooks/useMentionComposer.d.ts +48 -0
- package/lib/typescript/src/screens/chat-detail/hooks/useMentionComposer.d.ts.map +1 -0
- package/lib/typescript/src/screens/chat-detail/legend/LegendChatDay.d.ts.map +1 -1
- package/lib/typescript/src/screens/chat-detail/legend/LegendChatMessage.d.ts +2 -1
- package/lib/typescript/src/screens/chat-detail/legend/LegendChatMessage.d.ts.map +1 -1
- package/lib/typescript/src/services/mentionSearch.d.ts +15 -0
- package/lib/typescript/src/services/mentionSearch.d.ts.map +1 -0
- package/lib/typescript/src/services/message.d.ts +1 -1
- 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 +23 -0
- package/lib/typescript/src/types/chat.d.ts.map +1 -1
- package/lib/typescript/src/types/mention.d.ts +65 -0
- package/lib/typescript/src/types/mention.d.ts.map +1 -0
- package/lib/typescript/src/utils/legendListMessage.d.ts +4 -3
- package/lib/typescript/src/utils/legendListMessage.d.ts.map +1 -1
- package/lib/typescript/src/utils/mentionSerializer.d.ts +78 -0
- package/lib/typescript/src/utils/mentionSerializer.d.ts.map +1 -0
- package/lib/typescript/src/utils/mentions/index.d.ts +5 -0
- package/lib/typescript/src/utils/mentions/index.d.ts.map +1 -0
- package/lib/typescript/src/utils/mentions/mentionDetector.d.ts +18 -0
- package/lib/typescript/src/utils/mentions/mentionDetector.d.ts.map +1 -0
- package/lib/typescript/src/utils/mentions/mentionDiff.d.ts +20 -0
- package/lib/typescript/src/utils/mentions/mentionDiff.d.ts.map +1 -0
- package/lib/typescript/src/utils/mentions/mentionRange.d.ts +86 -0
- package/lib/typescript/src/utils/mentions/mentionRange.d.ts.map +1 -0
- package/lib/typescript/src/utils/mentions/mentionTokenize.d.ts +29 -0
- package/lib/typescript/src/utils/mentions/mentionTokenize.d.ts.map +1 -0
- package/lib/typescript/src/utils/messageUtils.d.ts.map +1 -1
- package/lib/typescript/src/utils/url.d.ts +12 -0
- package/lib/typescript/src/utils/url.d.ts.map +1 -1
- package/package.json +1 -1
- package/src/components/ThreadCard/MentionBadge.tsx +28 -0
- package/src/components/ThreadCard/ThreadCard.tsx +3 -0
- package/src/components/messages/linkMessage/LinkPreviewCard.tsx +92 -0
- package/src/components/messages/linkMessage/index.tsx +64 -121
- package/src/components/messages/quotedMessage/QuotedMessagePreviewStrip.tsx +168 -0
- package/src/components/messages/quotedMessage/index.tsx +95 -64
- package/src/components/messages/stickerMessage/index.tsx +40 -11
- package/src/components/messages/textMessage/index.tsx +159 -17
- package/src/components/messages/types.ts +1 -0
- package/src/core/useChatListener.ts +1 -1
- package/src/hooks/message/useSendMessage.ts +60 -1
- package/src/hooks/query-keys.ts +6 -0
- package/src/hooks/useChatCompose.ts +115 -107
- package/src/screens/chat-detail/ChatComposer.tsx +201 -67
- package/src/screens/chat-detail/ChatListLegend.tsx +19 -4
- package/src/screens/chat-detail/components/ChatMessageInput.tsx +35 -2
- package/src/screens/chat-detail/components/MentionHighlightAdapter.tsx +57 -0
- package/src/screens/chat-detail/components/MentionSuggestionItem.tsx +53 -0
- package/src/screens/chat-detail/components/MentionSuggestionList.tsx +133 -0
- package/src/screens/chat-detail/hooks/useChatComposerState.ts +7 -1
- package/src/screens/chat-detail/hooks/useMentionComposer.ts +344 -0
- package/src/screens/chat-detail/legend/LegendChatDay.tsx +6 -9
- package/src/screens/chat-detail/legend/LegendChatMessage.tsx +25 -2
- package/src/services/mentionSearch.ts +57 -0
- package/src/services/message.ts +9 -1
- package/src/translation/resources/i18n.ts +6 -0
- package/src/types/chat.ts +22 -0
- package/src/types/mention.ts +70 -0
- package/src/utils/legendListMessage.ts +13 -4
- package/src/utils/mentionSerializer.ts +155 -0
- package/src/utils/mentions/index.ts +16 -0
- package/src/utils/mentions/mentionDetector.ts +58 -0
- package/src/utils/mentions/mentionDiff.ts +95 -0
- package/src/utils/mentions/mentionRange.ts +207 -0
- package/src/utils/mentions/mentionTokenize.ts +53 -0
- package/src/utils/messageUtils.ts +6 -1
- package/src/utils/url.ts +30 -0
|
@@ -18,6 +18,7 @@ import { stickerQueryKeys } from "../query-keys.js";
|
|
|
18
18
|
import { getMessagePreview } from "../../utils/messageUtils.js";
|
|
19
19
|
import { useCanSendMessage } from "../useGroupPermission.js";
|
|
20
20
|
import { UIUtils } from "../../utils/UIUtils.js";
|
|
21
|
+
import { serializeMentionsForSend } from "../../utils/mentionSerializer.js";
|
|
21
22
|
const buildSendParams = (message, recvID, groupID, extendMessageInfo) => groupID ? {
|
|
22
23
|
groupID,
|
|
23
24
|
message: {
|
|
@@ -70,7 +71,8 @@ export const useSendMessage = () => {
|
|
|
70
71
|
urlMetadata,
|
|
71
72
|
flow,
|
|
72
73
|
customMessage,
|
|
73
|
-
sticker
|
|
74
|
+
sticker,
|
|
75
|
+
mentions
|
|
74
76
|
}) => {
|
|
75
77
|
if (!isSendMessageAllowed) {
|
|
76
78
|
UIUtils.toast.open({
|
|
@@ -86,20 +88,66 @@ export const useSendMessage = () => {
|
|
|
86
88
|
const groupID = currentConversation?.groupID || targetGroupId;
|
|
87
89
|
if (!recvID && !groupID) return;
|
|
88
90
|
const messageList = [];
|
|
91
|
+
let exMentions;
|
|
89
92
|
const hasText = !!plainText && plainText.trim() !== '';
|
|
90
93
|
const hasPreview = !!urlMetadata?.url;
|
|
94
|
+
const hasMentions = !!mentions && mentions.length > 0;
|
|
91
95
|
|
|
92
96
|
//text msg
|
|
93
97
|
if (hasText) {
|
|
94
98
|
const urls = hasText ? extractUrls(plainText) : [];
|
|
95
99
|
const isUrlMessage = urls.length > 0 || hasPreview;
|
|
96
100
|
let message = null;
|
|
97
|
-
|
|
101
|
+
|
|
102
|
+
// Mention always wins the content type over a URL preview: AtText
|
|
103
|
+
// and UrlText are mutually exclusive OpenIM content types (no field
|
|
104
|
+
// for both), but `ex.urlMetadata` is attached unconditionally below
|
|
105
|
+
// regardless of which branch builds `message` — so the URL card
|
|
106
|
+
// still rides along via `ex` on an AtTextMessage. TextMessage's
|
|
107
|
+
// render side reads it and shows the card next to the
|
|
108
|
+
// mention-highlighted text (see its doc comment). Other clients
|
|
109
|
+
// without that rendering just see plain "@Name ... https://..."
|
|
110
|
+
// text — mention intact, only the rich card is missing.
|
|
111
|
+
if (quotedMessage && hasMentions && groupID) {
|
|
112
|
+
// Native mention+quote: AtMsgParams.message embeds the quoted
|
|
113
|
+
// message into AtTextElem.quoteMessage server/core-side (verified
|
|
114
|
+
// down to openimsdk-core/internal/conversation_msg/
|
|
115
|
+
// create_message.go:76-101 — QuoteMessage: qs is a real field
|
|
116
|
+
// assignment, not just a bridge pass-through) — keeps the mention's
|
|
117
|
+
// native tag/notify semantics instead of falling back to a plain
|
|
118
|
+
// QuoteMessage, which has no atUserIDList at all.
|
|
119
|
+
const serialized = serializeMentionsForSend(mentions);
|
|
120
|
+
exMentions = {
|
|
121
|
+
offsets: serialized.exMentions
|
|
122
|
+
};
|
|
123
|
+
message = await createTextAtMessage({
|
|
124
|
+
text: plainText || '',
|
|
125
|
+
atUserIDList: serialized.atUserIDList,
|
|
126
|
+
atUsersInfo: serialized.atUsersInfo,
|
|
127
|
+
message: quotedMessage
|
|
128
|
+
});
|
|
129
|
+
setQuotedMessage(undefined);
|
|
130
|
+
} else if (quotedMessage) {
|
|
98
131
|
message = await createQuotedMessage({
|
|
99
132
|
text: plainText || '',
|
|
100
133
|
message: quotedMessage
|
|
101
134
|
});
|
|
102
135
|
setQuotedMessage(undefined);
|
|
136
|
+
} else if (hasMentions && groupID) {
|
|
137
|
+
// "Tất cả" serializes to OpenIM's own AT_ALL_TAG sentinel, not an
|
|
138
|
+
// expanded member list — no group-member fetch needed here, see
|
|
139
|
+
// AT_ALL_TAG's doc comment in mentionSerializer.ts for why.
|
|
140
|
+
const serialized = serializeMentionsForSend(mentions);
|
|
141
|
+
// Wrapped under `offsets` to match the wire shape other Droppii
|
|
142
|
+
// clients already send (see IMessageItemEx.mentions doc comment).
|
|
143
|
+
exMentions = {
|
|
144
|
+
offsets: serialized.exMentions
|
|
145
|
+
};
|
|
146
|
+
message = await createTextAtMessage({
|
|
147
|
+
text: plainText || '',
|
|
148
|
+
atUserIDList: serialized.atUserIDList,
|
|
149
|
+
atUsersInfo: serialized.atUsersInfo
|
|
150
|
+
});
|
|
103
151
|
} else if (isUrlMessage) {
|
|
104
152
|
message = await createUrlTextMessage(plainText || '', urls);
|
|
105
153
|
} else if (hasText) {
|
|
@@ -132,7 +180,8 @@ export const useSendMessage = () => {
|
|
|
132
180
|
applicationType,
|
|
133
181
|
urlMetadata,
|
|
134
182
|
flow,
|
|
135
|
-
stickerId: sticker?.id
|
|
183
|
+
stickerId: sticker?.id,
|
|
184
|
+
mentions: exMentions
|
|
136
185
|
};
|
|
137
186
|
await dispatchSend(message, recvID || '', groupID || '', extendMessageInfo);
|
|
138
187
|
}
|
|
@@ -237,6 +286,18 @@ export const createUrlTextMessage = async (text, urls) => {
|
|
|
237
286
|
});
|
|
238
287
|
return urlTextMessage;
|
|
239
288
|
};
|
|
289
|
+
export const createTextAtMessage = async params => {
|
|
290
|
+
let atMessage = await OpenIMSDK.createTextAtMessage(params, uuid.v4()).then(data => {
|
|
291
|
+
return data;
|
|
292
|
+
}).catch(({
|
|
293
|
+
errCode,
|
|
294
|
+
errMsg
|
|
295
|
+
}) => {
|
|
296
|
+
console.error('createTextAtMessage', errCode, errMsg);
|
|
297
|
+
return null;
|
|
298
|
+
});
|
|
299
|
+
return atMessage;
|
|
300
|
+
};
|
|
240
301
|
export const createCustomMessage = async params => {
|
|
241
302
|
let customMessage = await OpenIMSDK.createCustomMessage(params, uuid.v4()).then(data => {
|
|
242
303
|
return data;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["useCallback","useConversationStore","useUserStore","MessageStatus","MessageType","SessionType","extractUrls","OpenIMSDK","CustomMessageType","useChatContext","useChatDetailContext","getBotId","markMessageRevoked","useMessageStore","uuid","DeviceEventEmitter","ChatEvent","useQueryClient","stickerQueryKeys","getMessagePreview","useCanSendMessage","UIUtils","buildSendParams","message","recvID","groupID","extendMessageInfo","ex","JSON","stringify","offlinePushInfo","generateOfflinePushInfo","useSendMessage","applicationType","pushNewMessage","state","updateOneMessage","quotedMessage","setQuotedMessage","queryClient","allowed","isSendMessageAllowed","reason","sendDeniedReason","dispatchSend","status","Sending","sendParams","sent","sendMessage","Failed","Promise","resolve","setTimeout","emit","ScrollToBottom","plainText","urlMetadata","flow","customMessage","sticker","toast","open","title","theme","currentConversation","getState","getCurrentConversation","targetUserId","currentUserId","targetGroupId","currentGroupId","userID","messageList","hasText","trim","hasPreview","url","urls","isUrlMessage","length","createQuotedMessage","text","undefined","createUrlTextMessage","createTextMessage","push","customElem","data","extension","type","description","Order","orderCode","createCustomMessage","file","fullUrl","stickerMessage","createStickerMessage","stickerId","id","invalidateQueries","queryKey","recent","retryMessage","isAttachment","PictureMessage","VideoMessage","FileMessage","MergeMessage","includes","contentType","params","sendMessageNotOss","parse","revokeMessage","conversationID","Error","clientMsgID","conversationData","operator","user","operatorUserID","isSingleChat","conversationType","Single","nickname","showName","icon","faceURL","desc","conversationId","userId","groupId","botId","iOSPushSound","iOSBadgeCount","textMessage","v4","then","catch","errCode","errMsg","console","error","urlTextMessage","createQuoteMessage"],"sourceRoot":"../../../../src","sources":["hooks/message/useSendMessage.ts"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["useCallback","useConversationStore","useUserStore","MessageStatus","MessageType","SessionType","extractUrls","OpenIMSDK","CustomMessageType","useChatContext","useChatDetailContext","getBotId","markMessageRevoked","useMessageStore","uuid","DeviceEventEmitter","ChatEvent","useQueryClient","stickerQueryKeys","getMessagePreview","useCanSendMessage","UIUtils","serializeMentionsForSend","buildSendParams","message","recvID","groupID","extendMessageInfo","ex","JSON","stringify","offlinePushInfo","generateOfflinePushInfo","useSendMessage","applicationType","pushNewMessage","state","updateOneMessage","quotedMessage","setQuotedMessage","queryClient","allowed","isSendMessageAllowed","reason","sendDeniedReason","dispatchSend","status","Sending","sendParams","sent","sendMessage","Failed","Promise","resolve","setTimeout","emit","ScrollToBottom","plainText","urlMetadata","flow","customMessage","sticker","mentions","toast","open","title","theme","currentConversation","getState","getCurrentConversation","targetUserId","currentUserId","targetGroupId","currentGroupId","userID","messageList","exMentions","hasText","trim","hasPreview","url","hasMentions","length","urls","isUrlMessage","serialized","offsets","createTextAtMessage","text","atUserIDList","atUsersInfo","undefined","createQuotedMessage","createUrlTextMessage","createTextMessage","push","customElem","data","extension","type","description","Order","orderCode","createCustomMessage","file","fullUrl","stickerMessage","createStickerMessage","stickerId","id","invalidateQueries","queryKey","recent","retryMessage","isAttachment","PictureMessage","VideoMessage","FileMessage","MergeMessage","includes","contentType","params","sendMessageNotOss","parse","revokeMessage","conversationID","Error","clientMsgID","conversationData","operator","user","operatorUserID","isSingleChat","conversationType","Single","nickname","showName","icon","faceURL","desc","conversationId","userId","groupId","botId","iOSPushSound","iOSBadgeCount","textMessage","v4","then","catch","errCode","errMsg","console","error","urlTextMessage","atMessage","createQuoteMessage"],"sourceRoot":"../../../../src","sources":["hooks/message/useSendMessage.ts"],"mappings":"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","ignoreList":[]}
|
|
@@ -41,6 +41,10 @@ export const messageQueryKeys = {
|
|
|
41
41
|
all: ['messages'],
|
|
42
42
|
search: (query, conversationId) => [...messageQueryKeys.all, 'search', query, conversationId]
|
|
43
43
|
};
|
|
44
|
+
export const mentionQueryKeys = {
|
|
45
|
+
all: ['mentionSearch'],
|
|
46
|
+
search: (groupID, keyword) => [...mentionQueryKeys.all, groupID, keyword]
|
|
47
|
+
};
|
|
44
48
|
export const contactQueryKeys = {
|
|
45
49
|
all: ['contacts'],
|
|
46
50
|
search: (query, type) => [...contactQueryKeys.all, 'search', query, type]
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["commonQueryKeys","all","urlMetadata","url","conversationQueryKeys","lists","list","applicationType","details","detail","conversationId","getStatusBot","botId","conversationTarget","flow","flowMainMenu","resetFlow","runFlow","closeSession","detailByBotId","detailBySourceId","sourceId","joinedGroup","groupId","create","userId","groupInfo","usersQueryKeys","userIds","stickerQueryKeys","categories","byCategory","categoryId","recent","resourceCenterQueryKeys","byType","recvID","contentType","messageQueryKeys","search","query","contactQueryKeys","type","groupQueryKeys","public","publicSearch","
|
|
1
|
+
{"version":3,"names":["commonQueryKeys","all","urlMetadata","url","conversationQueryKeys","lists","list","applicationType","details","detail","conversationId","getStatusBot","botId","conversationTarget","flow","flowMainMenu","resetFlow","runFlow","closeSession","detailByBotId","detailBySourceId","sourceId","joinedGroup","groupId","create","userId","groupInfo","usersQueryKeys","userIds","stickerQueryKeys","categories","byCategory","categoryId","recent","resourceCenterQueryKeys","byType","recvID","contentType","messageQueryKeys","search","query","mentionQueryKeys","groupID","keyword","contactQueryKeys","type","groupQueryKeys","public","publicSearch","join","leave"],"sourceRoot":"../../../src","sources":["hooks/query-keys.ts"],"mappings":"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","ignoreList":[]}
|
|
@@ -22,7 +22,7 @@ export function useChatCompose() {
|
|
|
22
22
|
} = useSendMessage();
|
|
23
23
|
const isUploading = useMemo(() => imageAttachment.selectedImages.some(img => img.isUploading) || fileAttachment.selectedFiles.some(f => f.isUploading || !!f.error), [imageAttachment.selectedImages, fileAttachment.selectedFiles]);
|
|
24
24
|
const canSend = useMemo(() => (text.trim().length > 0 || imageAttachment.selectedImages.length > 0 || fileAttachment.selectedFiles.length > 0) && !isUploading, [text, imageAttachment.selectedImages, fileAttachment.selectedFiles, isUploading]);
|
|
25
|
-
const send = useCallback(async
|
|
25
|
+
const send = useCallback(async mentions => {
|
|
26
26
|
const {
|
|
27
27
|
selectedImages,
|
|
28
28
|
clearAllImages
|
|
@@ -115,7 +115,8 @@ export function useChatCompose() {
|
|
|
115
115
|
setText('');
|
|
116
116
|
await sendMessage({
|
|
117
117
|
plainText,
|
|
118
|
-
urlMetadata: urlMeta
|
|
118
|
+
urlMetadata: urlMeta,
|
|
119
|
+
mentions
|
|
119
120
|
});
|
|
120
121
|
}
|
|
121
122
|
}, [imageAttachment, fileAttachment, linkPreview.isVisible, linkPreview.metadata, sendAttachments, sendMessage, text]);
|
|
@@ -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","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","urlMetadata","isImagePreviewVisible","isFilePreviewVisible","addImages","handleImageAttach","addFiles","handleFileAttach","removeImage","handleImageRemove","removeFile","handleFileRemove","showLinkPreview","isMetadataLoading","isLoading","dismissPreview","dismiss","clearAll"],"sourceRoot":"../../../src","sources":["hooks/useChatCompose.ts"],"mappings":";;AAAA,SAASA,WAAW,EAAEC,OAAO,EAAEC,QAAQ,QAAQ,OAAO;AACtD,OAAOC,WAAW,MAAM,gCAAgC;AACxD,SACEC,kBAAkB,QAEb,yBAAsB;AAC7B,SAASC,iBAAiB,QAAQ,wBAAqB;AACvD,SAASC,cAAc,QAAQ,oCAAiC;AAChE,SAASC,iBAAiB,QAAQ,wBAAqB;AACvD,SAASC,cAAc,QAAQ,6BAA0B;AACzD,SAASC,iBAAiB,QAAQ,wBAAqB;AACvD,SACEC,gCAAgC,QAE3B,kCAA+B;
|
|
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","mentions","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","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":[]}
|
|
@@ -36,6 +36,10 @@ import { UIUtils } from "../../utils/UIUtils.js";
|
|
|
36
36
|
import { PeerType } from '@droppii/openim-rn-client-sdk';
|
|
37
37
|
import { useCanSendMessage } from "../../hooks/useGroupPermission.js";
|
|
38
38
|
import { useIsJoinedGroup } from "../../hooks/useIsJoinedGroup.js";
|
|
39
|
+
import { useMentionComposer } from "./hooks/useMentionComposer.js";
|
|
40
|
+
import { MentionSuggestionList } from "./components/MentionSuggestionList.js";
|
|
41
|
+
import { createOpenIMMentionSearchSource } from "../../services/mentionSearch.js";
|
|
42
|
+
import { serializeMentionsForSend, MAX_AT_USER_COUNT } from "../../utils/mentionSerializer.js";
|
|
39
43
|
import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
|
|
40
44
|
export const ChatComposer = /*#__PURE__*/memo(({
|
|
41
45
|
isEmptyMessage = false,
|
|
@@ -92,6 +96,23 @@ export const ChatComposer = /*#__PURE__*/memo(({
|
|
|
92
96
|
isMultilineInput,
|
|
93
97
|
inputRef
|
|
94
98
|
} = useChatComposerState(compose.text);
|
|
99
|
+
const mentionSearchSource = useMemo(() => conversation?.groupID ? createOpenIMMentionSearchSource(conversation.groupID) : null, [conversation?.groupID]);
|
|
100
|
+
const mentionComposer = useMentionComposer({
|
|
101
|
+
text: compose.text,
|
|
102
|
+
setText: compose.setText,
|
|
103
|
+
// Non-null asserted only where actually invoked — the composer isn't
|
|
104
|
+
// rendered for non-group conversations in the first place (isGroupConversation
|
|
105
|
+
// below), so groupID is always present by the time a search fires.
|
|
106
|
+
searchSource: mentionSearchSource ?? {
|
|
107
|
+
search: async () => ({
|
|
108
|
+
items: [],
|
|
109
|
+
hasMore: false
|
|
110
|
+
})
|
|
111
|
+
},
|
|
112
|
+
groupID: conversation?.groupID,
|
|
113
|
+
enabled: isGroupConversation,
|
|
114
|
+
inputRef
|
|
115
|
+
});
|
|
95
116
|
const attachmentPanelHeight = useMemo(() => getAttachmentPanelHeight(DEFAULT_PANNEL_ACTIONS.length), []);
|
|
96
117
|
const panelHeight = activePanelType === 'sticker' ? STICKER_PICKER_HEIGHT : attachmentPanelHeight;
|
|
97
118
|
const {
|
|
@@ -103,6 +124,19 @@ export const ChatComposer = /*#__PURE__*/memo(({
|
|
|
103
124
|
panelHeight,
|
|
104
125
|
onAttachmentOpenChange: setIsAttachmentOpen
|
|
105
126
|
});
|
|
127
|
+
|
|
128
|
+
// Mutual exclusion (finding #5 in the mention plan): the mention picker
|
|
129
|
+
// never renders through the attachment/sticker panel slot, but opening
|
|
130
|
+
// one must still close the other — starting a mention query while the
|
|
131
|
+
// attachment/sticker panel is open closes that panel.
|
|
132
|
+
useEffect(() => {
|
|
133
|
+
if (mentionComposer.isPanelOpen && isAttachmentOpen) {
|
|
134
|
+
const immediate = activePanelType === 'sticker';
|
|
135
|
+
closeAttachment(!immediate, immediate);
|
|
136
|
+
setActivePanelType(null);
|
|
137
|
+
}
|
|
138
|
+
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
139
|
+
}, [mentionComposer.isPanelOpen]);
|
|
106
140
|
const handleSend = useCallback(async () => {
|
|
107
141
|
if (!isSendMessageAllowed) {
|
|
108
142
|
UIUtils.toast.open({
|
|
@@ -112,12 +146,54 @@ export const ChatComposer = /*#__PURE__*/memo(({
|
|
|
112
146
|
return;
|
|
113
147
|
}
|
|
114
148
|
if (compose.isUploading || !compose.canSend) return;
|
|
149
|
+
const mentionsToSend = mentionComposer.mentions;
|
|
150
|
+
|
|
151
|
+
// OpenIM's Go core hard-rejects an AtTextMessage tagging more than
|
|
152
|
+
// MAX_AT_USER_COUNT users, so serializeMentionsForSend caps
|
|
153
|
+
// atUserIDList to the first MAX_AT_USER_COUNT (mentionSerializer.ts's
|
|
154
|
+
// doc comment) — the message still sends, with every mention still
|
|
155
|
+
// highlighted in the text, just only the first MAX_AT_USER_COUNT
|
|
156
|
+
// actually get natively tagged/notified. This is a heads-up, not a
|
|
157
|
+
// block, so no `return` here.
|
|
158
|
+
if (mentionsToSend.length > 0) {
|
|
159
|
+
const {
|
|
160
|
+
truncated
|
|
161
|
+
} = serializeMentionsForSend(mentionsToSend);
|
|
162
|
+
if (truncated) {
|
|
163
|
+
UIUtils.toast.open({
|
|
164
|
+
title: trans('group:tag_limit_exceeded', {
|
|
165
|
+
max: String(MAX_AT_USER_COUNT)
|
|
166
|
+
}),
|
|
167
|
+
theme: 'info'
|
|
168
|
+
});
|
|
169
|
+
}
|
|
170
|
+
}
|
|
171
|
+
|
|
172
|
+
// Clear mention state synchronously, in the same tick as
|
|
173
|
+
// compose.send() (which clears `text`) — otherwise there's a real
|
|
174
|
+
// transient render where `value` is already '' but `mentions` still
|
|
175
|
+
// holds the just-sent entries, and the composer can visibly fail to
|
|
176
|
+
// clear (ChatMessageInput stays in children-controlled mode with a
|
|
177
|
+
// "ghost" mention anchored past the end of an empty string). See
|
|
178
|
+
// useMentionComposer.clear()'s doc comment.
|
|
179
|
+
mentionComposer.clear();
|
|
115
180
|
try {
|
|
116
|
-
await compose.send();
|
|
181
|
+
await compose.send(mentionsToSend);
|
|
117
182
|
} catch (error) {
|
|
118
183
|
if (__DEV__) console.error('[ChatComposer] Failed to send:', error);
|
|
184
|
+
} finally {
|
|
185
|
+
// Belt-and-suspenders: force the native view to actually clear,
|
|
186
|
+
// regardless of whether the value/children mode-switch (triggered
|
|
187
|
+
// by mentions going from non-empty to empty) synced correctly on
|
|
188
|
+
// its own — the underlying nested-Text-in-TextInput technique is
|
|
189
|
+
// known to have platform quirks around this kind of transition.
|
|
190
|
+
inputRef.current?.clear();
|
|
119
191
|
}
|
|
120
|
-
|
|
192
|
+
// Depend on mentionComposer.mentions/.clear specifically (both
|
|
193
|
+
// stable-per-value / [] deps), not the whole mentionComposer object —
|
|
194
|
+
// same reasoning as handleToggleAttachment above.
|
|
195
|
+
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
196
|
+
}, [compose, isSendMessageAllowed, sendDeniedReason, mentionComposer.mentions, mentionComposer.clear, inputRef]);
|
|
121
197
|
const handleInputFocus = useCallback(() => {
|
|
122
198
|
setIsInputFocused(true);
|
|
123
199
|
if (isAttachmentOpen) {
|
|
@@ -130,6 +206,7 @@ export const ChatComposer = /*#__PURE__*/memo(({
|
|
|
130
206
|
}
|
|
131
207
|
}, [closeAttachment, isAttachmentOpen, activePanelType, setIsInputFocused, setActivePanelType]);
|
|
132
208
|
const handleToggleAttachment = useCallback(() => {
|
|
209
|
+
mentionComposer.closeMentionPanel();
|
|
133
210
|
if (activePanelType === 'sticker') {
|
|
134
211
|
// switch from sticker to attachment
|
|
135
212
|
setActivePanelType('attachment');
|
|
@@ -138,8 +215,19 @@ export const ChatComposer = /*#__PURE__*/memo(({
|
|
|
138
215
|
}
|
|
139
216
|
setActivePanelType(isAttachmentOpen ? null : 'attachment');
|
|
140
217
|
toggleAttachmentVisibility();
|
|
141
|
-
|
|
218
|
+
// Deliberately depend on `mentionComposer.closeMentionPanel` (stable —
|
|
219
|
+
// [] deps in useMentionComposer), NOT the whole `mentionComposer`
|
|
220
|
+
// object, which is a fresh literal every render (useMentionComposer
|
|
221
|
+
// doesn't memoize its return value). Depending on the whole object
|
|
222
|
+
// recreated this callback — and therefore every prop built from it,
|
|
223
|
+
// e.g. ChatMessageInput's onEmojiPress — on every single render,
|
|
224
|
+
// which contributed to a real "Maximum update depth exceeded" loop
|
|
225
|
+
// found in testing. The lint rule can't prove member-access stability
|
|
226
|
+
// on its own, hence the disable.
|
|
227
|
+
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
228
|
+
}, [activePanelType, isAttachmentOpen, attachmentPanelHeight, openWithHeight, toggleAttachmentVisibility, setActivePanelType, mentionComposer.closeMentionPanel]);
|
|
142
229
|
const handleToggleSticker = useCallback(() => {
|
|
230
|
+
mentionComposer.closeMentionPanel();
|
|
143
231
|
if (activePanelType === 'sticker') {
|
|
144
232
|
closeAttachment();
|
|
145
233
|
setActivePanelType(null);
|
|
@@ -150,13 +238,17 @@ export const ChatComposer = /*#__PURE__*/memo(({
|
|
|
150
238
|
}
|
|
151
239
|
setActivePanelType('sticker');
|
|
152
240
|
openWithHeight(STICKER_PICKER_HEIGHT);
|
|
153
|
-
|
|
241
|
+
// Same reasoning as handleToggleAttachment above — see that comment.
|
|
242
|
+
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
243
|
+
}, [activePanelType, isKeyboardVisible, mentionComposer.closeMentionPanel, closeAttachment, openWithHeight, setActivePanelType]);
|
|
154
244
|
const handleInputBlur = useCallback(() => {
|
|
155
245
|
setIsInputFocused(false);
|
|
156
246
|
}, [setIsInputFocused]);
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
247
|
+
|
|
248
|
+
// Routes through mentionComposer instead of compose.setText directly —
|
|
249
|
+
// it owns the atomic-delete/reconcile pipeline and calls compose.setText
|
|
250
|
+
// itself once the corrected text is known (see useMentionComposer).
|
|
251
|
+
const handleChangeText = mentionComposer.handleChangeText;
|
|
160
252
|
const handleInputContentSizeChange = useCallback(event => {
|
|
161
253
|
const {
|
|
162
254
|
height
|
|
@@ -389,48 +481,66 @@ export const ChatComposer = /*#__PURE__*/memo(({
|
|
|
389
481
|
attachments: attachments,
|
|
390
482
|
onRemove: onRemove
|
|
391
483
|
}), /*#__PURE__*/_jsxs(KContainer.View, {
|
|
392
|
-
|
|
393
|
-
|
|
394
|
-
|
|
395
|
-
|
|
396
|
-
|
|
397
|
-
|
|
398
|
-
|
|
399
|
-
|
|
400
|
-
|
|
401
|
-
|
|
402
|
-
|
|
403
|
-
|
|
404
|
-
|
|
405
|
-
color: activePanelType === 'attachment' ? KColors.palette.primary.w400 : KColors.palette.gray.w600
|
|
406
|
-
})
|
|
407
|
-
}), /*#__PURE__*/_jsx(ChatMessageInput, {
|
|
408
|
-
value: compose.text,
|
|
409
|
-
placeholder: "Nh\u1EADp tin nh\u1EAFn...",
|
|
410
|
-
onChangeText: handleChangeText,
|
|
411
|
-
onFocus: handleInputFocus,
|
|
412
|
-
onBlur: handleInputBlur,
|
|
413
|
-
onContentSizeChange: handleInputContentSizeChange,
|
|
414
|
-
isInputFocused: isInputFocused,
|
|
415
|
-
isMultilineInput: isMultilineInput,
|
|
416
|
-
inputRef: inputRef,
|
|
417
|
-
onEmojiPress: handleToggleSticker,
|
|
418
|
-
onSuggestPress: hasBotMenuOptions ? handleOpenBotMenu : undefined
|
|
419
|
-
}), /*#__PURE__*/_jsx(KContainer.Touchable, {
|
|
420
|
-
onPress: compose.isUploading ? undefined : handleSend,
|
|
421
|
-
pointerEvents: compose.isUploading ? 'none' : 'auto',
|
|
422
|
-
width: 40,
|
|
423
|
-
height: 40,
|
|
424
|
-
center: true,
|
|
425
|
-
br: "round",
|
|
426
|
-
background: compose.isUploading ? KColors.palette.gray.w400 : KColors.palette.primary.w400,
|
|
427
|
-
marginL: "0.75rem",
|
|
428
|
-
opacity: compose.isUploading ? 0.6 : 1,
|
|
429
|
-
children: /*#__PURE__*/_jsx(KImage.VectorIcons, {
|
|
430
|
-
name: "send-b",
|
|
431
|
-
size: 20,
|
|
432
|
-
color: KColors.white
|
|
484
|
+
style: styles.inputRowWrapper,
|
|
485
|
+
children: [/*#__PURE__*/_jsx(KContainer.VisibleView, {
|
|
486
|
+
visible: mentionComposer.isPanelOpen,
|
|
487
|
+
children: /*#__PURE__*/_jsx(KContainer.View, {
|
|
488
|
+
style: styles.mentionPanel,
|
|
489
|
+
children: /*#__PURE__*/_jsx(MentionSuggestionList, {
|
|
490
|
+
suggestions: mentionComposer.suggestions,
|
|
491
|
+
isSearching: mentionComposer.isSearching,
|
|
492
|
+
isLoadingMore: mentionComposer.isLoadingMore,
|
|
493
|
+
hasMore: mentionComposer.hasMore,
|
|
494
|
+
onLoadMore: mentionComposer.loadMore,
|
|
495
|
+
onSelect: mentionComposer.selectSuggestion
|
|
496
|
+
})
|
|
433
497
|
})
|
|
498
|
+
}), /*#__PURE__*/_jsxs(KContainer.View, {
|
|
499
|
+
row: true,
|
|
500
|
+
alignItems: true,
|
|
501
|
+
paddingH: "0.75rem",
|
|
502
|
+
paddingT: "0.75rem",
|
|
503
|
+
paddingB: "0.75rem",
|
|
504
|
+
style: inputRowStyle,
|
|
505
|
+
children: [/*#__PURE__*/_jsx(KContainer.Touchable, {
|
|
506
|
+
onPress: handleToggleAttachment,
|
|
507
|
+
center: true,
|
|
508
|
+
br: "round",
|
|
509
|
+
children: /*#__PURE__*/_jsx(KImage.VectorIcons, {
|
|
510
|
+
name: activePanelType === 'attachment' ? 'close-circle-o' : 'plus-circle-o',
|
|
511
|
+
size: 24,
|
|
512
|
+
color: activePanelType === 'attachment' ? KColors.palette.primary.w400 : KColors.palette.gray.w600
|
|
513
|
+
})
|
|
514
|
+
}), /*#__PURE__*/_jsx(ChatMessageInput, {
|
|
515
|
+
value: compose.text,
|
|
516
|
+
placeholder: "Nh\u1EADp tin nh\u1EAFn...",
|
|
517
|
+
onChangeText: handleChangeText,
|
|
518
|
+
onFocus: handleInputFocus,
|
|
519
|
+
onBlur: handleInputBlur,
|
|
520
|
+
onContentSizeChange: handleInputContentSizeChange,
|
|
521
|
+
onSelectionChange: mentionComposer.handleSelectionChange,
|
|
522
|
+
mentions: mentionComposer.mentions,
|
|
523
|
+
isInputFocused: isInputFocused,
|
|
524
|
+
isMultilineInput: isMultilineInput,
|
|
525
|
+
inputRef: inputRef,
|
|
526
|
+
onEmojiPress: handleToggleSticker,
|
|
527
|
+
onSuggestPress: hasBotMenuOptions ? handleOpenBotMenu : undefined
|
|
528
|
+
}), /*#__PURE__*/_jsx(KContainer.Touchable, {
|
|
529
|
+
onPress: compose.isUploading ? undefined : handleSend,
|
|
530
|
+
pointerEvents: compose.isUploading ? 'none' : 'auto',
|
|
531
|
+
width: 40,
|
|
532
|
+
height: 40,
|
|
533
|
+
center: true,
|
|
534
|
+
br: "round",
|
|
535
|
+
background: compose.isUploading ? KColors.palette.gray.w400 : KColors.palette.primary.w400,
|
|
536
|
+
marginL: "0.75rem",
|
|
537
|
+
opacity: compose.isUploading ? 0.6 : 1,
|
|
538
|
+
children: /*#__PURE__*/_jsx(KImage.VectorIcons, {
|
|
539
|
+
name: "send-b",
|
|
540
|
+
size: 20,
|
|
541
|
+
color: KColors.white
|
|
542
|
+
})
|
|
543
|
+
})]
|
|
434
544
|
})]
|
|
435
545
|
})]
|
|
436
546
|
});
|
|
@@ -463,6 +573,18 @@ const styles = StyleSheet.create({
|
|
|
463
573
|
accessorySlot: {
|
|
464
574
|
overflow: 'hidden',
|
|
465
575
|
backgroundColor: KColors.palette.gray.w25
|
|
576
|
+
},
|
|
577
|
+
inputRowWrapper: {
|
|
578
|
+
position: 'relative'
|
|
579
|
+
},
|
|
580
|
+
// Floats above the input row without going through the accessorySlot
|
|
581
|
+
// (attachment/sticker) render path — that slot intentionally takes over
|
|
582
|
+
// the keyboard area, which the mention picker must not do (finding #5).
|
|
583
|
+
mentionPanel: {
|
|
584
|
+
position: 'absolute',
|
|
585
|
+
left: 0,
|
|
586
|
+
right: 0,
|
|
587
|
+
bottom: '100%'
|
|
466
588
|
}
|
|
467
589
|
});
|
|
468
590
|
//# sourceMappingURL=ChatComposer.js.map
|