@droppii-org/chat-mobile 0.2.80 → 0.2.82

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 (228) hide show
  1. package/lib/module/components/ThreadCard/MentionBadge.js +24 -0
  2. package/lib/module/components/ThreadCard/MentionBadge.js.map +1 -0
  3. package/lib/module/components/ThreadCard/ThreadCard.js +5 -1
  4. package/lib/module/components/ThreadCard/ThreadCard.js.map +1 -1
  5. package/lib/module/components/messages/linkMessage/LinkPreviewCard.js +67 -0
  6. package/lib/module/components/messages/linkMessage/LinkPreviewCard.js.map +1 -0
  7. package/lib/module/components/messages/linkMessage/index.js +21 -68
  8. package/lib/module/components/messages/linkMessage/index.js.map +1 -1
  9. package/lib/module/components/messages/quotedMessage/QuotedMessagePreviewStrip.js +152 -0
  10. package/lib/module/components/messages/quotedMessage/QuotedMessagePreviewStrip.js.map +1 -0
  11. package/lib/module/components/messages/textMessage/index.js +102 -8
  12. package/lib/module/components/messages/textMessage/index.js.map +1 -1
  13. package/lib/module/config/api-endpoints.js +2 -1
  14. package/lib/module/config/api-endpoints.js.map +1 -1
  15. package/lib/module/core/useChatListener.js +1 -1
  16. package/lib/module/core/useChatListener.js.map +1 -1
  17. package/lib/module/hooks/contacts/useSearchContacts.js +50 -0
  18. package/lib/module/hooks/contacts/useSearchContacts.js.map +1 -0
  19. package/lib/module/hooks/message/useSendMessage.js +64 -3
  20. package/lib/module/hooks/message/useSendMessage.js.map +1 -1
  21. package/lib/module/hooks/query-keys.js +8 -0
  22. package/lib/module/hooks/query-keys.js.map +1 -1
  23. package/lib/module/hooks/useChatCompose.js +3 -2
  24. package/lib/module/hooks/useChatCompose.js.map +1 -1
  25. package/lib/module/screens/SearchConversation/ContactResultItem.js +119 -0
  26. package/lib/module/screens/SearchConversation/ContactResultItem.js.map +1 -0
  27. package/lib/module/screens/SearchConversation/SearchAllResult.js +26 -20
  28. package/lib/module/screens/SearchConversation/SearchAllResult.js.map +1 -1
  29. package/lib/module/screens/SearchConversation/SearchCommunityResult.js +79 -0
  30. package/lib/module/screens/SearchConversation/SearchCommunityResult.js.map +1 -0
  31. package/lib/module/screens/SearchConversation/SearchContactsResult.js +117 -0
  32. package/lib/module/screens/SearchConversation/SearchContactsResult.js.map +1 -0
  33. package/lib/module/screens/SearchConversation/SearchEmpty.js +2 -0
  34. package/lib/module/screens/SearchConversation/SearchEmpty.js.map +1 -1
  35. package/lib/module/screens/SearchConversation/SearchMessagesResult.js +1 -8
  36. package/lib/module/screens/SearchConversation/SearchMessagesResult.js.map +1 -1
  37. package/lib/module/screens/SearchConversation/SearchResultItem.js +2 -0
  38. package/lib/module/screens/SearchConversation/SearchResultItem.js.map +1 -1
  39. package/lib/module/screens/SearchConversation/TabResult.js +24 -7
  40. package/lib/module/screens/SearchConversation/TabResult.js.map +1 -1
  41. package/lib/module/screens/SearchConversation/index.js +6 -2
  42. package/lib/module/screens/SearchConversation/index.js.map +1 -1
  43. package/lib/module/screens/SearchConversation/types.js +1 -0
  44. package/lib/module/screens/SearchConversation/types.js.map +1 -1
  45. package/lib/module/screens/chat-detail/ChatComposer.js +170 -48
  46. package/lib/module/screens/chat-detail/ChatComposer.js.map +1 -1
  47. package/lib/module/screens/chat-detail/ChatListLegend.js +1 -0
  48. package/lib/module/screens/chat-detail/ChatListLegend.js.map +1 -1
  49. package/lib/module/screens/chat-detail/components/ChatMessageInput.js +23 -2
  50. package/lib/module/screens/chat-detail/components/ChatMessageInput.js.map +1 -1
  51. package/lib/module/screens/chat-detail/components/MentionHighlightAdapter.js +51 -0
  52. package/lib/module/screens/chat-detail/components/MentionHighlightAdapter.js.map +1 -0
  53. package/lib/module/screens/chat-detail/components/MentionSuggestionItem.js +49 -0
  54. package/lib/module/screens/chat-detail/components/MentionSuggestionItem.js.map +1 -0
  55. package/lib/module/screens/chat-detail/components/MentionSuggestionList.js +114 -0
  56. package/lib/module/screens/chat-detail/components/MentionSuggestionList.js.map +1 -0
  57. package/lib/module/screens/chat-detail/hooks/useChatComposerState.js +8 -0
  58. package/lib/module/screens/chat-detail/hooks/useChatComposerState.js.map +1 -1
  59. package/lib/module/screens/chat-detail/hooks/useMentionComposer.js +251 -0
  60. package/lib/module/screens/chat-detail/hooks/useMentionComposer.js.map +1 -0
  61. package/lib/module/screens/chat-detail/legend/LegendChatMessage.js +5 -1
  62. package/lib/module/screens/chat-detail/legend/LegendChatMessage.js.map +1 -1
  63. package/lib/module/screens/chat-detail/messageToolbox/MessageToolboxWrapper.js +11 -1
  64. package/lib/module/screens/chat-detail/messageToolbox/MessageToolboxWrapper.js.map +1 -1
  65. package/lib/module/services/endpoints.js +2 -1
  66. package/lib/module/services/endpoints.js.map +1 -1
  67. package/lib/module/services/mentionSearch.js +49 -0
  68. package/lib/module/services/mentionSearch.js.map +1 -0
  69. package/lib/module/services/message.js +6 -1
  70. package/lib/module/services/message.js.map +1 -1
  71. package/lib/module/translation/resources/i18n.js +11 -0
  72. package/lib/module/translation/resources/i18n.js.map +1 -1
  73. package/lib/module/types/chat.js +8 -0
  74. package/lib/module/types/chat.js.map +1 -1
  75. package/lib/module/types/mention.js +2 -0
  76. package/lib/module/types/mention.js.map +1 -0
  77. package/lib/module/utils/dateTimeUtils.js +10 -0
  78. package/lib/module/utils/dateTimeUtils.js.map +1 -1
  79. package/lib/module/utils/highlightSearch.js +6 -2
  80. package/lib/module/utils/highlightSearch.js.map +1 -1
  81. package/lib/module/utils/mentionSerializer.js +113 -0
  82. package/lib/module/utils/mentionSerializer.js.map +1 -0
  83. package/lib/module/utils/mentions/index.js +7 -0
  84. package/lib/module/utils/mentions/index.js.map +1 -0
  85. package/lib/module/utils/mentions/mentionDetector.js +49 -0
  86. package/lib/module/utils/mentions/mentionDetector.js.map +1 -0
  87. package/lib/module/utils/mentions/mentionDiff.js +66 -0
  88. package/lib/module/utils/mentions/mentionDiff.js.map +1 -0
  89. package/lib/module/utils/mentions/mentionRange.js +188 -0
  90. package/lib/module/utils/mentions/mentionRange.js.map +1 -0
  91. package/lib/module/utils/mentions/mentionTokenize.js +50 -0
  92. package/lib/module/utils/mentions/mentionTokenize.js.map +1 -0
  93. package/lib/module/utils/messageUtils.js +16 -3
  94. package/lib/module/utils/messageUtils.js.map +1 -1
  95. package/lib/module/utils/url.js +33 -0
  96. package/lib/module/utils/url.js.map +1 -1
  97. package/lib/typescript/src/components/ThreadCard/MentionBadge.d.ts +7 -0
  98. package/lib/typescript/src/components/ThreadCard/MentionBadge.d.ts.map +1 -0
  99. package/lib/typescript/src/components/ThreadCard/ThreadCard.d.ts.map +1 -1
  100. package/lib/typescript/src/components/messages/linkMessage/LinkPreviewCard.d.ts +16 -0
  101. package/lib/typescript/src/components/messages/linkMessage/LinkPreviewCard.d.ts.map +1 -0
  102. package/lib/typescript/src/components/messages/linkMessage/index.d.ts.map +1 -1
  103. package/lib/typescript/src/components/messages/quotedMessage/QuotedMessagePreviewStrip.d.ts +13 -0
  104. package/lib/typescript/src/components/messages/quotedMessage/QuotedMessagePreviewStrip.d.ts.map +1 -0
  105. package/lib/typescript/src/components/messages/textMessage/index.d.ts +3 -1
  106. package/lib/typescript/src/components/messages/textMessage/index.d.ts.map +1 -1
  107. package/lib/typescript/src/config/api-endpoints.d.ts +1 -0
  108. package/lib/typescript/src/config/api-endpoints.d.ts.map +1 -1
  109. package/lib/typescript/src/hooks/contacts/useSearchContacts.d.ts +221 -0
  110. package/lib/typescript/src/hooks/contacts/useSearchContacts.d.ts.map +1 -0
  111. package/lib/typescript/src/hooks/message/useSendMessage.d.ts +5 -2
  112. package/lib/typescript/src/hooks/message/useSendMessage.d.ts.map +1 -1
  113. package/lib/typescript/src/hooks/query-keys.d.ts +8 -0
  114. package/lib/typescript/src/hooks/query-keys.d.ts.map +1 -1
  115. package/lib/typescript/src/hooks/useChatCompose.d.ts +2 -1
  116. package/lib/typescript/src/hooks/useChatCompose.d.ts.map +1 -1
  117. package/lib/typescript/src/screens/SearchConversation/ContactResultItem.d.ts +9 -0
  118. package/lib/typescript/src/screens/SearchConversation/ContactResultItem.d.ts.map +1 -0
  119. package/lib/typescript/src/screens/SearchConversation/SearchAllResult.d.ts +3 -2
  120. package/lib/typescript/src/screens/SearchConversation/SearchAllResult.d.ts.map +1 -1
  121. package/lib/typescript/src/screens/SearchConversation/SearchCommunityResult.d.ts +7 -0
  122. package/lib/typescript/src/screens/SearchConversation/SearchCommunityResult.d.ts.map +1 -0
  123. package/lib/typescript/src/screens/SearchConversation/SearchContactsResult.d.ts +8 -0
  124. package/lib/typescript/src/screens/SearchConversation/SearchContactsResult.d.ts.map +1 -0
  125. package/lib/typescript/src/screens/SearchConversation/SearchEmpty.d.ts.map +1 -1
  126. package/lib/typescript/src/screens/SearchConversation/SearchMessagesResult.d.ts.map +1 -1
  127. package/lib/typescript/src/screens/SearchConversation/SearchResultItem.d.ts.map +1 -1
  128. package/lib/typescript/src/screens/SearchConversation/TabResult.d.ts +4 -2
  129. package/lib/typescript/src/screens/SearchConversation/TabResult.d.ts.map +1 -1
  130. package/lib/typescript/src/screens/SearchConversation/index.d.ts +4 -2
  131. package/lib/typescript/src/screens/SearchConversation/index.d.ts.map +1 -1
  132. package/lib/typescript/src/screens/SearchConversation/types.d.ts +2 -1
  133. package/lib/typescript/src/screens/SearchConversation/types.d.ts.map +1 -1
  134. package/lib/typescript/src/screens/chat-detail/ChatComposer.d.ts.map +1 -1
  135. package/lib/typescript/src/screens/chat-detail/ChatListLegend.d.ts.map +1 -1
  136. package/lib/typescript/src/screens/chat-detail/components/ChatMessageInput.d.ts +10 -2
  137. package/lib/typescript/src/screens/chat-detail/components/ChatMessageInput.d.ts.map +1 -1
  138. package/lib/typescript/src/screens/chat-detail/components/MentionHighlightAdapter.d.ts +29 -0
  139. package/lib/typescript/src/screens/chat-detail/components/MentionHighlightAdapter.d.ts.map +1 -0
  140. package/lib/typescript/src/screens/chat-detail/components/MentionSuggestionItem.d.ts +8 -0
  141. package/lib/typescript/src/screens/chat-detail/components/MentionSuggestionItem.d.ts.map +1 -0
  142. package/lib/typescript/src/screens/chat-detail/components/MentionSuggestionList.d.ts +12 -0
  143. package/lib/typescript/src/screens/chat-detail/components/MentionSuggestionList.d.ts.map +1 -0
  144. package/lib/typescript/src/screens/chat-detail/hooks/useChatComposerState.d.ts +1 -1
  145. package/lib/typescript/src/screens/chat-detail/hooks/useChatComposerState.d.ts.map +1 -1
  146. package/lib/typescript/src/screens/chat-detail/hooks/useMentionComposer.d.ts +48 -0
  147. package/lib/typescript/src/screens/chat-detail/hooks/useMentionComposer.d.ts.map +1 -0
  148. package/lib/typescript/src/screens/chat-detail/legend/LegendChatMessage.d.ts.map +1 -1
  149. package/lib/typescript/src/screens/chat-detail/messageToolbox/MessageToolboxWrapper.d.ts.map +1 -1
  150. package/lib/typescript/src/services/endpoints.d.ts +1 -0
  151. package/lib/typescript/src/services/endpoints.d.ts.map +1 -1
  152. package/lib/typescript/src/services/mentionSearch.d.ts +15 -0
  153. package/lib/typescript/src/services/mentionSearch.d.ts.map +1 -0
  154. package/lib/typescript/src/services/message.d.ts +1 -1
  155. package/lib/typescript/src/services/message.d.ts.map +1 -1
  156. package/lib/typescript/src/translation/resources/i18n.d.ts.map +1 -1
  157. package/lib/typescript/src/types/chat.d.ts +50 -0
  158. package/lib/typescript/src/types/chat.d.ts.map +1 -1
  159. package/lib/typescript/src/types/mention.d.ts +65 -0
  160. package/lib/typescript/src/types/mention.d.ts.map +1 -0
  161. package/lib/typescript/src/utils/dateTimeUtils.d.ts +2 -0
  162. package/lib/typescript/src/utils/dateTimeUtils.d.ts.map +1 -1
  163. package/lib/typescript/src/utils/highlightSearch.d.ts.map +1 -1
  164. package/lib/typescript/src/utils/mentionSerializer.d.ts +78 -0
  165. package/lib/typescript/src/utils/mentionSerializer.d.ts.map +1 -0
  166. package/lib/typescript/src/utils/mentions/index.d.ts +5 -0
  167. package/lib/typescript/src/utils/mentions/index.d.ts.map +1 -0
  168. package/lib/typescript/src/utils/mentions/mentionDetector.d.ts +18 -0
  169. package/lib/typescript/src/utils/mentions/mentionDetector.d.ts.map +1 -0
  170. package/lib/typescript/src/utils/mentions/mentionDiff.d.ts +20 -0
  171. package/lib/typescript/src/utils/mentions/mentionDiff.d.ts.map +1 -0
  172. package/lib/typescript/src/utils/mentions/mentionRange.d.ts +86 -0
  173. package/lib/typescript/src/utils/mentions/mentionRange.d.ts.map +1 -0
  174. package/lib/typescript/src/utils/mentions/mentionTokenize.d.ts +29 -0
  175. package/lib/typescript/src/utils/mentions/mentionTokenize.d.ts.map +1 -0
  176. package/lib/typescript/src/utils/messageUtils.d.ts.map +1 -1
  177. package/lib/typescript/src/utils/url.d.ts +12 -0
  178. package/lib/typescript/src/utils/url.d.ts.map +1 -1
  179. package/package.json +3 -1
  180. package/src/build-ignore.d.ts +2 -0
  181. package/src/components/ThreadCard/MentionBadge.tsx +28 -0
  182. package/src/components/ThreadCard/ThreadCard.tsx +3 -0
  183. package/src/components/messages/linkMessage/LinkPreviewCard.tsx +92 -0
  184. package/src/components/messages/linkMessage/index.tsx +25 -89
  185. package/src/components/messages/quotedMessage/QuotedMessagePreviewStrip.tsx +168 -0
  186. package/src/components/messages/textMessage/index.tsx +124 -4
  187. package/src/config/api-endpoints.ts +2 -0
  188. package/src/core/useChatListener.ts +1 -1
  189. package/src/hooks/contacts/useSearchContacts.ts +66 -0
  190. package/src/hooks/message/useSendMessage.ts +60 -1
  191. package/src/hooks/query-keys.ts +12 -0
  192. package/src/hooks/useChatCompose.ts +115 -107
  193. package/src/screens/SearchConversation/ContactResultItem.tsx +128 -0
  194. package/src/screens/SearchConversation/SearchAllResult.tsx +38 -24
  195. package/src/screens/SearchConversation/SearchCommunityResult.tsx +96 -0
  196. package/src/screens/SearchConversation/SearchContactsResult.tsx +155 -0
  197. package/src/screens/SearchConversation/SearchEmpty.tsx +2 -0
  198. package/src/screens/SearchConversation/SearchMessagesResult.tsx +1 -6
  199. package/src/screens/SearchConversation/SearchResultItem.tsx +6 -1
  200. package/src/screens/SearchConversation/TabResult.tsx +40 -5
  201. package/src/screens/SearchConversation/index.tsx +10 -2
  202. package/src/screens/SearchConversation/types.tsx +1 -0
  203. package/src/screens/chat-detail/ChatComposer.tsx +201 -67
  204. package/src/screens/chat-detail/ChatListLegend.tsx +1 -0
  205. package/src/screens/chat-detail/components/ChatMessageInput.tsx +35 -2
  206. package/src/screens/chat-detail/components/MentionHighlightAdapter.tsx +57 -0
  207. package/src/screens/chat-detail/components/MentionSuggestionItem.tsx +53 -0
  208. package/src/screens/chat-detail/components/MentionSuggestionList.tsx +133 -0
  209. package/src/screens/chat-detail/hooks/useChatComposerState.ts +7 -1
  210. package/src/screens/chat-detail/hooks/useMentionComposer.ts +344 -0
  211. package/src/screens/chat-detail/legend/LegendChatMessage.tsx +7 -1
  212. package/src/screens/chat-detail/messageToolbox/MessageToolboxWrapper.tsx +22 -4
  213. package/src/services/endpoints.ts +1 -0
  214. package/src/services/mentionSearch.ts +57 -0
  215. package/src/services/message.ts +9 -1
  216. package/src/translation/resources/i18n.ts +12 -0
  217. package/src/types/chat.ts +52 -0
  218. package/src/types/mention.ts +70 -0
  219. package/src/utils/dateTimeUtils.ts +15 -0
  220. package/src/utils/highlightSearch.ts +12 -2
  221. package/src/utils/mentionSerializer.ts +155 -0
  222. package/src/utils/mentions/index.ts +16 -0
  223. package/src/utils/mentions/mentionDetector.ts +58 -0
  224. package/src/utils/mentions/mentionDiff.ts +95 -0
  225. package/src/utils/mentions/mentionRange.ts +207 -0
  226. package/src/utils/mentions/mentionTokenize.ts +53 -0
  227. package/src/utils/messageUtils.ts +21 -10
  228. package/src/utils/url.ts +30 -0
@@ -0,0 +1,221 @@
1
+ import type { ContactCategory, DChatApplicationType, IContactSearchItem } from '../../types/chat';
2
+ import type { BaseResponse } from '../../types/auth';
3
+ interface IUseSearchContactsProps {
4
+ query: string;
5
+ applicationType: DChatApplicationType;
6
+ type?: ContactCategory;
7
+ pageSize?: number;
8
+ }
9
+ export declare const useSearchContacts: ({ query, applicationType, type, pageSize, }: IUseSearchContactsProps) => {
10
+ error: Error;
11
+ isError: true;
12
+ isPending: false;
13
+ isLoading: false;
14
+ isLoadingError: false;
15
+ isRefetchError: true;
16
+ isSuccess: false;
17
+ isPlaceholderData: false;
18
+ status: "error";
19
+ fetchNextPage: (options?: import("@tanstack/query-core").FetchNextPageOptions) => Promise<import("@tanstack/query-core").InfiniteQueryObserverResult<import("@tanstack/query-core").InfiniteData<BaseResponse<IContactSearchItem[]>, unknown>, Error>>;
20
+ fetchPreviousPage: (options?: import("@tanstack/query-core").FetchPreviousPageOptions) => Promise<import("@tanstack/query-core").InfiniteQueryObserverResult<import("@tanstack/query-core").InfiniteData<BaseResponse<IContactSearchItem[]>, unknown>, Error>>;
21
+ hasNextPage: boolean;
22
+ hasPreviousPage: boolean;
23
+ isFetchNextPageError: boolean;
24
+ isFetchingNextPage: boolean;
25
+ isFetchPreviousPageError: boolean;
26
+ isFetchingPreviousPage: boolean;
27
+ dataUpdatedAt: number;
28
+ errorUpdatedAt: number;
29
+ failureCount: number;
30
+ failureReason: Error;
31
+ errorUpdateCount: number;
32
+ isFetched: boolean;
33
+ isFetchedAfterMount: boolean;
34
+ isFetching: boolean;
35
+ isInitialLoading: boolean;
36
+ isPaused: boolean;
37
+ isRefetching: boolean;
38
+ isStale: boolean;
39
+ isEnabled: boolean;
40
+ refetch: (options?: import("@tanstack/query-core").RefetchOptions) => Promise<import("@tanstack/query-core").QueryObserverResult<import("@tanstack/query-core").InfiniteData<BaseResponse<IContactSearchItem[]>, unknown>, Error>>;
41
+ fetchStatus: import("@tanstack/query-core").FetchStatus;
42
+ promise: Promise<import("@tanstack/query-core").InfiniteData<BaseResponse<IContactSearchItem[]>, unknown>>;
43
+ dataFlatten: IContactSearchItem[];
44
+ } | {
45
+ error: null;
46
+ isError: false;
47
+ isPending: false;
48
+ isLoading: false;
49
+ isLoadingError: false;
50
+ isRefetchError: false;
51
+ isFetchNextPageError: false;
52
+ isFetchPreviousPageError: false;
53
+ isSuccess: true;
54
+ isPlaceholderData: false;
55
+ status: "success";
56
+ fetchNextPage: (options?: import("@tanstack/query-core").FetchNextPageOptions) => Promise<import("@tanstack/query-core").InfiniteQueryObserverResult<import("@tanstack/query-core").InfiniteData<BaseResponse<IContactSearchItem[]>, unknown>, Error>>;
57
+ fetchPreviousPage: (options?: import("@tanstack/query-core").FetchPreviousPageOptions) => Promise<import("@tanstack/query-core").InfiniteQueryObserverResult<import("@tanstack/query-core").InfiniteData<BaseResponse<IContactSearchItem[]>, unknown>, Error>>;
58
+ hasNextPage: boolean;
59
+ hasPreviousPage: boolean;
60
+ isFetchingNextPage: boolean;
61
+ isFetchingPreviousPage: boolean;
62
+ dataUpdatedAt: number;
63
+ errorUpdatedAt: number;
64
+ failureCount: number;
65
+ failureReason: Error;
66
+ errorUpdateCount: number;
67
+ isFetched: boolean;
68
+ isFetchedAfterMount: boolean;
69
+ isFetching: boolean;
70
+ isInitialLoading: boolean;
71
+ isPaused: boolean;
72
+ isRefetching: boolean;
73
+ isStale: boolean;
74
+ isEnabled: boolean;
75
+ refetch: (options?: import("@tanstack/query-core").RefetchOptions) => Promise<import("@tanstack/query-core").QueryObserverResult<import("@tanstack/query-core").InfiniteData<BaseResponse<IContactSearchItem[]>, unknown>, Error>>;
76
+ fetchStatus: import("@tanstack/query-core").FetchStatus;
77
+ promise: Promise<import("@tanstack/query-core").InfiniteData<BaseResponse<IContactSearchItem[]>, unknown>>;
78
+ dataFlatten: IContactSearchItem[];
79
+ } | {
80
+ error: Error;
81
+ isError: true;
82
+ isPending: false;
83
+ isLoading: false;
84
+ isLoadingError: true;
85
+ isRefetchError: false;
86
+ isFetchNextPageError: false;
87
+ isFetchPreviousPageError: false;
88
+ isSuccess: false;
89
+ isPlaceholderData: false;
90
+ status: "error";
91
+ fetchNextPage: (options?: import("@tanstack/query-core").FetchNextPageOptions) => Promise<import("@tanstack/query-core").InfiniteQueryObserverResult<import("@tanstack/query-core").InfiniteData<BaseResponse<IContactSearchItem[]>, unknown>, Error>>;
92
+ fetchPreviousPage: (options?: import("@tanstack/query-core").FetchPreviousPageOptions) => Promise<import("@tanstack/query-core").InfiniteQueryObserverResult<import("@tanstack/query-core").InfiniteData<BaseResponse<IContactSearchItem[]>, unknown>, Error>>;
93
+ hasNextPage: boolean;
94
+ hasPreviousPage: boolean;
95
+ isFetchingNextPage: boolean;
96
+ isFetchingPreviousPage: boolean;
97
+ dataUpdatedAt: number;
98
+ errorUpdatedAt: number;
99
+ failureCount: number;
100
+ failureReason: Error;
101
+ errorUpdateCount: number;
102
+ isFetched: boolean;
103
+ isFetchedAfterMount: boolean;
104
+ isFetching: boolean;
105
+ isInitialLoading: boolean;
106
+ isPaused: boolean;
107
+ isRefetching: boolean;
108
+ isStale: boolean;
109
+ isEnabled: boolean;
110
+ refetch: (options?: import("@tanstack/query-core").RefetchOptions) => Promise<import("@tanstack/query-core").QueryObserverResult<import("@tanstack/query-core").InfiniteData<BaseResponse<IContactSearchItem[]>, unknown>, Error>>;
111
+ fetchStatus: import("@tanstack/query-core").FetchStatus;
112
+ promise: Promise<import("@tanstack/query-core").InfiniteData<BaseResponse<IContactSearchItem[]>, unknown>>;
113
+ dataFlatten: IContactSearchItem[];
114
+ } | {
115
+ error: null;
116
+ isError: false;
117
+ isPending: true;
118
+ isLoading: true;
119
+ isLoadingError: false;
120
+ isRefetchError: false;
121
+ isFetchNextPageError: false;
122
+ isFetchPreviousPageError: false;
123
+ isSuccess: false;
124
+ isPlaceholderData: false;
125
+ status: "pending";
126
+ fetchNextPage: (options?: import("@tanstack/query-core").FetchNextPageOptions) => Promise<import("@tanstack/query-core").InfiniteQueryObserverResult<import("@tanstack/query-core").InfiniteData<BaseResponse<IContactSearchItem[]>, unknown>, Error>>;
127
+ fetchPreviousPage: (options?: import("@tanstack/query-core").FetchPreviousPageOptions) => Promise<import("@tanstack/query-core").InfiniteQueryObserverResult<import("@tanstack/query-core").InfiniteData<BaseResponse<IContactSearchItem[]>, unknown>, Error>>;
128
+ hasNextPage: boolean;
129
+ hasPreviousPage: boolean;
130
+ isFetchingNextPage: boolean;
131
+ isFetchingPreviousPage: boolean;
132
+ dataUpdatedAt: number;
133
+ errorUpdatedAt: number;
134
+ failureCount: number;
135
+ failureReason: Error;
136
+ errorUpdateCount: number;
137
+ isFetched: boolean;
138
+ isFetchedAfterMount: boolean;
139
+ isFetching: boolean;
140
+ isInitialLoading: boolean;
141
+ isPaused: boolean;
142
+ isRefetching: boolean;
143
+ isStale: boolean;
144
+ isEnabled: boolean;
145
+ refetch: (options?: import("@tanstack/query-core").RefetchOptions) => Promise<import("@tanstack/query-core").QueryObserverResult<import("@tanstack/query-core").InfiniteData<BaseResponse<IContactSearchItem[]>, unknown>, Error>>;
146
+ fetchStatus: import("@tanstack/query-core").FetchStatus;
147
+ promise: Promise<import("@tanstack/query-core").InfiniteData<BaseResponse<IContactSearchItem[]>, unknown>>;
148
+ dataFlatten: IContactSearchItem[];
149
+ } | {
150
+ error: null;
151
+ isError: false;
152
+ isPending: true;
153
+ isLoadingError: false;
154
+ isRefetchError: false;
155
+ isFetchNextPageError: false;
156
+ isFetchPreviousPageError: false;
157
+ isSuccess: false;
158
+ isPlaceholderData: false;
159
+ status: "pending";
160
+ fetchNextPage: (options?: import("@tanstack/query-core").FetchNextPageOptions) => Promise<import("@tanstack/query-core").InfiniteQueryObserverResult<import("@tanstack/query-core").InfiniteData<BaseResponse<IContactSearchItem[]>, unknown>, Error>>;
161
+ fetchPreviousPage: (options?: import("@tanstack/query-core").FetchPreviousPageOptions) => Promise<import("@tanstack/query-core").InfiniteQueryObserverResult<import("@tanstack/query-core").InfiniteData<BaseResponse<IContactSearchItem[]>, unknown>, Error>>;
162
+ hasNextPage: boolean;
163
+ hasPreviousPage: boolean;
164
+ isFetchingNextPage: boolean;
165
+ isFetchingPreviousPage: boolean;
166
+ dataUpdatedAt: number;
167
+ errorUpdatedAt: number;
168
+ failureCount: number;
169
+ failureReason: Error;
170
+ errorUpdateCount: number;
171
+ isFetched: boolean;
172
+ isFetchedAfterMount: boolean;
173
+ isFetching: boolean;
174
+ isLoading: boolean;
175
+ isInitialLoading: boolean;
176
+ isPaused: boolean;
177
+ isRefetching: boolean;
178
+ isStale: boolean;
179
+ isEnabled: boolean;
180
+ refetch: (options?: import("@tanstack/query-core").RefetchOptions) => Promise<import("@tanstack/query-core").QueryObserverResult<import("@tanstack/query-core").InfiniteData<BaseResponse<IContactSearchItem[]>, unknown>, Error>>;
181
+ fetchStatus: import("@tanstack/query-core").FetchStatus;
182
+ promise: Promise<import("@tanstack/query-core").InfiniteData<BaseResponse<IContactSearchItem[]>, unknown>>;
183
+ dataFlatten: IContactSearchItem[];
184
+ } | {
185
+ isError: false;
186
+ error: null;
187
+ isPending: false;
188
+ isLoading: false;
189
+ isLoadingError: false;
190
+ isRefetchError: false;
191
+ isSuccess: true;
192
+ isPlaceholderData: true;
193
+ isFetchNextPageError: false;
194
+ isFetchPreviousPageError: false;
195
+ status: "success";
196
+ fetchNextPage: (options?: import("@tanstack/query-core").FetchNextPageOptions) => Promise<import("@tanstack/query-core").InfiniteQueryObserverResult<import("@tanstack/query-core").InfiniteData<BaseResponse<IContactSearchItem[]>, unknown>, Error>>;
197
+ fetchPreviousPage: (options?: import("@tanstack/query-core").FetchPreviousPageOptions) => Promise<import("@tanstack/query-core").InfiniteQueryObserverResult<import("@tanstack/query-core").InfiniteData<BaseResponse<IContactSearchItem[]>, unknown>, Error>>;
198
+ hasNextPage: boolean;
199
+ hasPreviousPage: boolean;
200
+ isFetchingNextPage: boolean;
201
+ isFetchingPreviousPage: boolean;
202
+ dataUpdatedAt: number;
203
+ errorUpdatedAt: number;
204
+ failureCount: number;
205
+ failureReason: Error;
206
+ errorUpdateCount: number;
207
+ isFetched: boolean;
208
+ isFetchedAfterMount: boolean;
209
+ isFetching: boolean;
210
+ isInitialLoading: boolean;
211
+ isPaused: boolean;
212
+ isRefetching: boolean;
213
+ isStale: boolean;
214
+ isEnabled: boolean;
215
+ refetch: (options?: import("@tanstack/query-core").RefetchOptions) => Promise<import("@tanstack/query-core").QueryObserverResult<import("@tanstack/query-core").InfiniteData<BaseResponse<IContactSearchItem[]>, unknown>, Error>>;
216
+ fetchStatus: import("@tanstack/query-core").FetchStatus;
217
+ promise: Promise<import("@tanstack/query-core").InfiniteData<BaseResponse<IContactSearchItem[]>, unknown>>;
218
+ dataFlatten: IContactSearchItem[];
219
+ };
220
+ export {};
221
+ //# sourceMappingURL=useSearchContacts.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useSearchContacts.d.ts","sourceRoot":"","sources":["../../../../../src/hooks/contacts/useSearchContacts.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EACV,eAAe,EACf,oBAAoB,EACpB,kBAAkB,EAEnB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAGrD,UAAU,uBAAuB;IAC/B,KAAK,EAAE,MAAM,CAAC;IACd,eAAe,EAAE,oBAAoB,CAAC;IACtC,IAAI,CAAC,EAAE,eAAe,CAAC;IACvB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,eAAO,MAAM,iBAAiB,GAAI,6CAK/B,uBAAuB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAuCzB,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;AAyBvD,eAAO,MAAM,cAAc;6EA4CpB;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;KACvB;4BAmGe,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,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;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,14 @@ 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
+ };
47
+ export declare const contactQueryKeys: {
48
+ all: readonly ["contacts"];
49
+ search: (query: string, type?: string) => readonly ["contacts", "search", string, string];
50
+ };
43
51
  export declare const groupQueryKeys: {
44
52
  all: readonly ["groups"];
45
53
  public: () => readonly ["groups", "public"];
@@ -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,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;AAW9B,wBAAgB,cAAc;;;;;;;;;;;;;;;;;;;;;;;;EAkL7B"}
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"}
@@ -0,0 +1,9 @@
1
+ import { type IContactSearchItem } from '../../types/chat';
2
+ interface IContactResultItemProps {
3
+ item: IContactSearchItem;
4
+ onPressSearchContact?: (item: IContactSearchItem) => void;
5
+ searchTerm?: string;
6
+ }
7
+ declare const ContactResultItem: import("react").MemoExoticComponent<(props: IContactResultItemProps) => import("react").JSX.Element>;
8
+ export default ContactResultItem;
9
+ //# sourceMappingURL=ContactResultItem.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ContactResultItem.d.ts","sourceRoot":"","sources":["../../../../../src/screens/SearchConversation/ContactResultItem.tsx"],"names":[],"mappings":"AAUA,OAAO,EAAmB,KAAK,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AAiB5E,UAAU,uBAAuB;IAC/B,IAAI,EAAE,kBAAkB,CAAC;IACzB,oBAAoB,CAAC,EAAE,CAAC,IAAI,EAAE,kBAAkB,KAAK,IAAI,CAAC;IAC1D,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,QAAA,MAAM,iBAAiB,8CAAgB,uBAAuB,iCAsF5D,CAAC;AAEH,eAAe,iBAAiB,CAAC"}
@@ -1,10 +1,11 @@
1
1
  import { SearchConversationTabResultType } from './types';
2
- import type { ISearchMessageItem } from '../../types/chat';
2
+ import type { IContactSearchItem, ISearchMessageItem } from '../../types/chat';
3
3
  interface SearchAllResultProps {
4
4
  searchTerm: string;
5
5
  handleChangeTab: (key: SearchConversationTabResultType) => void;
6
6
  onPressItem?: (item: ISearchMessageItem) => void;
7
+ onPressSearchContact?: (item: IContactSearchItem) => void;
7
8
  }
8
- declare const SearchAllResult: import("react").MemoExoticComponent<({ searchTerm, handleChangeTab, onPressItem }: SearchAllResultProps) => import("react").JSX.Element>;
9
+ declare const SearchAllResult: import("react").MemoExoticComponent<({ searchTerm, handleChangeTab, onPressItem, onPressSearchContact, }: SearchAllResultProps) => import("react").JSX.Element>;
9
10
  export default SearchAllResult;
10
11
  //# sourceMappingURL=SearchAllResult.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"SearchAllResult.d.ts","sourceRoot":"","sources":["../../../../../src/screens/SearchConversation/SearchAllResult.tsx"],"names":[],"mappings":"AAYA,OAAO,EAAE,+BAA+B,EAAE,MAAM,SAAS,CAAC;AAC1D,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AAM3D,UAAU,oBAAoB;IAC5B,UAAU,EAAE,MAAM,CAAC;IACnB,eAAe,EAAE,CAAC,GAAG,EAAE,+BAA+B,KAAK,IAAI,CAAC;IAChE,WAAW,CAAC,EAAE,CAAC,IAAI,EAAE,kBAAkB,KAAK,IAAI,CAAC;CAClD;AAUD,QAAA,MAAM,eAAe,qFAC4B,oBAAoB,iCA8GpE,CAAC;AAEF,eAAe,eAAe,CAAC"}
1
+ {"version":3,"file":"SearchAllResult.d.ts","sourceRoot":"","sources":["../../../../../src/screens/SearchConversation/SearchAllResult.tsx"],"names":[],"mappings":"AAaA,OAAO,EAAE,+BAA+B,EAAE,MAAM,SAAS,CAAC;AAC1D,OAAO,KAAK,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AAO/E,UAAU,oBAAoB;IAC5B,UAAU,EAAE,MAAM,CAAC;IACnB,eAAe,EAAE,CAAC,GAAG,EAAE,+BAA+B,KAAK,IAAI,CAAC;IAChE,WAAW,CAAC,EAAE,CAAC,IAAI,EAAE,kBAAkB,KAAK,IAAI,CAAC;IACjD,oBAAoB,CAAC,EAAE,CAAC,IAAI,EAAE,kBAAkB,KAAK,IAAI,CAAC;CAC3D;AAUD,QAAA,MAAM,eAAe,4GAMhB,oBAAoB,iCAwHxB,CAAC;AAEF,eAAe,eAAe,CAAC"}
@@ -0,0 +1,7 @@
1
+ interface ISearchCommunityResultProps {
2
+ searchTerm: string;
3
+ onPressGroup?: (groupId: string) => void;
4
+ }
5
+ declare const SearchCommunityResult: import("react").MemoExoticComponent<({ searchTerm, onPressGroup }: ISearchCommunityResultProps) => import("react").JSX.Element>;
6
+ export default SearchCommunityResult;
7
+ //# sourceMappingURL=SearchCommunityResult.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SearchCommunityResult.d.ts","sourceRoot":"","sources":["../../../../../src/screens/SearchConversation/SearchCommunityResult.tsx"],"names":[],"mappings":"AAUA,UAAU,2BAA2B;IACnC,UAAU,EAAE,MAAM,CAAC;IACnB,YAAY,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;CAC1C;AAID,QAAA,MAAM,qBAAqB,qEACM,2BAA2B,iCAqE3D,CAAC;AAEF,eAAe,qBAAqB,CAAC"}
@@ -0,0 +1,8 @@
1
+ import { type IContactSearchItem } from '../../types/chat';
2
+ interface ISearchContactsResultProps {
3
+ searchTerm: string;
4
+ onPressSearchContact?: (item: IContactSearchItem) => void;
5
+ }
6
+ declare const SearchContactsResult: import("react").MemoExoticComponent<({ searchTerm, onPressSearchContact }: ISearchContactsResultProps) => import("react").JSX.Element>;
7
+ export default SearchContactsResult;
8
+ //# sourceMappingURL=SearchContactsResult.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SearchContactsResult.d.ts","sourceRoot":"","sources":["../../../../../src/screens/SearchConversation/SearchContactsResult.tsx"],"names":[],"mappings":"AAWA,OAAO,EAAmB,KAAK,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AAM5E,UAAU,0BAA0B;IAClC,UAAU,EAAE,MAAM,CAAC;IACnB,oBAAoB,CAAC,EAAE,CAAC,IAAI,EAAE,kBAAkB,KAAK,IAAI,CAAC;CAC3D;AAyBD,QAAA,MAAM,oBAAoB,6EACe,0BAA0B,iCA6FlE,CAAC;AAEF,eAAe,oBAAoB,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"SearchEmpty.d.ts","sourceRoot":"","sources":["../../../../../src/screens/SearchConversation/SearchEmpty.tsx"],"names":[],"mappings":"AAMA,OAAO,EAAE,+BAA+B,EAAE,MAAM,SAAS,CAAC;AAE1D,KAAK,gBAAgB,GAAG;IACtB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,UAAU,CAAC,EAAE,+BAA+B,CAAC;CAC9C,CAAC;AAEF,eAAO,MAAM,WAAW,mEACO,gBAAgB,iCA6B9C,CAAC"}
1
+ {"version":3,"file":"SearchEmpty.d.ts","sourceRoot":"","sources":["../../../../../src/screens/SearchConversation/SearchEmpty.tsx"],"names":[],"mappings":"AAMA,OAAO,EAAE,+BAA+B,EAAE,MAAM,SAAS,CAAC;AAE1D,KAAK,gBAAgB,GAAG;IACtB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,UAAU,CAAC,EAAE,+BAA+B,CAAC;CAC9C,CAAC;AAEF,eAAO,MAAM,WAAW,mEACO,gBAAgB,iCA+B9C,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"SearchMessagesResult.d.ts","sourceRoot":"","sources":["../../../../../src/screens/SearchConversation/SearchMessagesResult.tsx"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AAK3D,UAAU,0BAA0B;IAClC,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,CAAC,EAAE,CAAC,IAAI,EAAE,kBAAkB,KAAK,IAAI,CAAC;CAClD;AACD,QAAA,MAAM,oBAAoB,oEACM,0BAA0B,iCAuEzD,CAAC;AAEF,eAAe,oBAAoB,CAAC"}
1
+ {"version":3,"file":"SearchMessagesResult.d.ts","sourceRoot":"","sources":["../../../../../src/screens/SearchConversation/SearchMessagesResult.tsx"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AAK3D,UAAU,0BAA0B;IAClC,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,CAAC,EAAE,CAAC,IAAI,EAAE,kBAAkB,KAAK,IAAI,CAAC;CAClD;AACD,QAAA,MAAM,oBAAoB,oEACM,0BAA0B,iCAkEzD,CAAC;AAEF,eAAe,oBAAoB,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"SearchResultItem.d.ts","sourceRoot":"","sources":["../../../../../src/screens/SearchConversation/SearchResultItem.tsx"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AAE3D,OAAO,EAAE,+BAA+B,EAAE,MAAM,SAAS,CAAC;AAc1D,UAAU,sBAAsB;IAC9B,IAAI,EAAE,kBAAkB,CAAC;IACzB,aAAa,EAAE,+BAA+B,CAAC;IAC/C,WAAW,CAAC,EAAE,CAAC,IAAI,EAAE,kBAAkB,KAAK,IAAI,CAAC;IACjD,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AACD,QAAA,MAAM,gBAAgB,8CAAgB,sBAAsB,iCAwG1D,CAAC;AAEH,eAAe,gBAAgB,CAAC"}
1
+ {"version":3,"file":"SearchResultItem.d.ts","sourceRoot":"","sources":["../../../../../src/screens/SearchConversation/SearchResultItem.tsx"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AAE3D,OAAO,EAAE,+BAA+B,EAAE,MAAM,SAAS,CAAC;AAc1D,UAAU,sBAAsB;IAC9B,IAAI,EAAE,kBAAkB,CAAC;IACzB,aAAa,EAAE,+BAA+B,CAAC;IAC/C,WAAW,CAAC,EAAE,CAAC,IAAI,EAAE,kBAAkB,KAAK,IAAI,CAAC;IACjD,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AACD,QAAA,MAAM,gBAAgB,8CAAgB,sBAAsB,iCA6G1D,CAAC;AAEH,eAAe,gBAAgB,CAAC"}
@@ -1,8 +1,10 @@
1
- import type { ISearchMessageItem } from '../../types/chat';
1
+ import type { IContactSearchItem, ISearchMessageItem } from '../../types/chat';
2
2
  interface ISearchConversationTabResultProps {
3
3
  searchTerm: string;
4
4
  onPressItem?: (item: ISearchMessageItem) => void;
5
+ onPressSearchContact?: (item: IContactSearchItem) => void;
6
+ onPressGroup?: (groupId: string) => void;
5
7
  }
6
- declare const SearchConversationTabResult: import("react").MemoExoticComponent<({ searchTerm, onPressItem }: ISearchConversationTabResultProps) => import("react").JSX.Element>;
8
+ declare const SearchConversationTabResult: import("react").MemoExoticComponent<({ searchTerm, onPressItem, onPressSearchContact, onPressGroup, }: ISearchConversationTabResultProps) => import("react").JSX.Element>;
7
9
  export default SearchConversationTabResult;
8
10
  //# sourceMappingURL=TabResult.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"TabResult.d.ts","sourceRoot":"","sources":["../../../../../src/screens/SearchConversation/TabResult.tsx"],"names":[],"mappings":"AAcA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AAI3D,UAAU,iCAAiC;IACzC,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,CAAC,EAAE,CAAC,IAAI,EAAE,kBAAkB,KAAK,IAAI,CAAC;CAClD;AAsCD,QAAA,MAAM,2BAA2B,oEACD,iCAAiC,iCAwDhE,CAAC;AAEF,eAAe,2BAA2B,CAAC"}
1
+ {"version":3,"file":"TabResult.d.ts","sourceRoot":"","sources":["../../../../../src/screens/SearchConversation/TabResult.tsx"],"names":[],"mappings":"AAgBA,OAAO,KAAK,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AAI/E,UAAU,iCAAiC;IACzC,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,CAAC,EAAE,CAAC,IAAI,EAAE,kBAAkB,KAAK,IAAI,CAAC;IACjD,oBAAoB,CAAC,EAAE,CAAC,IAAI,EAAE,kBAAkB,KAAK,IAAI,CAAC;IAC1D,YAAY,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;CAC1C;AA6CD,QAAA,MAAM,2BAA2B,yGAM5B,iCAAiC,iCA2ErC,CAAC;AAEF,eAAe,2BAA2B,CAAC"}
@@ -1,7 +1,9 @@
1
- import type { ISearchMessageItem } from '../../types/chat';
1
+ import type { IContactSearchItem, ISearchMessageItem } from '../../types/chat';
2
2
  interface SearchConversationScreenProps {
3
3
  onPressItem?: (item: ISearchMessageItem) => void;
4
+ onPressSearchContact?: (item: IContactSearchItem) => void;
5
+ onPressGroup?: (groupId: string) => void;
4
6
  }
5
- declare const SearchConversationScreen: import("react").MemoExoticComponent<({ onPressItem }: SearchConversationScreenProps) => import("react").JSX.Element>;
7
+ declare const SearchConversationScreen: import("react").MemoExoticComponent<({ onPressItem, onPressSearchContact, onPressGroup, }: SearchConversationScreenProps) => import("react").JSX.Element>;
6
8
  export default SearchConversationScreen;
7
9
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/screens/SearchConversation/index.tsx"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AAE3D,UAAU,6BAA6B;IACrC,WAAW,CAAC,EAAE,CAAC,IAAI,EAAE,kBAAkB,KAAK,IAAI,CAAC;CAClD;AACD,QAAA,MAAM,wBAAwB,wDACV,6BAA6B,iCAuDhD,CAAC;AAEF,eAAe,wBAAwB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/screens/SearchConversation/index.tsx"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AAE/E,UAAU,6BAA6B;IACrC,WAAW,CAAC,EAAE,CAAC,IAAI,EAAE,kBAAkB,KAAK,IAAI,CAAC;IACjD,oBAAoB,CAAC,EAAE,CAAC,IAAI,EAAE,kBAAkB,KAAK,IAAI,CAAC;IAC1D,YAAY,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;CAC1C;AACD,QAAA,MAAM,wBAAwB,6FAKzB,6BAA6B,iCAyDjC,CAAC;AAEF,eAAe,wBAAwB,CAAC"}
@@ -1,6 +1,7 @@
1
1
  export declare enum SearchConversationTabResultType {
2
2
  All = "all",
3
3
  Conversations = "conversations",
4
- Messages = "messages"
4
+ Messages = "messages",
5
+ Community = "community"
5
6
  }
6
7
  //# sourceMappingURL=types.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../../src/screens/SearchConversation/types.tsx"],"names":[],"mappings":"AAAA,oBAAY,+BAA+B;IACzC,GAAG,QAAQ;IACX,aAAa,kBAAkB;IAC/B,QAAQ,aAAa;CACtB"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../../src/screens/SearchConversation/types.tsx"],"names":[],"mappings":"AAAA,oBAAY,+BAA+B;IACzC,GAAG,QAAQ;IACX,aAAa,kBAAkB;IAC/B,QAAQ,aAAa;IACrB,SAAS,cAAc;CACxB"}
@@ -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;AAwB5E,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,iCA2gB7B,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;AA8C7C,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,iCA2gB/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;AAEjC,OAAO,EAAc,KAAK,aAAa,EAAE,MAAM,8BAA8B,CAAC;AAc9E,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AA8C7C,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,iCA4gB/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,EACzC,MAAM,cAAc,CAAC;AAQtB,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,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,8LAaxB,qBAAqB,iCA+DzB,CAAC"}
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,4 +1,4 @@
1
- export type ActivePanelType = 'attachment' | 'sticker' | null;
1
+ export type ActivePanelType = 'attachment' | 'sticker' | 'mention' | null;
2
2
  interface UseChatComposerStateReturn {
3
3
  activePanelType: ActivePanelType;
4
4
  setActivePanelType: (type: ActivePanelType) => void;
@@ -1 +1 @@
1
- {"version":3,"file":"useChatComposerState.d.ts","sourceRoot":"","sources":["../../../../../../src/screens/chat-detail/hooks/useChatComposerState.ts"],"names":[],"mappings":"AAEA,MAAM,MAAM,eAAe,GAAG,YAAY,GAAG,SAAS,GAAG,IAAI,CAAC;AAE9D,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"}
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"}