@droppii-org/chat-mobile 0.2.88 → 0.2.90

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.
Files changed (68) hide show
  1. package/lib/module/components/ThreadCard/ThreadCard.js +0 -1
  2. package/lib/module/components/ThreadCard/ThreadCard.js.map +1 -1
  3. package/lib/module/components/messages/LinkifiedText.js +34 -0
  4. package/lib/module/components/messages/LinkifiedText.js.map +1 -0
  5. package/lib/module/components/messages/quotedMessage/index.js +14 -2
  6. package/lib/module/components/messages/quotedMessage/index.js.map +1 -1
  7. package/lib/module/components/messages/textMessage/index.js +15 -22
  8. package/lib/module/components/messages/textMessage/index.js.map +1 -1
  9. package/lib/module/core/useChatListener.js +2 -2
  10. package/lib/module/core/useChatListener.js.map +1 -1
  11. package/lib/module/hooks/message/useMessages.js +6 -0
  12. package/lib/module/hooks/message/useMessages.js.map +1 -1
  13. package/lib/module/hooks/message/useSendMessage.js +10 -3
  14. package/lib/module/hooks/message/useSendMessage.js.map +1 -1
  15. package/lib/module/screens/ResourceCenter/ResourceCenterTabScene.js.map +1 -1
  16. package/lib/module/screens/chat-detail/ChatDetail.js +2 -1
  17. package/lib/module/screens/chat-detail/ChatDetail.js.map +1 -1
  18. package/lib/module/screens/chat-detail/ChatListLegend.js +235 -123
  19. package/lib/module/screens/chat-detail/ChatListLegend.js.map +1 -1
  20. package/lib/module/screens/chat-detail/PinnedMessagesSheet.js +4 -1
  21. package/lib/module/screens/chat-detail/PinnedMessagesSheet.js.map +1 -1
  22. package/lib/module/screens/chat-detail/PinnedMessagesSheetBackup.js +3 -1
  23. package/lib/module/screens/chat-detail/PinnedMessagesSheetBackup.js.map +1 -1
  24. package/lib/module/screens/chat-detail/legend/LegendChatMessage.js +11 -9
  25. package/lib/module/screens/chat-detail/legend/LegendChatMessage.js.map +1 -1
  26. package/lib/module/screens/chat-detail/messageToolbox/MessageToolboxOverlay.js +37 -4
  27. package/lib/module/screens/chat-detail/messageToolbox/MessageToolboxOverlay.js.map +1 -1
  28. package/lib/module/services/resourceCenter.js +45 -22
  29. package/lib/module/services/resourceCenter.js.map +1 -1
  30. package/lib/module/store/message.js +8 -1
  31. package/lib/module/store/message.js.map +1 -1
  32. package/lib/typescript/src/components/ThreadCard/ThreadCard.d.ts.map +1 -1
  33. package/lib/typescript/src/components/messages/LinkifiedText.d.ts +11 -0
  34. package/lib/typescript/src/components/messages/LinkifiedText.d.ts.map +1 -0
  35. package/lib/typescript/src/components/messages/quotedMessage/index.d.ts +1 -0
  36. package/lib/typescript/src/components/messages/quotedMessage/index.d.ts.map +1 -1
  37. package/lib/typescript/src/components/messages/textMessage/index.d.ts.map +1 -1
  38. package/lib/typescript/src/hooks/message/useMessages.d.ts.map +1 -1
  39. package/lib/typescript/src/hooks/message/useSendMessage.d.ts.map +1 -1
  40. package/lib/typescript/src/screens/ResourceCenter/ResourceCenterTabScene.d.ts.map +1 -1
  41. package/lib/typescript/src/screens/chat-detail/ChatDetail.d.ts.map +1 -1
  42. package/lib/typescript/src/screens/chat-detail/ChatListLegend.d.ts +1 -1
  43. package/lib/typescript/src/screens/chat-detail/ChatListLegend.d.ts.map +1 -1
  44. package/lib/typescript/src/screens/chat-detail/PinnedMessagesSheet.d.ts.map +1 -1
  45. package/lib/typescript/src/screens/chat-detail/PinnedMessagesSheetBackup.d.ts.map +1 -1
  46. package/lib/typescript/src/screens/chat-detail/legend/LegendChatMessage.d.ts +5 -3
  47. package/lib/typescript/src/screens/chat-detail/legend/LegendChatMessage.d.ts.map +1 -1
  48. package/lib/typescript/src/screens/chat-detail/messageToolbox/MessageToolboxOverlay.d.ts +2 -0
  49. package/lib/typescript/src/screens/chat-detail/messageToolbox/MessageToolboxOverlay.d.ts.map +1 -1
  50. package/lib/typescript/src/services/resourceCenter.d.ts.map +1 -1
  51. package/lib/typescript/src/store/message.d.ts.map +1 -1
  52. package/package.json +2 -2
  53. package/src/components/ThreadCard/ThreadCard.tsx +0 -2
  54. package/src/components/messages/LinkifiedText.tsx +37 -0
  55. package/src/components/messages/quotedMessage/index.tsx +18 -2
  56. package/src/components/messages/textMessage/index.tsx +18 -27
  57. package/src/core/useChatListener.ts +2 -2
  58. package/src/hooks/message/useMessages.ts +6 -0
  59. package/src/hooks/message/useSendMessage.ts +7 -0
  60. package/src/screens/ResourceCenter/ResourceCenterTabScene.tsx +0 -1
  61. package/src/screens/chat-detail/ChatDetail.tsx +1 -0
  62. package/src/screens/chat-detail/ChatListLegend.tsx +236 -136
  63. package/src/screens/chat-detail/PinnedMessagesSheet.tsx +6 -1
  64. package/src/screens/chat-detail/PinnedMessagesSheetBackup.tsx +3 -1
  65. package/src/screens/chat-detail/legend/LegendChatMessage.tsx +16 -11
  66. package/src/screens/chat-detail/messageToolbox/MessageToolboxOverlay.tsx +47 -2
  67. package/src/services/resourceCenter.ts +77 -36
  68. package/src/store/message.ts +7 -1
@@ -6,7 +6,14 @@ import OpenIMSDK, { MessageType, ViewType } from '@droppii/openim-rn-client-sdk'
6
6
  import { ChatEvent } from "../types/events.js";
7
7
  import { mergeMessages } from "../utils/message.js";
8
8
  import { useConversationStore } from "./conversation.js";
9
- const PAGE_SIZE = 20;
9
+
10
+ // Smaller than a typical "load more" page size elsewhere in the app on
11
+ // purpose: each page becomes a single prepend batch in ChatListLegend, and a
12
+ // smaller batch means fewer newly-inserted rows still unmeasured by the time
13
+ // native layout catches up — shrinks both the size and duration of the
14
+ // visible settle right after a history-prepend flush (see
15
+ // project_chatlistlegend_scroll_debugging memory for the full context).
16
+ const PAGE_SIZE = 15;
10
17
  export const useMessageStore = create()((set, get) => ({
11
18
  messages: [],
12
19
  hasMoreOld: true,
@@ -1 +1 @@
1
- {"version":3,"names":["create","DeviceEventEmitter","OpenIMSDK","MessageType","ViewType","ChatEvent","mergeMessages","useConversationStore","PAGE_SIZE","useMessageStore","set","get","messages","hasMoreOld","hasMoreNew","initLoading","moreOldLoading","moreNewLoading","setMessages","hasMore","pushNewMessage","message","state","updateOneMessage","tmpList","idx","findIndex","msg","clientMsgID","deleteOneMessage","filter","getMoreOldMessages","loadMore","applicationType","conversationId","params","count","startClientMsgID","conversationID","viewType","History","res","getAdvancedHistoryMessageListApp","getState","currentConversationId","messageList","isEnd","error","console","log","getMoreNewMessages","length","getAdvancedHistoryMessageListReverseApp","Promise","resolve","setTimeout","emit","ScrollToBottom","searchMessages","startClientMsgId","searchPrevParams","Search","searchNextParams","searchCurrentParams","clientMsgIDList","findMessageList","searchPrevRes","searchNextRes","currentMessages","findResultItems","find","item","newMessages","ScrollToMessage","clientMessageId","reset","markMessageRevoked","alreadyRevoked","some","contentType","RevokeMessage","MessageRevoked","revokeQuotedReferences","forEach","quoteElem","quoteMessage","atTextElem"],"sourceRoot":"../../../src","sources":["store/message.ts"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["create","DeviceEventEmitter","OpenIMSDK","MessageType","ViewType","ChatEvent","mergeMessages","useConversationStore","PAGE_SIZE","useMessageStore","set","get","messages","hasMoreOld","hasMoreNew","initLoading","moreOldLoading","moreNewLoading","setMessages","hasMore","pushNewMessage","message","state","updateOneMessage","tmpList","idx","findIndex","msg","clientMsgID","deleteOneMessage","filter","getMoreOldMessages","loadMore","applicationType","conversationId","params","count","startClientMsgID","conversationID","viewType","History","res","getAdvancedHistoryMessageListApp","getState","currentConversationId","messageList","isEnd","error","console","log","getMoreNewMessages","length","getAdvancedHistoryMessageListReverseApp","Promise","resolve","setTimeout","emit","ScrollToBottom","searchMessages","startClientMsgId","searchPrevParams","Search","searchNextParams","searchCurrentParams","clientMsgIDList","findMessageList","searchPrevRes","searchNextRes","currentMessages","findResultItems","find","item","newMessages","ScrollToMessage","clientMessageId","reset","markMessageRevoked","alreadyRevoked","some","contentType","RevokeMessage","MessageRevoked","revokeQuotedReferences","forEach","quoteElem","quoteMessage","atTextElem"],"sourceRoot":"../../../src","sources":["store/message.ts"],"mappings":"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","ignoreList":[]}
@@ -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;AAe1D,OAAO,EAIL,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,iCA+KzD,CAAC;AAIH,eAAe,UAAU,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;AAe1D,OAAO,EAIL,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,iCA6KzD,CAAC;AAIH,eAAe,UAAU,CAAC"}
@@ -0,0 +1,11 @@
1
+ export declare const urlTextStyle: {
2
+ color: any;
3
+ };
4
+ /**
5
+ * Splits `text` by `urls` and renders each part as plain or
6
+ * tappable/colored `<Text>` — shared by TextMessage (mention+URL combo)
7
+ * and QuotedMessage (quote+URL combo) so both stay in sync instead of
8
+ * drifting. Returns `<Text>{text}</Text>` unchanged when `urls` is empty.
9
+ */
10
+ export declare function renderLinkifiedText(text: string, urls: string[], onPressUrl: ((url: string) => void) | undefined, keyPrefix: string): import("react").JSX.Element | import("react").JSX.Element[];
11
+ //# sourceMappingURL=LinkifiedText.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"LinkifiedText.d.ts","sourceRoot":"","sources":["../../../../../src/components/messages/LinkifiedText.tsx"],"names":[],"mappings":"AAQA,eAAO,MAAM,YAAY;;CAAoC,CAAC;AAE9D;;;;;GAKG;AACH,wBAAgB,mBAAmB,CACjC,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,MAAM,EAAE,EACd,UAAU,EAAE,CAAC,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,CAAC,GAAG,SAAS,EAC/C,SAAS,EAAE,MAAM,+DAgBlB"}
@@ -1,5 +1,6 @@
1
1
  import { type BaseLegendMessageProps } from '../types';
2
2
  interface QuotedMessageProps extends BaseLegendMessageProps {
3
+ onPressUrl?: (url: string) => void;
3
4
  }
4
5
  declare const QuotedMessage: import("react").MemoExoticComponent<(props: QuotedMessageProps) => import("react").JSX.Element>;
5
6
  export default QuotedMessage;
@@ -1 +1 @@
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
+ {"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;AAwB1E,UAAU,kBAAmB,SAAQ,sBAAsB;IACzD,UAAU,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,CAAC;CACpC;AAED,QAAA,MAAM,aAAa,8CAAgB,kBAAkB,iCAkJnD,CAAC;AAIH,eAAe,aAAa,CAAC"}
@@ -1 +1 @@
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"}
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;AAkB1E,eAAO,MAAM,WAAW,0IASnB,sBAAsB,GAAG;IAAE,UAAU,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,CAAA;CAAE,iCA6HnE,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"useMessages.d.ts","sourceRoot":"","sources":["../../../../../src/hooks/message/useMessages.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,QAAQ,EAAE,MAAM,+BAA+B,CAAC;AAKzD,UAAU,iBAAiB;IACzB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,EAAE,QAAQ,CAAC;CACrB;AAED,eAAO,MAAM,WAAW,GAAI,iDAIzB,iBAAiB;;mCA6CL,OAAO;mCAZP,OAAO;;;;;;CAwDrB,CAAC"}
1
+ {"version":3,"file":"useMessages.d.ts","sourceRoot":"","sources":["../../../../../src/hooks/message/useMessages.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,QAAQ,EAAE,MAAM,+BAA+B,CAAC;AAKzD,UAAU,iBAAiB;IACzB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,EAAE,QAAQ,CAAC;CACrB;AAED,eAAO,MAAM,WAAW,GAAI,iDAIzB,iBAAiB;;mCA6CL,OAAO;mCAZP,OAAO;;;;;;CA8DrB,CAAC"}
@@ -1 +1 @@
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"}
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;4BAoJe,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"}
@@ -1 +1 @@
1
- {"version":3,"file":"ResourceCenterTabScene.d.ts","sourceRoot":"","sources":["../../../../../src/screens/ResourceCenter/ResourceCenterTabScene.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAOvC,OAAO,EAAE,0BAA0B,EAAE,MAAM,kBAAkB,CAAC;AAC9D,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,SAAS,CAAC;AACpD,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,mCAAmC,CAAC;AAEhF,UAAU,KAAK;IACb,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,QAAQ,GAAG,OAAO,CAAC;IAC7B,WAAW,EAAE,0BAA0B,CAAC;IACxC,MAAM,EAAE,oBAAoB,CAAC;IAC7B,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,CAAC;IACnC,cAAc,EAAE,SAAS,CAAC,sBAAsB,GAAG,IAAI,CAAC,CAAC;CAC1D;AAcD,eAAO,MAAM,sBAAsB,yHAS9B,KAAK,iCAqFT,CAAC"}
1
+ {"version":3,"file":"ResourceCenterTabScene.d.ts","sourceRoot":"","sources":["../../../../../src/screens/ResourceCenter/ResourceCenterTabScene.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAOvC,OAAO,EAAE,0BAA0B,EAAE,MAAM,kBAAkB,CAAC;AAC9D,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,SAAS,CAAC;AACpD,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,mCAAmC,CAAC;AAEhF,UAAU,KAAK;IACb,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,QAAQ,GAAG,OAAO,CAAC;IAC7B,WAAW,EAAE,0BAA0B,CAAC;IACxC,MAAM,EAAE,oBAAoB,CAAC;IAC7B,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,CAAC;IACnC,cAAc,EAAE,SAAS,CAAC,sBAAsB,GAAG,IAAI,CAAC,CAAC;CAC1D;AAcD,eAAO,MAAM,sBAAsB,yHAS9B,KAAK,iCAoFT,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"ChatDetail.d.ts","sourceRoot":"","sources":["../../../../../src/screens/chat-detail/ChatDetail.tsx"],"names":[],"mappings":"AAwBA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,SAAS,CAAC;AAkB/C,QAAA,MAAM,UAAU,wQAgBX,eAAe,iCA+LnB,CAAC;AAIF,eAAe,UAAU,CAAC"}
1
+ {"version":3,"file":"ChatDetail.d.ts","sourceRoot":"","sources":["../../../../../src/screens/chat-detail/ChatDetail.tsx"],"names":[],"mappings":"AAwBA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,SAAS,CAAC;AAkB/C,QAAA,MAAM,UAAU,wQAgBX,eAAe,iCAgMnB,CAAC;AAIF,eAAe,UAAU,CAAC"}
@@ -11,6 +11,6 @@ interface ChatListLegendInternalProps extends ChatListProps {
11
11
  }) => Promise<void>;
12
12
  keyboardOffset: number;
13
13
  }
14
- export declare const ChatListLegend: import("react").MemoExoticComponent<({ messages, conversationId, customMessageItemFactory, onLoadMoreOld, moreOldLoading, hasMoreOld, onLoadMoreNew, moreNewLoading, hasMoreNew, onMediaPress, onPressUrl, onLongPress, listRef, freeze, scrollMessageToEnd, keyboardOffset, isLoading, }: ChatListLegendInternalProps) => import("react").JSX.Element>;
14
+ export declare const ChatListLegend: import("react").MemoExoticComponent<({ messages, conversationId, customMessageItemFactory, onLoadMoreOld, moreOldLoading, hasMoreOld, onLoadMoreNew, hasMoreNew, onMediaPress, onPressUrl, onLongPress, listRef, freeze, scrollMessageToEnd, keyboardOffset, isLoading, }: ChatListLegendInternalProps) => import("react").JSX.Element>;
15
15
  export {};
16
16
  //# sourceMappingURL=ChatListLegend.d.ts.map
@@ -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;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,iCA8kB/B,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;AAGjC,OAAO,EACL,KAAK,aAAa,EAEnB,MAAM,8BAA8B,CAAC;AActC,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AA+C7C,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,6QAkBtB,2BAA2B,iCA6qB/B,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"PinnedMessagesSheet.d.ts","sourceRoot":"","sources":["../../../../../src/screens/chat-detail/PinnedMessagesSheet.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAEvC,OAAO,EAAe,KAAK,WAAW,EAAE,MAAM,+BAA+B,CAAC;AAkL9E,MAAM,WAAW,6BAA6B;IAC5C,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,YAAY,EAAE,CAAC,OAAO,EAAE,WAAW,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAC7D,wBAAwB,CAAC,EAAE,CAAC,IAAI,EAAE,WAAW,KAAK,SAAS,CAAC;IAC5D,cAAc,CAAC,EAAE,CAAC,OAAO,EAAE,WAAW,KAAK,IAAI,CAAC;CACjD;AAED,eAAO,MAAM,uBAAuB,GAAI,4EAKrC,6BAA6B,SAmB/B,CAAC"}
1
+ {"version":3,"file":"PinnedMessagesSheet.d.ts","sourceRoot":"","sources":["../../../../../src/screens/chat-detail/PinnedMessagesSheet.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAEvC,OAAO,EAAe,KAAK,WAAW,EAAE,MAAM,+BAA+B,CAAC;AAuL9E,MAAM,WAAW,6BAA6B;IAC5C,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,YAAY,EAAE,CAAC,OAAO,EAAE,WAAW,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAC7D,wBAAwB,CAAC,EAAE,CAAC,IAAI,EAAE,WAAW,KAAK,SAAS,CAAC;IAC5D,cAAc,CAAC,EAAE,CAAC,OAAO,EAAE,WAAW,KAAK,IAAI,CAAC;CACjD;AAED,eAAO,MAAM,uBAAuB,GAAI,4EAKrC,6BAA6B,SAmB/B,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"PinnedMessagesSheetBackup.d.ts","sourceRoot":"","sources":["../../../../../src/screens/chat-detail/PinnedMessagesSheetBackup.tsx"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAEvC,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,+BAA+B,CAAC;AAsNjE,MAAM,WAAW,6BAA6B;IAC5C,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,YAAY,EAAE,CAAC,OAAO,EAAE,WAAW,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAC7D,wBAAwB,CAAC,EAAE,CAAC,IAAI,EAAE,WAAW,KAAK,SAAS,CAAC;CAC7D;AAED,eAAO,MAAM,uBAAuB,GAAI,4DAIrC,6BAA6B,SAkB/B,CAAC"}
1
+ {"version":3,"file":"PinnedMessagesSheetBackup.d.ts","sourceRoot":"","sources":["../../../../../src/screens/chat-detail/PinnedMessagesSheetBackup.tsx"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAEvC,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,+BAA+B,CAAC;AAwNjE,MAAM,WAAW,6BAA6B;IAC5C,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,YAAY,EAAE,CAAC,OAAO,EAAE,WAAW,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAC7D,wBAAwB,CAAC,EAAE,CAAC,IAAI,EAAE,WAAW,KAAK,SAAS,CAAC;CAC7D;AAED,eAAO,MAAM,uBAAuB,GAAI,4DAIrC,6BAA6B,SAkB/B,CAAC"}
@@ -4,13 +4,15 @@ import type { MediaItem } from '../../../hooks/useMediaViewer';
4
4
  import type { GroupPosition } from '../../../utils/legendListMessage';
5
5
  interface LegendChatMessageProps {
6
6
  message: MessageItem;
7
+ /** Stable per-row id (see getMessageRenderId) — bound into onPress/onLongPress locally so those callbacks stay referentially stable across unrelated list re-renders. */
8
+ messageId: string;
7
9
  isOutgoing: boolean;
8
10
  createdAtTime: number;
9
11
  onMediaPress?: (items: MediaItem[], index?: number) => void;
10
12
  onPressUrl?: (url: string) => void;
11
13
  onRetry?: (message: MessageItem) => void;
12
- onPress?: (message: MessageItem) => void;
13
- onLongPress?: () => void;
14
+ onPress?: (messageId: string) => void;
15
+ onLongPress?: (messageId: string, message: MessageItem) => void;
14
16
  customMessageItemFactory?: (m: MessageItem) => ReactNode;
15
17
  isHighlighted?: boolean;
16
18
  isTimeRevealed?: boolean;
@@ -27,6 +29,6 @@ interface LegendChatMessageProps {
27
29
  /** Position within its same-sender cluster — drives the bubble tail. */
28
30
  groupPosition?: GroupPosition;
29
31
  }
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>;
32
+ export declare const LegendChatMessage: import("react").MemoExoticComponent<({ message, messageId, 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>;
31
33
  export {};
32
34
  //# 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,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"}
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,yKAAyK;IACzK,SAAS,EAAE,MAAM,CAAC;IAClB,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,SAAS,EAAE,MAAM,KAAK,IAAI,CAAC;IACtC,WAAW,CAAC,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,WAAW,KAAK,IAAI,CAAC;IAChE,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,oQAkBzB,sBAAsB,wRA2G1B,CAAC"}
@@ -1,11 +1,13 @@
1
1
  import type { MessageToolboxRef } from './types';
2
2
  import type { ReactNode } from 'react';
3
+ import type { SharedValue } from 'react-native-reanimated';
3
4
  import { type MessageItem } from '@droppii/openim-rn-client-sdk';
4
5
  interface MessageToolboxOverlayProps {
5
6
  currentUserId?: string;
6
7
  customMessageItemFactory?: (item: MessageItem) => ReactNode;
7
8
  onPinMessage?: (message: MessageItem) => void;
8
9
  onUnpinMessage?: (message: MessageItem) => void;
10
+ freeze?: SharedValue<boolean>;
9
11
  }
10
12
  export declare const MessageToolboxOverlay: import("react").ForwardRefExoticComponent<MessageToolboxOverlayProps & import("react").RefAttributes<MessageToolboxRef>>;
11
13
  export {};
@@ -1 +1 @@
1
- {"version":3,"file":"MessageToolboxOverlay.d.ts","sourceRoot":"","sources":["../../../../../../src/screens/chat-detail/messageToolbox/MessageToolboxOverlay.tsx"],"names":[],"mappings":"AAiBA,OAAO,KAAK,EAAgB,iBAAiB,EAAE,MAAM,SAAS,CAAC;AAE/D,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAGvC,OAAO,EAEL,KAAK,WAAW,EACjB,MAAM,+BAA+B,CAAC;AAGvC,UAAU,0BAA0B;IAClC,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,wBAAwB,CAAC,EAAE,CAAC,IAAI,EAAE,WAAW,KAAK,SAAS,CAAC;IAC5D,YAAY,CAAC,EAAE,CAAC,OAAO,EAAE,WAAW,KAAK,IAAI,CAAC;IAC9C,cAAc,CAAC,EAAE,CAAC,OAAO,EAAE,WAAW,KAAK,IAAI,CAAC;CACjD;AAED,eAAO,MAAM,qBAAqB,0HAgKjC,CAAC"}
1
+ {"version":3,"file":"MessageToolboxOverlay.d.ts","sourceRoot":"","sources":["../../../../../../src/screens/chat-detail/messageToolbox/MessageToolboxOverlay.tsx"],"names":[],"mappings":"AAmBA,OAAO,KAAK,EAAgB,iBAAiB,EAAE,MAAM,SAAS,CAAC;AAE/D,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AACvC,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAG3D,OAAO,EAEL,KAAK,WAAW,EACjB,MAAM,+BAA+B,CAAC;AAavC,UAAU,0BAA0B;IAClC,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,wBAAwB,CAAC,EAAE,CAAC,IAAI,EAAE,WAAW,KAAK,SAAS,CAAC;IAC5D,YAAY,CAAC,EAAE,CAAC,OAAO,EAAE,WAAW,KAAK,IAAI,CAAC;IAC9C,cAAc,CAAC,EAAE,CAAC,OAAO,EAAE,WAAW,KAAK,IAAI,CAAC;IAIhD,MAAM,CAAC,EAAE,WAAW,CAAC,OAAO,CAAC,CAAC;CAC/B;AAED,eAAO,MAAM,qBAAqB,0HA4LjC,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"resourceCenter.d.ts","sourceRoot":"","sources":["../../../../src/services/resourceCenter.ts"],"names":[],"mappings":"AAIA,OAAO,EAEL,KAAK,eAAe,EAGpB,KAAK,sBAAsB,EAC5B,MAAM,eAAe,CAAC;AA+GvB,yBAAiB,qBAAqB,CAAC;IAC9B,MAAM,oBAAoB,GAC/B,KAAK,sBAAsB,KAC1B,OAAO,CAAC;QAAE,KAAK,EAAE,eAAe,EAAE,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,OAAO,CAAA;KAAE,CAWtE,CAAC;CACH"}
1
+ {"version":3,"file":"resourceCenter.d.ts","sourceRoot":"","sources":["../../../../src/services/resourceCenter.ts"],"names":[],"mappings":"AAIA,OAAO,EAEL,KAAK,eAAe,EAGpB,KAAK,sBAAsB,EAC5B,MAAM,eAAe,CAAC;AAwJvB,yBAAiB,qBAAqB,CAAC;IAC9B,MAAM,oBAAoB,GAC/B,KAAK,sBAAsB,KAC1B,OAAO,CAAC;QAAE,KAAK,EAAE,eAAe,EAAE,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,OAAO,CAAA;KAAE,CAWtE,CAAC;CACH"}
@@ -1 +1 @@
1
- {"version":3,"file":"message.d.ts","sourceRoot":"","sources":["../../../../src/store/message.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAGV,YAAY,EACb,MAAM,eAAe,CAAC;AAMvB,eAAO,MAAM,eAAe,2EAgMzB,CAAC;AAEJ,eAAO,MAAM,kBAAkB,GAAI,aAAa,MAAM,SAiBrD,CAAC"}
1
+ {"version":3,"file":"message.d.ts","sourceRoot":"","sources":["../../../../src/store/message.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAGV,YAAY,EACb,MAAM,eAAe,CAAC;AAYvB,eAAO,MAAM,eAAe,2EAgMzB,CAAC;AAEJ,eAAO,MAAM,kBAAkB,GAAI,aAAa,MAAM,SAiBrD,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@droppii-org/chat-mobile",
3
- "version": "0.2.88",
3
+ "version": "0.2.90",
4
4
  "description": "Droppii chat mobile",
5
5
  "keywords": [
6
6
  "react-native",
@@ -70,7 +70,7 @@
70
70
  },
71
71
  "dependencies": {
72
72
  "@droppii/openim-rn-client-sdk": "git+ssh://git@github.com/droppii/open-im-sdk-reactnative.git#v1.0.0-rc39",
73
- "@legendapp/list": "^3.0.6",
73
+ "@legendapp/list": "^3.3.10",
74
74
  "axios": "^1.16.1",
75
75
  "lodash": "^4.18.1",
76
76
  "react-native-fs": "^2.20.0",
@@ -51,8 +51,6 @@ const ThreadCard = memo(({ item, onPress }: ThreadCardProps) => {
51
51
  groupAtType,
52
52
  } = conversation || {};
53
53
 
54
- console.log('ThreadCard', conversation);
55
-
56
54
  const { data: isJoinedGroup } = useIsJoinedGroup(groupID);
57
55
  const isNotInGroup = groupID ? !isJoinedGroup : false;
58
56
 
@@ -0,0 +1,37 @@
1
+ import { Text } from 'react-native';
2
+ import { KColors } from '@droppii/libs';
3
+ import { splitTextByUrls } from '../../utils/url';
4
+
5
+ // Same color LinkMessage uses for a URL substring — any message body that
6
+ // can contain a URL alongside other content (mention text, quote reply
7
+ // text) should look tappable/colored the same way a pure UrlTextMessage
8
+ // does.
9
+ export const urlTextStyle = { color: KColors.primary.normal };
10
+
11
+ /**
12
+ * Splits `text` by `urls` and renders each part as plain or
13
+ * tappable/colored `<Text>` — shared by TextMessage (mention+URL combo)
14
+ * and QuotedMessage (quote+URL combo) so both stay in sync instead of
15
+ * drifting. Returns `<Text>{text}</Text>` unchanged when `urls` is empty.
16
+ */
17
+ export function renderLinkifiedText(
18
+ text: string,
19
+ urls: string[],
20
+ onPressUrl: ((url: string) => void) | undefined,
21
+ keyPrefix: string
22
+ ) {
23
+ if (!urls.length) return <Text key={keyPrefix}>{text}</Text>;
24
+ return splitTextByUrls(text, urls).map((part, i) =>
25
+ part.isUrl ? (
26
+ <Text
27
+ key={`${keyPrefix}-url-${i}`}
28
+ style={urlTextStyle}
29
+ onPress={() => onPressUrl?.(part.text)}
30
+ >
31
+ {part.text}
32
+ </Text>
33
+ ) : (
34
+ <Text key={`${keyPrefix}-text-${i}`}>{part.text}</Text>
35
+ )
36
+ );
37
+ }
@@ -20,11 +20,15 @@ import {
20
20
  parseUrlMetadata,
21
21
  } from '../../../utils/messageUtils';
22
22
  import { getFileIcon, getMimeType } from '../../../utils/imageUtils';
23
+ import { extractUrls } from '../../../utils/url';
24
+ import { renderLinkifiedText } from '../LinkifiedText';
23
25
  import { useUserStore } from '../../../store';
24
26
  import { useChatDetailContext } from '../../../context';
25
27
  import { ChatEvent } from '../../../types/events';
26
28
 
27
- interface QuotedMessageProps extends BaseLegendMessageProps {}
29
+ interface QuotedMessageProps extends BaseLegendMessageProps {
30
+ onPressUrl?: (url: string) => void;
31
+ }
28
32
 
29
33
  const QuotedMessage = memo((props: QuotedMessageProps) => {
30
34
  const {
@@ -34,6 +38,7 @@ const QuotedMessage = memo((props: QuotedMessageProps) => {
34
38
  isHighlighted,
35
39
  isTimeRevealed,
36
40
  groupPosition,
41
+ onPressUrl,
37
42
  } = props || {};
38
43
 
39
44
  const { conversation } = useChatDetailContext();
@@ -41,10 +46,21 @@ const QuotedMessage = memo((props: QuotedMessageProps) => {
41
46
  const currentUserId = useUserStore((s) => s.user?.userID);
42
47
 
43
48
  const quotedMessage = message?.quoteElem?.quoteMessage;
49
+ const replyText = message?.quoteElem?.text || '';
44
50
 
45
51
  const messagePreview = getMessagePreviewParts(quotedMessage);
46
52
  const timeLabel = formatMessageTime(createdAtTime);
47
53
 
54
+ // Same native-first/regex-fallback pattern as TextMessage's mention+URL
55
+ // combo — see useSendMessage.ts (this reply's own text, not the quoted
56
+ // message being previewed above it).
57
+ const urls = useMemo(() => {
58
+ const nativeUrls = message?.quoteElem?.urls;
59
+ return nativeUrls && nativeUrls.length > 0
60
+ ? nativeUrls
61
+ : extractUrls(replyText);
62
+ }, [message?.quoteElem?.urls, replyText]);
63
+
48
64
  const imageUrl = useMemo(() => {
49
65
  switch (quotedMessage?.contentType) {
50
66
  case MessageType.PictureMessage:
@@ -137,7 +153,7 @@ const QuotedMessage = memo((props: QuotedMessageProps) => {
137
153
  </KContainer.View>
138
154
  </KContainer.Touchable>
139
155
  <KLabel.Text typo="TextMdNormal" color={CHAT_BUBBLE_COLORS.text}>
140
- {message?.quoteElem?.text || ''}
156
+ {renderLinkifiedText(replyText, urls, onPressUrl, 'reply')}
141
157
  </KLabel.Text>
142
158
  </KContainer.View>
143
159
  </BubbleTailRow>
@@ -13,7 +13,8 @@ import { deserializeMentionRanges } from '../../../utils/mentionSerializer';
13
13
  import type { IMessageItemEx } from '../../../types/chat';
14
14
  import { QuotedMessagePreviewStrip } from '../quotedMessage/QuotedMessagePreviewStrip';
15
15
  import { LinkPreviewCard } from '../linkMessage/LinkPreviewCard';
16
- import { extractUrls, splitTextByUrls } from '../../../utils/url';
16
+ import { extractUrls } from '../../../utils/url';
17
+ import { renderLinkifiedText } from '../LinkifiedText';
17
18
 
18
19
  const parseMessageEx = (ex?: string): IMessageItemEx | undefined => {
19
20
  if (!ex) return undefined;
@@ -77,10 +78,20 @@ export const TextMessage = memo(
77
78
  // `messageText` unchanged below, same as before this feature existed.
78
79
  // Widening this to auto-linkify every TextMessage is a separate,
79
80
  // deliberate product decision, not a side effect of this fix.
80
- const urls = useMemo(
81
- () => (segments ? extractUrls(messageText) : []),
82
- [segments, messageText]
83
- );
81
+ //
82
+ // Prefers the native `atTextElem.urls` (SDK rc39+, populated on send —
83
+ // see useSendMessage.ts) when present: it's the protocol-level source of
84
+ // truth, readable by any client, not just ours. Falls back to the
85
+ // client-side regex for messages from a sender that hasn't populated it
86
+ // yet (older app version, or another client that doesn't set it) —
87
+ // never a regression from the pre-native-field behavior.
88
+ const urls = useMemo(() => {
89
+ if (!segments) return [];
90
+ const nativeUrls = message.atTextElem?.urls;
91
+ return nativeUrls && nativeUrls.length > 0
92
+ ? nativeUrls
93
+ : extractUrls(messageText);
94
+ }, [segments, messageText, message.atTextElem?.urls]);
84
95
 
85
96
  if (!messageText?.trim()) {
86
97
  return null;
@@ -90,22 +101,8 @@ export const TextMessage = memo(
90
101
  // a URL — split further so it gets the same tappable/colored treatment
91
102
  // LinkMessage gives a pure URL message, instead of sitting there as
92
103
  // unstyled black text next to a colored mention.
93
- const renderTextRun = (text: string, keyPrefix: string) => {
94
- if (!urls.length) return <Text key={keyPrefix}>{text}</Text>;
95
- return splitTextByUrls(text, urls).map((part, i) =>
96
- part.isUrl ? (
97
- <Text
98
- key={`${keyPrefix}-url-${i}`}
99
- style={urlTextStyle}
100
- onPress={() => onPressUrl?.(part.text)}
101
- >
102
- {part.text}
103
- </Text>
104
- ) : (
105
- <Text key={`${keyPrefix}-text-${i}`}>{part.text}</Text>
106
- )
107
- );
108
- };
104
+ const renderTextRun = (text: string, keyPrefix: string) =>
105
+ renderLinkifiedText(text, urls, onPressUrl, keyPrefix);
109
106
 
110
107
  return (
111
108
  <>
@@ -177,9 +174,3 @@ const styles = StyleSheet.create({
177
174
  // TextInput, so none of the nested-Text-in-TextInput bug class applies —
178
175
  // nesting styled Text here is unconditionally safe.
179
176
  const mentionTextStyle = { color: KColors.palette.primary.w400 };
180
-
181
- // Same color LinkMessage uses for a URL substring — a mention message's
182
- // plain-text run can contain a URL too (mention+URL combo, see
183
- // useSendMessage.ts's doc comment), and it should look tappable/colored
184
- // the same way there as it does in a pure UrlTextMessage.
185
- const urlTextStyle = { color: KColors.primary.normal };
@@ -59,7 +59,7 @@ export const useChatListener = () => {
59
59
 
60
60
  const onConversationChanged = useCallback(
61
61
  (conversations: ConversationItem[]) => {
62
- console.log('[Listener] OnConversationChanged', conversations);
62
+ // console.log('[Listener] OnConversationChanged', conversations);
63
63
 
64
64
  // return; // TEMPORARILY DISABLED: OnConversationChanged/OnNewConversation can
65
65
  const oldMap = useConversationStore.getState().map;
@@ -69,7 +69,7 @@ export const useChatListener = () => {
69
69
  const latestMsg: MessageItem | null = conversation.latestMsg
70
70
  ? JSON.parse(conversation.latestMsg)
71
71
  : null;
72
- console.log('[latestMsg] OnConversationChanged', latestMsg);
72
+ // console.log('[latestMsg] OnConversationChanged', latestMsg);
73
73
 
74
74
  // Same rule as useMessages: bot-flow automation noise (isInternal) or
75
75
  // a group-notification content type in a Bot conversation must not
@@ -72,6 +72,12 @@ export const useMessages = ({
72
72
 
73
73
  useEffect(() => {
74
74
  if (!conversationId || !applicationType) return;
75
+ // Reset before fetching, not after — a prior conversation's
76
+ // messages/hasMoreOld/hasMoreNew must be cleared before this effect's
77
+ // own fetch starts, not left to hook-declaration-order luck relative to
78
+ // whatever else also runs on a conversationId change (e.g. ChatDetail's
79
+ // setCurrentConversation effect).
80
+ useMessageStore.getState().reset();
75
81
  if (startClientMsgId) {
76
82
  searchMessages({
77
83
  applicationType,
@@ -165,12 +165,18 @@ export const useSendMessage = () => {
165
165
  atUserIDList: serialized.atUserIDList,
166
166
  atUsersInfo: serialized.atUsersInfo,
167
167
  message: quotedMessage,
168
+ urls,
168
169
  });
169
170
  setQuotedMessage(undefined);
170
171
  } else if (quotedMessage) {
172
+ // `urls` (native AtTextElem.urls-equivalent for QuoteElem, SDK
173
+ // rc39+) lets QuotedMessage's render side highlight/tap a link
174
+ // inside the reply text — previously this branch did zero URL
175
+ // detection at all, not even client-side.
171
176
  message = await createQuotedMessage({
172
177
  text: plainText || '',
173
178
  message: quotedMessage,
179
+ urls,
174
180
  });
175
181
  setQuotedMessage(undefined);
176
182
  } else if (hasMentions && groupID) {
@@ -185,6 +191,7 @@ export const useSendMessage = () => {
185
191
  text: plainText || '',
186
192
  atUserIDList: serialized.atUserIDList,
187
193
  atUsersInfo: serialized.atUsersInfo,
194
+ urls,
188
195
  });
189
196
  } else if (isUrlMessage) {
190
197
  message = await createUrlTextMessage(plainText || '', urls);
@@ -53,7 +53,6 @@ export const ResourceCenterTabScene = memo(
53
53
  refetch,
54
54
  refreshFirstPage,
55
55
  } = useThreadResources(recvID, contentType, chatType);
56
-
57
56
  const onPressGridItem = useCallback(
58
57
  (index: number) => {
59
58
  const mediaItems = items.map((item) => ({
@@ -243,6 +243,7 @@ const ChatDetail = memo(
243
243
  customMessageItemFactory={customMessageItemFactory}
244
244
  onPinMessage={pinMessage}
245
245
  onUnpinMessage={unpinMessage}
246
+ freeze={freeze}
246
247
  />
247
248
  </KContainer.Page>
248
249
  );