@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
package/lib/module/utils/url.js
CHANGED
|
@@ -15,6 +15,39 @@ const URL_REGEX = new RegExp(`\\b(?:https?:\\/\\/|www\\.)[^\\s<>"']*[^\\s<>"',.!
|
|
|
15
15
|
export function extractUrls(text) {
|
|
16
16
|
return text.match(URL_REGEX) ?? [];
|
|
17
17
|
}
|
|
18
|
+
/**
|
|
19
|
+
* Splits `text` into an ordered run of plain/URL parts — pure data, no
|
|
20
|
+
* JSX, so both LinkMessage (a whole message that's just text+URLs) and
|
|
21
|
+
* TextMessage (a mention message whose plain-text *segments* may also
|
|
22
|
+
* contain a URL) can render URL styling from the same source instead of
|
|
23
|
+
* two divergent implementations.
|
|
24
|
+
*/
|
|
25
|
+
export function splitTextByUrls(text, urls) {
|
|
26
|
+
if (!urls.length) return [{
|
|
27
|
+
text,
|
|
28
|
+
isUrl: false
|
|
29
|
+
}];
|
|
30
|
+
const parts = [];
|
|
31
|
+
let remaining = text;
|
|
32
|
+
for (const url of urls) {
|
|
33
|
+
const idx = remaining.indexOf(url);
|
|
34
|
+
if (idx === -1) continue;
|
|
35
|
+
if (idx > 0) parts.push({
|
|
36
|
+
text: remaining.slice(0, idx),
|
|
37
|
+
isUrl: false
|
|
38
|
+
});
|
|
39
|
+
parts.push({
|
|
40
|
+
text: url,
|
|
41
|
+
isUrl: true
|
|
42
|
+
});
|
|
43
|
+
remaining = remaining.slice(idx + url.length);
|
|
44
|
+
}
|
|
45
|
+
if (remaining) parts.push({
|
|
46
|
+
text: remaining,
|
|
47
|
+
isUrl: false
|
|
48
|
+
});
|
|
49
|
+
return parts;
|
|
50
|
+
}
|
|
18
51
|
export function normalizeUrl(url) {
|
|
19
52
|
if (!/^https?:\/\//i.test(url)) {
|
|
20
53
|
return `https://${url}`;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["GENERIC_TLDS","NEW_TLDS","CC_TLDS","TLD_LIST","URL_REGEX","RegExp","extractUrls","text","match","
|
|
1
|
+
{"version":3,"names":["GENERIC_TLDS","NEW_TLDS","CC_TLDS","TLD_LIST","URL_REGEX","RegExp","extractUrls","text","match","splitTextByUrls","urls","length","isUrl","parts","remaining","url","idx","indexOf","push","slice","normalizeUrl","test","extractDomain"],"sourceRoot":"../../../src","sources":["utils/url.ts"],"mappings":";;AAAA;AACA,MAAMA,YAAY,GAChB,iFAAiF;;AAEnF;AACA,MAAMC,QAAQ,GACZ,0EAA0E,GAC1E,qEAAqE,GACrE,sEAAsE;;AAExE;AACA,MAAMC,OAAO,GACX,mCAAmC,GACnC,sCAAsC,GACtC,yCAAyC,GACzC,yCAAyC,GACzC,yCAAyC,GACzC,yCAAyC,GACzC,yCAAyC,GACzC,yCAAyC,GACzC,iDAAiD;AAEnD,MAAMC,QAAQ,GAAG,GAAGH,YAAY,IAAIC,QAAQ,IAAIC,OAAO,EAAE;;AAEzD;AACA,MAAME,SAAS,GAAG,IAAIC,MAAM,CAC1B,8DAA8D,GAC5D,yDAAyDF,QAAQ,yEAAyE,EAC5I,GACF,CAAC;AAED,OAAO,SAASG,WAAWA,CAACC,IAAY,EAAY;EAClD,OAAOA,IAAI,CAACC,KAAK,CAACJ,SAAS,CAAC,IAAI,EAAE;AACpC;AAOA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,SAASK,eAAeA,CAACF,IAAY,EAAEG,IAAc,EAAiB;EAC3E,IAAI,CAACA,IAAI,CAACC,MAAM,EAAE,OAAO,CAAC;IAAEJ,IAAI;IAAEK,KAAK,EAAE;EAAM,CAAC,CAAC;EAEjD,MAAMC,KAAoB,GAAG,EAAE;EAC/B,IAAIC,SAAS,GAAGP,IAAI;EAEpB,KAAK,MAAMQ,GAAG,IAAIL,IAAI,EAAE;IACtB,MAAMM,GAAG,GAAGF,SAAS,CAACG,OAAO,CAACF,GAAG,CAAC;IAClC,IAAIC,GAAG,KAAK,CAAC,CAAC,EAAE;IAChB,IAAIA,GAAG,GAAG,CAAC,EAAEH,KAAK,CAACK,IAAI,CAAC;MAAEX,IAAI,EAAEO,SAAS,CAACK,KAAK,CAAC,CAAC,EAAEH,GAAG,CAAC;MAAEJ,KAAK,EAAE;IAAM,CAAC,CAAC;IACxEC,KAAK,CAACK,IAAI,CAAC;MAAEX,IAAI,EAAEQ,GAAG;MAAEH,KAAK,EAAE;IAAK,CAAC,CAAC;IACtCE,SAAS,GAAGA,SAAS,CAACK,KAAK,CAACH,GAAG,GAAGD,GAAG,CAACJ,MAAM,CAAC;EAC/C;EAEA,IAAIG,SAAS,EAAED,KAAK,CAACK,IAAI,CAAC;IAAEX,IAAI,EAAEO,SAAS;IAAEF,KAAK,EAAE;EAAM,CAAC,CAAC;EAC5D,OAAOC,KAAK;AACd;AAEA,OAAO,SAASO,YAAYA,CAACL,GAAW,EAAE;EACxC,IAAI,CAAC,eAAe,CAACM,IAAI,CAACN,GAAG,CAAC,EAAE;IAC9B,OAAO,WAAWA,GAAG,EAAE;EACzB;EACA,OAAOA,GAAG;AACZ;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,SAASO,aAAaA,CAACP,GAAW,EAAU;EACjD,MAAMP,KAAK,GAAGO,GAAG,CAACP,KAAK,CAAC,uCAAuC,CAAC;EAChE,OAAOA,KAAK,GAAG,CAAC,CAAC,IAAIO,GAAG;AAC1B","ignoreList":[]}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { GroupAtType } from '@droppii/openim-rn-client-sdk';
|
|
2
|
+
interface MentionBadgeProps {
|
|
3
|
+
groupAtType?: GroupAtType;
|
|
4
|
+
}
|
|
5
|
+
export declare const MentionBadge: import("react").MemoExoticComponent<({ groupAtType }: MentionBadgeProps) => import("react").JSX.Element>;
|
|
6
|
+
export {};
|
|
7
|
+
//# sourceMappingURL=MentionBadge.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"MentionBadge.d.ts","sourceRoot":"","sources":["../../../../../src/components/ThreadCard/MentionBadge.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAE,WAAW,EAAE,MAAM,+BAA+B,CAAC;AAE5D,UAAU,iBAAiB;IACzB,WAAW,CAAC,EAAE,WAAW,CAAC;CAC3B;AAKD,eAAO,MAAM,YAAY,wDAA0B,iBAAiB,iCAclE,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ThreadCard.d.ts","sourceRoot":"","sources":["../../../../../src/components/ThreadCard/ThreadCard.tsx"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,qBAAqB,EAAE,MAAM,cAAc,CAAC;
|
|
1
|
+
{"version":3,"file":"ThreadCard.d.ts","sourceRoot":"","sources":["../../../../../src/components/ThreadCard/ThreadCard.tsx"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,qBAAqB,EAAE,MAAM,cAAc,CAAC;AAc1D,OAAO,EAEL,KAAK,gBAAgB,EAEtB,MAAM,+BAA+B,CAAC;AAMvC,UAAU,eAAe;IACvB,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,CAAC,EAAE,CAAC,MAAM,EAAE;QACjB,IAAI,CAAC,EAAE,gBAAgB,CAAC;QACxB,KAAK,EAAE,qBAAqB,CAAC;KAC9B,KAAK,IAAI,CAAC;CACZ;AAED,QAAA,MAAM,UAAU,0DAA4B,eAAe,iCAiKzD,CAAC;AAIH,eAAe,UAAU,CAAC"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import type { IUrlMetadata } from '../../../types/common';
|
|
2
|
+
interface LinkPreviewCardProps {
|
|
3
|
+
metadata: IUrlMetadata;
|
|
4
|
+
onPressUrl?: (url: string) => void;
|
|
5
|
+
}
|
|
6
|
+
/**
|
|
7
|
+
* The rich link-preview card (thumbnail/title/url/description) — shared by
|
|
8
|
+
* LinkMessage (message.urlTextElem, a plain URL message) and TextMessage
|
|
9
|
+
* (mention+URL combo: message.ex.urlMetadata attached to an AtTextMessage,
|
|
10
|
+
* since OpenIM's AtTextMessage/UrlTextMessage content types are mutually
|
|
11
|
+
* exclusive — see useSendMessage.ts's doc comment for why the mention wins
|
|
12
|
+
* the content type and the URL card rides along in `ex` instead).
|
|
13
|
+
*/
|
|
14
|
+
export declare const LinkPreviewCard: import("react").MemoExoticComponent<({ metadata, onPressUrl }: LinkPreviewCardProps) => import("react").JSX.Element>;
|
|
15
|
+
export {};
|
|
16
|
+
//# sourceMappingURL=LinkPreviewCard.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"LinkPreviewCard.d.ts","sourceRoot":"","sources":["../../../../../../src/components/messages/linkMessage/LinkPreviewCard.tsx"],"names":[],"mappings":"AASA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AAE1D,UAAU,oBAAoB;IAC5B,QAAQ,EAAE,YAAY,CAAC;IACvB,UAAU,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,CAAC;CACpC;AAED;;;;;;;GAOG;AACH,eAAO,MAAM,eAAe,iEACC,oBAAoB,iCA6ChD,CAAC"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import type
|
|
2
|
-
export declare const LinkMessage: import("react").MemoExoticComponent<({ message, isOutgoing, onPressUrl, isHighlighted, groupPosition, }: BaseLegendMessageProps & {
|
|
1
|
+
import { type BaseLegendMessageProps } from '../types';
|
|
2
|
+
export declare const LinkMessage: import("react").MemoExoticComponent<({ message, isOutgoing, createdAtTime, onPressUrl, isHighlighted, isTimeRevealed, groupPosition, }: BaseLegendMessageProps & {
|
|
3
3
|
onPressUrl?: (url: string) => void;
|
|
4
4
|
}) => import("react").JSX.Element>;
|
|
5
5
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../src/components/messages/linkMessage/index.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../src/components/messages/linkMessage/index.tsx"],"names":[],"mappings":"AAGA,OAAO,EAAqB,KAAK,sBAAsB,EAAE,MAAM,UAAU,CAAC;AAkC1E,eAAO,MAAM,WAAW,0IASnB,sBAAsB,GAAG;IAAE,UAAU,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,CAAA;CAAE,iCAgDnE,CAAC"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { type MessageItem } from '@droppii/openim-rn-client-sdk';
|
|
2
|
+
interface QuotedMessagePreviewStripProps {
|
|
3
|
+
quotedMessage?: MessageItem;
|
|
4
|
+
}
|
|
5
|
+
/**
|
|
6
|
+
* The "replying to ..." strip — shared by QuotedMessage (message.quoteElem)
|
|
7
|
+
* and TextMessage (message.atTextElem?.quoteMessage, for the mention+quote
|
|
8
|
+
* combo). Extracted so both content types render the exact same preview
|
|
9
|
+
* instead of two copies drifting apart.
|
|
10
|
+
*/
|
|
11
|
+
export declare const QuotedMessagePreviewStrip: import("react").MemoExoticComponent<({ quotedMessage }: QuotedMessagePreviewStripProps) => import("react").JSX.Element>;
|
|
12
|
+
export {};
|
|
13
|
+
//# sourceMappingURL=QuotedMessagePreviewStrip.d.ts.map
|
package/lib/typescript/src/components/messages/quotedMessage/QuotedMessagePreviewStrip.d.ts.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"QuotedMessagePreviewStrip.d.ts","sourceRoot":"","sources":["../../../../../../src/components/messages/quotedMessage/QuotedMessagePreviewStrip.tsx"],"names":[],"mappings":"AAUA,OAAO,EAAe,KAAK,WAAW,EAAE,MAAM,+BAA+B,CAAC;AAW9E,UAAU,8BAA8B;IACtC,aAAa,CAAC,EAAE,WAAW,CAAC;CAC7B;AAED;;;;;GAKG;AACH,eAAO,MAAM,yBAAyB,0DAChB,8BAA8B,iCAoFnD,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../src/components/messages/quotedMessage/index.tsx"],"names":[],"mappings":"AAIA,OAAO,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../src/components/messages/quotedMessage/index.tsx"],"names":[],"mappings":"AAIA,OAAO,EAAqB,KAAK,sBAAsB,EAAE,MAAM,UAAU,CAAC;AAsB1E,UAAU,kBAAmB,SAAQ,sBAAsB;CAAG;AAE9D,QAAA,MAAM,aAAa,8CAAgB,kBAAkB,iCAsInD,CAAC;AAIH,eAAe,aAAa,CAAC"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type
|
|
1
|
+
import { type BaseLegendMessageProps } from '../types';
|
|
2
2
|
export declare const STICKER_SIZE = 120;
|
|
3
|
-
export declare const StickerMessage: import("react").MemoExoticComponent<({ message, isOutgoing }: BaseLegendMessageProps) => import("react").JSX.Element>;
|
|
3
|
+
export declare const StickerMessage: import("react").MemoExoticComponent<({ message, isOutgoing, createdAtTime, isTimeRevealed, }: BaseLegendMessageProps) => import("react").JSX.Element>;
|
|
4
4
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../src/components/messages/stickerMessage/index.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../src/components/messages/stickerMessage/index.tsx"],"names":[],"mappings":"AACA,OAAO,EAAqB,KAAK,sBAAsB,EAAE,MAAM,UAAU,CAAC;AAM1E,eAAO,MAAM,YAAY,MAAM,CAAC;AAChC,eAAO,MAAM,cAAc,gGAMtB,sBAAsB,iCAkC1B,CAAC"}
|
|
@@ -1,3 +1,5 @@
|
|
|
1
|
-
import type
|
|
2
|
-
export declare const TextMessage: import("react").MemoExoticComponent<({ message, isOutgoing, isHighlighted, groupPosition, }: BaseLegendMessageProps
|
|
1
|
+
import { type BaseLegendMessageProps } from '../types';
|
|
2
|
+
export declare const TextMessage: import("react").MemoExoticComponent<({ message, isOutgoing, createdAtTime, isHighlighted, isTimeRevealed, onPressUrl, groupPosition, }: BaseLegendMessageProps & {
|
|
3
|
+
onPressUrl?: (url: string) => void;
|
|
4
|
+
}) => import("react").JSX.Element>;
|
|
3
5
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../src/components/messages/textMessage/index.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../src/components/messages/textMessage/index.tsx"],"names":[],"mappings":"AASA,OAAO,EAAqB,KAAK,sBAAsB,EAAE,MAAM,UAAU,CAAC;AAiB1E,eAAO,MAAM,WAAW,0IASnB,sBAAsB,GAAG;IAAE,UAAU,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,CAAA;CAAE,iCAiInE,CAAC"}
|
|
@@ -6,6 +6,7 @@ export interface BaseLegendMessageProps {
|
|
|
6
6
|
isOutgoing: boolean;
|
|
7
7
|
createdAtTime: number;
|
|
8
8
|
isHighlighted?: boolean;
|
|
9
|
+
isTimeRevealed?: boolean;
|
|
9
10
|
/** Position within its same-sender cluster — drives the bubble tail. */
|
|
10
11
|
groupPosition?: GroupPosition;
|
|
11
12
|
onMediaPress?: (items: MediaItem[], index?: number) => void;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../../src/components/messages/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,4BAA4B,CAAC;AAC5D,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,+BAA+B,CAAC;AACjE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,+BAA+B,CAAC;AAEnE,MAAM,WAAW,sBAAsB;IACrC,OAAO,EAAE,WAAW,CAAC;IACrB,UAAU,EAAE,OAAO,CAAC;IACpB,aAAa,EAAE,MAAM,CAAC;IACtB,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,wEAAwE;IACxE,aAAa,CAAC,EAAE,aAAa,CAAC;IAC9B,YAAY,CAAC,EAAE,CAAC,KAAK,EAAE,SAAS,EAAE,EAAE,KAAK,CAAC,EAAE,MAAM,KAAK,IAAI,CAAC;CAC7D;AAED,eAAO,MAAM,iBAAiB,GAAI,WAAW,MAAM,WAWlD,CAAC"}
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../../src/components/messages/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,4BAA4B,CAAC;AAC5D,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,+BAA+B,CAAC;AACjE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,+BAA+B,CAAC;AAEnE,MAAM,WAAW,sBAAsB;IACrC,OAAO,EAAE,WAAW,CAAC;IACrB,UAAU,EAAE,OAAO,CAAC;IACpB,aAAa,EAAE,MAAM,CAAC;IACtB,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,wEAAwE;IACxE,aAAa,CAAC,EAAE,aAAa,CAAC;IAC9B,YAAY,CAAC,EAAE,CAAC,KAAK,EAAE,SAAS,EAAE,EAAE,KAAK,CAAC,EAAE,MAAM,KAAK,IAAI,CAAC;CAC7D;AAED,eAAO,MAAM,iBAAiB,GAAI,WAAW,MAAM,WAWlD,CAAC"}
|
|
@@ -1,15 +1,17 @@
|
|
|
1
|
-
import type { CustomMsgParams, MessageItem, OfflinePush, QuoteMsgParams } from '@droppii/openim-rn-client-sdk';
|
|
1
|
+
import type { AtMsgParams, CustomMsgParams, MessageItem, OfflinePush, QuoteMsgParams } from '@droppii/openim-rn-client-sdk';
|
|
2
2
|
import { type CustomMessagePayload } from '../../types/chat';
|
|
3
3
|
import type { IUrlMetadata } from '../../types/common';
|
|
4
4
|
import type { IRunConversationFlowPayload } from '../../types/flows';
|
|
5
5
|
import type { StickerItem } from '../../types/sticker';
|
|
6
|
+
import type { Mention } from '../../types/mention';
|
|
6
7
|
export declare const useSendMessage: () => {
|
|
7
|
-
sendMessage: ({ plainText, urlMetadata, flow, customMessage, sticker, }: {
|
|
8
|
+
sendMessage: ({ plainText, urlMetadata, flow, customMessage, sticker, mentions, }: {
|
|
8
9
|
plainText?: string;
|
|
9
10
|
urlMetadata?: IUrlMetadata;
|
|
10
11
|
flow?: IRunConversationFlowPayload;
|
|
11
12
|
customMessage?: CustomMessagePayload;
|
|
12
13
|
sticker?: StickerItem;
|
|
14
|
+
mentions?: Mention[];
|
|
13
15
|
}) => Promise<void>;
|
|
14
16
|
retryMessage: (message: MessageItem) => Promise<void>;
|
|
15
17
|
revokeMessage: (message: MessageItem) => Promise<void>;
|
|
@@ -17,6 +19,7 @@ export declare const useSendMessage: () => {
|
|
|
17
19
|
export declare const generateOfflinePushInfo: (message: MessageItem) => OfflinePush;
|
|
18
20
|
export declare const createTextMessage: (text: string) => Promise<any>;
|
|
19
21
|
export declare const createUrlTextMessage: (text: string, urls: string[]) => Promise<any>;
|
|
22
|
+
export declare const createTextAtMessage: (params: AtMsgParams) => Promise<any>;
|
|
20
23
|
export declare const createCustomMessage: (params: CustomMsgParams) => Promise<any>;
|
|
21
24
|
export declare const createQuotedMessage: (params: QuoteMsgParams) => Promise<any>;
|
|
22
25
|
export declare const createStickerMessage: (sticker: string) => Promise<any>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useSendMessage.d.ts","sourceRoot":"","sources":["../../../../../src/hooks/message/useSendMessage.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EACV,eAAe,EACf,WAAW,EACX,WAAW,EACX,cAAc,EAEf,MAAM,+BAA+B,CAAC;AAQvC,OAAO,EAEL,KAAK,oBAAoB,EAE1B,MAAM,kBAAkB,CAAC;AAM1B,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AACvD,OAAO,KAAK,EAAE,2BAA2B,EAAE,MAAM,mBAAmB,CAAC;AAGrE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;
|
|
1
|
+
{"version":3,"file":"useSendMessage.d.ts","sourceRoot":"","sources":["../../../../../src/hooks/message/useSendMessage.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EACV,WAAW,EACX,eAAe,EACf,WAAW,EACX,WAAW,EACX,cAAc,EAEf,MAAM,+BAA+B,CAAC;AAQvC,OAAO,EAEL,KAAK,oBAAoB,EAE1B,MAAM,kBAAkB,CAAC;AAM1B,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AACvD,OAAO,KAAK,EAAE,2BAA2B,EAAE,MAAM,mBAAmB,CAAC;AAGrE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAMvD,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAC;AAqBnD,eAAO,MAAM,cAAc;uFA6CpB;QACD,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,WAAW,CAAC,EAAE,YAAY,CAAC;QAC3B,IAAI,CAAC,EAAE,2BAA2B,CAAC;QACnC,aAAa,CAAC,EAAE,oBAAoB,CAAC;QACrC,OAAO,CAAC,EAAE,WAAW,CAAC;QACtB,QAAQ,CAAC,EAAE,OAAO,EAAE,CAAC;KACtB;4BA6Ie,WAAW;6BA8CqB,WAAW;CAmB9D,CAAC;AAEF,eAAO,MAAM,uBAAuB,GAAI,SAAS,WAAW,KA6BrD,WACN,CAAC;AAEF,eAAO,MAAM,iBAAiB,GAAU,MAAM,MAAM,iBAUnD,CAAC;AAEF,eAAO,MAAM,oBAAoB,GAAU,MAAM,MAAM,EAAE,MAAM,MAAM,EAAE,iBActE,CAAC;AAEF,eAAO,MAAM,mBAAmB,GAAU,QAAQ,WAAW,iBAU5D,CAAC;AAEF,eAAO,MAAM,mBAAmB,GAAU,QAAQ,eAAe,iBAUhE,CAAC;AAEF,eAAO,MAAM,mBAAmB,GAAU,QAAQ,cAAc,iBAU/D,CAAC;AAEF,eAAO,MAAM,oBAAoB,GAAU,SAAS,MAAM,iBAUzD,CAAC"}
|
|
@@ -40,6 +40,10 @@ export declare const messageQueryKeys: {
|
|
|
40
40
|
all: readonly ["messages"];
|
|
41
41
|
search: (query: string, conversationId?: string) => readonly ["messages", "search", string, string];
|
|
42
42
|
};
|
|
43
|
+
export declare const mentionQueryKeys: {
|
|
44
|
+
all: readonly ["mentionSearch"];
|
|
45
|
+
search: (groupID: string, keyword: string) => readonly ["mentionSearch", string, string];
|
|
46
|
+
};
|
|
43
47
|
export declare const contactQueryKeys: {
|
|
44
48
|
all: readonly ["contacts"];
|
|
45
49
|
search: (query: string, type?: string) => readonly ["contacts", "search", string, string];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"query-keys.d.ts","sourceRoot":"","sources":["../../../../src/hooks/query-keys.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,eAAe;;uBAEP,MAAM;CAC1B,CAAC;AAEF,eAAO,MAAM,qBAAqB;;;4BAGR,MAAM;;6BAGL,MAAM;0BAET,MAAM;yCACS,MAAM;2BAEpB,MAAM;mCACE,MAAM;gCAIT,MAAM;8BAIR,MAAM;mCACD,MAAM;2BAId,MAAM;iCACA,MAAM;4BACX,MAAM;sBACZ,MAAM;yBACH,MAAM;CAC5B,CAAC;AAEF,eAAO,MAAM,cAAc;;oBAET,MAAM,EAAE;CACzB,CAAC;AAEF,MAAM,MAAM,qBAAqB,GAAG,OAAO,qBAAqB,CAAC;AAEjE,eAAO,MAAM,gBAAgB;;;6BAGF,MAAM;;CAGhC,CAAC;AAEF,eAAO,MAAM,uBAAuB;;qBAEjB,MAAM,eAAe,MAAM;CAE7C,CAAC;AAEF,eAAO,MAAM,gBAAgB;;oBAEX,MAAM,mBAAmB,MAAM;CAEhD,CAAC;AAEF,eAAO,MAAM,gBAAgB;;oBAEX,MAAM,SAAS,MAAM;CAEtC,CAAC;AAEF,eAAO,MAAM,cAAc;;;4BAGD,MAAM;;;CAI/B,CAAC"}
|
|
1
|
+
{"version":3,"file":"query-keys.d.ts","sourceRoot":"","sources":["../../../../src/hooks/query-keys.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,eAAe;;uBAEP,MAAM;CAC1B,CAAC;AAEF,eAAO,MAAM,qBAAqB;;;4BAGR,MAAM;;6BAGL,MAAM;0BAET,MAAM;yCACS,MAAM;2BAEpB,MAAM;mCACE,MAAM;gCAIT,MAAM;8BAIR,MAAM;mCACD,MAAM;2BAId,MAAM;iCACA,MAAM;4BACX,MAAM;sBACZ,MAAM;yBACH,MAAM;CAC5B,CAAC;AAEF,eAAO,MAAM,cAAc;;oBAET,MAAM,EAAE;CACzB,CAAC;AAEF,MAAM,MAAM,qBAAqB,GAAG,OAAO,qBAAqB,CAAC;AAEjE,eAAO,MAAM,gBAAgB;;;6BAGF,MAAM;;CAGhC,CAAC;AAEF,eAAO,MAAM,uBAAuB;;qBAEjB,MAAM,eAAe,MAAM;CAE7C,CAAC;AAEF,eAAO,MAAM,gBAAgB;;oBAEX,MAAM,mBAAmB,MAAM;CAEhD,CAAC;AAEF,eAAO,MAAM,gBAAgB;;sBAET,MAAM,WAAW,MAAM;CAE1C,CAAC;AAEF,eAAO,MAAM,gBAAgB;;oBAEX,MAAM,SAAS,MAAM;CAEtC,CAAC;AAEF,eAAO,MAAM,cAAc;;;4BAGD,MAAM;;;CAI/B,CAAC"}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { type ImageWithUploadStatus } from './useImageAttachment';
|
|
2
|
+
import type { Mention } from '../types/mention';
|
|
2
3
|
export declare function useChatCompose(): {
|
|
3
4
|
text: string;
|
|
4
5
|
setText: import("react").Dispatch<import("react").SetStateAction<string>>;
|
|
@@ -21,7 +22,7 @@ export declare function useChatCompose(): {
|
|
|
21
22
|
dismissPreview: () => void;
|
|
22
23
|
isUploading: boolean;
|
|
23
24
|
canSend: boolean;
|
|
24
|
-
send: () => Promise<void>;
|
|
25
|
+
send: (mentions?: Mention[]) => Promise<void>;
|
|
25
26
|
clearAll: () => void;
|
|
26
27
|
};
|
|
27
28
|
//# sourceMappingURL=useChatCompose.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useChatCompose.d.ts","sourceRoot":"","sources":["../../../../src/hooks/useChatCompose.ts"],"names":[],"mappings":"AAEA,OAAO,EAEL,KAAK,qBAAqB,EAC3B,MAAM,sBAAsB,CAAC;
|
|
1
|
+
{"version":3,"file":"useChatCompose.d.ts","sourceRoot":"","sources":["../../../../src/hooks/useChatCompose.ts"],"names":[],"mappings":"AAEA,OAAO,EAEL,KAAK,qBAAqB,EAC3B,MAAM,sBAAsB,CAAC;AAU9B,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAEhD,wBAAgB,cAAc;;;;;;;;;;;;;;;;;;;;;;sBAgCR,OAAO,EAAE;;EAyJ9B"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ChatComposer.d.ts","sourceRoot":"","sources":["../../../../../src/screens/chat-detail/ChatComposer.tsx"],"names":[],"mappings":"AAAA,OAAO,EAOL,KAAK,SAAS,EACf,MAAM,OAAO,CAAC;AACf,OAAO,EAIL,KAAK,iBAAiB,EACtB,KAAK,IAAI,EACV,MAAM,cAAc,CAAC;AA8BtB,OAAO,EAA6B,KAAK,iBAAiB,EAAE,MAAM,SAAS,CAAC;
|
|
1
|
+
{"version":3,"file":"ChatComposer.d.ts","sourceRoot":"","sources":["../../../../../src/screens/chat-detail/ChatComposer.tsx"],"names":[],"mappings":"AAAA,OAAO,EAOL,KAAK,SAAS,EACf,MAAM,OAAO,CAAC;AACf,OAAO,EAIL,KAAK,iBAAiB,EACtB,KAAK,IAAI,EACV,MAAM,cAAc,CAAC;AA8BtB,OAAO,EAA6B,KAAK,iBAAiB,EAAE,MAAM,SAAS,CAAC;AA+B5E,UAAU,yBAAyB;IACjC,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,aAAa,CAAC,EAAE,iBAAiB,EAAE,CAAC;IACpC,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B,WAAW,CAAC,EAAE,SAAS,CAAC,IAAI,GAAG,IAAI,CAAC,CAAC;IACrC,gBAAgB,CAAC,EAAE,CAAC,KAAK,EAAE,iBAAiB,KAAK,IAAI,CAAC;IACtD,gBAAgB,CAAC,EAAE,MAAM,IAAI,CAAC;IAC9B,cAAc,CAAC,EAAE,OAAO,CAAC;CAC1B;AAED,eAAO,MAAM,YAAY,+JASpB,yBAAyB,iCA8nB7B,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ChatListLegend.d.ts","sourceRoot":"","sources":["../../../../../src/screens/chat-detail/ChatListLegend.tsx"],"names":[],"mappings":"AAAA,OAAO,EAOL,KAAK,SAAS,EACf,MAAM,OAAO,CAAC;AASf,OAAiB,EAKf,KAAK,WAAW,EACjB,MAAM,yBAAyB,CAAC;AAEjC,OAAO,EAAc,KAAK,aAAa,EAAE,MAAM,8BAA8B,CAAC;AAc9E,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;
|
|
1
|
+
{"version":3,"file":"ChatListLegend.d.ts","sourceRoot":"","sources":["../../../../../src/screens/chat-detail/ChatListLegend.tsx"],"names":[],"mappings":"AAAA,OAAO,EAOL,KAAK,SAAS,EACf,MAAM,OAAO,CAAC;AASf,OAAiB,EAKf,KAAK,WAAW,EACjB,MAAM,yBAAyB,CAAC;AAEjC,OAAO,EAAc,KAAK,aAAa,EAAE,MAAM,8BAA8B,CAAC;AAc9E,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AA6C7C,UAAU,2BAA4B,SAAQ,aAAa;IACzD,OAAO,EAAE,SAAS,CAAC,aAAa,GAAG,IAAI,CAAC,CAAC;IACzC,MAAM,EAAE,WAAW,CAAC,OAAO,CAAC,CAAC;IAC7B,kBAAkB,EAAE,CAAC,IAAI,EAAE;QACzB,QAAQ,EAAE,OAAO,CAAC;QAClB,aAAa,EAAE,OAAO,CAAC;KACxB,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IACpB,cAAc,EAAE,MAAM,CAAC;CACxB;AAED,eAAO,MAAM,cAAc,6RAmBtB,2BAA2B,iCA2hB/B,CAAC"}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
|
-
import { TextInput, type NativeSyntheticEvent, type TextInputContentSizeChangeEventData } from 'react-native';
|
|
1
|
+
import { TextInput, type NativeSyntheticEvent, type TextInputContentSizeChangeEventData, type TextInputSelectionChangeEventData } from 'react-native';
|
|
2
|
+
import type { Mention } from '../../../types/mention';
|
|
2
3
|
export interface ChatMessageInputProps {
|
|
3
4
|
value?: string;
|
|
4
5
|
placeholder?: string;
|
|
@@ -6,11 +7,18 @@ export interface ChatMessageInputProps {
|
|
|
6
7
|
onFocus: () => void;
|
|
7
8
|
onBlur: () => void;
|
|
8
9
|
onContentSizeChange: (event: NativeSyntheticEvent<TextInputContentSizeChangeEventData>) => void;
|
|
10
|
+
onSelectionChange?: (event: NativeSyntheticEvent<TextInputSelectionChangeEventData>) => void;
|
|
11
|
+
/** Committed mentions — when non-empty, the input switches from plain
|
|
12
|
+
* `value` to a nested-Text `children` tree (MentionHighlightAdapter) so
|
|
13
|
+
* mentions render highlighted. Omitted/empty keeps the original plain
|
|
14
|
+
* `value`-controlled path, so the overwhelming majority of messages (no
|
|
15
|
+
* mentions) never pay for this. */
|
|
16
|
+
mentions?: Mention[];
|
|
9
17
|
isInputFocused: boolean;
|
|
10
18
|
isMultilineInput: boolean;
|
|
11
19
|
onEmojiPress?: () => void;
|
|
12
20
|
onSuggestPress?: () => void;
|
|
13
21
|
inputRef: React.RefObject<TextInput>;
|
|
14
22
|
}
|
|
15
|
-
export declare const ChatMessageInput: import("react").MemoExoticComponent<({ value, placeholder, onChangeText, onFocus, onBlur, onContentSizeChange, isInputFocused, isMultilineInput, onEmojiPress, onSuggestPress, inputRef, }: ChatMessageInputProps) => import("react").JSX.Element>;
|
|
23
|
+
export declare const ChatMessageInput: import("react").MemoExoticComponent<({ value, placeholder, onChangeText, onFocus, onBlur, onContentSizeChange, onSelectionChange, mentions, isInputFocused, isMultilineInput, onEmojiPress, onSuggestPress, inputRef, }: ChatMessageInputProps) => import("react").JSX.Element>;
|
|
16
24
|
//# sourceMappingURL=ChatMessageInput.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ChatMessageInput.d.ts","sourceRoot":"","sources":["../../../../../../src/screens/chat-detail/components/ChatMessageInput.tsx"],"names":[],"mappings":"AACA,OAAO,EAGL,SAAS,EACT,KAAK,oBAAoB,EACzB,KAAK,mCAAmC,
|
|
1
|
+
{"version":3,"file":"ChatMessageInput.d.ts","sourceRoot":"","sources":["../../../../../../src/screens/chat-detail/components/ChatMessageInput.tsx"],"names":[],"mappings":"AACA,OAAO,EAGL,SAAS,EACT,KAAK,oBAAoB,EACzB,KAAK,mCAAmC,EACxC,KAAK,iCAAiC,EACvC,MAAM,cAAc,CAAC;AAGtB,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,wBAAwB,CAAC;AAOtD,MAAM,WAAW,qBAAqB;IACpC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,YAAY,EAAE,CAAC,IAAI,CAAC,EAAE,MAAM,KAAK,IAAI,CAAC;IACtC,OAAO,EAAE,MAAM,IAAI,CAAC;IACpB,MAAM,EAAE,MAAM,IAAI,CAAC;IACnB,mBAAmB,EAAE,CACnB,KAAK,EAAE,oBAAoB,CAAC,mCAAmC,CAAC,KAC7D,IAAI,CAAC;IACV,iBAAiB,CAAC,EAAE,CAClB,KAAK,EAAE,oBAAoB,CAAC,iCAAiC,CAAC,KAC3D,IAAI,CAAC;IACV;;;;uCAImC;IACnC,QAAQ,CAAC,EAAE,OAAO,EAAE,CAAC;IACrB,cAAc,EAAE,OAAO,CAAC;IACxB,gBAAgB,EAAE,OAAO,CAAC;IAC1B,YAAY,CAAC,EAAE,MAAM,IAAI,CAAC;IAC1B,cAAc,CAAC,EAAE,MAAM,IAAI,CAAC;IAC5B,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC;CACtC;AAED,eAAO,MAAM,gBAAgB,2NAexB,qBAAqB,iCAkFzB,CAAC"}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import type { Mention } from '../../../types/mention';
|
|
2
|
+
interface MentionHighlightAdapterProps {
|
|
3
|
+
text: string;
|
|
4
|
+
mentions: Mention[];
|
|
5
|
+
}
|
|
6
|
+
/**
|
|
7
|
+
* Renders `text` as nested styled `<Text>` children for a TextInput's
|
|
8
|
+
* "undocumented" rich-text-via-children capability — the same primitive
|
|
9
|
+
* `react-native-controlled-mentions` and Bluesky's social-app both use.
|
|
10
|
+
*
|
|
11
|
+
* Deliberately STATELESS: every render calls tokenize() fresh and rebuilds
|
|
12
|
+
* the whole children tree from scratch — no attempt to preserve/diff span
|
|
13
|
+
* identity across renders. This is the Bluesky-informed choice (see the
|
|
14
|
+
* mention plan's Phase A3): react-native-controlled-mentions instead tries
|
|
15
|
+
* to maintain *stateful* span identity across renders, and its known
|
|
16
|
+
* Android bugs (#34668 duplicate input, #41647 broken selection, #50731
|
|
17
|
+
* "spans recreated on every render") read like that statefulness fighting
|
|
18
|
+
* itself — Bluesky ships live-colored nested-Text in production by never
|
|
19
|
+
* attempting to preserve identity in the first place. Only tokenize()
|
|
20
|
+
* itself is memoized (on [text, mentions]); the resulting element tree is
|
|
21
|
+
* not further diffed or cached.
|
|
22
|
+
*
|
|
23
|
+
* Only mounted when mentions.length > 0 (see ChatMessageInput) — a plain
|
|
24
|
+
* `value`-controlled TextInput is used otherwise, so the vast majority of
|
|
25
|
+
* messages (no mentions) never pay for this at all.
|
|
26
|
+
*/
|
|
27
|
+
export declare const MentionHighlightAdapter: import("react").MemoExoticComponent<({ text, mentions }: MentionHighlightAdapterProps) => import("react").JSX.Element>;
|
|
28
|
+
export {};
|
|
29
|
+
//# sourceMappingURL=MentionHighlightAdapter.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"MentionHighlightAdapter.d.ts","sourceRoot":"","sources":["../../../../../../src/screens/chat-detail/components/MentionHighlightAdapter.tsx"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,wBAAwB,CAAC;AAEtD,UAAU,4BAA4B;IACpC,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,OAAO,EAAE,CAAC;CACrB;AAED;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,eAAO,MAAM,uBAAuB,2DACb,4BAA4B,iCAmBlD,CAAC"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import type { MentionSuggestion } from '../../../types/mention';
|
|
2
|
+
interface MentionSuggestionItemProps {
|
|
3
|
+
item: MentionSuggestion;
|
|
4
|
+
onPress: (item: MentionSuggestion) => void;
|
|
5
|
+
}
|
|
6
|
+
export declare const MentionSuggestionItem: import("react").MemoExoticComponent<({ item, onPress }: MentionSuggestionItemProps) => import("react").JSX.Element>;
|
|
7
|
+
export {};
|
|
8
|
+
//# sourceMappingURL=MentionSuggestionItem.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"MentionSuggestionItem.d.ts","sourceRoot":"","sources":["../../../../../../src/screens/chat-detail/components/MentionSuggestionItem.tsx"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAIhE,UAAU,0BAA0B;IAClC,IAAI,EAAE,iBAAiB,CAAC;IACxB,OAAO,EAAE,CAAC,IAAI,EAAE,iBAAiB,KAAK,IAAI,CAAC;CAC5C;AAED,eAAO,MAAM,qBAAqB,0DACZ,0BAA0B,iCAoC/C,CAAC"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import type { MentionSuggestion } from '../../../types/mention';
|
|
2
|
+
interface MentionSuggestionListProps {
|
|
3
|
+
suggestions: MentionSuggestion[];
|
|
4
|
+
isSearching: boolean;
|
|
5
|
+
isLoadingMore?: boolean;
|
|
6
|
+
hasMore?: boolean;
|
|
7
|
+
onLoadMore?: () => void;
|
|
8
|
+
onSelect: (item: MentionSuggestion) => void;
|
|
9
|
+
}
|
|
10
|
+
export declare const MentionSuggestionList: import("react").MemoExoticComponent<({ suggestions, isSearching, isLoadingMore, hasMore, onLoadMore, onSelect, }: MentionSuggestionListProps) => import("react").JSX.Element>;
|
|
11
|
+
export {};
|
|
12
|
+
//# sourceMappingURL=MentionSuggestionList.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"MentionSuggestionList.d.ts","sourceRoot":"","sources":["../../../../../../src/screens/chat-detail/components/MentionSuggestionList.tsx"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAWhE,UAAU,0BAA0B;IAClC,WAAW,EAAE,iBAAiB,EAAE,CAAC;IACjC,WAAW,EAAE,OAAO,CAAC;IACrB,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,UAAU,CAAC,EAAE,MAAM,IAAI,CAAC;IACxB,QAAQ,EAAE,CAAC,IAAI,EAAE,iBAAiB,KAAK,IAAI,CAAC;CAC7C;AAED,eAAO,MAAM,qBAAqB,oHAQ7B,0BAA0B,iCAuE9B,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useChatComposerState.d.ts","sourceRoot":"","sources":["../../../../../../src/screens/chat-detail/hooks/useChatComposerState.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"useChatComposerState.d.ts","sourceRoot":"","sources":["../../../../../../src/screens/chat-detail/hooks/useChatComposerState.ts"],"names":[],"mappings":"AAQA,MAAM,MAAM,eAAe,GAAG,YAAY,GAAG,SAAS,GAAG,SAAS,GAAG,IAAI,CAAC;AAE1E,UAAU,0BAA0B;IAClC,eAAe,EAAE,eAAe,CAAC;IACjC,kBAAkB,EAAE,CAAC,IAAI,EAAE,eAAe,KAAK,IAAI,CAAC;IACpD,gBAAgB,EAAE,OAAO,CAAC;IAC1B,mBAAmB,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK,IAAI,CAAC;IAC7C,cAAc,EAAE,OAAO,CAAC;IACxB,iBAAiB,EAAE,CAAC,OAAO,EAAE,OAAO,KAAK,IAAI,CAAC;IAC9C,cAAc,EAAE,OAAO,CAAC;IACxB,iBAAiB,EAAE,CAAC,OAAO,EAAE,OAAO,KAAK,IAAI,CAAC;IAC9C,gBAAgB,EAAE,OAAO,CAAC;IAC1B,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;CAChC;AAED,eAAO,MAAM,oBAAoB,GAC/B,OAAO,MAAM,KACZ,0BA2BF,CAAC"}
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
import type { TextInput, NativeSyntheticEvent } from 'react-native';
|
|
2
|
+
import type { TextInputSelectionChangeEventData } from 'react-native';
|
|
3
|
+
import type { ActiveMention, Mention, MentionSearchSource, MentionSuggestion } from '../../../types/mention';
|
|
4
|
+
interface UseMentionComposerParams {
|
|
5
|
+
text: string;
|
|
6
|
+
setText: (text: string) => void;
|
|
7
|
+
searchSource: MentionSearchSource;
|
|
8
|
+
/** Namespaces the react-query cache per conversation — see the query
|
|
9
|
+
* itself for why this matters even though the hook is expected to remount
|
|
10
|
+
* per chat-detail screen. */
|
|
11
|
+
groupID?: string;
|
|
12
|
+
/** Mention only makes sense in group conversations (tagging a specific
|
|
13
|
+
* other member) — false for 1-1/bot/customer threads disables "@"
|
|
14
|
+
* detection entirely, not just the search results. Without this, typing
|
|
15
|
+
* "@" in a non-group chat would still open the picker (empty, since
|
|
16
|
+
* there's no real MentionSearchSource for it) instead of behaving as a
|
|
17
|
+
* plain character. Defaults to true so existing group-only callers don't
|
|
18
|
+
* need to pass it. */
|
|
19
|
+
enabled?: boolean;
|
|
20
|
+
inputRef: React.RefObject<TextInput | null>;
|
|
21
|
+
}
|
|
22
|
+
export interface UseMentionComposerReturn {
|
|
23
|
+
mentions: Mention[];
|
|
24
|
+
activeMention: ActiveMention | null;
|
|
25
|
+
suggestions: MentionSuggestion[];
|
|
26
|
+
isSearching: boolean;
|
|
27
|
+
isLoadingMore: boolean;
|
|
28
|
+
hasMore: boolean;
|
|
29
|
+
loadMore: () => void;
|
|
30
|
+
isPanelOpen: boolean;
|
|
31
|
+
handleChangeText: (text?: string) => void;
|
|
32
|
+
handleSelectionChange: (event: NativeSyntheticEvent<TextInputSelectionChangeEventData>) => void;
|
|
33
|
+
selectSuggestion: (item: MentionSuggestion) => void;
|
|
34
|
+
closeMentionPanel: () => void;
|
|
35
|
+
clear: () => void;
|
|
36
|
+
}
|
|
37
|
+
/**
|
|
38
|
+
* Orchestrates the @mention composer: wires the pure Phase A1 logic
|
|
39
|
+
* (findActiveMention / applyTextChange / insertMention) and an injected
|
|
40
|
+
* MentionSearchSource into the live TextInput event loop.
|
|
41
|
+
*
|
|
42
|
+
* `text` stays owned by useChatCompose (the existing composer state) — this
|
|
43
|
+
* hook doesn't duplicate it, only mirrors it into a ref for synchronous
|
|
44
|
+
* access within its own event handlers (see textRef below).
|
|
45
|
+
*/
|
|
46
|
+
export declare function useMentionComposer({ text, setText, searchSource, groupID, enabled, inputRef, }: UseMentionComposerParams): UseMentionComposerReturn;
|
|
47
|
+
export {};
|
|
48
|
+
//# sourceMappingURL=useMentionComposer.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useMentionComposer.d.ts","sourceRoot":"","sources":["../../../../../../src/screens/chat-detail/hooks/useMentionComposer.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,oBAAoB,EAAE,MAAM,cAAc,CAAC;AACpE,OAAO,KAAK,EAAE,iCAAiC,EAAE,MAAM,cAAc,CAAC;AAUtE,OAAO,KAAK,EACV,aAAa,EACb,OAAO,EACP,mBAAmB,EACnB,iBAAiB,EAClB,MAAM,wBAAwB,CAAC;AAchC,UAAU,wBAAwB;IAChC,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IAChC,YAAY,EAAE,mBAAmB,CAAC;IAClC;;iCAE6B;IAC7B,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB;;;;;;0BAMsB;IACtB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC,SAAS,GAAG,IAAI,CAAC,CAAC;CAC7C;AAED,MAAM,WAAW,wBAAwB;IACvC,QAAQ,EAAE,OAAO,EAAE,CAAC;IACpB,aAAa,EAAE,aAAa,GAAG,IAAI,CAAC;IACpC,WAAW,EAAE,iBAAiB,EAAE,CAAC;IACjC,WAAW,EAAE,OAAO,CAAC;IACrB,aAAa,EAAE,OAAO,CAAC;IACvB,OAAO,EAAE,OAAO,CAAC;IACjB,QAAQ,EAAE,MAAM,IAAI,CAAC;IACrB,WAAW,EAAE,OAAO,CAAC;IACrB,gBAAgB,EAAE,CAAC,IAAI,CAAC,EAAE,MAAM,KAAK,IAAI,CAAC;IAC1C,qBAAqB,EAAE,CACrB,KAAK,EAAE,oBAAoB,CAAC,iCAAiC,CAAC,KAC3D,IAAI,CAAC;IACV,gBAAgB,EAAE,CAAC,IAAI,EAAE,iBAAiB,KAAK,IAAI,CAAC;IACpD,iBAAiB,EAAE,MAAM,IAAI,CAAC;IAC9B,KAAK,EAAE,MAAM,IAAI,CAAC;CACnB;AAED;;;;;;;;GAQG;AACH,wBAAgB,kBAAkB,CAAC,EACjC,IAAI,EACJ,OAAO,EACP,YAAY,EACZ,OAAO,EACP,OAAc,EACd,QAAQ,GACT,EAAE,wBAAwB,GAAG,wBAAwB,CAmQrD"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"LegendChatDay.d.ts","sourceRoot":"","sources":["../../../../../../src/screens/chat-detail/legend/LegendChatDay.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"LegendChatDay.d.ts","sourceRoot":"","sources":["../../../../../../src/screens/chat-detail/legend/LegendChatDay.tsx"],"names":[],"mappings":"AA2CA,UAAU,kBAAkB;IAC1B,SAAS,EAAE,MAAM,CAAC;IAClB;;;OAGG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAED,eAAO,MAAM,aAAa,gEACU,kBAAkB,iCAqBrD,CAAC"}
|
|
@@ -13,6 +13,7 @@ interface LegendChatMessageProps {
|
|
|
13
13
|
onLongPress?: () => void;
|
|
14
14
|
customMessageItemFactory?: (m: MessageItem) => ReactNode;
|
|
15
15
|
isHighlighted?: boolean;
|
|
16
|
+
isTimeRevealed?: boolean;
|
|
16
17
|
/** Sender name above the bubble — first message of an incoming cluster. */
|
|
17
18
|
showName?: boolean;
|
|
18
19
|
/** Sender avatar beside the bubble — last message of an incoming cluster. */
|
|
@@ -26,6 +27,6 @@ interface LegendChatMessageProps {
|
|
|
26
27
|
/** Position within its same-sender cluster — drives the bubble tail. */
|
|
27
28
|
groupPosition?: GroupPosition;
|
|
28
29
|
}
|
|
29
|
-
export declare const LegendChatMessage: import("react").MemoExoticComponent<({ message, isOutgoing, createdAtTime, onMediaPress, onPressUrl, onRetry, onPress, onLongPress, customMessageItemFactory, isHighlighted, showName, showAvatar, showSenderGutter, groupPosition, }: LegendChatMessageProps) => string | number | bigint | true | Iterable<ReactNode> | Promise<string | number | bigint | boolean | import("react").ReactPortal | import("react").ReactElement<unknown, string | import("react").JSXElementConstructor<any>> | Iterable<ReactNode>> | import("react").JSX.Element>;
|
|
30
|
+
export declare const LegendChatMessage: import("react").MemoExoticComponent<({ message, isOutgoing, createdAtTime, onMediaPress, onPressUrl, onRetry, onPress, onLongPress, customMessageItemFactory, isHighlighted, isTimeRevealed, showName, showAvatar, showSenderGutter, groupPosition, }: LegendChatMessageProps) => string | number | bigint | true | Iterable<ReactNode> | Promise<string | number | bigint | boolean | import("react").ReactPortal | import("react").ReactElement<unknown, string | import("react").JSXElementConstructor<any>> | Iterable<ReactNode>> | import("react").JSX.Element>;
|
|
30
31
|
export {};
|
|
31
32
|
//# sourceMappingURL=LegendChatMessage.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"LegendChatMessage.d.ts","sourceRoot":"","sources":["../../../../../../src/screens/chat-detail/legend/LegendChatMessage.tsx"],"names":[],"mappings":"AASA,OAAO,KAAK,EAAoC,SAAS,EAAE,MAAM,OAAO,CAAC;AAEzE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,+BAA+B,CAAC;AAGjE,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,+BAA+B,CAAC;AAe/D,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,kCAAkC,CAAC;AAStE,UAAU,sBAAsB;IAC9B,OAAO,EAAE,WAAW,CAAC;IACrB,UAAU,EAAE,OAAO,CAAC;IACpB,aAAa,EAAE,MAAM,CAAC;IACtB,YAAY,CAAC,EAAE,CAAC,KAAK,EAAE,SAAS,EAAE,EAAE,KAAK,CAAC,EAAE,MAAM,KAAK,IAAI,CAAC;IAC5D,UAAU,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,CAAC;IACnC,OAAO,CAAC,EAAE,CAAC,OAAO,EAAE,WAAW,KAAK,IAAI,CAAC;IACzC,OAAO,CAAC,EAAE,CAAC,OAAO,EAAE,WAAW,KAAK,IAAI,CAAC;IACzC,WAAW,CAAC,EAAE,MAAM,IAAI,CAAC;IACzB,wBAAwB,CAAC,EAAE,CAAC,CAAC,EAAE,WAAW,KAAK,SAAS,CAAC;IACzD,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,2EAA2E;IAC3E,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,6EAA6E;IAC7E,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB;;;;OAIG;IACH,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,wEAAwE;IACxE,aAAa,CAAC,EAAE,aAAa,CAAC;CAC/B;
|
|
1
|
+
{"version":3,"file":"LegendChatMessage.d.ts","sourceRoot":"","sources":["../../../../../../src/screens/chat-detail/legend/LegendChatMessage.tsx"],"names":[],"mappings":"AASA,OAAO,KAAK,EAAoC,SAAS,EAAE,MAAM,OAAO,CAAC;AAEzE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,+BAA+B,CAAC;AAGjE,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,+BAA+B,CAAC;AAe/D,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,kCAAkC,CAAC;AAStE,UAAU,sBAAsB;IAC9B,OAAO,EAAE,WAAW,CAAC;IACrB,UAAU,EAAE,OAAO,CAAC;IACpB,aAAa,EAAE,MAAM,CAAC;IACtB,YAAY,CAAC,EAAE,CAAC,KAAK,EAAE,SAAS,EAAE,EAAE,KAAK,CAAC,EAAE,MAAM,KAAK,IAAI,CAAC;IAC5D,UAAU,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,CAAC;IACnC,OAAO,CAAC,EAAE,CAAC,OAAO,EAAE,WAAW,KAAK,IAAI,CAAC;IACzC,OAAO,CAAC,EAAE,CAAC,OAAO,EAAE,WAAW,KAAK,IAAI,CAAC;IACzC,WAAW,CAAC,EAAE,MAAM,IAAI,CAAC;IACzB,wBAAwB,CAAC,EAAE,CAAC,CAAC,EAAE,WAAW,KAAK,SAAS,CAAC;IACzD,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,2EAA2E;IAC3E,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,6EAA6E;IAC7E,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB;;;;OAIG;IACH,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,wEAAwE;IACxE,aAAa,CAAC,EAAE,aAAa,CAAC;CAC/B;AAoCD,eAAO,MAAM,iBAAiB,yPAiBzB,sBAAsB,wRAyG1B,CAAC"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import type { MentionSearchSource } from '../types/mention';
|
|
2
|
+
/**
|
|
3
|
+
* Concrete MentionSearchSource implementation for Part A's mention
|
|
4
|
+
* composer, wrapping the OpenIM SDK's group-member primitives — 0 call
|
|
5
|
+
* sites anywhere else in this repo before this feature. Empty keyword ->
|
|
6
|
+
* the full/initial member list (getGroupMemberList); non-empty keyword ->
|
|
7
|
+
* server-backed search (searchGroupMembers), purpose-built for this case.
|
|
8
|
+
*
|
|
9
|
+
* Neither SDK call returns a total count, so `hasMore` is inferred from
|
|
10
|
+
* page size (a full page *might* mean there's another one) — the same
|
|
11
|
+
* heuristic every offset/count-paginated list in this codebase already
|
|
12
|
+
* relies on, since OpenIM doesn't expose a cheaper alternative here.
|
|
13
|
+
*/
|
|
14
|
+
export declare function createOpenIMMentionSearchSource(groupID: string): MentionSearchSource;
|
|
15
|
+
//# sourceMappingURL=mentionSearch.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mentionSearch.d.ts","sourceRoot":"","sources":["../../../../src/services/mentionSearch.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAEV,mBAAmB,EAEpB,MAAM,kBAAkB,CAAC;AAQ1B;;;;;;;;;;;GAWG;AACH,wBAAgB,+BAA+B,CAC7C,OAAO,EAAE,MAAM,GACd,mBAAmB,CA0BrB"}
|
|
@@ -18,7 +18,7 @@ export declare namespace ChatMessageAPI {
|
|
|
18
18
|
pageIndex?: number;
|
|
19
19
|
count?: number;
|
|
20
20
|
}): Promise<import("@droppii/openim-rn-client-sdk").SearchMessageResult>;
|
|
21
|
-
function markConversationAsRead(conversationID: string): Promise<unknown>;
|
|
21
|
+
function markConversationAsRead(conversationID: string): Promise<[unknown, unknown]>;
|
|
22
22
|
function getCurrentUserId(): Promise<string>;
|
|
23
23
|
}
|
|
24
24
|
export type { MessageItem };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"message.d.ts","sourceRoot":"","sources":["../../../../src/services/message.ts"],"names":[],"mappings":"AAAA,OAAkB,EAEhB,KAAK,wBAAwB,EAC7B,KAAK,WAAW,EACjB,MAAM,+BAA+B,CAAC;AAMvC,MAAM,MAAM,oBAAoB,GAAG,wBAAwB,GAAG;IAC5D,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB,CAAC;AAEF,yBAAiB,cAAc,CAAC;IAC9B,SAAsB,oBAAoB,CACxC,cAAc,EAAE,MAAM,EACtB,OAAO,CAAC,EAAE;QACR,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,gBAAgB,CAAC,EAAE,MAAM,CAAC;QAC1B,UAAU,CAAC,EAAE,MAAM,CAAC;QACpB,eAAe,CAAC,EAAE,MAAM,CAAC;KAC1B,GACA,OAAO,CAAC,oBAAoB,CAAC,CAQ/B;IAED,SAAsB,eAAe,CAAC,MAAM,EAAE;QAC5C,IAAI,EAAE,MAAM,CAAC;KACd,GAAG,OAAO,CAAC,WAAW,CAAC,CAavB;IAED,SAAsB,mBAAmB,CACvC,cAAc,EAAE,MAAM,EACtB,OAAO,CAAC,EAAE;QACR,WAAW,CAAC,EAAE,MAAM,EAAE,CAAC;QACvB,eAAe,CAAC,EAAE,MAAM,EAAE,CAAC;QAC3B,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,KAAK,CAAC,EAAE,MAAM,CAAC;KAChB,wEASF;IAED,SAAsB,sBAAsB,CAAC,cAAc,EAAE,MAAM
|
|
1
|
+
{"version":3,"file":"message.d.ts","sourceRoot":"","sources":["../../../../src/services/message.ts"],"names":[],"mappings":"AAAA,OAAkB,EAEhB,KAAK,wBAAwB,EAC7B,KAAK,WAAW,EACjB,MAAM,+BAA+B,CAAC;AAMvC,MAAM,MAAM,oBAAoB,GAAG,wBAAwB,GAAG;IAC5D,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB,CAAC;AAEF,yBAAiB,cAAc,CAAC;IAC9B,SAAsB,oBAAoB,CACxC,cAAc,EAAE,MAAM,EACtB,OAAO,CAAC,EAAE;QACR,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,gBAAgB,CAAC,EAAE,MAAM,CAAC;QAC1B,UAAU,CAAC,EAAE,MAAM,CAAC;QACpB,eAAe,CAAC,EAAE,MAAM,CAAC;KAC1B,GACA,OAAO,CAAC,oBAAoB,CAAC,CAQ/B;IAED,SAAsB,eAAe,CAAC,MAAM,EAAE;QAC5C,IAAI,EAAE,MAAM,CAAC;KACd,GAAG,OAAO,CAAC,WAAW,CAAC,CAavB;IAED,SAAsB,mBAAmB,CACvC,cAAc,EAAE,MAAM,EACtB,OAAO,CAAC,EAAE;QACR,WAAW,CAAC,EAAE,MAAM,EAAE,CAAC;QACvB,eAAe,CAAC,EAAE,MAAM,EAAE,CAAC;QAC3B,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,KAAK,CAAC,EAAE,MAAM,CAAC;KAChB,wEASF;IAED,SAAsB,sBAAsB,CAAC,cAAc,EAAE,MAAM,+BAUlE;IAED,SAAsB,gBAAgB,oBAErC;CACF;AAED,YAAY,EAAE,WAAW,EAAE,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"i18n.d.ts","sourceRoot":"","sources":["../../../../../src/translation/resources/i18n.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"i18n.d.ts","sourceRoot":"","sources":["../../../../../src/translation/resources/i18n.ts"],"names":[],"mappings":";;;AAqOA,wBAEE"}
|
|
@@ -131,6 +131,11 @@ export interface DConversationQueryParams {
|
|
|
131
131
|
page: number;
|
|
132
132
|
pageSize: number;
|
|
133
133
|
}
|
|
134
|
+
export interface ISerializedMentionEx {
|
|
135
|
+
userID: string;
|
|
136
|
+
offset: number;
|
|
137
|
+
length: number;
|
|
138
|
+
}
|
|
134
139
|
export interface IMessageItemEx {
|
|
135
140
|
applicationType: DChatApplicationType;
|
|
136
141
|
sessionId?: string;
|
|
@@ -142,6 +147,24 @@ export interface IMessageItemEx {
|
|
|
142
147
|
urlMetadata?: IUrlMetadata;
|
|
143
148
|
flow?: IRunConversationFlowPayload;
|
|
144
149
|
stickerId?: string;
|
|
150
|
+
/**
|
|
151
|
+
* @mention ranges, riding in this app-defined `ex` channel because
|
|
152
|
+
* OpenIM's own AtTextElem/AtMsgParams carry no per-mention offset/length
|
|
153
|
+
* — just a flat atUserIDList/atUsersInfo. Render logic prefers this
|
|
154
|
+
* (exact) and falls back to searching AtTextElem.text for
|
|
155
|
+
* "@{groupNickname}" per atUsersInfo entry when absent (interop safety
|
|
156
|
+
* net — see mentionSerializer.ts deserializeMentionRanges).
|
|
157
|
+
*
|
|
158
|
+
* Wrapped under `offsets` (not a bare array) to match the wire shape
|
|
159
|
+
* already sent by other Droppii clients (confirmed against a real
|
|
160
|
+
* message from the web/CRM client, `applicationType: "OBEFE"`:
|
|
161
|
+
* `ex.mentions = { offsets: [{userID, offset, length}, ...] }`). Offset
|
|
162
|
+
* units matched too (UTF-16 code units) — verified against a real
|
|
163
|
+
* Vietnamese-diacritic payload, no cross-client encoding mismatch.
|
|
164
|
+
*/
|
|
165
|
+
mentions?: {
|
|
166
|
+
offsets: ISerializedMentionEx[];
|
|
167
|
+
};
|
|
145
168
|
}
|
|
146
169
|
export interface IGetMessagesParams {
|
|
147
170
|
loadMore: boolean;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"chat.d.ts","sourceRoot":"","sources":["../../../../src/types/chat.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"chat.d.ts","sourceRoot":"","sources":["../../../../src/types/chat.ts"],"names":[],"mappings":"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"}
|