@droppii-org/chat-sdk 0.1.72 → 0.1.74

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 (343) hide show
  1. package/dist/components/conversation-detail/ConversationDetailInput.d.ts.map +1 -1
  2. package/dist/components/conversation-detail/ConversationDetailInput.js +6 -2
  3. package/dist/components/conversation-detail/PinnedMessageBar.d.ts.map +1 -1
  4. package/dist/components/conversation-detail/PinnedMessageBar.js +23 -20
  5. package/dist/components/conversation-detail/PinnedMessageItem.d.ts.map +1 -1
  6. package/dist/components/conversation-detail/PinnedMessageItem.js +1 -5
  7. package/dist/hooks/conversation/useBotMainMenu.d.ts +0 -1
  8. package/dist/hooks/conversation/useBotMainMenu.d.ts.map +1 -1
  9. package/dist/hooks/conversation/useBotMainMenu.js +0 -10
  10. package/dist/hooks/conversation/useSwitchToCsTeam.d.ts +6 -1
  11. package/dist/hooks/conversation/useSwitchToCsTeam.d.ts.map +1 -1
  12. package/dist/hooks/conversation/useSwitchToCsTeam.js +9 -4
  13. package/dist/hooks/message/useMessage.d.ts.map +1 -1
  14. package/dist/hooks/message/useMessage.js +21 -5
  15. package/dist/index.d.ts +5 -6
  16. package/dist/index.d.ts.map +1 -1
  17. package/dist/index.js +5 -5
  18. package/dist/services/query.d.ts +0 -1
  19. package/dist/services/query.d.ts.map +1 -1
  20. package/dist/services/query.js +0 -1
  21. package/dist/styles/global.css +1 -1
  22. package/dist/tsconfig.tsbuildinfo +1 -1
  23. package/package.json +127 -126
  24. package/dist/assets/svg/cannedResponse.d.ts +0 -7
  25. package/dist/assets/svg/cannedResponse.d.ts.map +0 -1
  26. package/dist/assets/svg/cannedResponse.js +0 -3
  27. package/dist/assets/svg/cannedResponse.tsx +0 -48
  28. package/dist/assets/svg/expand.d.ts +0 -7
  29. package/dist/assets/svg/expand.d.ts.map +0 -1
  30. package/dist/assets/svg/expand.js +0 -2
  31. package/dist/assets/svg/expand.tsx +0 -44
  32. package/dist/components/biz-inbox/BizInboxHeader.d.ts +0 -3
  33. package/dist/components/biz-inbox/BizInboxHeader.d.ts.map +0 -1
  34. package/dist/components/biz-inbox/BizInboxHeader.js +0 -8
  35. package/dist/components/biz-inbox/BizThreadAvatar.d.ts +0 -11
  36. package/dist/components/biz-inbox/BizThreadAvatar.d.ts.map +0 -1
  37. package/dist/components/biz-inbox/BizThreadAvatar.js +0 -12
  38. package/dist/components/biz-inbox/BizThreadCard.d.ts +0 -8
  39. package/dist/components/biz-inbox/BizThreadCard.d.ts.map +0 -1
  40. package/dist/components/biz-inbox/BizThreadCard.js +0 -30
  41. package/dist/components/biz-inbox/BizThreadList.d.ts +0 -12
  42. package/dist/components/biz-inbox/BizThreadList.d.ts.map +0 -1
  43. package/dist/components/biz-inbox/BizThreadList.js +0 -36
  44. package/dist/components/biz-inbox/BizThreadTitle.d.ts +0 -10
  45. package/dist/components/biz-inbox/BizThreadTitle.d.ts.map +0 -1
  46. package/dist/components/biz-inbox/BizThreadTitle.js +0 -10
  47. package/dist/components/biz-inbox/index.d.ts +0 -10
  48. package/dist/components/biz-inbox/index.d.ts.map +0 -1
  49. package/dist/components/biz-inbox/index.js +0 -5
  50. package/dist/components/biz-thread-detail/BizAttachmentPreview.d.ts +0 -9
  51. package/dist/components/biz-thread-detail/BizAttachmentPreview.d.ts.map +0 -1
  52. package/dist/components/biz-thread-detail/BizAttachmentPreview.js +0 -70
  53. package/dist/components/biz-thread-detail/BizImagePreview.d.ts +0 -9
  54. package/dist/components/biz-thread-detail/BizImagePreview.d.ts.map +0 -1
  55. package/dist/components/biz-thread-detail/BizImagePreview.js +0 -39
  56. package/dist/components/biz-thread-detail/BizImageViewer.d.ts +0 -8
  57. package/dist/components/biz-thread-detail/BizImageViewer.d.ts.map +0 -1
  58. package/dist/components/biz-thread-detail/BizImageViewer.js +0 -35
  59. package/dist/components/biz-thread-detail/BizLinkInputPreview.d.ts +0 -7
  60. package/dist/components/biz-thread-detail/BizLinkInputPreview.d.ts.map +0 -1
  61. package/dist/components/biz-thread-detail/BizLinkInputPreview.js +0 -16
  62. package/dist/components/biz-thread-detail/BizLinkMessageCard.d.ts +0 -7
  63. package/dist/components/biz-thread-detail/BizLinkMessageCard.d.ts.map +0 -1
  64. package/dist/components/biz-thread-detail/BizLinkMessageCard.js +0 -17
  65. package/dist/components/biz-thread-detail/BizLinkTextContent.d.ts +0 -6
  66. package/dist/components/biz-thread-detail/BizLinkTextContent.d.ts.map +0 -1
  67. package/dist/components/biz-thread-detail/BizLinkTextContent.js +0 -11
  68. package/dist/components/biz-thread-detail/BizMessageBubble.d.ts +0 -11
  69. package/dist/components/biz-thread-detail/BizMessageBubble.d.ts.map +0 -1
  70. package/dist/components/biz-thread-detail/BizMessageBubble.js +0 -15
  71. package/dist/components/biz-thread-detail/BizMessageContent.d.ts +0 -7
  72. package/dist/components/biz-thread-detail/BizMessageContent.d.ts.map +0 -1
  73. package/dist/components/biz-thread-detail/BizMessageContent.js +0 -125
  74. package/dist/components/biz-thread-detail/BizMessageList.d.ts +0 -7
  75. package/dist/components/biz-thread-detail/BizMessageList.d.ts.map +0 -1
  76. package/dist/components/biz-thread-detail/BizMessageList.js +0 -35
  77. package/dist/components/biz-thread-detail/BizMoreOptionItem.d.ts +0 -8
  78. package/dist/components/biz-thread-detail/BizMoreOptionItem.d.ts.map +0 -1
  79. package/dist/components/biz-thread-detail/BizMoreOptionItem.js +0 -19
  80. package/dist/components/biz-thread-detail/BizMoreOptionPanel.d.ts +0 -10
  81. package/dist/components/biz-thread-detail/BizMoreOptionPanel.d.ts.map +0 -1
  82. package/dist/components/biz-thread-detail/BizMoreOptionPanel.js +0 -20
  83. package/dist/components/biz-thread-detail/BizThreadDetailHeader.d.ts +0 -8
  84. package/dist/components/biz-thread-detail/BizThreadDetailHeader.d.ts.map +0 -1
  85. package/dist/components/biz-thread-detail/BizThreadDetailHeader.js +0 -19
  86. package/dist/components/biz-thread-detail/BizThreadDetailInput.d.ts +0 -8
  87. package/dist/components/biz-thread-detail/BizThreadDetailInput.d.ts.map +0 -1
  88. package/dist/components/biz-thread-detail/BizThreadDetailInput.js +0 -251
  89. package/dist/components/biz-thread-detail/BizVideoViewer.d.ts +0 -8
  90. package/dist/components/biz-thread-detail/BizVideoViewer.d.ts.map +0 -1
  91. package/dist/components/biz-thread-detail/BizVideoViewer.js +0 -103
  92. package/dist/components/biz-thread-detail/bot/BotButtonMessage.d.ts +0 -10
  93. package/dist/components/biz-thread-detail/bot/BotButtonMessage.d.ts.map +0 -1
  94. package/dist/components/biz-thread-detail/bot/BotButtonMessage.js +0 -30
  95. package/dist/components/biz-thread-detail/bot/BotFlowContext.d.ts +0 -10
  96. package/dist/components/biz-thread-detail/bot/BotFlowContext.d.ts.map +0 -1
  97. package/dist/components/biz-thread-detail/bot/BotFlowContext.js +0 -11
  98. package/dist/components/biz-thread-detail/bot/BotStartButton.d.ts +0 -8
  99. package/dist/components/biz-thread-detail/bot/BotStartButton.d.ts.map +0 -1
  100. package/dist/components/biz-thread-detail/bot/BotStartButton.js +0 -11
  101. package/dist/components/biz-thread-detail/bot/index.d.ts +0 -5
  102. package/dist/components/biz-thread-detail/bot/index.d.ts.map +0 -1
  103. package/dist/components/biz-thread-detail/bot/index.js +0 -2
  104. package/dist/components/biz-thread-detail/index.d.ts +0 -10
  105. package/dist/components/biz-thread-detail/index.d.ts.map +0 -1
  106. package/dist/components/biz-thread-detail/index.js +0 -5
  107. package/dist/components/biz-thread-detail/item/BizMessageItem.d.ts +0 -9
  108. package/dist/components/biz-thread-detail/item/BizMessageItem.d.ts.map +0 -1
  109. package/dist/components/biz-thread-detail/item/BizMessageItem.js +0 -27
  110. package/dist/components/bizInbox/BizCommunityTabPlaceholder.d.ts +0 -3
  111. package/dist/components/bizInbox/BizCommunityTabPlaceholder.d.ts.map +0 -1
  112. package/dist/components/bizInbox/BizCommunityTabPlaceholder.js +0 -10
  113. package/dist/components/bizInbox/BizContactListSkeleton.d.ts +0 -6
  114. package/dist/components/bizInbox/BizContactListSkeleton.d.ts.map +0 -1
  115. package/dist/components/bizInbox/BizContactListSkeleton.js +0 -8
  116. package/dist/components/bizInbox/BizCreateGroupButton.d.ts +0 -7
  117. package/dist/components/bizInbox/BizCreateGroupButton.d.ts.map +0 -1
  118. package/dist/components/bizInbox/BizCreateGroupButton.js +0 -11
  119. package/dist/components/bizInbox/BizInboxHeader.d.ts +0 -3
  120. package/dist/components/bizInbox/BizInboxHeader.d.ts.map +0 -1
  121. package/dist/components/bizInbox/BizInboxHeader.js +0 -8
  122. package/dist/components/bizInbox/BizInboxTabs.d.ts +0 -8
  123. package/dist/components/bizInbox/BizInboxTabs.d.ts.map +0 -1
  124. package/dist/components/bizInbox/BizInboxTabs.js +0 -27
  125. package/dist/components/bizInbox/BizSearchInput.d.ts +0 -9
  126. package/dist/components/bizInbox/BizSearchInput.d.ts.map +0 -1
  127. package/dist/components/bizInbox/BizSearchInput.js +0 -24
  128. package/dist/components/bizInbox/BizThreadAvatar.d.ts +0 -10
  129. package/dist/components/bizInbox/BizThreadAvatar.d.ts.map +0 -1
  130. package/dist/components/bizInbox/BizThreadAvatar.js +0 -8
  131. package/dist/components/bizInbox/BizThreadCard.d.ts +0 -8
  132. package/dist/components/bizInbox/BizThreadCard.d.ts.map +0 -1
  133. package/dist/components/bizInbox/BizThreadCard.js +0 -25
  134. package/dist/components/bizInbox/BizThreadList.d.ts +0 -11
  135. package/dist/components/bizInbox/BizThreadList.d.ts.map +0 -1
  136. package/dist/components/bizInbox/BizThreadList.js +0 -35
  137. package/dist/components/bizInbox/BizThreadTitle.d.ts +0 -8
  138. package/dist/components/bizInbox/BizThreadTitle.d.ts.map +0 -1
  139. package/dist/components/bizInbox/BizThreadTitle.js +0 -6
  140. package/dist/components/bizInbox/index.d.ts +0 -10
  141. package/dist/components/bizInbox/index.d.ts.map +0 -1
  142. package/dist/components/bizInbox/index.js +0 -5
  143. package/dist/components/bizInbox/states/BizThreadListEmpty.d.ts +0 -7
  144. package/dist/components/bizInbox/states/BizThreadListEmpty.d.ts.map +0 -1
  145. package/dist/components/bizInbox/states/BizThreadListEmpty.js +0 -15
  146. package/dist/components/bizInbox/states/BizThreadListError.d.ts +0 -6
  147. package/dist/components/bizInbox/states/BizThreadListError.d.ts.map +0 -1
  148. package/dist/components/bizInbox/states/BizThreadListError.js +0 -11
  149. package/dist/components/bizInbox/states/BizThreadListLoading.d.ts +0 -6
  150. package/dist/components/bizInbox/states/BizThreadListLoading.d.ts.map +0 -1
  151. package/dist/components/bizInbox/states/BizThreadListLoading.js +0 -8
  152. package/dist/components/bizThreadDetail/BizMessageBubble.d.ts +0 -10
  153. package/dist/components/bizThreadDetail/BizMessageBubble.d.ts.map +0 -1
  154. package/dist/components/bizThreadDetail/BizMessageBubble.js +0 -15
  155. package/dist/components/bizThreadDetail/BizMessageList.d.ts +0 -3
  156. package/dist/components/bizThreadDetail/BizMessageList.d.ts.map +0 -1
  157. package/dist/components/bizThreadDetail/BizMessageList.js +0 -28
  158. package/dist/components/bizThreadDetail/BizThreadDetailHeader.d.ts +0 -8
  159. package/dist/components/bizThreadDetail/BizThreadDetailHeader.d.ts.map +0 -1
  160. package/dist/components/bizThreadDetail/BizThreadDetailHeader.js +0 -18
  161. package/dist/components/bizThreadDetail/BizThreadDetailInput.d.ts +0 -8
  162. package/dist/components/bizThreadDetail/BizThreadDetailInput.d.ts.map +0 -1
  163. package/dist/components/bizThreadDetail/BizThreadDetailInput.js +0 -147
  164. package/dist/components/bizThreadDetail/index.d.ts +0 -8
  165. package/dist/components/bizThreadDetail/index.d.ts.map +0 -1
  166. package/dist/components/bizThreadDetail/index.js +0 -4
  167. package/dist/components/bizThreadDetail/item/BizMessageItem.d.ts +0 -8
  168. package/dist/components/bizThreadDetail/item/BizMessageItem.d.ts.map +0 -1
  169. package/dist/components/bizThreadDetail/item/BizMessageItem.js +0 -20
  170. package/dist/components/cannedResponse/CannedResponseBody.d.ts +0 -8
  171. package/dist/components/cannedResponse/CannedResponseBody.d.ts.map +0 -1
  172. package/dist/components/cannedResponse/CannedResponseBody.js +0 -109
  173. package/dist/components/cannedResponse/CannedResponseFooter.d.ts +0 -6
  174. package/dist/components/cannedResponse/CannedResponseFooter.d.ts.map +0 -1
  175. package/dist/components/cannedResponse/CannedResponseFooter.js +0 -8
  176. package/dist/components/cannedResponse/CannedResponseHeader.d.ts +0 -8
  177. package/dist/components/cannedResponse/CannedResponseHeader.d.ts.map +0 -1
  178. package/dist/components/cannedResponse/CannedResponseHeader.js +0 -11
  179. package/dist/components/cannedResponse/index.d.ts +0 -8
  180. package/dist/components/cannedResponse/index.d.ts.map +0 -1
  181. package/dist/components/cannedResponse/index.js +0 -34
  182. package/dist/components/cannedResponse/team/TeamItem.d.ts +0 -11
  183. package/dist/components/cannedResponse/team/TeamItem.d.ts.map +0 -1
  184. package/dist/components/cannedResponse/team/TeamItem.js +0 -31
  185. package/dist/components/chatBubble/ChatBubble.d.ts +0 -6
  186. package/dist/components/chatBubble/ChatBubble.d.ts.map +0 -1
  187. package/dist/components/chatBubble/ChatBubble.js +0 -35
  188. package/dist/components/mediaCollection/FileCollection.d.ts +0 -3
  189. package/dist/components/mediaCollection/FileCollection.d.ts.map +0 -1
  190. package/dist/components/mediaCollection/FileCollection.js +0 -53
  191. package/dist/components/mediaCollection/ImageCollection.d.ts +0 -3
  192. package/dist/components/mediaCollection/ImageCollection.d.ts.map +0 -1
  193. package/dist/components/mediaCollection/ImageCollection.js +0 -52
  194. package/dist/components/mediaCollection/LinkCollection.d.ts +0 -5
  195. package/dist/components/mediaCollection/LinkCollection.d.ts.map +0 -1
  196. package/dist/components/mediaCollection/LinkCollection.js +0 -92
  197. package/dist/components/mediaCollection/VideoCollection.d.ts +0 -3
  198. package/dist/components/mediaCollection/VideoCollection.d.ts.map +0 -1
  199. package/dist/components/mediaCollection/VideoCollection.js +0 -51
  200. package/dist/components/mediaCollection/index.d.ts +0 -9
  201. package/dist/components/mediaCollection/index.d.ts.map +0 -1
  202. package/dist/components/mediaCollection/index.js +0 -57
  203. package/dist/components/message/footer/QuotedMessage.d.ts +0 -2
  204. package/dist/components/message/footer/QuotedMessage.d.ts.map +0 -1
  205. package/dist/components/message/footer/QuotedMessage.js +0 -24
  206. package/dist/components/richTextEditor/RichTextEditor.d.ts +0 -12
  207. package/dist/components/richTextEditor/RichTextEditor.d.ts.map +0 -1
  208. package/dist/components/richTextEditor/RichTextEditor.js +0 -62
  209. package/dist/components/searchConversation/SearchAll.d.ts +0 -8
  210. package/dist/components/searchConversation/SearchAll.d.ts.map +0 -1
  211. package/dist/components/searchConversation/SearchAll.js +0 -37
  212. package/dist/components/searchConversation/SearchConversationAsMessages.d.ts +0 -6
  213. package/dist/components/searchConversation/SearchConversationAsMessages.d.ts.map +0 -1
  214. package/dist/components/searchConversation/SearchConversationAsMessages.js +0 -23
  215. package/dist/components/searchConversation/SearchConversationAsUsers.d.ts +0 -6
  216. package/dist/components/searchConversation/SearchConversationAsUsers.d.ts.map +0 -1
  217. package/dist/components/searchConversation/SearchConversationAsUsers.js +0 -21
  218. package/dist/components/searchConversation/SearchConversationMyInbox.d.ts +0 -6
  219. package/dist/components/searchConversation/SearchConversationMyInbox.d.ts.map +0 -1
  220. package/dist/components/searchConversation/SearchConversationMyInbox.js +0 -24
  221. package/dist/components/searchConversation/SearchDrawer.d.ts +0 -3
  222. package/dist/components/searchConversation/SearchDrawer.d.ts.map +0 -1
  223. package/dist/components/searchConversation/SearchDrawer.js +0 -33
  224. package/dist/components/searchConversation/SearchMessageOnCurrentConversation.d.ts +0 -7
  225. package/dist/components/searchConversation/SearchMessageOnCurrentConversation.d.ts.map +0 -1
  226. package/dist/components/searchConversation/SearchMessageOnCurrentConversation.js +0 -28
  227. package/dist/components/searchConversation/index.d.ts +0 -12
  228. package/dist/components/searchConversation/index.d.ts.map +0 -1
  229. package/dist/components/searchConversation/index.js +0 -46
  230. package/dist/components/searchConversation/item/SearchItemAsMessage.d.ts +0 -12
  231. package/dist/components/searchConversation/item/SearchItemAsMessage.d.ts.map +0 -1
  232. package/dist/components/searchConversation/item/SearchItemAsMessage.js +0 -72
  233. package/dist/components/searchConversation/item/SearchItemAsUser.d.ts +0 -8
  234. package/dist/components/searchConversation/item/SearchItemAsUser.d.ts.map +0 -1
  235. package/dist/components/searchConversation/item/SearchItemAsUser.js +0 -25
  236. package/dist/constants/bizInbox.d.ts +0 -37
  237. package/dist/constants/bizInbox.d.ts.map +0 -1
  238. package/dist/constants/bizInbox.js +0 -35
  239. package/dist/constants/bizMoreOption.d.ts +0 -9
  240. package/dist/constants/bizMoreOption.d.ts.map +0 -1
  241. package/dist/constants/bizMoreOption.js +0 -37
  242. package/dist/hooks/biz/index.d.ts +0 -8
  243. package/dist/hooks/biz/index.d.ts.map +0 -1
  244. package/dist/hooks/biz/index.js +0 -5
  245. package/dist/hooks/biz/useBizActiveConversation.d.ts +0 -3
  246. package/dist/hooks/biz/useBizActiveConversation.d.ts.map +0 -1
  247. package/dist/hooks/biz/useBizActiveConversation.js +0 -38
  248. package/dist/hooks/biz/useBizConversationList.d.ts +0 -15
  249. package/dist/hooks/biz/useBizConversationList.d.ts.map +0 -1
  250. package/dist/hooks/biz/useBizConversationList.js +0 -48
  251. package/dist/hooks/biz/useBizConversationListItems.d.ts +0 -8
  252. package/dist/hooks/biz/useBizConversationListItems.d.ts.map +0 -1
  253. package/dist/hooks/biz/useBizConversationListItems.js +0 -14
  254. package/dist/hooks/biz/useBizGlobalEvent.d.ts +0 -2
  255. package/dist/hooks/biz/useBizGlobalEvent.d.ts.map +0 -1
  256. package/dist/hooks/biz/useBizGlobalEvent.js +0 -72
  257. package/dist/hooks/biz/useBizSendMessage.d.ts +0 -4
  258. package/dist/hooks/biz/useBizSendMessage.d.ts.map +0 -1
  259. package/dist/hooks/biz/useBizSendMessage.js +0 -70
  260. package/dist/hooks/biz/useBotFlow.d.ts +0 -17
  261. package/dist/hooks/biz/useBotFlow.d.ts.map +0 -1
  262. package/dist/hooks/biz/useBotFlow.js +0 -127
  263. package/dist/hooks/biz/useConversationDetail.d.ts +0 -3
  264. package/dist/hooks/biz/useConversationDetail.d.ts.map +0 -1
  265. package/dist/hooks/biz/useConversationDetail.js +0 -18
  266. package/dist/hooks/biz/useCreateBizConversation.d.ts +0 -8
  267. package/dist/hooks/biz/useCreateBizConversation.d.ts.map +0 -1
  268. package/dist/hooks/biz/useCreateBizConversation.js +0 -15
  269. package/dist/hooks/biz/useResetBotFlow.d.ts +0 -3
  270. package/dist/hooks/biz/useResetBotFlow.d.ts.map +0 -1
  271. package/dist/hooks/biz/useResetBotFlow.js +0 -14
  272. package/dist/hooks/biz/useRunBotFlow.d.ts +0 -7
  273. package/dist/hooks/biz/useRunBotFlow.d.ts.map +0 -1
  274. package/dist/hooks/biz/useRunBotFlow.js +0 -14
  275. package/dist/hooks/cannedResponse/useFetchCannedCategories.d.ts +0 -3
  276. package/dist/hooks/cannedResponse/useFetchCannedCategories.d.ts.map +0 -1
  277. package/dist/hooks/cannedResponse/useFetchCannedCategories.js +0 -13
  278. package/dist/hooks/cannedResponse/useFetchCannedResponse.d.ts +0 -219
  279. package/dist/hooks/cannedResponse/useFetchCannedResponse.d.ts.map +0 -1
  280. package/dist/hooks/cannedResponse/useFetchCannedResponse.js +0 -55
  281. package/dist/hooks/common/useFetchExternalLink.d.ts +0 -2
  282. package/dist/hooks/common/useFetchExternalLink.d.ts.map +0 -1
  283. package/dist/hooks/common/useFetchExternalLink.js +0 -18
  284. package/dist/hooks/common/useIsSdkMessageReady.d.ts +0 -2
  285. package/dist/hooks/common/useIsSdkMessageReady.d.ts.map +0 -1
  286. package/dist/hooks/common/useIsSdkMessageReady.js +0 -7
  287. package/dist/hooks/conversation/useConversationPreview.d.ts +0 -12
  288. package/dist/hooks/conversation/useConversationPreview.d.ts.map +0 -1
  289. package/dist/hooks/conversation/useConversationPreview.js +0 -22
  290. package/dist/hooks/message/useSendCustomMessage.d.ts +0 -7
  291. package/dist/hooks/message/useSendCustomMessage.d.ts.map +0 -1
  292. package/dist/hooks/message/useSendCustomMessage.js +0 -5
  293. package/dist/locales/en/bizInbox.json +0 -41
  294. package/dist/locales/vi/biz-inbox.json +0 -39
  295. package/dist/locales/vi/bizInbox.json +0 -19
  296. package/dist/screens/biz-message/index.d.ts +0 -8
  297. package/dist/screens/biz-message/index.d.ts.map +0 -1
  298. package/dist/screens/biz-message/index.js +0 -30
  299. package/dist/screens/biz-thread-detail/index.d.ts +0 -9
  300. package/dist/screens/biz-thread-detail/index.d.ts.map +0 -1
  301. package/dist/screens/biz-thread-detail/index.js +0 -50
  302. package/dist/screens/bizMessage/index.d.ts +0 -9
  303. package/dist/screens/bizMessage/index.d.ts.map +0 -1
  304. package/dist/screens/bizMessage/index.js +0 -55
  305. package/dist/screens/bizThreadDetail/index.d.ts +0 -9
  306. package/dist/screens/bizThreadDetail/index.d.ts.map +0 -1
  307. package/dist/screens/bizThreadDetail/index.js +0 -36
  308. package/dist/screens/chatBubble/index.d.ts +0 -7
  309. package/dist/screens/chatBubble/index.d.ts.map +0 -1
  310. package/dist/screens/chatBubble/index.js +0 -41
  311. package/dist/screens/deskMessage/index.d.ts +0 -6
  312. package/dist/screens/deskMessage/index.d.ts.map +0 -1
  313. package/dist/screens/deskMessage/index.js +0 -17
  314. package/dist/services/biz/conversationService.d.ts +0 -3
  315. package/dist/services/biz/conversationService.d.ts.map +0 -1
  316. package/dist/services/biz/conversationService.js +0 -10
  317. package/dist/store/bizConversation.d.ts +0 -18
  318. package/dist/store/bizConversation.d.ts.map +0 -1
  319. package/dist/store/bizConversation.js +0 -35
  320. package/dist/store/bizMessageDraft.d.ts +0 -9
  321. package/dist/store/bizMessageDraft.d.ts.map +0 -1
  322. package/dist/store/bizMessageDraft.js +0 -35
  323. package/dist/store/pinnedMessage.d.ts +0 -4
  324. package/dist/store/pinnedMessage.d.ts.map +0 -1
  325. package/dist/store/pinnedMessage.js +0 -17
  326. package/dist/types/biz.d.ts +0 -128
  327. package/dist/types/biz.d.ts.map +0 -1
  328. package/dist/types/biz.js +0 -34
  329. package/dist/utils/bizConversation.d.ts +0 -15
  330. package/dist/utils/bizConversation.d.ts.map +0 -1
  331. package/dist/utils/bizConversation.js +0 -96
  332. package/dist/utils/bizLink.d.ts +0 -13
  333. package/dist/utils/bizLink.d.ts.map +0 -1
  334. package/dist/utils/bizLink.js +0 -77
  335. package/dist/utils/bizMessage.d.ts +0 -15
  336. package/dist/utils/bizMessage.d.ts.map +0 -1
  337. package/dist/utils/bizMessage.js +0 -93
  338. package/dist/utils/messageEx.d.ts +0 -5
  339. package/dist/utils/messageEx.d.ts.map +0 -1
  340. package/dist/utils/messageEx.js +0 -11
  341. package/dist/utils/openBizLink.d.ts +0 -3
  342. package/dist/utils/openBizLink.d.ts.map +0 -1
  343. package/dist/utils/openBizLink.js +0 -19
@@ -1,70 +0,0 @@
1
- "use client";
2
- import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
3
- import { useEffect, useState } from "react";
4
- import { Icon } from "../../components/icon";
5
- import { documentIcon } from "../../assets/svg";
6
- import { shortenFileName } from "../../components/message/footer/FilePreview";
7
- import { DOCUMENT_MIME_TYPES } from "../../utils/fileValidation";
8
- import { formatDuration } from "../../utils/common";
9
- const formatFileSize = (bytes) => {
10
- if (bytes === 0)
11
- return "0 B";
12
- if (bytes < 1024)
13
- return `${bytes} B`;
14
- const kb = bytes / 1024;
15
- if (kb < 1024)
16
- return `${Math.round(kb)} KB`;
17
- return `${(kb / 1024).toFixed(1)} MB`;
18
- };
19
- const getFileType = (file) => {
20
- var _a, _b, _c;
21
- const mimeType = (_c = (_b = (_a = file.originFileObj) === null || _a === void 0 ? void 0 : _a.type) !== null && _b !== void 0 ? _b : file.type) !== null && _c !== void 0 ? _c : "";
22
- if (DOCUMENT_MIME_TYPES.includes(mimeType))
23
- return "document";
24
- if (mimeType.startsWith("video/"))
25
- return "video";
26
- return "image";
27
- };
28
- const RemoveButton = ({ uid, onRemove }) => (_jsx("button", { type: "button", onClick: () => onRemove(uid), className: "absolute -right-1 -top-1 flex h-5 w-5 items-center justify-center rounded-full bg-[#393E40]", "aria-label": "X\u00F3a", children: _jsx(Icon, { icon: "close-o", size: 12, className: "text-white" }) }));
29
- const MediaThumb = ({ file, onRemove, onVideoReady }) => {
30
- var _a;
31
- const [src, setSrc] = useState("");
32
- const [duration, setDuration] = useState(null);
33
- const isVideo = getFileType(file) === "video";
34
- const isLoading = file.status === "uploading";
35
- const percent = Math.round((_a = file.percent) !== null && _a !== void 0 ? _a : 0);
36
- useEffect(() => {
37
- var _a;
38
- const originFile = file.originFileObj;
39
- if (!originFile) {
40
- setSrc((_a = file.url) !== null && _a !== void 0 ? _a : "");
41
- return;
42
- }
43
- const url = URL.createObjectURL(originFile);
44
- setSrc(url);
45
- return () => URL.revokeObjectURL(url);
46
- }, [file.originFileObj, file.url]);
47
- const handleLoadedMetadata = (event) => {
48
- setDuration(event.currentTarget.duration);
49
- onVideoReady === null || onVideoReady === void 0 ? void 0 : onVideoReady();
50
- };
51
- return (_jsxs("div", { className: "relative h-12 w-12 shrink-0", children: [isVideo ? (_jsx("video", { src: src, className: "h-12 w-12 rounded-lg object-cover", preload: "metadata", muted: true, onLoadedMetadata: handleLoadedMetadata })) : (_jsx("img", { src: src, alt: file.name, className: "h-12 w-12 rounded-lg object-cover" })), isLoading && (_jsx("div", { className: "absolute inset-0 flex items-center justify-center rounded-lg bg-black/60", children: _jsxs("span", { className: "text-xs font-semibold text-white", children: [percent, "%"] }) })), isVideo && duration !== null && (_jsx("div", { className: "absolute bottom-1 left-1/2 flex w-9 -translate-x-1/2 items-center justify-center rounded-xl bg-black/70 px-1 text-center text-[10px] font-normal leading-4 text-white", children: formatDuration(duration) })), _jsx(RemoveButton, { uid: file.uid, onRemove: onRemove })] }));
52
- };
53
- const DocumentCard = ({ file, onRemove }) => {
54
- var _a, _b;
55
- const isLoading = file.status === "uploading";
56
- const percent = Math.round((_a = file.percent) !== null && _a !== void 0 ? _a : 0);
57
- return (_jsxs("div", { className: "relative flex h-12 w-40 shrink-0 items-center gap-[7px] rounded-lg bg-[rgba(131,137,157,0.08)] py-[4px] pl-2 pr-5", children: [_jsx("div", { className: "flex h-full w-8 shrink-0 items-center justify-center overflow-hidden [&>svg]:h-8 [&>svg]:w-8", children: documentIcon }), _jsxs("div", { className: "flex min-w-0 flex-1 flex-col", children: [_jsx("span", { className: "truncate text-[11px] font-normal leading-[160%] text-[#393E40]", children: shortenFileName(file.name) }), isLoading ? (_jsxs("span", { className: "text-[10px] leading-[160%] tracking-[0.1px] text-[#747B7E]", children: [percent, "%"] })) : (_jsx("span", { className: "text-[10px] leading-[160%] tracking-[0.1px] text-[#747B7E]", children: formatFileSize((_b = file.size) !== null && _b !== void 0 ? _b : 0) }))] }), _jsx(RemoveButton, { uid: file.uid, onRemove: onRemove })] }));
58
- };
59
- const BizAttachmentPreview = ({ files, onRemove, onVideoReady, }) => {
60
- if (files.length === 0)
61
- return null;
62
- return (_jsx("div", { className: "flex items-center gap-3 self-stretch overflow-x-auto px-2 pb-2 pt-3", children: files.map((file) => {
63
- const fileType = getFileType(file);
64
- if (fileType === "document") {
65
- return (_jsx(DocumentCard, { file: file, onRemove: onRemove }, file.uid));
66
- }
67
- return (_jsx(MediaThumb, { file: file, onRemove: onRemove, onVideoReady: onVideoReady }, file.uid));
68
- }) }));
69
- };
70
- export default BizAttachmentPreview;
@@ -1,9 +0,0 @@
1
- import { UploadFile } from "antd";
2
- export interface BizImagePreviewProps {
3
- files: UploadFile[];
4
- onRemove: (uid: string) => void;
5
- onVideoReady?: () => void;
6
- }
7
- declare const BizImagePreview: ({ files, onRemove, onVideoReady, }: BizImagePreviewProps) => import("react/jsx-runtime").JSX.Element | null;
8
- export default BizImagePreview;
9
- //# sourceMappingURL=BizImagePreview.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"BizImagePreview.d.ts","sourceRoot":"","sources":["../../../src/components/biz-thread-detail/BizImagePreview.tsx"],"names":[],"mappings":"AAGA,OAAO,EAAE,UAAU,EAAE,MAAM,MAAM,CAAC;AAwFlC,MAAM,WAAW,oBAAoB;IACnC,KAAK,EAAE,UAAU,EAAE,CAAC;IACpB,QAAQ,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,CAAC;IAChC,YAAY,CAAC,EAAE,MAAM,IAAI,CAAC;CAC3B;AAED,QAAA,MAAM,eAAe,GAAI,oCAItB,oBAAoB,mDAetB,CAAC;AAEF,eAAe,eAAe,CAAC"}
@@ -1,39 +0,0 @@
1
- "use client";
2
- import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
3
- import { useEffect, useState } from "react";
4
- import { Icon } from "../../components/icon";
5
- const formatDuration = (seconds) => {
6
- const minutes = Math.floor(seconds / 60);
7
- const secs = Math.floor(seconds % 60);
8
- return `${String(minutes).padStart(2, "0")}:${String(secs).padStart(2, "0")}`;
9
- };
10
- const MediaThumb = ({ file, onRemove, onVideoReady }) => {
11
- var _a, _b, _c, _d, _e;
12
- const [src, setSrc] = useState("");
13
- const [duration, setDuration] = useState(null);
14
- const isVideo = (_d = (_b = (_a = file.originFileObj) === null || _a === void 0 ? void 0 : _a.type.startsWith("video/")) !== null && _b !== void 0 ? _b : (_c = file.type) === null || _c === void 0 ? void 0 : _c.startsWith("video/")) !== null && _d !== void 0 ? _d : false;
15
- const isLoading = file.status === "uploading";
16
- const percent = Math.round((_e = file.percent) !== null && _e !== void 0 ? _e : 0);
17
- useEffect(() => {
18
- var _a;
19
- const originFile = file.originFileObj;
20
- if (!originFile) {
21
- setSrc((_a = file.url) !== null && _a !== void 0 ? _a : "");
22
- return;
23
- }
24
- const url = URL.createObjectURL(originFile);
25
- setSrc(url);
26
- return () => URL.revokeObjectURL(url);
27
- }, [file.originFileObj, file.url]);
28
- const handleLoadedMetadata = (event) => {
29
- setDuration(event.currentTarget.duration);
30
- onVideoReady === null || onVideoReady === void 0 ? void 0 : onVideoReady();
31
- };
32
- return (_jsxs("div", { className: "relative h-12 w-12 shrink-0", children: [isVideo ? (_jsx("video", { src: src, className: "h-12 w-12 rounded-lg object-cover", preload: "metadata", muted: true, onLoadedMetadata: handleLoadedMetadata })) : (_jsx("img", { src: src, alt: file.name, className: "h-12 w-12 rounded-lg object-cover" })), isLoading && (_jsx("div", { className: "absolute inset-0 flex items-center justify-center rounded-lg bg-black/60", children: _jsxs("span", { className: "text-xs font-semibold text-white", children: [percent, "%"] }) })), isVideo && duration !== null && (_jsx("div", { className: "absolute bottom-1 left-1/2 flex w-9 -translate-x-1/2 items-center justify-center rounded-xl bg-black/70 px-1 text-center text-[10px] font-normal leading-4 text-white", children: formatDuration(duration) })), _jsx("button", { type: "button", onClick: () => onRemove(file.uid), className: "absolute -right-1 -top-1 flex h-5 w-5 items-center justify-center rounded-full bg-[#393E40]", "aria-label": "X\u00F3a", children: _jsx(Icon, { icon: "close-o", size: 12, className: "text-white" }) })] }));
33
- };
34
- const BizImagePreview = ({ files, onRemove, onVideoReady, }) => {
35
- if (files.length === 0)
36
- return null;
37
- return (_jsx("div", { className: "flex items-center gap-3 self-stretch overflow-x-auto px-2 pb-2 pt-3", children: files.map((file) => (_jsx(MediaThumb, { file: file, onRemove: onRemove, onVideoReady: onVideoReady }, file.uid))) }));
38
- };
39
- export default BizImagePreview;
@@ -1,8 +0,0 @@
1
- interface BizImageViewerProps {
2
- images: string[];
3
- initialIndex?: number;
4
- onClose: () => void;
5
- }
6
- declare const BizImageViewer: ({ images, initialIndex, onClose, }: BizImageViewerProps) => import("react").ReactPortal;
7
- export default BizImageViewer;
8
- //# sourceMappingURL=BizImageViewer.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"BizImageViewer.d.ts","sourceRoot":"","sources":["../../../src/components/biz-thread-detail/BizImageViewer.tsx"],"names":[],"mappings":"AAOA,UAAU,mBAAmB;IAC3B,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,OAAO,EAAE,MAAM,IAAI,CAAC;CACrB;AAED,QAAA,MAAM,cAAc,GAAI,oCAIrB,mBAAmB,gCA2ErB,CAAC;AAEF,eAAe,cAAc,CAAC"}
@@ -1,35 +0,0 @@
1
- "use client";
2
- import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
3
- import { useState, useEffect } from "react";
4
- import { createPortal } from "react-dom";
5
- import clsx from "clsx";
6
- import { Icon } from "../../components/icon";
7
- const BizImageViewer = ({ images, initialIndex = 0, onClose, }) => {
8
- var _a;
9
- const [currentIndex, setCurrentIndex] = useState(initialIndex);
10
- useEffect(() => {
11
- const handleKeyDown = (e) => {
12
- if (e.key === "Escape")
13
- onClose();
14
- if (e.key === "ArrowLeft")
15
- setCurrentIndex((i) => Math.max(0, i - 1));
16
- if (e.key === "ArrowRight")
17
- setCurrentIndex((i) => Math.min(images.length - 1, i + 1));
18
- };
19
- document.addEventListener("keydown", handleKeyDown);
20
- return () => document.removeEventListener("keydown", handleKeyDown);
21
- }, [images.length, onClose]);
22
- const handleDownload = () => {
23
- const url = images[currentIndex];
24
- const filename = url.substring(url.lastIndexOf("/") + 1) || "image";
25
- const link = document.createElement("a");
26
- link.href = url;
27
- link.download = filename;
28
- document.body.appendChild(link);
29
- link.click();
30
- document.body.removeChild(link);
31
- };
32
- const container = (_a = document.querySelector('[data-testid="biz-thread-detail-root"]')) !== null && _a !== void 0 ? _a : document.body;
33
- return createPortal(_jsxs("div", { className: "absolute inset-0 z-[999] flex flex-col bg-black", children: [_jsxs("div", { className: "flex items-center justify-between px-4 pt-12 pb-4", children: [_jsx("button", { className: "flex h-10 w-10 items-center justify-center text-white text-xl", onClick: onClose, children: _jsx(Icon, { icon: "close-b", size: 24 }) }), _jsx("button", { className: "flex h-10 w-10 items-center justify-center text-white text-xl", onClick: handleDownload, children: _jsx(Icon, { icon: "download-o", size: 24 }) })] }), _jsx("div", { className: "flex min-h-0 flex-1 items-center justify-center overflow-hidden px-4", children: _jsx("img", { src: images[currentIndex], alt: "", className: "max-h-full max-w-full rounded-[24px] object-contain" }) }), _jsxs("div", { className: "flex flex-col items-center gap-2 pb-8 pt-4", children: [_jsxs("span", { className: "text-sm text-white", children: [currentIndex + 1, "/", images.length] }), _jsx("div", { className: "flex gap-1.5", children: images.map((_, i) => (_jsx("button", { className: clsx("h-1.5 w-1.5 rounded-full transition-colors", i === currentIndex ? "bg-white" : "bg-white/30"), onClick: () => setCurrentIndex(i) }, i))) })] })] }), container);
34
- };
35
- export default BizImageViewer;
@@ -1,7 +0,0 @@
1
- export interface BizLinkInputPreviewProps {
2
- url: string;
3
- onRemove: () => void;
4
- }
5
- declare const BizLinkInputPreview: ({ url, onRemove }: BizLinkInputPreviewProps) => import("react/jsx-runtime").JSX.Element;
6
- export default BizLinkInputPreview;
7
- //# sourceMappingURL=BizLinkInputPreview.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"BizLinkInputPreview.d.ts","sourceRoot":"","sources":["../../../src/components/biz-thread-detail/BizLinkInputPreview.tsx"],"names":[],"mappings":"AAQA,MAAM,WAAW,wBAAwB;IACvC,GAAG,EAAE,MAAM,CAAC;IACZ,QAAQ,EAAE,MAAM,IAAI,CAAC;CACtB;AAED,QAAA,MAAM,mBAAmB,GAAI,mBAAmB,wBAAwB,4CAoEvE,CAAC;AAEF,eAAe,mBAAmB,CAAC"}
@@ -1,16 +0,0 @@
1
- "use client";
2
- import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-runtime";
3
- import { Icon } from "../../components/icon";
4
- import { useFetchUrlMetadata } from "../../hooks/common/useFetchUrlMetadata";
5
- import { getHostLabel } from "../../utils/bizLink";
6
- import { openBizLink } from "../../utils/openBizLink";
7
- import { useTranslation } from "react-i18next";
8
- const BizLinkInputPreview = ({ url, onRemove }) => {
9
- const { t } = useTranslation("biz-inbox");
10
- const { data, isLoading, isError } = useFetchUrlMetadata(url);
11
- const handleOpen = () => {
12
- openBizLink(url, t);
13
- };
14
- return (_jsxs("div", { "data-testid": "biz-link-input-preview", className: "flex w-full shrink-0 items-center gap-2 overflow-hidden bg-[#EAF5FF] pr-2", children: [_jsxs("button", { type: "button", onClick: handleOpen, className: "flex min-w-0 flex-1 items-center gap-2 py-0 pl-0 text-left", children: [_jsx("div", { className: "flex h-[51px] w-[51px] shrink-0 items-center justify-center overflow-hidden bg-[#EAF5FF]", children: isLoading ? (_jsx("div", { className: "h-5 w-5 animate-spin rounded-full border-2 border-[#1B3FE4] border-t-transparent" })) : (data === null || data === void 0 ? void 0 : data.image) ? (_jsx("img", { src: data.image, alt: "", className: "h-full w-full object-cover" })) : (_jsx(Icon, { icon: "link-alt-b", size: 24, className: "text-[#1B3FE4]" })) }), _jsxs("div", { className: "min-w-0 flex-1", children: [isLoading ? (_jsx("p", { className: "truncate text-[14px] font-medium leading-[1.6] text-[#393E40]", children: t("link_preview.loading") })) : (_jsxs(_Fragment, { children: [_jsx("p", { className: "truncate text-[14px] font-medium leading-[1.6] text-[#393E40]", children: (data === null || data === void 0 ? void 0 : data.title) || getHostLabel(url) }), ((data === null || data === void 0 ? void 0 : data.description) || !(data === null || data === void 0 ? void 0 : data.title)) && (_jsx("p", { className: "truncate text-[13px] leading-[1.6] text-[#747B7E]", children: (data === null || data === void 0 ? void 0 : data.description) || getHostLabel(url) }))] })), isError && !isLoading && (_jsx("p", { className: "truncate text-[13px] leading-[1.6] text-[#747B7E]", children: getHostLabel(url) }))] })] }), _jsx("button", { type: "button", onClick: onRemove, "data-testid": "biz-link-input-preview-remove", className: "flex h-4 w-4 shrink-0 items-center justify-center", "aria-label": t("link_preview.remove"), children: _jsx(Icon, { icon: "close-b", size: 16, className: "text-[#393E40]" }) })] }));
15
- };
16
- export default BizLinkInputPreview;
@@ -1,7 +0,0 @@
1
- import type { UrlMetadataInfo } from "../../types/chat";
2
- export interface BizLinkMessageCardProps {
3
- metadata: UrlMetadataInfo;
4
- }
5
- declare const BizLinkMessageCard: ({ metadata }: BizLinkMessageCardProps) => import("react/jsx-runtime").JSX.Element | null;
6
- export default BizLinkMessageCard;
7
- //# sourceMappingURL=BizLinkMessageCard.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"BizLinkMessageCard.d.ts","sourceRoot":"","sources":["../../../src/components/biz-thread-detail/BizLinkMessageCard.tsx"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAEpD,MAAM,WAAW,uBAAuB;IACtC,QAAQ,EAAE,eAAe,CAAC;CAC3B;AAED,QAAA,MAAM,kBAAkB,GAAI,cAAc,uBAAuB,mDA8ChE,CAAC;AAEF,eAAe,kBAAkB,CAAC"}
@@ -1,17 +0,0 @@
1
- "use client";
2
- import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
3
- import { useTranslation } from "react-i18next";
4
- import { getHostLabel } from "../../utils/bizLink";
5
- import { openBizLink } from "../../utils/openBizLink";
6
- const BizLinkMessageCard = ({ metadata }) => {
7
- const { t } = useTranslation("biz-inbox");
8
- const { url, title, description, image } = metadata;
9
- if (!title && !description && !image) {
10
- return null;
11
- }
12
- const handleOpen = () => {
13
- openBizLink(url, t);
14
- };
15
- return (_jsxs("button", { type: "button", onClick: handleOpen, "data-testid": "biz-link-message-card", className: "flex w-full max-w-[292px] flex-col overflow-hidden rounded-[12px] border border-[rgba(57,62,64,0.1)] bg-white text-left", children: [image && (_jsx("div", { className: "aspect-[16/9] w-full overflow-hidden", children: _jsx("img", { src: image, alt: "", className: "h-full w-full object-cover" }) })), _jsxs("div", { className: "flex flex-col px-3 py-2", children: [title && (_jsx("p", { className: "truncate text-[14px] font-medium leading-[1.6] text-[#393E40]", children: title })), _jsx("p", { className: "truncate text-[12px] font-medium leading-[1.6] tracking-[0.12px] text-[#1B3FE4]", children: getHostLabel(url) }), description && (_jsx("p", { className: "line-clamp-2 text-[12px] leading-[1.6] text-[#5C6366]", children: description }))] })] }));
16
- };
17
- export default BizLinkMessageCard;
@@ -1,6 +0,0 @@
1
- export interface BizLinkTextContentProps {
2
- text: string;
3
- }
4
- declare const BizLinkTextContent: ({ text }: BizLinkTextContentProps) => import("react/jsx-runtime").JSX.Element;
5
- export default BizLinkTextContent;
6
- //# sourceMappingURL=BizLinkTextContent.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"BizLinkTextContent.d.ts","sourceRoot":"","sources":["../../../src/components/biz-thread-detail/BizLinkTextContent.tsx"],"names":[],"mappings":"AAMA,MAAM,WAAW,uBAAuB;IACtC,IAAI,EAAE,MAAM,CAAC;CACd;AAED,QAAA,MAAM,kBAAkB,GAAI,UAAU,uBAAuB,4CAsB5D,CAAC;AAEF,eAAe,kBAAkB,CAAC"}
@@ -1,11 +0,0 @@
1
- "use client";
2
- import { jsx as _jsx } from "react/jsx-runtime";
3
- import { useTranslation } from "react-i18next";
4
- import { parseBizTextWithLinks } from "../../utils/bizLink";
5
- import { openBizLink } from "../../utils/openBizLink";
6
- const BizLinkTextContent = ({ text }) => {
7
- const { t } = useTranslation("biz-inbox");
8
- const segments = parseBizTextWithLinks(text);
9
- return (_jsx("span", { className: "min-w-0 whitespace-pre-wrap text-left [overflow-wrap:anywhere] text-[16px] leading-[160%] tracking-[0.16px] text-[#393E40]", children: segments.map((segment, index) => segment.type === "link" ? (_jsx("button", { type: "button", onClick: () => openBizLink(segment.url, t), className: "inline text-left font-medium text-[#1B3FE4] underline-offset-2 hover:underline", children: segment.value }, `${segment.url}-${index}`)) : (_jsx("span", { children: segment.value }, `text-${index}`))) }));
10
- };
11
- export default BizLinkTextContent;
@@ -1,11 +0,0 @@
1
- import type { ReactNode } from "react";
2
- export interface BizMessageBubbleProps {
3
- isMine: boolean;
4
- content: ReactNode;
5
- senderName?: string;
6
- showSenderName?: boolean;
7
- showTip?: boolean;
8
- }
9
- declare const BizMessageBubble: ({ isMine, content, senderName, showSenderName, showTip, }: BizMessageBubbleProps) => import("react/jsx-runtime").JSX.Element;
10
- export default BizMessageBubble;
11
- //# sourceMappingURL=BizMessageBubble.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"BizMessageBubble.d.ts","sourceRoot":"","sources":["../../../src/components/biz-thread-detail/BizMessageBubble.tsx"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAEvC,MAAM,WAAW,qBAAqB;IACpC,MAAM,EAAE,OAAO,CAAC;IAChB,OAAO,EAAE,SAAS,CAAC;IACnB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AA6BD,QAAA,MAAM,gBAAgB,GAAI,2DAMvB,qBAAqB,4CA8BvB,CAAC;AAEF,eAAe,gBAAgB,CAAC"}
@@ -1,15 +0,0 @@
1
- "use client";
2
- import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
3
- import clsx from "clsx";
4
- const INCOMING_TAIL_PATH = "M1.3798 18H4V0C3.51762 4.5 3.34269 10.5 0.966518 14C-0.568384 16.2608 -0.159364 18 1.3798 18Z";
5
- const OUTGOING_TAIL_PATH = "M2.6202 18H0V0C0.482375 4.5 0.657308 10.5 3.03348 14C4.56838 16.2608 4.15936 18 2.6202 18Z";
6
- const BizMessageBubbleTail = ({ isMine }) => (_jsx("div", { className: "flex shrink-0 items-center justify-center", children: _jsx("div", { className: "flex-none", children: _jsx("svg", { xmlns: "http://www.w3.org/2000/svg", width: "4", height: "18", viewBox: "0 0 4 18", fill: "none", "aria-hidden": true, children: _jsx("path", { d: isMine ? OUTGOING_TAIL_PATH : INCOMING_TAIL_PATH, fill: isMine ? "#0051FF" : "#83899D", fillOpacity: "0.1" }) }) }) }));
7
- const BizMessageBubble = ({ isMine, content, senderName, showSenderName, showTip = true, }) => {
8
- const bubbleClass = clsx("relative max-w-full p-2", showTip
9
- ? isMine
10
- ? "rounded-[20px] rounded-br-none"
11
- : "rounded-[20px] rounded-bl-none"
12
- : "rounded-[20px]", isMine ? "bg-[rgba(0,81,255,0.1)]" : "bg-[rgba(131,137,157,0.1)]");
13
- return (_jsxs("div", { className: "relative flex items-end", "data-testid": "biz-message-bubble", children: [!isMine && showTip && _jsx(BizMessageBubbleTail, { isMine: isMine }), _jsx("div", { className: bubbleClass, children: _jsxs("div", { className: "flex flex-col gap-1 px-1", children: [showSenderName && senderName && (_jsx("span", { className: "text-[12px] font-medium leading-[160%] tracking-[0.12px] text-[#747B7E]", children: senderName })), _jsx("div", { className: "flex flex-col gap-2", children: content })] }) }), isMine && showTip && _jsx(BizMessageBubbleTail, { isMine: isMine })] }));
14
- };
15
- export default BizMessageBubble;
@@ -1,7 +0,0 @@
1
- import { MessageItem } from "@openim/wasm-client-sdk";
2
- export interface BizMessageContentProps {
3
- message: MessageItem;
4
- }
5
- declare const BizMessageContent: ({ message }: BizMessageContentProps) => import("react/jsx-runtime").JSX.Element | null;
6
- export default BizMessageContent;
7
- //# sourceMappingURL=BizMessageContent.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"BizMessageContent.d.ts","sourceRoot":"","sources":["../../../src/components/biz-thread-detail/BizMessageContent.tsx"],"names":[],"mappings":"AAIA,OAAO,EAAE,WAAW,EAA8B,MAAM,yBAAyB,CAAC;AAalF,MAAM,WAAW,sBAAsB;IACrC,OAAO,EAAE,WAAW,CAAC;CACtB;AAgND,QAAA,MAAM,iBAAiB,GAAI,aAAa,sBAAsB,mDAyD7D,CAAC;AAEF,eAAe,iBAAiB,CAAC"}
@@ -1,125 +0,0 @@
1
- "use client";
2
- import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
3
- import { useState } from "react";
4
- import clsx from "clsx";
5
- import { MessageStatus, MessageType } from "@openim/wasm-client-sdk";
6
- import { Image, Spin } from "antd";
7
- import { Icon } from "../../components/icon";
8
- import { documentIcon } from "../../assets/svg";
9
- import { shortenFileName } from "../../components/message/footer/FilePreview";
10
- import BizLinkMessageCard from "./BizLinkMessageCard";
11
- import BizLinkTextContent from "./BizLinkTextContent";
12
- import BizImageViewer from "./BizImageViewer";
13
- import BizVideoViewer from "./BizVideoViewer";
14
- import { extractBizLinkUrls } from "../../utils/bizLink";
15
- import { formatDuration, renderFileSize } from "../../utils/common";
16
- const MERGE_IMAGE_GRID_COLS_CLASS = {
17
- 1: "grid-cols-[repeat(1,100px)]",
18
- 2: "grid-cols-[repeat(2,100px)]",
19
- 3: "grid-cols-[repeat(3,100px)]",
20
- };
21
- const BizPictureMessage = ({ message }) => {
22
- var _a, _b, _c;
23
- const [viewerVisible, setViewerVisible] = useState(false);
24
- const pictureElem = message.pictureElem;
25
- const sourceUrl = ((_a = pictureElem === null || pictureElem === void 0 ? void 0 : pictureElem.sourcePicture) === null || _a === void 0 ? void 0 : _a.url) || ((_b = pictureElem === null || pictureElem === void 0 ? void 0 : pictureElem.snapshotPicture) === null || _b === void 0 ? void 0 : _b.url) || "";
26
- const bigUrl = ((_c = pictureElem === null || pictureElem === void 0 ? void 0 : pictureElem.bigPicture) === null || _c === void 0 ? void 0 : _c.url) || sourceUrl;
27
- const isSending = message.status === MessageStatus.Sending;
28
- return (_jsxs("div", { className: "-mx-1", children: [_jsx(Spin, { spinning: isSending, children: _jsx("div", { className: "cursor-pointer", onClick: () => setViewerVisible(true), children: _jsx(Image, { src: sourceUrl, width: 205, height: 205, className: "rounded-xl object-cover", preview: false, placeholder: _jsx("div", { className: "flex h-[205px] w-[205px] items-center justify-center rounded-xl bg-black/10", children: _jsx(Spin, {}) }) }) }) }), viewerVisible && (_jsx(BizImageViewer, { images: [bigUrl], onClose: () => setViewerVisible(false) }))] }));
29
- };
30
- const BizMergeImageMessage = ({ message }) => {
31
- var _a, _b;
32
- const [viewerIndex, setViewerIndex] = useState(null);
33
- const subMessages = (_b = (_a = message.mergeElem) === null || _a === void 0 ? void 0 : _a.multiMessage) !== null && _b !== void 0 ? _b : [];
34
- const isSending = message.status === MessageStatus.Sending;
35
- const cols = Math.min(subMessages.length, 3);
36
- const imageUrls = subMessages.map((item) => {
37
- var _a, _b, _c, _d, _e, _f;
38
- const sourceUrl = ((_b = (_a = item.pictureElem) === null || _a === void 0 ? void 0 : _a.sourcePicture) === null || _b === void 0 ? void 0 : _b.url) ||
39
- ((_d = (_c = item.pictureElem) === null || _c === void 0 ? void 0 : _c.snapshotPicture) === null || _d === void 0 ? void 0 : _d.url) ||
40
- "";
41
- return ((_f = (_e = item.pictureElem) === null || _e === void 0 ? void 0 : _e.bigPicture) === null || _f === void 0 ? void 0 : _f.url) || sourceUrl;
42
- });
43
- return (_jsxs("div", { className: "-mx-1", children: [_jsx(Spin, { spinning: isSending, children: _jsx("div", { className: clsx("grid gap-1", MERGE_IMAGE_GRID_COLS_CLASS[cols]), children: subMessages.map((item, index) => {
44
- var _a, _b, _c, _d;
45
- const sourceUrl = ((_b = (_a = item.pictureElem) === null || _a === void 0 ? void 0 : _a.sourcePicture) === null || _b === void 0 ? void 0 : _b.url) ||
46
- ((_d = (_c = item.pictureElem) === null || _c === void 0 ? void 0 : _c.snapshotPicture) === null || _d === void 0 ? void 0 : _d.url) ||
47
- "";
48
- return (_jsx("div", { className: "cursor-pointer", onClick: () => setViewerIndex(index), children: _jsx(Image, { src: sourceUrl, width: 100, height: 100, className: "rounded-xl object-cover", preview: false, placeholder: _jsx("div", { className: "flex h-[100px] w-[100px] items-center justify-center rounded-xl bg-black/10", children: _jsx(Spin, {}) }) }) }, item.clientMsgID));
49
- }) }) }), viewerIndex !== null && (_jsx(BizImageViewer, { images: imageUrls, initialIndex: viewerIndex, onClose: () => setViewerIndex(null) }))] }));
50
- };
51
- const BizVideoMessage = ({ message }) => {
52
- var _a;
53
- const [viewerVisible, setViewerVisible] = useState(false);
54
- const videoElem = message.videoElem;
55
- const videoUrl = (videoElem === null || videoElem === void 0 ? void 0 : videoElem.videoUrl) || "";
56
- const posterUrl = (videoElem === null || videoElem === void 0 ? void 0 : videoElem.snapshotUrl) || "";
57
- const durationSeconds = ((_a = videoElem === null || videoElem === void 0 ? void 0 : videoElem.duration) !== null && _a !== void 0 ? _a : 0) / 1000;
58
- const isSending = message.status === MessageStatus.Sending;
59
- return (_jsxs("div", { className: "-mx-1", children: [_jsx(Spin, { spinning: isSending, children: _jsxs("div", { className: "relative h-[150px] w-[215px] cursor-pointer overflow-hidden rounded-xl", onClick: () => setViewerVisible(true), children: [_jsx("img", { src: posterUrl, alt: "", className: "h-full w-full object-cover" }), _jsx("div", { className: "absolute bottom-1 right-1 flex h-[18px] w-9 items-center justify-center rounded-xl bg-black/70", children: _jsx("span", { className: "text-[10px] leading-[1.6] text-white", children: formatDuration(durationSeconds) }) }), _jsx("div", { className: "absolute left-1/2 top-1/2 flex h-[50px] w-[50px] -translate-x-1/2 -translate-y-1/2 items-center justify-center rounded-2xl bg-black/60", children: _jsx(Icon, { icon: "play-b", size: 24, className: "text-white" }) })] }) }), viewerVisible && (_jsx(BizVideoViewer, { videoUrl: videoUrl, posterUrl: posterUrl, onClose: () => setViewerVisible(false) }))] }));
60
- };
61
- const BizFileMessage = ({ message }) => {
62
- var _a;
63
- const fileElem = message.fileElem;
64
- const fileName = (fileElem === null || fileElem === void 0 ? void 0 : fileElem.fileName) || "";
65
- const fileSize = (_a = fileElem === null || fileElem === void 0 ? void 0 : fileElem.fileSize) !== null && _a !== void 0 ? _a : 0;
66
- const sourceUrl = (fileElem === null || fileElem === void 0 ? void 0 : fileElem.sourceUrl) || "";
67
- const isSending = message.status === MessageStatus.Sending;
68
- const hasUrl = !!sourceUrl;
69
- const handleView = () => {
70
- if (!hasUrl)
71
- return;
72
- window.open(sourceUrl, "_blank", "noopener,noreferrer");
73
- };
74
- const handleDownload = () => {
75
- if (!hasUrl)
76
- return;
77
- const link = document.createElement("a");
78
- link.href = sourceUrl;
79
- link.setAttribute("download", fileName);
80
- link.setAttribute("target", "_blank");
81
- link.setAttribute("rel", "noopener noreferrer");
82
- document.body.appendChild(link);
83
- link.click();
84
- link.remove();
85
- };
86
- return (_jsx(Spin, { spinning: isSending, children: _jsxs("div", { className: "flex h-[51px] w-[292px] items-center gap-3 rounded-xl border border-[rgba(168,173,175,0.2)] bg-white px-3 py-1", children: [_jsx("div", { className: "flex h-6 w-6 shrink-0 items-center justify-center overflow-hidden [&>svg]:h-6 [&>svg]:w-6", children: documentIcon }), _jsxs("div", { className: "flex min-w-0 w-[168px] flex-col justify-center", children: [_jsx("span", { className: "truncate text-[14px] font-medium leading-[160%] text-[#393E40]", children: shortenFileName(fileName) }), _jsx("span", { className: "truncate text-[13px] leading-[160%] text-[#5C6366]", children: renderFileSize(fileSize) })] }), _jsxs("div", { className: "flex w-[52px] shrink-0 items-center justify-end gap-3", children: [_jsx("button", { type: "button", onClick: handleView, disabled: !hasUrl, "aria-label": "Xem file", className: !hasUrl ? "opacity-30" : undefined, children: _jsx(Icon, { icon: "eye-o", size: 20, className: "text-[#393E40]" }) }), _jsx("button", { type: "button", onClick: handleDownload, disabled: !hasUrl, "aria-label": "T\u1EA3i xu\u1ED1ng", className: !hasUrl ? "opacity-30" : undefined, children: _jsx(Icon, { icon: "download-o", size: 20, className: "text-[#393E40]" }) })] })] }) }));
87
- };
88
- const BizMessageContent = ({ message }) => {
89
- var _a, _b, _c, _d, _e;
90
- if (message.contentType === MessageType.PictureMessage) {
91
- return _jsx(BizPictureMessage, { message: message });
92
- }
93
- if (message.contentType === MessageType.FileMessage) {
94
- return _jsx(BizFileMessage, { message: message });
95
- }
96
- if (message.contentType === MessageType.VideoMessage) {
97
- return _jsx(BizVideoMessage, { message: message });
98
- }
99
- if (message.contentType === MessageType.MergeMessage) {
100
- return _jsx(BizMergeImageMessage, { message: message });
101
- }
102
- const text = (_e = (_d = (_b = (_a = message.textElem) === null || _a === void 0 ? void 0 : _a.content) !== null && _b !== void 0 ? _b : (_c = message.urlTextElem) === null || _c === void 0 ? void 0 : _c.content) !== null && _d !== void 0 ? _d : message.content) !== null && _e !== void 0 ? _e : "";
103
- const hasLinks = text ? extractBizLinkUrls(text).length > 0 : false;
104
- if (message.contentType === MessageType.UrlTextMessage) {
105
- let urlMetadata;
106
- try {
107
- const ex = JSON.parse(message.ex || "{}");
108
- urlMetadata = ex.urlMetadata;
109
- }
110
- catch (_f) {
111
- urlMetadata = undefined;
112
- }
113
- if (urlMetadata === null || urlMetadata === void 0 ? void 0 : urlMetadata.url) {
114
- return (_jsxs("div", { className: "flex max-w-[292px] flex-col gap-2", children: [text && _jsx(BizLinkTextContent, { text: text }), _jsx(BizLinkMessageCard, { metadata: urlMetadata })] }));
115
- }
116
- return text ? _jsx(BizLinkTextContent, { text: text }) : null;
117
- }
118
- if (!text)
119
- return null;
120
- if (hasLinks) {
121
- return _jsx(BizLinkTextContent, { text: text });
122
- }
123
- return (_jsx("p", { className: "whitespace-pre-wrap break-words text-[16px] leading-[160%] tracking-[0.16px] text-[#393E40]", children: text }));
124
- };
125
- export default BizMessageContent;
@@ -1,7 +0,0 @@
1
- import { type ReactNode } from "react";
2
- export interface BizMessageListProps {
3
- bottomSlot?: ReactNode;
4
- }
5
- declare const BizMessageList: ({ bottomSlot }: BizMessageListProps) => import("react/jsx-runtime").JSX.Element;
6
- export default BizMessageList;
7
- //# sourceMappingURL=BizMessageList.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"BizMessageList.d.ts","sourceRoot":"","sources":["../../../src/components/biz-thread-detail/BizMessageList.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAa,KAAK,SAAS,EAAE,MAAM,OAAO,CAAC;AAalD,MAAM,WAAW,mBAAmB;IAClC,UAAU,CAAC,EAAE,SAAS,CAAC;CACxB;AAED,QAAA,MAAM,cAAc,GAAI,gBAAgB,mBAAmB,4CA0E1D,CAAC;AAEF,eAAe,cAAc,CAAC"}
@@ -1,35 +0,0 @@
1
- "use client";
2
- import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
3
- import { useEffect } from "react";
4
- import { Empty, Spin } from "antd";
5
- import { useTranslation } from "react-i18next";
6
- import { useChatContext } from "../../context/ChatContext";
7
- import MessageInfiniteScroll from "../../components/message/MessageInfiniteScroll";
8
- import { useMessage } from "../../hooks/message/useMessage";
9
- import { useMessageListScroll } from "../../hooks/message/useMessageListScroll";
10
- import useConversationStore from "../../store/conversation";
11
- import useAuthStore from "../../store/auth";
12
- import { isGroupChat as resolveIsGroupChat } from "../../utils/conversation";
13
- import emitter from "../../utils/events";
14
- import MessageItem from "../../components/message/item";
15
- const BizMessageList = ({ bottomSlot }) => {
16
- const { t } = useTranslation("biz-inbox");
17
- const { user } = useChatContext();
18
- const authUserID = useAuthStore((state) => state.userID);
19
- const conversation = useConversationStore((state) => state.conversationData);
20
- const selectedConversationId = useConversationStore((state) => state.selectedConversationId);
21
- const conversationId = selectedConversationId || (conversation === null || conversation === void 0 ? void 0 : conversation.conversationID) || "";
22
- const isGroupChat = conversation ? resolveIsGroupChat(conversation) : false;
23
- const messageController = useMessage(conversationId);
24
- const { scrollRef, loadMoreOldMessage, handleInfiniteScroll, scrollToBottomIfAtBottom, } = useMessageListScroll(Object.assign({ conversationId, userId: (user === null || user === void 0 ? void 0 : user.userID) || authUserID }, messageController));
25
- const { loadState, moreOldLoading } = messageController;
26
- const isMessageLoading = !conversationId || loadState.initLoading;
27
- useEffect(() => {
28
- emitter.on("BIZ_CHAT_SCROLL_TO_BOTTOM_IF_AT_BOTTOM", scrollToBottomIfAtBottom);
29
- return () => {
30
- emitter.off("BIZ_CHAT_SCROLL_TO_BOTTOM_IF_AT_BOTTOM", scrollToBottomIfAtBottom);
31
- };
32
- }, [scrollToBottomIfAtBottom]);
33
- return (_jsx("div", { "data-testid": "biz-message-list", className: "relative flex min-h-0 min-w-0 flex-1 flex-col overflow-x-hidden bg-white", children: isMessageLoading ? (_jsx("div", { className: "flex flex-1 items-center justify-center py-12", children: _jsx(Spin, {}) })) : (_jsxs(MessageInfiniteScroll, { scrollRef: scrollRef, scrollableTargetId: "scrollableBizMessagesDiv", loadState: loadState, moreOldLoading: moreOldLoading, onLoadMoreOld: loadMoreOldMessage, onScroll: handleInfiniteScroll, containerClassName: "h-full", empty: _jsx("div", { className: "flex flex-1 items-center justify-center py-12", children: _jsx(Empty, { description: t("empty.no_messages") }) }), children: [bottomSlot, loadState.messageList.map((message, index, array) => (_jsx(MessageItem, { message: message, allMessages: array, isGroupChat: isGroupChat, forceHideTip: index === 0 && !!bottomSlot }, message.clientMsgID)))] })) }));
34
- };
35
- export default BizMessageList;
@@ -1,8 +0,0 @@
1
- import type { BizMoreOptionConfig } from "../../constants/bizMoreOption";
2
- export interface BizMoreOptionItemProps {
3
- option: BizMoreOptionConfig;
4
- onSelect: (option: BizMoreOptionConfig) => void;
5
- }
6
- declare const BizMoreOptionItem: ({ option, onSelect }: BizMoreOptionItemProps) => import("react/jsx-runtime").JSX.Element;
7
- export default BizMoreOptionItem;
8
- //# sourceMappingURL=BizMoreOptionItem.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"BizMoreOptionItem.d.ts","sourceRoot":"","sources":["../../../src/components/biz-thread-detail/BizMoreOptionItem.tsx"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,2BAA2B,CAAC;AAIrE,MAAM,WAAW,sBAAsB;IACrC,MAAM,EAAE,mBAAmB,CAAC;IAC5B,QAAQ,EAAE,CAAC,MAAM,EAAE,mBAAmB,KAAK,IAAI,CAAC;CACjD;AAED,QAAA,MAAM,iBAAiB,GAAI,sBAAsB,sBAAsB,4CA+BtE,CAAC;AAEF,eAAe,iBAAiB,CAAC"}
@@ -1,19 +0,0 @@
1
- "use client";
2
- import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
3
- import clsx from "clsx";
4
- import { useTranslation } from "react-i18next";
5
- import { Icon } from "../../components/icon";
6
- const ICON_SIZE = 24;
7
- const BizMoreOptionItem = ({ option, onSelect }) => {
8
- const { t } = useTranslation("biz-inbox");
9
- const label = t(option.labelKey);
10
- const handleClick = () => {
11
- if (!option.enabled)
12
- return;
13
- onSelect(option);
14
- };
15
- return (_jsxs("button", { type: "button", onClick: handleClick, disabled: !option.enabled, "aria-label": label, "data-testid": `biz-more-option-${option.labelKey}`, className: clsx("flex flex-col items-center gap-1 rounded-xl px-1 transition-colors", option.enabled
16
- ? "active:bg-chat-bubble-neutral/[0.08]"
17
- : "cursor-not-allowed opacity-40"), children: [_jsx("span", { className: "flex h-12 w-12 items-center justify-center rounded-full bg-gray-200/10", children: _jsx(Icon, { icon: option.icon, size: ICON_SIZE, className: "text-gray-900" }) }), _jsx("span", { className: "line-clamp-2 text-center text-[12px] leading-[1.4] text-gray-900", children: label })] }));
18
- };
19
- export default BizMoreOptionItem;
@@ -1,10 +0,0 @@
1
- import { BizMoreOptionConfig } from "../../constants/bizMoreOption";
2
- export interface BizMoreOptionPanelProps {
3
- disabled?: boolean;
4
- onSelectOption?: (option: BizMoreOptionConfig) => void;
5
- onTriggerMediaInput?: () => void;
6
- onTriggerDocumentInput?: () => void;
7
- }
8
- declare const BizMoreOptionPanel: ({ disabled, onSelectOption, onTriggerMediaInput, onTriggerDocumentInput, }: BizMoreOptionPanelProps) => import("react/jsx-runtime").JSX.Element;
9
- export default BizMoreOptionPanel;
10
- //# sourceMappingURL=BizMoreOptionPanel.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"BizMoreOptionPanel.d.ts","sourceRoot":"","sources":["../../../src/components/biz-thread-detail/BizMoreOptionPanel.tsx"],"names":[],"mappings":"AAGA,OAAO,EAEL,mBAAmB,EACpB,MAAM,2BAA2B,CAAC;AAGnC,MAAM,WAAW,uBAAuB;IACtC,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,cAAc,CAAC,EAAE,CAAC,MAAM,EAAE,mBAAmB,KAAK,IAAI,CAAC;IACvD,mBAAmB,CAAC,EAAE,MAAM,IAAI,CAAC;IACjC,sBAAsB,CAAC,EAAE,MAAM,IAAI,CAAC;CACrC;AAED,QAAA,MAAM,kBAAkB,GAAI,4EAKzB,uBAAuB,4CA8BzB,CAAC;AAEF,eAAe,kBAAkB,CAAC"}
@@ -1,20 +0,0 @@
1
- "use client";
2
- import { jsx as _jsx } from "react/jsx-runtime";
3
- import { useCallback } from "react";
4
- import { BIZ_MORE_OPTIONS, } from "../../constants/bizMoreOption";
5
- import BizMoreOptionItem from "./BizMoreOptionItem";
6
- const BizMoreOptionPanel = ({ disabled = false, onSelectOption, onTriggerMediaInput, onTriggerDocumentInput, }) => {
7
- const handleSelectOption = useCallback((option) => {
8
- if (option.labelKey === "thread_detail.more_option.media") {
9
- onTriggerMediaInput === null || onTriggerMediaInput === void 0 ? void 0 : onTriggerMediaInput();
10
- return;
11
- }
12
- if (option.labelKey === "thread_detail.more_option.document") {
13
- onTriggerDocumentInput === null || onTriggerDocumentInput === void 0 ? void 0 : onTriggerDocumentInput();
14
- return;
15
- }
16
- onSelectOption === null || onSelectOption === void 0 ? void 0 : onSelectOption(option);
17
- }, [onSelectOption, onTriggerMediaInput, onTriggerDocumentInput]);
18
- return (_jsx("div", { "data-testid": "biz-more-option-panel", className: "grid grid-cols-4 gap-y-5 bg-white py-5", children: BIZ_MORE_OPTIONS.map((option) => (_jsx(BizMoreOptionItem, { option: Object.assign(Object.assign({}, option), { enabled: option.enabled && !disabled }), onSelect: handleSelectOption }, option.labelKey))) }));
19
- };
20
- export default BizMoreOptionPanel;
@@ -1,8 +0,0 @@
1
- import type { ConversationItem } from "@openim/wasm-client-sdk";
2
- export interface BizThreadDetailHeaderProps {
3
- conversation: ConversationItem;
4
- onBack?: () => void;
5
- }
6
- declare const BizThreadDetailHeader: ({ conversation, onBack, }: BizThreadDetailHeaderProps) => import("react/jsx-runtime").JSX.Element;
7
- export default BizThreadDetailHeader;
8
- //# sourceMappingURL=BizThreadDetailHeader.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"BizThreadDetailHeader.d.ts","sourceRoot":"","sources":["../../../src/components/biz-thread-detail/BizThreadDetailHeader.tsx"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAShE,MAAM,WAAW,0BAA0B;IACzC,YAAY,EAAE,gBAAgB,CAAC;IAC/B,MAAM,CAAC,EAAE,MAAM,IAAI,CAAC;CACrB;AAqBD,QAAA,MAAM,qBAAqB,GAAI,2BAG5B,0BAA0B,4CA6C5B,CAAC;AAEF,eAAe,qBAAqB,CAAC"}
@@ -1,19 +0,0 @@
1
- "use client";
2
- import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
3
- import { useTranslation } from "react-i18next";
4
- import { Icon } from "../../components/icon";
5
- import BizThreadAvatar from "../../components/biz-inbox/BizThreadAvatar";
6
- import BizThreadTitle from "../../components/biz-inbox/BizThreadTitle";
7
- import { resolveConversationAvatarUrl, resolveConversationChatCategory, resolveConversationDisplayName, resolvePeerBadgeLabel, } from "../../utils/conversation";
8
- const HeaderIconButton = ({ icon, onClick, testId, }) => (_jsx("button", { type: "button", onClick: onClick, "data-testid": testId, className: "flex shrink-0 cursor-pointer items-center justify-center p-2 text-primary-400", children: _jsx(Icon, { icon: icon, size: 24 }) }));
9
- const BizThreadDetailHeader = ({ conversation, onBack, }) => {
10
- const { t } = useTranslation("biz-inbox");
11
- const displayName = resolveConversationDisplayName(conversation, t);
12
- const avatarUrl = resolveConversationAvatarUrl(conversation);
13
- const peerType = conversation.peerType;
14
- const chatCategory = resolveConversationChatCategory(conversation);
15
- const badgeLabel = resolvePeerBadgeLabel(peerType, t);
16
- const subtitle = t("thread_detail.profile_hint");
17
- return (_jsxs("div", { "data-testid": "biz-thread-detail-header", className: "flex w-full cursor-default items-center border-b border-gray-25 bg-white p-2 shadow-inset-gray-divider", children: [_jsx(HeaderIconButton, { icon: "arrow-left-o", onClick: onBack, testId: "biz-thread-detail-back" }), _jsxs("div", { className: "flex min-w-0 flex-1 items-center gap-2 px-1", "data-testid": "biz-thread-detail-profile", children: [_jsx(BizThreadAvatar, { peerType: peerType, chatCategory: chatCategory, displayName: displayName, avatarUrl: avatarUrl, badgeLabel: badgeLabel }), _jsxs("div", { className: "min-w-0 flex-1", children: [_jsx(BizThreadTitle, { peerType: peerType, chatCategory: chatCategory, displayName: displayName }), _jsx("p", { className: "truncate text-[10px] font-normal leading-[160%] tracking-[0.1px] text-gray-600 [font-feature-settings:'liga'_off,'clig'_off]", children: subtitle })] })] })] }));
18
- };
19
- export default BizThreadDetailHeader;