@planningcenter/chat-react-native 3.42.2-qa-821.1 → 3.42.2-qa-staging.3

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 (637) hide show
  1. package/build/components/conversation/attachments/attachment_card.d.ts +3 -3
  2. package/build/components/conversation/attachments/attachment_card.d.ts.map +1 -1
  3. package/build/components/conversation/attachments/attachment_card.js +7 -3
  4. package/build/components/conversation/attachments/attachment_card.js.map +1 -1
  5. package/build/components/conversation/attachments/attachment_deleting_overlay.d.ts +2 -1
  6. package/build/components/conversation/attachments/attachment_deleting_overlay.d.ts.map +1 -1
  7. package/build/components/conversation/attachments/attachment_deleting_overlay.js +7 -12
  8. package/build/components/conversation/attachments/attachment_deleting_overlay.js.map +1 -1
  9. package/build/components/conversation/attachments/audio_attachment.d.ts +2 -1
  10. package/build/components/conversation/attachments/audio_attachment.d.ts.map +1 -1
  11. package/build/components/conversation/attachments/audio_attachment.js +23 -6
  12. package/build/components/conversation/attachments/audio_attachment.js.map +1 -1
  13. package/build/components/conversation/attachments/expanded_link.d.ts +2 -1
  14. package/build/components/conversation/attachments/expanded_link.d.ts.map +1 -1
  15. package/build/components/conversation/attachments/expanded_link.js +8 -2
  16. package/build/components/conversation/attachments/expanded_link.js.map +1 -1
  17. package/build/components/conversation/attachments/generic_file_attachment.d.ts +2 -1
  18. package/build/components/conversation/attachments/generic_file_attachment.d.ts.map +1 -1
  19. package/build/components/conversation/attachments/generic_file_attachment.js +12 -2
  20. package/build/components/conversation/attachments/generic_file_attachment.js.map +1 -1
  21. package/build/components/conversation/attachments/giphy_attachment.d.ts +2 -1
  22. package/build/components/conversation/attachments/giphy_attachment.d.ts.map +1 -1
  23. package/build/components/conversation/attachments/giphy_attachment.js +7 -2
  24. package/build/components/conversation/attachments/giphy_attachment.js.map +1 -1
  25. package/build/components/conversation/attachments/image_attachment.d.ts +2 -1
  26. package/build/components/conversation/attachments/image_attachment.d.ts.map +1 -1
  27. package/build/components/conversation/attachments/image_attachment.js +53 -16
  28. package/build/components/conversation/attachments/image_attachment.js.map +1 -1
  29. package/build/components/conversation/attachments/video_attachment.d.ts +2 -1
  30. package/build/components/conversation/attachments/video_attachment.d.ts.map +1 -1
  31. package/build/components/conversation/attachments/video_attachment.js +13 -3
  32. package/build/components/conversation/attachments/video_attachment.js.map +1 -1
  33. package/build/components/conversation/conversation_start_banner.d.ts +2 -1
  34. package/build/components/conversation/conversation_start_banner.d.ts.map +1 -1
  35. package/build/components/conversation/conversation_start_banner.js +14 -2
  36. package/build/components/conversation/conversation_start_banner.js.map +1 -1
  37. package/build/components/conversation/empty_conversation_blank_state.d.ts +1 -1
  38. package/build/components/conversation/empty_conversation_blank_state.d.ts.map +1 -1
  39. package/build/components/conversation/empty_conversation_blank_state.js +9 -2
  40. package/build/components/conversation/empty_conversation_blank_state.js.map +1 -1
  41. package/build/components/conversation/jump_to_bottom_button.d.ts +1 -1
  42. package/build/components/conversation/jump_to_bottom_button.d.ts.map +1 -1
  43. package/build/components/conversation/jump_to_bottom_button.js +10 -2
  44. package/build/components/conversation/jump_to_bottom_button.js.map +1 -1
  45. package/build/components/conversation/message.d.ts +2 -1
  46. package/build/components/conversation/message.d.ts.map +1 -1
  47. package/build/components/conversation/message.js +53 -2
  48. package/build/components/conversation/message.js.map +1 -1
  49. package/build/components/conversation/message_attachments.d.ts +2 -1
  50. package/build/components/conversation/message_attachments.d.ts.map +1 -1
  51. package/build/components/conversation/message_attachments.js +21 -17
  52. package/build/components/conversation/message_attachments.js.map +1 -1
  53. package/build/components/conversation/message_form/message_form_attachment_file.d.ts +2 -1
  54. package/build/components/conversation/message_form/message_form_attachment_file.d.ts.map +1 -1
  55. package/build/components/conversation/message_form/message_form_attachment_file.js +2 -2
  56. package/build/components/conversation/message_form/message_form_attachment_file.js.map +1 -1
  57. package/build/components/conversation/message_form/message_form_attachment_image.d.ts +2 -1
  58. package/build/components/conversation/message_form/message_form_attachment_image.d.ts.map +1 -1
  59. package/build/components/conversation/message_form/message_form_attachment_image.js +2 -2
  60. package/build/components/conversation/message_form/message_form_attachment_image.js.map +1 -1
  61. package/build/components/conversation/message_form/message_form_attachment_video.d.ts +2 -1
  62. package/build/components/conversation/message_form/message_form_attachment_video.d.ts.map +1 -1
  63. package/build/components/conversation/message_form/message_form_attachment_video.js +2 -2
  64. package/build/components/conversation/message_form/message_form_attachment_video.js.map +1 -1
  65. package/build/components/conversation/message_form.d.ts +6 -5
  66. package/build/components/conversation/message_form.d.ts.map +1 -1
  67. package/build/components/conversation/message_form.js +82 -20
  68. package/build/components/conversation/message_form.js.map +1 -1
  69. package/build/components/conversation/message_markdown.d.ts +2 -1
  70. package/build/components/conversation/message_markdown.d.ts.map +1 -1
  71. package/build/components/conversation/message_markdown.js +16 -8
  72. package/build/components/conversation/message_markdown.js.map +1 -1
  73. package/build/components/conversation/message_reaction.d.ts +2 -1
  74. package/build/components/conversation/message_reaction.d.ts.map +1 -1
  75. package/build/components/conversation/message_reaction.js +5 -3
  76. package/build/components/conversation/message_reaction.js.map +1 -1
  77. package/build/components/conversation/message_read_receipts.d.ts +2 -1
  78. package/build/components/conversation/message_read_receipts.d.ts.map +1 -1
  79. package/build/components/conversation/message_read_receipts.js +13 -3
  80. package/build/components/conversation/message_read_receipts.js.map +1 -1
  81. package/build/components/conversation/messages_disabled_banners.d.ts +3 -3
  82. package/build/components/conversation/messages_disabled_banners.d.ts.map +1 -1
  83. package/build/components/conversation/messages_disabled_banners.js +8 -5
  84. package/build/components/conversation/messages_disabled_banners.js.map +1 -1
  85. package/build/components/conversation/reply_connectors.d.ts +2 -2
  86. package/build/components/conversation/reply_connectors.d.ts.map +1 -1
  87. package/build/components/conversation/reply_connectors.js +50 -18
  88. package/build/components/conversation/reply_connectors.js.map +1 -1
  89. package/build/components/conversation/reply_shadow_message.d.ts +2 -1
  90. package/build/components/conversation/reply_shadow_message.d.ts.map +1 -1
  91. package/build/components/conversation/reply_shadow_message.js +46 -16
  92. package/build/components/conversation/reply_shadow_message.js.map +1 -1
  93. package/build/components/conversation/system_message.d.ts +2 -1
  94. package/build/components/conversation/system_message.d.ts.map +1 -1
  95. package/build/components/conversation/system_message.js +12 -3
  96. package/build/components/conversation/system_message.js.map +1 -1
  97. package/build/components/conversation/typing_indicator.d.ts +2 -1
  98. package/build/components/conversation/typing_indicator.d.ts.map +1 -1
  99. package/build/components/conversation/typing_indicator.js +13 -3
  100. package/build/components/conversation/typing_indicator.js.map +1 -1
  101. package/build/components/conversations/conversation_actions.d.ts +2 -2
  102. package/build/components/conversations/conversation_actions.d.ts.map +1 -1
  103. package/build/components/conversations/conversation_actions.js +10 -4
  104. package/build/components/conversations/conversation_actions.js.map +1 -1
  105. package/build/components/conversations/conversation_preview.d.ts +3 -2
  106. package/build/components/conversations/conversation_preview.d.ts.map +1 -1
  107. package/build/components/conversations/conversation_preview.js +76 -12
  108. package/build/components/conversations/conversation_preview.js.map +1 -1
  109. package/build/components/conversations/conversations.d.ts +1 -1
  110. package/build/components/conversations/conversations.d.ts.map +1 -1
  111. package/build/components/conversations/conversations.js +17 -16
  112. package/build/components/conversations/conversations.js.map +1 -1
  113. package/build/components/conversations/conversations_blank_state.d.ts +2 -1
  114. package/build/components/conversations/conversations_blank_state.d.ts.map +1 -1
  115. package/build/components/conversations/conversations_blank_state.js +12 -2
  116. package/build/components/conversations/conversations_blank_state.js.map +1 -1
  117. package/build/components/conversations/mute_indicator.d.ts +2 -1
  118. package/build/components/conversations/mute_indicator.d.ts.map +1 -1
  119. package/build/components/conversations/mute_indicator.js +2 -2
  120. package/build/components/conversations/mute_indicator.js.map +1 -1
  121. package/build/components/conversations/swipeable_toggle_button.d.ts +2 -1
  122. package/build/components/conversations/swipeable_toggle_button.d.ts.map +1 -1
  123. package/build/components/conversations/swipeable_toggle_button.js +10 -3
  124. package/build/components/conversations/swipeable_toggle_button.js.map +1 -1
  125. package/build/components/conversations/unread_count_badge.d.ts +4 -2
  126. package/build/components/conversations/unread_count_badge.d.ts.map +1 -1
  127. package/build/components/conversations/unread_count_badge.js +12 -7
  128. package/build/components/conversations/unread_count_badge.js.map +1 -1
  129. package/build/components/display/action_button.d.ts +1 -1
  130. package/build/components/display/action_button.d.ts.map +1 -1
  131. package/build/components/display/action_button.js +13 -3
  132. package/build/components/display/action_button.js.map +1 -1
  133. package/build/components/display/adult_requirement_notice.d.ts +2 -1
  134. package/build/components/display/adult_requirement_notice.d.ts.map +1 -1
  135. package/build/components/display/adult_requirement_notice.js +4 -2
  136. package/build/components/display/adult_requirement_notice.js.map +1 -1
  137. package/build/components/display/avatar.d.ts +2 -1
  138. package/build/components/display/avatar.d.ts.map +1 -1
  139. package/build/components/display/avatar.js +7 -2
  140. package/build/components/display/avatar.js.map +1 -1
  141. package/build/components/display/avatar_group.d.ts +2 -1
  142. package/build/components/display/avatar_group.d.ts.map +1 -1
  143. package/build/components/display/avatar_group.js +9 -2
  144. package/build/components/display/avatar_group.js.map +1 -1
  145. package/build/components/display/badge.d.ts +2 -1
  146. package/build/components/display/badge.d.ts.map +1 -1
  147. package/build/components/display/badge.js +37 -6
  148. package/build/components/display/badge.js.map +1 -1
  149. package/build/components/display/banner.d.ts +3 -3
  150. package/build/components/display/banner.d.ts.map +1 -1
  151. package/build/components/display/banner.js +11 -4
  152. package/build/components/display/banner.js.map +1 -1
  153. package/build/components/display/banner_collapsible.d.ts +2 -2
  154. package/build/components/display/banner_collapsible.d.ts.map +1 -1
  155. package/build/components/display/banner_collapsible.js +10 -2
  156. package/build/components/display/banner_collapsible.js.map +1 -1
  157. package/build/components/display/button.d.ts +2 -1
  158. package/build/components/display/button.d.ts.map +1 -1
  159. package/build/components/display/button.js +14 -3
  160. package/build/components/display/button.js.map +1 -1
  161. package/build/components/display/child_notice.d.ts +2 -1
  162. package/build/components/display/child_notice.d.ts.map +1 -1
  163. package/build/components/display/child_notice.js +15 -3
  164. package/build/components/display/child_notice.js.map +1 -1
  165. package/build/components/display/conversation_avatar.d.ts +2 -1
  166. package/build/components/display/conversation_avatar.d.ts.map +1 -1
  167. package/build/components/display/conversation_avatar.js +9 -5
  168. package/build/components/display/conversation_avatar.js.map +1 -1
  169. package/build/components/display/emoji_avatar.d.ts +2 -1
  170. package/build/components/display/emoji_avatar.d.ts.map +1 -1
  171. package/build/components/display/emoji_avatar.js +12 -2
  172. package/build/components/display/emoji_avatar.js.map +1 -1
  173. package/build/components/display/file_attachment_preview.d.ts +1 -1
  174. package/build/components/display/file_attachment_preview.d.ts.map +1 -1
  175. package/build/components/display/file_attachment_preview.js +17 -3
  176. package/build/components/display/file_attachment_preview.js.map +1 -1
  177. package/build/components/display/heading.d.ts +2 -1
  178. package/build/components/display/heading.d.ts.map +1 -1
  179. package/build/components/display/heading.js +4 -2
  180. package/build/components/display/heading.js.map +1 -1
  181. package/build/components/display/icon.d.ts +2 -1
  182. package/build/components/display/icon.d.ts.map +1 -1
  183. package/build/components/display/icon.js +4 -4
  184. package/build/components/display/icon.js.map +1 -1
  185. package/build/components/display/icon_avatar.d.ts +2 -1
  186. package/build/components/display/icon_avatar.d.ts.map +1 -1
  187. package/build/components/display/icon_avatar.js +12 -2
  188. package/build/components/display/icon_avatar.js.map +1 -1
  189. package/build/components/display/icon_button.d.ts +2 -1
  190. package/build/components/display/icon_button.d.ts.map +1 -1
  191. package/build/components/display/icon_button.js +5 -3
  192. package/build/components/display/icon_button.js.map +1 -1
  193. package/build/components/display/image.d.ts +2 -1
  194. package/build/components/display/image.d.ts.map +1 -1
  195. package/build/components/display/image.js +7 -3
  196. package/build/components/display/image.js.map +1 -1
  197. package/build/components/display/image_attachment_preview.d.ts +1 -1
  198. package/build/components/display/image_attachment_preview.d.ts.map +1 -1
  199. package/build/components/display/image_attachment_preview.js +7 -2
  200. package/build/components/display/image_attachment_preview.js.map +1 -1
  201. package/build/components/display/keyboard_view.d.ts +2 -1
  202. package/build/components/display/keyboard_view.d.ts.map +1 -1
  203. package/build/components/display/keyboard_view.js +9 -4
  204. package/build/components/display/keyboard_view.js.map +1 -1
  205. package/build/components/display/person.d.ts +2 -1
  206. package/build/components/display/person.d.ts.map +1 -1
  207. package/build/components/display/person.js +12 -2
  208. package/build/components/display/person.js.map +1 -1
  209. package/build/components/display/platform_modal_header_buttons.d.ts +3 -3
  210. package/build/components/display/platform_modal_header_buttons.d.ts.map +1 -1
  211. package/build/components/display/platform_modal_header_buttons.js +10 -5
  212. package/build/components/display/platform_modal_header_buttons.js.map +1 -1
  213. package/build/components/display/pressable_row.d.ts +1 -1
  214. package/build/components/display/pressable_row.d.ts.map +1 -1
  215. package/build/components/display/pressable_row.js +7 -2
  216. package/build/components/display/pressable_row.js.map +1 -1
  217. package/build/components/display/spinner.d.ts +2 -1
  218. package/build/components/display/spinner.d.ts.map +1 -1
  219. package/build/components/display/spinner.js +9 -3
  220. package/build/components/display/spinner.js.map +1 -1
  221. package/build/components/display/switch.d.ts +2 -1
  222. package/build/components/display/switch.d.ts.map +1 -1
  223. package/build/components/display/switch.js +2 -2
  224. package/build/components/display/switch.js.map +1 -1
  225. package/build/components/display/tabs.d.ts +1 -1
  226. package/build/components/display/tabs.d.ts.map +1 -1
  227. package/build/components/display/tabs.js +31 -21
  228. package/build/components/display/tabs.js.map +1 -1
  229. package/build/components/display/text.d.ts +2 -1
  230. package/build/components/display/text.d.ts.map +1 -1
  231. package/build/components/display/text.js +4 -2
  232. package/build/components/display/text.js.map +1 -1
  233. package/build/components/display/text_button.d.ts +2 -1
  234. package/build/components/display/text_button.d.ts.map +1 -1
  235. package/build/components/display/text_button.js +8 -3
  236. package/build/components/display/text_button.js.map +1 -1
  237. package/build/components/display/text_inline_button.d.ts +2 -1
  238. package/build/components/display/text_inline_button.d.ts.map +1 -1
  239. package/build/components/display/text_inline_button.js +5 -4
  240. package/build/components/display/text_inline_button.js.map +1 -1
  241. package/build/components/display/text_input.d.ts +1 -1
  242. package/build/components/display/text_input.d.ts.map +1 -1
  243. package/build/components/display/text_input.js +1 -2
  244. package/build/components/display/text_input.js.map +1 -1
  245. package/build/components/display/toggle_button.d.ts +2 -1
  246. package/build/components/display/toggle_button.d.ts.map +1 -1
  247. package/build/components/display/toggle_button.js +9 -3
  248. package/build/components/display/toggle_button.js.map +1 -1
  249. package/build/components/display/video_attachment_preview.d.ts +1 -1
  250. package/build/components/display/video_attachment_preview.d.ts.map +1 -1
  251. package/build/components/display/video_attachment_preview.js +20 -3
  252. package/build/components/display/video_attachment_preview.js.map +1 -1
  253. package/build/components/group_conversation_list.d.ts +1 -1
  254. package/build/components/group_conversation_list.d.ts.map +1 -1
  255. package/build/components/group_conversation_list.js +14 -4
  256. package/build/components/group_conversation_list.js.map +1 -1
  257. package/build/components/page/component_error_boundary.d.ts +2 -2
  258. package/build/components/page/component_error_boundary.d.ts.map +1 -1
  259. package/build/components/page/component_error_boundary.js +4 -2
  260. package/build/components/page/component_error_boundary.js.map +1 -1
  261. package/build/components/page/loading.d.ts +2 -1
  262. package/build/components/page/loading.d.ts.map +1 -1
  263. package/build/components/page/loading.js +4 -2
  264. package/build/components/page/loading.js.map +1 -1
  265. package/build/components/page/page_error_boundary.d.ts +2 -2
  266. package/build/components/page/page_error_boundary.d.ts.map +1 -1
  267. package/build/components/page/page_error_boundary.js +32 -11
  268. package/build/components/page/page_error_boundary.js.map +1 -1
  269. package/build/components/primitive/avatar_primitive.js +41 -14
  270. package/build/components/primitive/avatar_primitive.js.map +1 -1
  271. package/build/components/primitive/banner_primitive.js +18 -10
  272. package/build/components/primitive/banner_primitive.js.map +1 -1
  273. package/build/components/primitive/blank_state_primitive.js +12 -8
  274. package/build/components/primitive/blank_state_primitive.js.map +1 -1
  275. package/build/components/primitive/form_sheet.d.ts +1 -1
  276. package/build/components/primitive/form_sheet.d.ts.map +1 -1
  277. package/build/components/primitive/form_sheet.js +22 -9
  278. package/build/components/primitive/form_sheet.js.map +1 -1
  279. package/build/components/safe_area_modal.d.ts +1 -1
  280. package/build/components/safe_area_modal.d.ts.map +1 -1
  281. package/build/components/safe_area_modal.js +3 -2
  282. package/build/components/safe_area_modal.js.map +1 -1
  283. package/build/contexts/api_provider.d.ts +2 -1
  284. package/build/contexts/api_provider.d.ts.map +1 -1
  285. package/build/contexts/api_provider.js +5 -3
  286. package/build/contexts/api_provider.js.map +1 -1
  287. package/build/contexts/chat_context.d.ts +1 -1
  288. package/build/contexts/chat_context.d.ts.map +1 -1
  289. package/build/contexts/chat_context.js +1 -2
  290. package/build/contexts/chat_context.js.map +1 -1
  291. package/build/contexts/conversation_context.d.ts +2 -2
  292. package/build/contexts/conversation_context.d.ts.map +1 -1
  293. package/build/contexts/conversation_context.js +2 -3
  294. package/build/contexts/conversation_context.js.map +1 -1
  295. package/build/contexts/conversations_context.d.ts +2 -2
  296. package/build/contexts/conversations_context.d.ts.map +1 -1
  297. package/build/contexts/conversations_context.js +2 -3
  298. package/build/contexts/conversations_context.js.map +1 -1
  299. package/build/contexts/session_context.d.ts +1 -1
  300. package/build/contexts/session_context.d.ts.map +1 -1
  301. package/build/contexts/session_context.js +2 -3
  302. package/build/contexts/session_context.js.map +1 -1
  303. package/build/hooks/use_animated_message_background_color.d.ts +2 -2
  304. package/build/hooks/use_conversation.d.ts +1 -1
  305. package/build/hooks/use_conversation.d.ts.map +1 -1
  306. package/build/hooks/use_conversation.js +2 -0
  307. package/build/hooks/use_conversation.js.map +1 -1
  308. package/build/hooks/use_conversation_jolt_events.d.ts.map +1 -1
  309. package/build/hooks/use_conversation_jolt_events.js +4 -19
  310. package/build/hooks/use_conversation_jolt_events.js.map +1 -1
  311. package/build/hooks/use_conversation_membership.d.ts +1 -1
  312. package/build/hooks/use_conversation_membership.d.ts.map +1 -1
  313. package/build/hooks/use_conversation_messages.d.ts +0 -1
  314. package/build/hooks/use_conversation_messages.d.ts.map +1 -1
  315. package/build/hooks/use_conversation_messages.js +2 -2
  316. package/build/hooks/use_conversation_messages.js.map +1 -1
  317. package/build/hooks/use_conversations_actions.d.ts +36 -36
  318. package/build/hooks/use_conversations_actions.d.ts.map +1 -1
  319. package/build/hooks/use_conversations_actions.js +3 -1
  320. package/build/hooks/use_conversations_actions.js.map +1 -1
  321. package/build/hooks/use_mark_latest_message_read.d.ts.map +1 -1
  322. package/build/hooks/use_mark_latest_message_read.js +3 -4
  323. package/build/hooks/use_mark_latest_message_read.js.map +1 -1
  324. package/build/hooks/use_person_settings.d.ts +1 -1
  325. package/build/index.d.ts +1 -2
  326. package/build/index.d.ts.map +1 -1
  327. package/build/index.js.map +1 -1
  328. package/build/navigation/chat_access_gate.d.ts +2 -2
  329. package/build/navigation/chat_access_gate.d.ts.map +1 -1
  330. package/build/navigation/chat_access_gate.js +5 -6
  331. package/build/navigation/chat_access_gate.js.map +1 -1
  332. package/build/navigation/index.d.ts +36 -35
  333. package/build/navigation/index.d.ts.map +1 -1
  334. package/build/navigation/index.js +21 -19
  335. package/build/navigation/index.js.map +1 -1
  336. package/build/navigation/screenLayout.d.ts +2 -2
  337. package/build/navigation/screenLayout.d.ts.map +1 -1
  338. package/build/navigation/screenLayout.js +9 -3
  339. package/build/navigation/screenLayout.js.map +1 -1
  340. package/build/polyfills/events/EventTarget.d.ts +1 -1
  341. package/build/polyfills/events/EventTarget.d.ts.map +1 -1
  342. package/build/polyfills/events/EventTarget.js.map +1 -1
  343. package/build/screens/age_check/age_check_required_screen.d.ts +2 -1
  344. package/build/screens/age_check/age_check_required_screen.d.ts.map +1 -1
  345. package/build/screens/age_check/age_check_required_screen.js +46 -3
  346. package/build/screens/age_check/age_check_required_screen.js.map +1 -1
  347. package/build/screens/age_check/age_check_underage_screen.d.ts +2 -1
  348. package/build/screens/age_check/age_check_underage_screen.d.ts.map +1 -1
  349. package/build/screens/age_check/age_check_underage_screen.js +25 -2
  350. package/build/screens/age_check/age_check_underage_screen.js.map +1 -1
  351. package/build/screens/age_check/components/age_check_select_birthdate_modal.d.ts +2 -1
  352. package/build/screens/age_check/components/age_check_select_birthdate_modal.d.ts.map +1 -1
  353. package/build/screens/age_check/components/age_check_select_birthdate_modal.js +25 -6
  354. package/build/screens/age_check/components/age_check_select_birthdate_modal.js.map +1 -1
  355. package/build/screens/attachment_actions/attachment_actions_screen.d.ts +2 -1
  356. package/build/screens/attachment_actions/attachment_actions_screen.d.ts.map +1 -1
  357. package/build/screens/attachment_actions/attachment_actions_screen.js +5 -3
  358. package/build/screens/attachment_actions/attachment_actions_screen.js.map +1 -1
  359. package/build/screens/avatar_picker/avatar_picker_screen.d.ts +2 -1
  360. package/build/screens/avatar_picker/avatar_picker_screen.d.ts.map +1 -1
  361. package/build/screens/avatar_picker/avatar_picker_screen.js +36 -9
  362. package/build/screens/avatar_picker/avatar_picker_screen.js.map +1 -1
  363. package/build/screens/avatar_picker/avatar_preview.d.ts +1 -1
  364. package/build/screens/avatar_picker/avatar_preview.d.ts.map +1 -1
  365. package/build/screens/avatar_picker/avatar_preview.js +9 -5
  366. package/build/screens/avatar_picker/avatar_preview.js.map +1 -1
  367. package/build/screens/avatar_picker/color_picker.d.ts +2 -1
  368. package/build/screens/avatar_picker/color_picker.d.ts.map +1 -1
  369. package/build/screens/avatar_picker/color_picker.js +5 -4
  370. package/build/screens/avatar_picker/color_picker.js.map +1 -1
  371. package/build/screens/avatar_picker/emoji_tab.d.ts +2 -1
  372. package/build/screens/avatar_picker/emoji_tab.d.ts.map +1 -1
  373. package/build/screens/avatar_picker/emoji_tab.js +13 -12
  374. package/build/screens/avatar_picker/emoji_tab.js.map +1 -1
  375. package/build/screens/avatar_picker/icon_grid.d.ts +2 -1
  376. package/build/screens/avatar_picker/icon_grid.d.ts.map +1 -1
  377. package/build/screens/avatar_picker/icon_grid.js +5 -4
  378. package/build/screens/avatar_picker/icon_grid.js.map +1 -1
  379. package/build/screens/avatar_picker/upload_tab.d.ts +2 -1
  380. package/build/screens/avatar_picker/upload_tab.d.ts.map +1 -1
  381. package/build/screens/avatar_picker/upload_tab.js +4 -3
  382. package/build/screens/avatar_picker/upload_tab.js.map +1 -1
  383. package/build/screens/bug_report_screen.d.ts +2 -1
  384. package/build/screens/bug_report_screen.d.ts.map +1 -1
  385. package/build/screens/bug_report_screen.js +117 -11
  386. package/build/screens/bug_report_screen.js.map +1 -1
  387. package/build/screens/conversation/message_read_receipts_screen.d.ts +2 -1
  388. package/build/screens/conversation/message_read_receipts_screen.d.ts.map +1 -1
  389. package/build/screens/conversation/message_read_receipts_screen.js +20 -4
  390. package/build/screens/conversation/message_read_receipts_screen.js.map +1 -1
  391. package/build/screens/conversation_details_screen.d.ts +2 -1
  392. package/build/screens/conversation_details_screen.d.ts.map +1 -1
  393. package/build/screens/conversation_details_screen.js +106 -43
  394. package/build/screens/conversation_details_screen.js.map +1 -1
  395. package/build/screens/conversation_filter_recipients/components/checkbox_row.d.ts +1 -1
  396. package/build/screens/conversation_filter_recipients/components/checkbox_row.d.ts.map +1 -1
  397. package/build/screens/conversation_filter_recipients/components/checkbox_row.js +9 -3
  398. package/build/screens/conversation_filter_recipients/components/checkbox_row.js.map +1 -1
  399. package/build/screens/conversation_filter_recipients/components/header_row.d.ts +1 -1
  400. package/build/screens/conversation_filter_recipients/components/header_row.d.ts.map +1 -1
  401. package/build/screens/conversation_filter_recipients/components/header_row.js +12 -2
  402. package/build/screens/conversation_filter_recipients/components/header_row.js.map +1 -1
  403. package/build/screens/conversation_filter_recipients/conversation_filter_recipients_screen.d.ts +2 -1
  404. package/build/screens/conversation_filter_recipients/conversation_filter_recipients_screen.d.ts.map +1 -1
  405. package/build/screens/conversation_filter_recipients/conversation_filter_recipients_screen.js +44 -20
  406. package/build/screens/conversation_filter_recipients/conversation_filter_recipients_screen.js.map +1 -1
  407. package/build/screens/conversation_filters/components/conversation_filters.d.ts +2 -1
  408. package/build/screens/conversation_filters/components/conversation_filters.d.ts.map +1 -1
  409. package/build/screens/conversation_filters/components/conversation_filters.js +11 -10
  410. package/build/screens/conversation_filters/components/conversation_filters.js.map +1 -1
  411. package/build/screens/conversation_filters/components/rows.d.ts +6 -6
  412. package/build/screens/conversation_filters/components/rows.d.ts.map +1 -1
  413. package/build/screens/conversation_filters/components/rows.js +34 -7
  414. package/build/screens/conversation_filters/components/rows.js.map +1 -1
  415. package/build/screens/conversation_filters/context/conversation_filter_context.d.ts +1 -1
  416. package/build/screens/conversation_filters/context/conversation_filter_context.d.ts.map +1 -1
  417. package/build/screens/conversation_filters/context/conversation_filter_context.js +1 -2
  418. package/build/screens/conversation_filters/context/conversation_filter_context.js.map +1 -1
  419. package/build/screens/conversation_filters/group_filters.d.ts +2 -1
  420. package/build/screens/conversation_filters/group_filters.d.ts.map +1 -1
  421. package/build/screens/conversation_filters/group_filters.js +2 -2
  422. package/build/screens/conversation_filters/group_filters.js.map +1 -1
  423. package/build/screens/conversation_filters/team_filters.d.ts +2 -1
  424. package/build/screens/conversation_filters/team_filters.d.ts.map +1 -1
  425. package/build/screens/conversation_filters/team_filters.js +2 -2
  426. package/build/screens/conversation_filters/team_filters.js.map +1 -1
  427. package/build/screens/conversation_filters_screen.d.ts +2 -1
  428. package/build/screens/conversation_filters_screen.d.ts.map +1 -1
  429. package/build/screens/conversation_filters_screen.js +16 -4
  430. package/build/screens/conversation_filters_screen.js.map +1 -1
  431. package/build/screens/conversation_new/components/avatar_selection_row.d.ts +3 -2
  432. package/build/screens/conversation_new/components/avatar_selection_row.d.ts.map +1 -1
  433. package/build/screens/conversation_new/components/avatar_selection_row.js +16 -6
  434. package/build/screens/conversation_new/components/avatar_selection_row.js.map +1 -1
  435. package/build/screens/conversation_new/components/filter_by_plan.d.ts +4 -3
  436. package/build/screens/conversation_new/components/filter_by_plan.d.ts.map +1 -1
  437. package/build/screens/conversation_new/components/filter_by_plan.js +46 -22
  438. package/build/screens/conversation_new/components/filter_by_plan.js.map +1 -1
  439. package/build/screens/conversation_new/components/form_list.d.ts +3 -2
  440. package/build/screens/conversation_new/components/form_list.d.ts.map +1 -1
  441. package/build/screens/conversation_new/components/form_list.js +6 -4
  442. package/build/screens/conversation_new/components/form_list.js.map +1 -1
  443. package/build/screens/conversation_new/components/gender_filter_toggle.d.ts +2 -1
  444. package/build/screens/conversation_new/components/gender_filter_toggle.d.ts.map +1 -1
  445. package/build/screens/conversation_new/components/gender_filter_toggle.js +20 -4
  446. package/build/screens/conversation_new/components/gender_filter_toggle.js.map +1 -1
  447. package/build/screens/conversation_new/components/groups_form.d.ts +2 -1
  448. package/build/screens/conversation_new/components/groups_form.d.ts.map +1 -1
  449. package/build/screens/conversation_new/components/groups_form.js +30 -4
  450. package/build/screens/conversation_new/components/groups_form.js.map +1 -1
  451. package/build/screens/conversation_new/components/services_form.d.ts +2 -1
  452. package/build/screens/conversation_new/components/services_form.d.ts.map +1 -1
  453. package/build/screens/conversation_new/components/services_form.js +61 -27
  454. package/build/screens/conversation_new/components/services_form.js.map +1 -1
  455. package/build/screens/conversation_new/components/source_app_error_card.d.ts +1 -1
  456. package/build/screens/conversation_new/components/source_app_error_card.d.ts.map +1 -1
  457. package/build/screens/conversation_new/components/source_app_error_card.js +3 -2
  458. package/build/screens/conversation_new/components/source_app_error_card.js.map +1 -1
  459. package/build/screens/conversation_new/conversation_new_screen.d.ts +2 -1
  460. package/build/screens/conversation_new/conversation_new_screen.d.ts.map +1 -1
  461. package/build/screens/conversation_new/conversation_new_screen.js +4 -4
  462. package/build/screens/conversation_new/conversation_new_screen.js.map +1 -1
  463. package/build/screens/conversation_notification_level_select_screen.d.ts +2 -1
  464. package/build/screens/conversation_notification_level_select_screen.d.ts.map +1 -1
  465. package/build/screens/conversation_notification_level_select_screen.js +6 -4
  466. package/build/screens/conversation_notification_level_select_screen.js.map +1 -1
  467. package/build/screens/conversation_screen.d.ts +3 -2
  468. package/build/screens/conversation_screen.d.ts.map +1 -1
  469. package/build/screens/conversation_screen.js +66 -25
  470. package/build/screens/conversation_screen.js.map +1 -1
  471. package/build/screens/conversation_select_recipients/components/groups_recipient_row.d.ts +1 -1
  472. package/build/screens/conversation_select_recipients/components/groups_recipient_row.d.ts.map +1 -1
  473. package/build/screens/conversation_select_recipients/components/groups_recipient_row.js +1 -2
  474. package/build/screens/conversation_select_recipients/components/groups_recipient_row.js.map +1 -1
  475. package/build/screens/conversation_select_recipients/components/recipient_link_row.d.ts +2 -1
  476. package/build/screens/conversation_select_recipients/components/recipient_link_row.d.ts.map +1 -1
  477. package/build/screens/conversation_select_recipients/components/recipient_link_row.js +15 -2
  478. package/build/screens/conversation_select_recipients/components/recipient_link_row.js.map +1 -1
  479. package/build/screens/conversation_select_recipients/components/restricted_group_row.d.ts +2 -1
  480. package/build/screens/conversation_select_recipients/components/restricted_group_row.d.ts.map +1 -1
  481. package/build/screens/conversation_select_recipients/components/restricted_group_row.js +14 -2
  482. package/build/screens/conversation_select_recipients/components/restricted_group_row.js.map +1 -1
  483. package/build/screens/conversation_select_recipients/components/team_recipient_row.d.ts +1 -1
  484. package/build/screens/conversation_select_recipients/components/team_recipient_row.d.ts.map +1 -1
  485. package/build/screens/conversation_select_recipients/components/team_recipient_row.js +1 -2
  486. package/build/screens/conversation_select_recipients/components/team_recipient_row.js.map +1 -1
  487. package/build/screens/conversation_select_recipients/components/view_more_link_row.d.ts +1 -1
  488. package/build/screens/conversation_select_recipients/components/view_more_link_row.d.ts.map +1 -1
  489. package/build/screens/conversation_select_recipients/components/view_more_link_row.js +5 -2
  490. package/build/screens/conversation_select_recipients/components/view_more_link_row.js.map +1 -1
  491. package/build/screens/conversation_select_recipients/conversation_new_entry_screen.d.ts +2 -1
  492. package/build/screens/conversation_select_recipients/conversation_new_entry_screen.d.ts.map +1 -1
  493. package/build/screens/conversation_select_recipients/conversation_new_entry_screen.js +11 -4
  494. package/build/screens/conversation_select_recipients/conversation_new_entry_screen.js.map +1 -1
  495. package/build/screens/conversation_select_recipients/conversation_select_direct_message_recipients_screen.d.ts +1 -1
  496. package/build/screens/conversation_select_recipients/conversation_select_direct_message_recipients_screen.d.ts.map +1 -1
  497. package/build/screens/conversation_select_recipients/conversation_select_direct_message_recipients_screen.js +83 -11
  498. package/build/screens/conversation_select_recipients/conversation_select_direct_message_recipients_screen.js.map +1 -1
  499. package/build/screens/conversation_select_recipients/conversation_select_group_recipients_screen.d.ts +2 -1
  500. package/build/screens/conversation_select_recipients/conversation_select_group_recipients_screen.d.ts.map +1 -1
  501. package/build/screens/conversation_select_recipients/conversation_select_group_recipients_screen.js +14 -7
  502. package/build/screens/conversation_select_recipients/conversation_select_group_recipients_screen.js.map +1 -1
  503. package/build/screens/conversation_select_recipients/conversation_select_teams_i_lead_recipients_screen.d.ts +2 -1
  504. package/build/screens/conversation_select_recipients/conversation_select_teams_i_lead_recipients_screen.d.ts.map +1 -1
  505. package/build/screens/conversation_select_recipients/conversation_select_teams_i_lead_recipients_screen.js +18 -15
  506. package/build/screens/conversation_select_recipients/conversation_select_teams_i_lead_recipients_screen.js.map +1 -1
  507. package/build/screens/conversation_select_type_screen.d.ts +2 -1
  508. package/build/screens/conversation_select_type_screen.d.ts.map +1 -1
  509. package/build/screens/conversation_select_type_screen.js +10 -3
  510. package/build/screens/conversation_select_type_screen.js.map +1 -1
  511. package/build/screens/conversations/components/chat_group_badge.d.ts +2 -1
  512. package/build/screens/conversations/components/chat_group_badge.d.ts.map +1 -1
  513. package/build/screens/conversations/components/chat_group_badge.js +4 -3
  514. package/build/screens/conversations/components/chat_group_badge.js.map +1 -1
  515. package/build/screens/conversations/components/list_header_action_button.d.ts +2 -1
  516. package/build/screens/conversations/components/list_header_action_button.d.ts.map +1 -1
  517. package/build/screens/conversations/components/list_header_action_button.js +5 -3
  518. package/build/screens/conversations/components/list_header_action_button.js.map +1 -1
  519. package/build/screens/conversations/components/list_header_component.d.ts +2 -1
  520. package/build/screens/conversations/components/list_header_component.d.ts.map +1 -1
  521. package/build/screens/conversations/components/list_header_component.js +42 -19
  522. package/build/screens/conversations/components/list_header_component.js.map +1 -1
  523. package/build/screens/conversations/conversations_screen.d.ts +2 -1
  524. package/build/screens/conversations/conversations_screen.d.ts.map +1 -1
  525. package/build/screens/conversations/conversations_screen.js +6 -2
  526. package/build/screens/conversations/conversations_screen.js.map +1 -1
  527. package/build/screens/design_system_screen.d.ts +2 -1
  528. package/build/screens/design_system_screen.d.ts.map +1 -1
  529. package/build/screens/design_system_screen.js +558 -35
  530. package/build/screens/design_system_screen.js.map +1 -1
  531. package/build/screens/get_help_screen.d.ts +1 -1
  532. package/build/screens/get_help_screen.d.ts.map +1 -1
  533. package/build/screens/get_help_screen.js +25 -4
  534. package/build/screens/get_help_screen.js.map +1 -1
  535. package/build/screens/group_notification_level_select_screen.d.ts +2 -1
  536. package/build/screens/group_notification_level_select_screen.d.ts.map +1 -1
  537. package/build/screens/group_notification_level_select_screen.js +4 -2
  538. package/build/screens/group_notification_level_select_screen.js.map +1 -1
  539. package/build/screens/group_notification_settings_screen.d.ts +2 -1
  540. package/build/screens/group_notification_settings_screen.d.ts.map +1 -1
  541. package/build/screens/group_notification_settings_screen.js +25 -3
  542. package/build/screens/group_notification_settings_screen.js.map +1 -1
  543. package/build/screens/message_actions_screen.d.ts +2 -1
  544. package/build/screens/message_actions_screen.d.ts.map +1 -1
  545. package/build/screens/message_actions_screen.js +28 -12
  546. package/build/screens/message_actions_screen.js.map +1 -1
  547. package/build/screens/message_report/components/message_preview.d.ts +2 -1
  548. package/build/screens/message_report/components/message_preview.d.ts.map +1 -1
  549. package/build/screens/message_report/components/message_preview.js +22 -2
  550. package/build/screens/message_report/components/message_preview.js.map +1 -1
  551. package/build/screens/message_report/components/report_reason_list.d.ts +2 -1
  552. package/build/screens/message_report/components/report_reason_list.d.ts.map +1 -1
  553. package/build/screens/message_report/components/report_reason_list.js +13 -4
  554. package/build/screens/message_report/components/report_reason_list.js.map +1 -1
  555. package/build/screens/message_report_screen.d.ts +2 -1
  556. package/build/screens/message_report_screen.d.ts.map +1 -1
  557. package/build/screens/message_report_screen.js +61 -9
  558. package/build/screens/message_report_screen.js.map +1 -1
  559. package/build/screens/not_found.d.ts +2 -1
  560. package/build/screens/not_found.d.ts.map +1 -1
  561. package/build/screens/not_found.js +5 -2
  562. package/build/screens/not_found.js.map +1 -1
  563. package/build/screens/notification_settings/hooks/groups.d.ts +1 -1
  564. package/build/screens/notification_settings/hooks/groups.d.ts.map +1 -1
  565. package/build/screens/notification_settings_screen.d.ts +2 -1
  566. package/build/screens/notification_settings_screen.d.ts.map +1 -1
  567. package/build/screens/notification_settings_screen.js +66 -28
  568. package/build/screens/notification_settings_screen.js.map +1 -1
  569. package/build/screens/preferred_app_selection_screen.d.ts +2 -1
  570. package/build/screens/preferred_app_selection_screen.d.ts.map +1 -1
  571. package/build/screens/preferred_app_selection_screen.js +21 -3
  572. package/build/screens/preferred_app_selection_screen.js.map +1 -1
  573. package/build/screens/reactions_screen.d.ts +2 -1
  574. package/build/screens/reactions_screen.d.ts.map +1 -1
  575. package/build/screens/reactions_screen.js +19 -7
  576. package/build/screens/reactions_screen.js.map +1 -1
  577. package/build/screens/send_giphy_screen.d.ts +2 -1
  578. package/build/screens/send_giphy_screen.d.ts.map +1 -1
  579. package/build/screens/send_giphy_screen.js +31 -5
  580. package/build/screens/send_giphy_screen.js.map +1 -1
  581. package/build/screens/settings_screen.d.ts +2 -1
  582. package/build/screens/settings_screen.d.ts.map +1 -1
  583. package/build/screens/settings_screen.js +26 -4
  584. package/build/screens/settings_screen.js.map +1 -1
  585. package/build/screens/system_message_people_screen.d.ts +2 -1
  586. package/build/screens/system_message_people_screen.d.ts.map +1 -1
  587. package/build/screens/system_message_people_screen.js +10 -4
  588. package/build/screens/system_message_people_screen.js.map +1 -1
  589. package/build/screens/team_conversation_screen.d.ts +1 -1
  590. package/build/screens/team_conversation_screen.d.ts.map +1 -1
  591. package/build/screens/team_conversation_screen.js +12 -4
  592. package/build/screens/team_conversation_screen.js.map +1 -1
  593. package/build/types/resources/conversation.d.ts +10 -1
  594. package/build/types/resources/conversation.d.ts.map +1 -1
  595. package/build/types/resources/conversation.js.map +1 -1
  596. package/build/utils/request/conversation.d.ts.map +1 -1
  597. package/build/utils/request/conversation.js +2 -0
  598. package/build/utils/request/conversation.js.map +1 -1
  599. package/build/utils/response_error.d.ts.map +1 -1
  600. package/build/utils/response_error.js +16 -6
  601. package/build/utils/response_error.js.map +1 -1
  602. package/build/utils/sha_256.js.map +1 -1
  603. package/build/utils/system_messages.d.ts +1 -1
  604. package/build/utils/system_messages.d.ts.map +1 -1
  605. package/build/utils/system_messages.js.map +1 -1
  606. package/build/utils/theme.d.ts +2 -2
  607. package/build/utils/theme.d.ts.map +1 -1
  608. package/build/utils/theme.js.map +1 -1
  609. package/package.json +12 -12
  610. package/src/__tests__/hooks/use_attachment_uploader.test.tsx +0 -1
  611. package/src/__tests__/hooks/use_font_scale.test.ts +3 -7
  612. package/src/__tests__/utils/native_adapters/configuration.ts +1 -1
  613. package/src/__tests__/utils/system_messages.ts +1 -1
  614. package/src/__tests__/utils/uri.ts +50 -8
  615. package/src/__utils__/handlers.ts +6 -5
  616. package/src/components/conversation/attachments/attachment_deleting_overlay.tsx +3 -10
  617. package/src/components/conversations/conversation_preview.tsx +58 -23
  618. package/src/components/conversations/unread_count_badge.tsx +13 -4
  619. package/src/components/page/__tests__/component_error_boundary.test.tsx +1 -1
  620. package/src/components/page/__tests__/error_boundary.test.tsx +2 -6
  621. package/src/components/page/__tests__/page_error_boundary.test.tsx +1 -1
  622. package/src/hooks/use_conversation.ts +2 -0
  623. package/src/hooks/use_conversation_jolt_events.ts +3 -19
  624. package/src/hooks/use_conversation_messages.ts +5 -6
  625. package/src/hooks/use_conversations_actions.ts +3 -1
  626. package/src/hooks/use_mark_latest_message_read.ts +3 -4
  627. package/src/index.tsx +1 -2
  628. package/src/polyfills/events/EventTarget.ts +1 -1
  629. package/src/screens/conversation_screen.tsx +2 -4
  630. package/src/screens/conversations/components/list_header_component.tsx +6 -6
  631. package/src/types/resources/conversation.ts +11 -1
  632. package/src/utils/__tests__/response_error.test.ts +7 -0
  633. package/src/utils/request/conversation.ts +2 -0
  634. package/src/utils/response_error.ts +18 -7
  635. package/src/utils/sha_256.ts +24 -24
  636. package/src/utils/system_messages.ts +1 -1
  637. package/src/utils/theme.ts +2 -3
@@ -1,4 +1,5 @@
1
- import { http, HttpResponse, type JsonBodyType } from 'msw'
1
+ import { http, HttpResponse } from 'msw'
2
+ import { JSONAPIResponse } from '../types'
2
3
  import DefaultFixtures from './fixtures/defaults'
3
4
 
4
5
  export const BASE_URL = 'https://api.pco.test/chat/v2'
@@ -12,25 +13,25 @@ export const handlers = [
12
13
  del(BASE_URL + '/records/:id'),
13
14
  ]
14
15
 
15
- function get(url: string, mockedResponse: JsonBodyType, mockedStatus: number = 200) {
16
+ function get(url: string, mockedResponse: JSONAPIResponse, mockedStatus: number = 200) {
16
17
  return http.get(url, () => {
17
18
  return HttpResponse.json(mockedResponse, { status: mockedStatus })
18
19
  })
19
20
  }
20
21
 
21
- function post(url: string, mockedResponse: JsonBodyType, mockedStatus: number = 200) {
22
+ function post(url: string, mockedResponse: JSONAPIResponse, mockedStatus: number = 200) {
22
23
  return http.post(url, () => {
23
24
  return HttpResponse.json(mockedResponse, { status: mockedStatus })
24
25
  })
25
26
  }
26
27
 
27
- function del(url: string, mockedResponse?: JsonBodyType, mockedStatus: number = 200) {
28
+ function del(url: string, mockedResponse?: JSONAPIResponse, mockedStatus: number = 200) {
28
29
  return http.delete(url, () => {
29
30
  return HttpResponse.json(mockedResponse, { status: mockedStatus })
30
31
  })
31
32
  }
32
33
 
33
- function patch(url: string, mockedResponse: JsonBodyType, mockedStatus: number = 200) {
34
+ function patch(url: string, mockedResponse: JSONAPIResponse, mockedStatus: number = 200) {
34
35
  return http.patch(url, () => {
35
36
  return HttpResponse.json(mockedResponse, { status: mockedStatus })
36
37
  })
@@ -1,3 +1,4 @@
1
+ import React from 'react'
1
2
  import { View, StyleSheet } from 'react-native'
2
3
  import { useTheme } from '../../../hooks'
3
4
  import { Spinner } from '../../display'
@@ -18,22 +19,14 @@ const useStyles = () => {
18
19
 
19
20
  return StyleSheet.create({
20
21
  container: {
21
- position: 'absolute',
22
- top: 0,
23
- left: 0,
24
- right: 0,
25
- bottom: 0,
22
+ ...StyleSheet.absoluteFillObject,
26
23
  justifyContent: 'center',
27
24
  alignItems: 'center',
28
25
  borderRadius: 8,
29
26
  overflow: 'hidden',
30
27
  },
31
28
  overlay: {
32
- position: 'absolute',
33
- top: 0,
34
- left: 0,
35
- right: 0,
36
- bottom: 0,
29
+ ...StyleSheet.absoluteFillObject,
37
30
  backgroundColor: colors.fillColorNeutral070,
38
31
  opacity: 0.5,
39
32
  },
@@ -6,8 +6,10 @@ import {
6
6
  useFontScale,
7
7
  useScalableNumberOfLines,
8
8
  } from '../../hooks'
9
- import { ConversationResource } from '../../types'
9
+ import { ConversationPreviewData, ConversationResource } from '../../types'
10
+ import { REACTION_EMOJIS, platformFontWeightBold } from '../../utils'
10
11
  import { formatDatePreview } from '../../utils/date'
12
+ import { tokens } from '../../vendor/tapestry/tokens'
11
13
  import { AvatarGroup, ConversationAvatar, Heading, Text, Badge, type BadgeProps } from '../display'
12
14
  import { ConversationActions } from './conversation_actions'
13
15
  import { MuteIndicator } from './mute_indicator'
@@ -30,25 +32,26 @@ export const ConversationPreview = ({
30
32
  }: ConversationPreviewProps) => {
31
33
  const styles = useStyles()
32
34
  const {
33
- lastMessageAuthorName,
35
+ conversationPreview,
34
36
  lastMessageCreatedAt,
35
- lastMessageTextPreview,
36
37
  title,
37
38
  unreadCount,
38
39
  badges,
39
40
  muted,
40
41
  disabled,
42
+ unreadReaction,
41
43
  } = conversation
42
44
 
43
45
  const emptyConversation = !lastMessageCreatedAt
44
46
  const fallbackIconName = emptyConversation ? 'people.noTextMessage' : 'general.person'
45
47
  const hasMetaContent = lastMessageCreatedAt || unreadCount > 0 || muted
48
+ const isUnread = unreadCount > 0 || unreadReaction
46
49
 
47
50
  const numberOfLinesScaledTitle = useScalableNumberOfLines(1)
48
51
  const numberOfLinesScaledPreviewText = useScalableNumberOfLines(2)
49
52
 
50
- const conversationPreviewText = lastMessageTextPreview
51
- ? `${lastMessageAuthorName}: ${lastMessageTextPreview}`
53
+ const conversationPreviewText = conversationPreview
54
+ ? formatConversationPreviewText(conversationPreview)
52
55
  : EMPTY_CONVERSATION_PREVIEW_TEXT
53
56
 
54
57
  const conversationAccessibilityLabel = getConversationAccessibilityLabel({
@@ -69,13 +72,20 @@ export const ConversationPreview = ({
69
72
  fallbackIconName={fallbackIconName}
70
73
  />
71
74
  <View style={styles.conversationBody}>
72
- <Heading numberOfLines={numberOfLinesScaledTitle} variant="h3" style={styles.title}>
75
+ <Heading
76
+ numberOfLines={numberOfLinesScaledTitle}
77
+ variant="h3"
78
+ style={[styles.title, isUnread && styles.unreadTitle]}
79
+ >
73
80
  {title}
74
81
  </Heading>
75
82
  <Text
76
83
  variant="tertiary"
77
84
  numberOfLines={numberOfLinesScaledPreviewText}
78
- style={emptyConversation && styles.emptyConversationPreviewText}
85
+ style={[
86
+ emptyConversation && styles.emptyConversationPreviewText,
87
+ isUnread && styles.unreadText,
88
+ ]}
79
89
  >
80
90
  {conversationPreviewText}
81
91
  </Text>
@@ -83,9 +93,9 @@ export const ConversationPreview = ({
83
93
  </View>
84
94
  {hasMetaContent && (
85
95
  <View style={styles.metaContainer}>
86
- <Text variant="tertiary">{formatDatePreview(lastMessageCreatedAt)}</Text>
96
+ <Text variant="tertiary">{formatDatePreview(conversationPreview?.createdAt)}</Text>
87
97
  <View style={styles.statusContainer}>
88
- <UnreadCountBadge count={unreadCount} showDot={muted} />
98
+ <UnreadCountBadge count={unreadCount} unreadReaction={unreadReaction} showDot={muted} />
89
99
  <MuteIndicator muted={muted} />
90
100
  </View>
91
101
  </View>
@@ -152,6 +162,30 @@ export const ConversationPreviewSkeleton = () => {
152
162
  )
153
163
  }
154
164
 
165
+ function reactionEmoji(value: ConversationPreviewData['value']): string | null {
166
+ if (!value) return null
167
+ return REACTION_EMOJIS[value] ?? null
168
+ }
169
+
170
+ function formatConversationPreviewText(preview: ConversationPreviewData) {
171
+ if (preview.kind === 'reaction') {
172
+ const emoji = reactionEmoji(preview.value)
173
+ return `${preview.authorName}${emoji ? ` ${emoji}` : ' reacted'} to: "${preview.text}"`
174
+ }
175
+
176
+ return `${preview.authorName}: ${preview.text}`
177
+ }
178
+
179
+ function formatConversationPreviewAccessibilityLabel(preview: ConversationPreviewData) {
180
+ const date = formatDatePreview(preview.createdAt)
181
+
182
+ if (preview.kind === 'reaction') {
183
+ return `${preview.authorName} reacted to your message sent ${date} and says ${preview.text}`
184
+ }
185
+
186
+ return `Last message sent ${date} from ${preview.authorName} and says ${preview.text}`
187
+ }
188
+
155
189
  interface GetConversationAccessibilityLabelProps {
156
190
  conversation: ConversationResource
157
191
  showBadges: boolean
@@ -160,29 +194,24 @@ const getConversationAccessibilityLabel = ({
160
194
  conversation,
161
195
  showBadges,
162
196
  }: GetConversationAccessibilityLabelProps) => {
163
- const {
164
- badges,
165
- title,
166
- lastMessageAuthorName,
167
- lastMessageTextPreview,
168
- muted,
169
- disabled,
170
- unreadCount,
171
- lastMessageCreatedAt,
172
- } = conversation
197
+ const { badges, title, conversationPreview, muted, disabled, unreadCount, unreadReaction } =
198
+ conversation
173
199
 
174
200
  const hasBadges = badges && showBadges
175
201
  const hasUnreadMessages = unreadCount > 0
176
- const hasLastMessage = lastMessageCreatedAt
177
202
 
178
203
  const label = {
179
204
  title,
180
205
  badge: hasBadges ? `for ${badges[0]?.pcoResourceType} ${badges[0]?.text || ''}` : '',
181
206
  disabled: disabled ? 'Disabled' : '',
182
207
  muted: muted ? 'Muted' : '',
183
- readStatus: hasUnreadMessages ? `${unreadCount} unread messages` : '',
184
- lastMessage: hasLastMessage
185
- ? `Last message sent ${formatDatePreview(lastMessageCreatedAt)} from ${lastMessageAuthorName} and says ${lastMessageTextPreview}`
208
+ readStatus: hasUnreadMessages
209
+ ? `${unreadCount} unread messages`
210
+ : unreadReaction
211
+ ? 'unread reaction'
212
+ : '',
213
+ lastMessage: conversationPreview
214
+ ? formatConversationPreviewAccessibilityLabel(conversationPreview)
186
215
  : EMPTY_CONVERSATION_PREVIEW_TEXT,
187
216
  }
188
217
 
@@ -222,6 +251,12 @@ const useStyles = () => {
222
251
  fontSize: 16,
223
252
  color: colors.textColorDefaultPrimary,
224
253
  },
254
+ unreadTitle: {
255
+ fontWeight: tokens.fontWeightBold,
256
+ },
257
+ unreadText: {
258
+ fontWeight: platformFontWeightBold,
259
+ },
225
260
  titleLoading: {
226
261
  width: 120,
227
262
  height: 20,
@@ -4,12 +4,21 @@ import { useFontScale, useTheme } from '../../hooks'
4
4
  import { MAX_FONT_SIZE_MULTIPLIER, platformFontWeightBold } from '../../utils'
5
5
  import { Text } from '../display'
6
6
 
7
- export const UnreadCountBadge = ({ count, showDot }: { count: number; showDot: boolean }) => {
7
+ export const UnreadCountBadge = ({
8
+ count,
9
+ unreadReaction,
10
+ showDot,
11
+ }: {
12
+ count: number
13
+ unreadReaction: boolean
14
+ showDot: boolean
15
+ }) => {
8
16
  const styles = useStyles()
9
17
  const displayCount = count > 99 ? '99+' : count
18
+ const isUnread = count > 0 || unreadReaction
10
19
 
11
- if (count === 0) return null
12
- if (showDot) return <View style={styles.dot} />
20
+ if (!isUnread) return null
21
+ if (showDot || count === 0) return <View style={styles.dot} />
13
22
 
14
23
  return (
15
24
  <View style={styles.badge}>
@@ -24,7 +33,7 @@ const useStyles = () => {
24
33
  const { colors } = useTheme()
25
34
  const dotScaleLimit = MAX_FONT_SIZE_MULTIPLIER * 1.5
26
35
  const fontScale = useFontScale({ maxFontSizeMultiplier: dotScaleLimit })
27
- const size = 8 * fontScale
36
+ const size = 10 * fontScale
28
37
 
29
38
  return StyleSheet.create({
30
39
  badge: {
@@ -4,7 +4,7 @@ import { Text } from 'react-native'
4
4
  import { Log } from '../../../utils/native_adapters/configuration'
5
5
  import { ComponentErrorBoundary } from '../component_error_boundary'
6
6
 
7
- function Boom({ thrown }: { thrown: unknown }): React.ReactElement {
7
+ function Boom({ thrown }: { thrown: unknown }) {
8
8
  throw thrown
9
9
  }
10
10
 
@@ -6,7 +6,7 @@ import { Log } from '../../../utils/native_adapters/configuration'
6
6
  import { ResponseError } from '../../../utils/response_error'
7
7
  import { ErrorBoundary } from '../error_boundary'
8
8
 
9
- function Boom({ thrown }: { thrown: unknown }): React.ReactElement {
9
+ function Boom({ thrown }: { thrown: unknown }) {
10
10
  throw thrown
11
11
  }
12
12
 
@@ -46,11 +46,7 @@ describe('ErrorBoundary', () => {
46
46
  })
47
47
 
48
48
  it('does not report ResponseError — those are owned by the HTTP layer', () => {
49
- const failure = {
50
- status: 500,
51
- statusText: 'Server Error',
52
- errors: [],
53
- } as unknown as FailedResponse
49
+ const failure = { status: 500, statusText: 'Server Error', errors: [] } as FailedResponse
54
50
 
55
51
  render(
56
52
  <ErrorBoundary fallback={null}>
@@ -26,7 +26,7 @@ jest.mock('../../primitive/blank_state_primitive', () => {
26
26
  }
27
27
  })
28
28
 
29
- function Boom({ thrown }: { thrown: unknown }): React.ReactElement {
29
+ function Boom({ thrown }: { thrown: unknown }) {
30
30
  throw thrown
31
31
  }
32
32
 
@@ -16,6 +16,7 @@ export const getConversationRequestArgs = ({ conversation_id }: { conversation_i
16
16
  'created_at',
17
17
  'badges',
18
18
  'conversation_membership',
19
+ 'conversation_preview',
19
20
  'gender_option',
20
21
  'groups',
21
22
  'last_message_author_id',
@@ -36,6 +37,7 @@ export const getConversationRequestArgs = ({ conversation_id }: { conversation_i
36
37
  'replies_disabled',
37
38
  'title',
38
39
  'unread_count',
40
+ 'unread_reaction',
39
41
  'updated_at',
40
42
  ],
41
43
  AnalyticsMetadata: ['metadata'],
@@ -63,7 +63,7 @@ export function useConversationJoltEvents({ conversationId }: Props) {
63
63
  data: {
64
64
  ...prev.data,
65
65
  latestReadMessageSortKey: latest_read_message_sort_key,
66
- unreadReactionCount: 0,
66
+ unreadReaction: false,
67
67
  },
68
68
  }
69
69
  })
@@ -87,25 +87,9 @@ export function useConversationJoltEvents({ conversationId }: Props) {
87
87
 
88
88
  const handleReactionJoltEvent = useCallback(
89
89
  (event: JoltReactionEvent) => {
90
- queryClient.setQueryData<ApiResource<ConversationResource>>(queryKey, prev => {
91
- if (!prev?.data) return prev
90
+ if (event.data.data.author_id === currentPersonId) return
92
91
 
93
- if (event.data.data.author_id === currentPersonId) {
94
- return prev
95
- }
96
-
97
- return {
98
- ...prev,
99
- data: {
100
- ...prev.data,
101
- // Not a real count, just a derived value from Jolt events so we can
102
- // determine if we should mark the conversation as read
103
- unreadReactionCount: prev.data.unreadReactionCount
104
- ? prev.data.unreadReactionCount + 1
105
- : 1,
106
- },
107
- }
108
- })
92
+ queryClient.invalidateQueries({ queryKey })
109
93
  },
110
94
  [queryClient, queryKey, currentPersonId]
111
95
  )
@@ -7,11 +7,10 @@ export const useConversationMessages = (
7
7
  { conversation_id, reply_root_id }: { conversation_id: number; reply_root_id?: string | null },
8
8
  opts?: SuspensePaginatorOptions
9
9
  ) => {
10
- const { data, refetch, isRefetching, fetchNextPage, hasNextPage } =
11
- useSuspensePaginator<MessageResource>(
12
- getMessagesRequestArgs({ conversation_id, reply_root_id }),
13
- opts
14
- )
10
+ const { data, refetch, isRefetching, fetchNextPage } = useSuspensePaginator<MessageResource>(
11
+ getMessagesRequestArgs({ conversation_id, reply_root_id }),
12
+ opts
13
+ )
15
14
  const queryKey = getMessagesQueryKey({ conversation_id, reply_root_id })
16
15
  const messages = useMemo(
17
16
  () =>
@@ -25,5 +24,5 @@ export const useConversationMessages = (
25
24
  [data]
26
25
  )
27
26
 
28
- return { messages, refetch, isRefetching, fetchNextPage, hasNextPage, queryKey }
27
+ return { messages, refetch, isRefetching, fetchNextPage, queryKey }
29
28
  }
@@ -20,7 +20,7 @@ export const useConversationsMarkRead = ({
20
20
  currentPersonCache.update({}, person => {
21
21
  const currentUnread = person.unreadCount
22
22
  const updatedUnread = read ? Math.max(currentUnread - 1, 0) : currentUnread + 1
23
- return { ...person, unreadCount: updatedUnread, unreadReactionCount: 0 }
23
+ return { ...person, unreadCount: updatedUnread }
24
24
  })
25
25
  }
26
26
 
@@ -29,6 +29,7 @@ export const useConversationsMarkRead = ({
29
29
  update({
30
30
  ...conversation,
31
31
  unreadCount: read ? 0 : 1,
32
+ ...(read ? { unreadReaction: false } : {}),
32
33
  })
33
34
  handlePersonUnreadCount(read)
34
35
  },
@@ -106,6 +107,7 @@ export const useMarkAllRead = () => {
106
107
  onMutate: () => {
107
108
  updateAll({
108
109
  unreadCount: 0,
110
+ unreadReaction: false,
109
111
  })
110
112
  },
111
113
  mutationKey: ['markAllRead', args],
@@ -17,9 +17,9 @@ export function useMarkLatestMessageRead({ conversation }: Props) {
17
17
  [markRead]
18
18
  )
19
19
  const unreadCount = conversation.unreadCount
20
- const unreadReactionCount = conversation.unreadReactionCount || 0
20
+ const unreadReaction = conversation.unreadReaction
21
21
 
22
- const shouldMarkRead = Boolean(unreadCount >= 1 || unreadReactionCount > 0 || !firedOnce.current)
22
+ const shouldMarkRead = Boolean(unreadCount >= 1 || unreadReaction || !firedOnce.current)
23
23
  const appState = useAppState()
24
24
  const isActive = appState === 'active'
25
25
 
@@ -29,6 +29,5 @@ export function useMarkLatestMessageRead({ conversation }: Props) {
29
29
  firedOnce.current = true
30
30
 
31
31
  debouncedMarkRead(true)
32
- // keeping unreadReactionCount in the dependency array to watch for changes
33
- }, [debouncedMarkRead, isActive, shouldMarkRead, unreadReactionCount])
32
+ }, [debouncedMarkRead, isActive, shouldMarkRead, unreadReaction])
34
33
  }
package/src/index.tsx CHANGED
@@ -12,8 +12,7 @@ export { default as Event } from './polyfills/events/Event'
12
12
  export * from './screens'
13
13
  export { AgeCheckUnderageScreen } from './screens/age_check/age_check_underage_screen' // TODO: add to barrel
14
14
  export * from './types'
15
- export { platformFontWeightBold, Session, Uri } from './utils'
16
- export type { ENV, TemporaryDefaultColorsType } from './utils'
15
+ export { ENV, platformFontWeightBold, Session, TemporaryDefaultColorsType, Uri } from './utils'
17
16
  export * from './utils/client'
18
17
  export * from './utils/host_bridge'
19
18
  export * from './utils/native_adapters'
@@ -142,7 +142,7 @@ export default class EventTarget {
142
142
 
143
143
  removeEventListener(
144
144
  type: string,
145
- callback: EventListener | null,
145
+ callback: EventListener,
146
146
  optionsOrUseCapture: EventListenerOptions | boolean = {}
147
147
  ): void {
148
148
  if (arguments.length < 2) {
@@ -89,7 +89,7 @@ function ConversationScreenContent({ route }: ConversationScreenProps) {
89
89
  const { conversation_id, editing_message_id, reply_root_id, reply_root_author_name } =
90
90
  route.params
91
91
  const { data: conversation } = useConversation(route.params)
92
- const { messages, fetchNextPage, hasNextPage } = useConversationMessages({
92
+ const { messages, fetchNextPage } = useConversationMessages({
93
93
  conversation_id,
94
94
  reply_root_id,
95
95
  })
@@ -181,9 +181,7 @@ function ConversationScreenContent({ route }: ConversationScreenProps) {
181
181
  onScroll={trackScroll}
182
182
  scrollEventThrottle={10}
183
183
  ListFooterComponent={
184
- hasNextPage ? null : (
185
- <ConversationStartBanner conversation={conversation} hasMessages={true} />
186
- )
184
+ <ConversationStartBanner conversation={conversation} hasMessages={true} />
187
185
  }
188
186
  renderItem={({ item }) => {
189
187
  if (item.type === 'DateSeparator') {
@@ -158,12 +158,6 @@ export const ListHeaderComponent = () => {
158
158
  </TextButton>
159
159
  </View>
160
160
  <View style={styles.actionsContainer}>
161
- <ListHeaderActionButton
162
- name="general.cog"
163
- onPress={handleChatSettings}
164
- accessibilityLabel="Chat settings"
165
- maxFontSizeMultiplier={MAX_FONT_SIZE_MULTIPLIER_LANDMARK}
166
- />
167
161
  {canCreateConversations && (
168
162
  <ListHeaderActionButton
169
163
  name="churchCenter.signups"
@@ -173,6 +167,12 @@ export const ListHeaderComponent = () => {
173
167
  maxFontSizeMultiplier={MAX_FONT_SIZE_MULTIPLIER_LANDMARK}
174
168
  />
175
169
  )}
170
+ <ListHeaderActionButton
171
+ name="general.cog"
172
+ onPress={handleChatSettings}
173
+ accessibilityLabel="Chat settings"
174
+ maxFontSizeMultiplier={MAX_FONT_SIZE_MULTIPLIER_LANDMARK}
175
+ />
176
176
  {shouldShowHeaderFiltersButton && <ToggleButton {...moreFiltersButtonProps} />}
177
177
  </View>
178
178
  </View>
@@ -3,15 +3,25 @@ import { ConversationBadgeResource } from './conversation_badge'
3
3
  import { ConversationMembershipResource } from './conversation_membership'
4
4
  import { GroupResource } from './group_resource'
5
5
  import { MemberAbilityResource } from './member_ability'
6
+ import { ReactionCountResource } from './reaction'
6
7
 
7
8
  export type ConversationDisabledReason = 'safety_check' | 'direct_messages_disabled'
8
9
 
10
+ export interface ConversationPreviewData {
11
+ kind: 'reaction' | 'message'
12
+ authorName: string
13
+ value: ReactionCountResource['value'] | null
14
+ text: string
15
+ createdAt: string
16
+ }
17
+
9
18
  export interface ConversationResource {
10
19
  type: 'Conversation'
11
20
  id: number
12
21
  badges?: ConversationBadgeResource[]
13
22
  analyticsMetadata?: AnalyticsMetadataResource
14
23
  conversationMembership?: Partial<ConversationMembershipResource>
24
+ conversationPreview: ConversationPreviewData | null
15
25
  createdAt: string
16
26
  deleted?: boolean
17
27
  directMessage?: boolean
@@ -34,6 +44,6 @@ export interface ConversationResource {
34
44
  repliesDisabled: boolean
35
45
  title: string
36
46
  unreadCount: number
37
- unreadReactionCount?: number // Derived from Jolt events
47
+ unreadReaction: boolean
38
48
  updatedAt: string
39
49
  }
@@ -7,10 +7,14 @@ const fetchResponseLike = (status: number) => ({
7
7
  ok: status >= 200 && status < 300,
8
8
  statusText: 'unauthorized',
9
9
  url: 'https://api.planningcenteronline.com/chat/v2/me',
10
+ redirected: false,
11
+ headers: {},
10
12
  clone() {
11
13
  return this
12
14
  },
13
15
  json: async () => ({ errors: [] }),
16
+ text: async () => '',
17
+ arrayBuffer: async () => new ArrayBuffer(0),
14
18
  })
15
19
 
16
20
  describe('isResponseLike', () => {
@@ -25,6 +29,9 @@ describe('isResponseLike', () => {
25
29
  expect(isResponseLike(new Error('boom'))).toBe(false)
26
30
  expect(isResponseLike(new ResponseError({ status: 401 } as never))).toBe(false)
27
31
  expect(isResponseLike({ status: 401 })).toBe(false)
32
+ expect(isResponseLike({ status: 401, ok: false, clone() {}, json: async () => ({}) })).toBe(
33
+ false
34
+ )
28
35
  })
29
36
  })
30
37
 
@@ -38,6 +38,7 @@ export const getConversationsRequestArgs = ({
38
38
  Conversation: [
39
39
  'created_at',
40
40
  'badges',
41
+ 'conversation_preview',
41
42
  'disabled',
42
43
  'disabled_reason',
43
44
  'groups',
@@ -55,6 +56,7 @@ export const getConversationsRequestArgs = ({
55
56
  'replies_disabled',
56
57
  'title',
57
58
  'unread_count',
59
+ 'unread_reaction',
58
60
  'updated_at',
59
61
  ],
60
62
  AnalyticsMetadata: ['metadata'],
@@ -19,13 +19,24 @@ export class ResponseError extends Error {
19
19
  // Detect a fetch Response by shape, not `instanceof`: Expo's winter runtime
20
20
  // swaps in a `fetch` whose `FetchResponse` isn't an instance of the global
21
21
  // `Response`, so `instanceof` silently misses it under Expo.
22
- export const isResponseLike = (value: unknown): value is Response =>
23
- typeof value === 'object' &&
24
- value !== null &&
25
- typeof (value as Response).status === 'number' &&
26
- typeof (value as Response).ok === 'boolean' &&
27
- typeof (value as Response).clone === 'function' &&
28
- typeof (value as Response).json === 'function'
22
+ export const isResponseLike = (value: unknown): value is Response => {
23
+ if (typeof value !== 'object' || value === null) return false
24
+
25
+ const candidate = value as Record<string, unknown>
26
+ return (
27
+ typeof candidate.status === 'number' &&
28
+ typeof candidate.statusText === 'string' &&
29
+ typeof candidate.ok === 'boolean' &&
30
+ typeof candidate.redirected === 'boolean' &&
31
+ typeof candidate.url === 'string' &&
32
+ typeof candidate.headers === 'object' &&
33
+ candidate.headers !== null &&
34
+ typeof candidate.clone === 'function' &&
35
+ typeof candidate.json === 'function' &&
36
+ typeof candidate.text === 'function' &&
37
+ typeof candidate.arrayBuffer === 'function'
38
+ )
39
+ }
29
40
 
30
41
  export const throwResponseError = (error: unknown) => {
31
42
  if (isResponseLike(error)) {