@planningcenter/chat-react-native 3.42.2-qa-staging.2 → 3.42.2-qa-821.0

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 (646) 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 +3 -7
  4. package/build/components/conversation/attachments/attachment_card.js.map +1 -1
  5. package/build/components/conversation/attachments/attachment_deleting_overlay.d.ts +1 -2
  6. package/build/components/conversation/attachments/attachment_deleting_overlay.d.ts.map +1 -1
  7. package/build/components/conversation/attachments/attachment_deleting_overlay.js +12 -7
  8. package/build/components/conversation/attachments/attachment_deleting_overlay.js.map +1 -1
  9. package/build/components/conversation/attachments/audio_attachment.d.ts +1 -2
  10. package/build/components/conversation/attachments/audio_attachment.d.ts.map +1 -1
  11. package/build/components/conversation/attachments/audio_attachment.js +6 -23
  12. package/build/components/conversation/attachments/audio_attachment.js.map +1 -1
  13. package/build/components/conversation/attachments/expanded_link.d.ts +1 -2
  14. package/build/components/conversation/attachments/expanded_link.d.ts.map +1 -1
  15. package/build/components/conversation/attachments/expanded_link.js +2 -8
  16. package/build/components/conversation/attachments/expanded_link.js.map +1 -1
  17. package/build/components/conversation/attachments/generic_file_attachment.d.ts +1 -2
  18. package/build/components/conversation/attachments/generic_file_attachment.d.ts.map +1 -1
  19. package/build/components/conversation/attachments/generic_file_attachment.js +2 -12
  20. package/build/components/conversation/attachments/generic_file_attachment.js.map +1 -1
  21. package/build/components/conversation/attachments/giphy_attachment.d.ts +1 -2
  22. package/build/components/conversation/attachments/giphy_attachment.d.ts.map +1 -1
  23. package/build/components/conversation/attachments/giphy_attachment.js +2 -7
  24. package/build/components/conversation/attachments/giphy_attachment.js.map +1 -1
  25. package/build/components/conversation/attachments/image_attachment.d.ts +1 -2
  26. package/build/components/conversation/attachments/image_attachment.d.ts.map +1 -1
  27. package/build/components/conversation/attachments/image_attachment.js +16 -53
  28. package/build/components/conversation/attachments/image_attachment.js.map +1 -1
  29. package/build/components/conversation/attachments/video_attachment.d.ts +1 -2
  30. package/build/components/conversation/attachments/video_attachment.d.ts.map +1 -1
  31. package/build/components/conversation/attachments/video_attachment.js +3 -13
  32. package/build/components/conversation/attachments/video_attachment.js.map +1 -1
  33. package/build/components/conversation/conversation_start_banner.d.ts +1 -2
  34. package/build/components/conversation/conversation_start_banner.d.ts.map +1 -1
  35. package/build/components/conversation/conversation_start_banner.js +2 -14
  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 +2 -9
  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 +2 -10
  44. package/build/components/conversation/jump_to_bottom_button.js.map +1 -1
  45. package/build/components/conversation/message.d.ts +1 -2
  46. package/build/components/conversation/message.d.ts.map +1 -1
  47. package/build/components/conversation/message.js +2 -53
  48. package/build/components/conversation/message.js.map +1 -1
  49. package/build/components/conversation/message_attachments.d.ts +1 -2
  50. package/build/components/conversation/message_attachments.d.ts.map +1 -1
  51. package/build/components/conversation/message_attachments.js +17 -21
  52. package/build/components/conversation/message_attachments.js.map +1 -1
  53. package/build/components/conversation/message_form/message_form_attachment_file.d.ts +1 -2
  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 +1 -2
  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 +1 -2
  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 +5 -6
  66. package/build/components/conversation/message_form.d.ts.map +1 -1
  67. package/build/components/conversation/message_form.js +20 -82
  68. package/build/components/conversation/message_form.js.map +1 -1
  69. package/build/components/conversation/message_markdown.d.ts +1 -2
  70. package/build/components/conversation/message_markdown.d.ts.map +1 -1
  71. package/build/components/conversation/message_markdown.js +8 -16
  72. package/build/components/conversation/message_markdown.js.map +1 -1
  73. package/build/components/conversation/message_reaction.d.ts +1 -2
  74. package/build/components/conversation/message_reaction.d.ts.map +1 -1
  75. package/build/components/conversation/message_reaction.js +3 -5
  76. package/build/components/conversation/message_reaction.js.map +1 -1
  77. package/build/components/conversation/message_read_receipts.d.ts +1 -2
  78. package/build/components/conversation/message_read_receipts.d.ts.map +1 -1
  79. package/build/components/conversation/message_read_receipts.js +3 -13
  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 +5 -8
  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 +18 -50
  88. package/build/components/conversation/reply_connectors.js.map +1 -1
  89. package/build/components/conversation/reply_shadow_message.d.ts +1 -2
  90. package/build/components/conversation/reply_shadow_message.d.ts.map +1 -1
  91. package/build/components/conversation/reply_shadow_message.js +16 -46
  92. package/build/components/conversation/reply_shadow_message.js.map +1 -1
  93. package/build/components/conversation/system_message.d.ts +1 -2
  94. package/build/components/conversation/system_message.d.ts.map +1 -1
  95. package/build/components/conversation/system_message.js +3 -12
  96. package/build/components/conversation/system_message.js.map +1 -1
  97. package/build/components/conversation/typing_indicator.d.ts +1 -2
  98. package/build/components/conversation/typing_indicator.d.ts.map +1 -1
  99. package/build/components/conversation/typing_indicator.js +3 -13
  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 +4 -10
  104. package/build/components/conversations/conversation_actions.js.map +1 -1
  105. package/build/components/conversations/conversation_preview.d.ts +2 -3
  106. package/build/components/conversations/conversation_preview.d.ts.map +1 -1
  107. package/build/components/conversations/conversation_preview.js +12 -76
  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 +16 -17
  112. package/build/components/conversations/conversations.js.map +1 -1
  113. package/build/components/conversations/conversations_blank_state.d.ts +1 -2
  114. package/build/components/conversations/conversations_blank_state.d.ts.map +1 -1
  115. package/build/components/conversations/conversations_blank_state.js +2 -12
  116. package/build/components/conversations/conversations_blank_state.js.map +1 -1
  117. package/build/components/conversations/mute_indicator.d.ts +1 -2
  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 +1 -2
  122. package/build/components/conversations/swipeable_toggle_button.d.ts.map +1 -1
  123. package/build/components/conversations/swipeable_toggle_button.js +3 -10
  124. package/build/components/conversations/swipeable_toggle_button.js.map +1 -1
  125. package/build/components/conversations/unread_count_badge.d.ts +2 -4
  126. package/build/components/conversations/unread_count_badge.d.ts.map +1 -1
  127. package/build/components/conversations/unread_count_badge.js +7 -12
  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 +3 -13
  132. package/build/components/display/action_button.js.map +1 -1
  133. package/build/components/display/adult_requirement_notice.d.ts +1 -2
  134. package/build/components/display/adult_requirement_notice.d.ts.map +1 -1
  135. package/build/components/display/adult_requirement_notice.js +2 -4
  136. package/build/components/display/adult_requirement_notice.js.map +1 -1
  137. package/build/components/display/avatar.d.ts +1 -2
  138. package/build/components/display/avatar.d.ts.map +1 -1
  139. package/build/components/display/avatar.js +2 -7
  140. package/build/components/display/avatar.js.map +1 -1
  141. package/build/components/display/avatar_group.d.ts +1 -2
  142. package/build/components/display/avatar_group.d.ts.map +1 -1
  143. package/build/components/display/avatar_group.js +2 -9
  144. package/build/components/display/avatar_group.js.map +1 -1
  145. package/build/components/display/badge.d.ts +1 -2
  146. package/build/components/display/badge.d.ts.map +1 -1
  147. package/build/components/display/badge.js +6 -37
  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 +4 -11
  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 +2 -10
  156. package/build/components/display/banner_collapsible.js.map +1 -1
  157. package/build/components/display/button.d.ts +1 -2
  158. package/build/components/display/button.d.ts.map +1 -1
  159. package/build/components/display/button.js +3 -14
  160. package/build/components/display/button.js.map +1 -1
  161. package/build/components/display/child_notice.d.ts +1 -2
  162. package/build/components/display/child_notice.d.ts.map +1 -1
  163. package/build/components/display/child_notice.js +3 -15
  164. package/build/components/display/child_notice.js.map +1 -1
  165. package/build/components/display/conversation_avatar.d.ts +1 -2
  166. package/build/components/display/conversation_avatar.d.ts.map +1 -1
  167. package/build/components/display/conversation_avatar.js +5 -9
  168. package/build/components/display/conversation_avatar.js.map +1 -1
  169. package/build/components/display/emoji_avatar.d.ts +1 -2
  170. package/build/components/display/emoji_avatar.d.ts.map +1 -1
  171. package/build/components/display/emoji_avatar.js +2 -12
  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 +3 -17
  176. package/build/components/display/file_attachment_preview.js.map +1 -1
  177. package/build/components/display/heading.d.ts +1 -2
  178. package/build/components/display/heading.d.ts.map +1 -1
  179. package/build/components/display/heading.js +2 -4
  180. package/build/components/display/heading.js.map +1 -1
  181. package/build/components/display/icon.d.ts +1 -2
  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 +1 -2
  186. package/build/components/display/icon_avatar.d.ts.map +1 -1
  187. package/build/components/display/icon_avatar.js +2 -12
  188. package/build/components/display/icon_avatar.js.map +1 -1
  189. package/build/components/display/icon_button.d.ts +1 -2
  190. package/build/components/display/icon_button.d.ts.map +1 -1
  191. package/build/components/display/icon_button.js +3 -5
  192. package/build/components/display/icon_button.js.map +1 -1
  193. package/build/components/display/image.d.ts +1 -2
  194. package/build/components/display/image.d.ts.map +1 -1
  195. package/build/components/display/image.js +3 -7
  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 +2 -7
  200. package/build/components/display/image_attachment_preview.js.map +1 -1
  201. package/build/components/display/keyboard_view.d.ts +1 -2
  202. package/build/components/display/keyboard_view.d.ts.map +1 -1
  203. package/build/components/display/keyboard_view.js +4 -9
  204. package/build/components/display/keyboard_view.js.map +1 -1
  205. package/build/components/display/person.d.ts +1 -2
  206. package/build/components/display/person.d.ts.map +1 -1
  207. package/build/components/display/person.js +2 -12
  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 +5 -10
  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 +2 -7
  216. package/build/components/display/pressable_row.js.map +1 -1
  217. package/build/components/display/spinner.d.ts +1 -2
  218. package/build/components/display/spinner.d.ts.map +1 -1
  219. package/build/components/display/spinner.js +3 -9
  220. package/build/components/display/spinner.js.map +1 -1
  221. package/build/components/display/switch.d.ts +1 -2
  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 +21 -31
  228. package/build/components/display/tabs.js.map +1 -1
  229. package/build/components/display/text.d.ts +1 -2
  230. package/build/components/display/text.d.ts.map +1 -1
  231. package/build/components/display/text.js +2 -4
  232. package/build/components/display/text.js.map +1 -1
  233. package/build/components/display/text_button.d.ts +1 -2
  234. package/build/components/display/text_button.d.ts.map +1 -1
  235. package/build/components/display/text_button.js +3 -8
  236. package/build/components/display/text_button.js.map +1 -1
  237. package/build/components/display/text_inline_button.d.ts +1 -2
  238. package/build/components/display/text_inline_button.d.ts.map +1 -1
  239. package/build/components/display/text_inline_button.js +4 -5
  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 +2 -1
  244. package/build/components/display/text_input.js.map +1 -1
  245. package/build/components/display/toggle_button.d.ts +1 -2
  246. package/build/components/display/toggle_button.d.ts.map +1 -1
  247. package/build/components/display/toggle_button.js +3 -9
  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 +3 -20
  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 +4 -14
  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 +2 -4
  260. package/build/components/page/component_error_boundary.js.map +1 -1
  261. package/build/components/page/loading.d.ts +1 -2
  262. package/build/components/page/loading.d.ts.map +1 -1
  263. package/build/components/page/loading.js +2 -4
  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 +11 -32
  268. package/build/components/page/page_error_boundary.js.map +1 -1
  269. package/build/components/primitive/avatar_primitive.js +14 -41
  270. package/build/components/primitive/avatar_primitive.js.map +1 -1
  271. package/build/components/primitive/banner_primitive.js +10 -18
  272. package/build/components/primitive/banner_primitive.js.map +1 -1
  273. package/build/components/primitive/blank_state_primitive.js +8 -12
  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 +9 -22
  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 +2 -3
  282. package/build/components/safe_area_modal.js.map +1 -1
  283. package/build/contexts/api_provider.d.ts +1 -2
  284. package/build/contexts/api_provider.d.ts.map +1 -1
  285. package/build/contexts/api_provider.js +3 -5
  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 +2 -1
  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 +3 -2
  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 +3 -2
  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 +3 -2
  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 +0 -2
  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 +19 -4
  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 +1 -0
  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 +1 -3
  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 +4 -3
  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/hooks/use_suspense_api.d.ts.map +1 -1
  326. package/build/hooks/use_suspense_api.js +7 -1
  327. package/build/hooks/use_suspense_api.js.map +1 -1
  328. package/build/index.d.ts +2 -1
  329. package/build/index.d.ts.map +1 -1
  330. package/build/index.js.map +1 -1
  331. package/build/navigation/chat_access_gate.d.ts +2 -2
  332. package/build/navigation/chat_access_gate.d.ts.map +1 -1
  333. package/build/navigation/chat_access_gate.js +6 -5
  334. package/build/navigation/chat_access_gate.js.map +1 -1
  335. package/build/navigation/index.d.ts +35 -36
  336. package/build/navigation/index.d.ts.map +1 -1
  337. package/build/navigation/index.js +19 -21
  338. package/build/navigation/index.js.map +1 -1
  339. package/build/navigation/screenLayout.d.ts +2 -2
  340. package/build/navigation/screenLayout.d.ts.map +1 -1
  341. package/build/navigation/screenLayout.js +3 -9
  342. package/build/navigation/screenLayout.js.map +1 -1
  343. package/build/polyfills/events/EventTarget.d.ts +1 -1
  344. package/build/polyfills/events/EventTarget.d.ts.map +1 -1
  345. package/build/polyfills/events/EventTarget.js.map +1 -1
  346. package/build/screens/age_check/age_check_required_screen.d.ts +1 -2
  347. package/build/screens/age_check/age_check_required_screen.d.ts.map +1 -1
  348. package/build/screens/age_check/age_check_required_screen.js +3 -46
  349. package/build/screens/age_check/age_check_required_screen.js.map +1 -1
  350. package/build/screens/age_check/age_check_underage_screen.d.ts +1 -2
  351. package/build/screens/age_check/age_check_underage_screen.d.ts.map +1 -1
  352. package/build/screens/age_check/age_check_underage_screen.js +2 -25
  353. package/build/screens/age_check/age_check_underage_screen.js.map +1 -1
  354. package/build/screens/age_check/components/age_check_select_birthdate_modal.d.ts +1 -2
  355. package/build/screens/age_check/components/age_check_select_birthdate_modal.d.ts.map +1 -1
  356. package/build/screens/age_check/components/age_check_select_birthdate_modal.js +6 -25
  357. package/build/screens/age_check/components/age_check_select_birthdate_modal.js.map +1 -1
  358. package/build/screens/attachment_actions/attachment_actions_screen.d.ts +1 -2
  359. package/build/screens/attachment_actions/attachment_actions_screen.d.ts.map +1 -1
  360. package/build/screens/attachment_actions/attachment_actions_screen.js +3 -5
  361. package/build/screens/attachment_actions/attachment_actions_screen.js.map +1 -1
  362. package/build/screens/avatar_picker/avatar_picker_screen.d.ts +1 -2
  363. package/build/screens/avatar_picker/avatar_picker_screen.d.ts.map +1 -1
  364. package/build/screens/avatar_picker/avatar_picker_screen.js +9 -36
  365. package/build/screens/avatar_picker/avatar_picker_screen.js.map +1 -1
  366. package/build/screens/avatar_picker/avatar_preview.d.ts +1 -1
  367. package/build/screens/avatar_picker/avatar_preview.d.ts.map +1 -1
  368. package/build/screens/avatar_picker/avatar_preview.js +5 -9
  369. package/build/screens/avatar_picker/avatar_preview.js.map +1 -1
  370. package/build/screens/avatar_picker/color_picker.d.ts +1 -2
  371. package/build/screens/avatar_picker/color_picker.d.ts.map +1 -1
  372. package/build/screens/avatar_picker/color_picker.js +4 -5
  373. package/build/screens/avatar_picker/color_picker.js.map +1 -1
  374. package/build/screens/avatar_picker/emoji_tab.d.ts +1 -2
  375. package/build/screens/avatar_picker/emoji_tab.d.ts.map +1 -1
  376. package/build/screens/avatar_picker/emoji_tab.js +12 -13
  377. package/build/screens/avatar_picker/emoji_tab.js.map +1 -1
  378. package/build/screens/avatar_picker/icon_grid.d.ts +1 -2
  379. package/build/screens/avatar_picker/icon_grid.d.ts.map +1 -1
  380. package/build/screens/avatar_picker/icon_grid.js +4 -5
  381. package/build/screens/avatar_picker/icon_grid.js.map +1 -1
  382. package/build/screens/avatar_picker/upload_tab.d.ts +1 -2
  383. package/build/screens/avatar_picker/upload_tab.d.ts.map +1 -1
  384. package/build/screens/avatar_picker/upload_tab.js +3 -4
  385. package/build/screens/avatar_picker/upload_tab.js.map +1 -1
  386. package/build/screens/bug_report_screen.d.ts +1 -2
  387. package/build/screens/bug_report_screen.d.ts.map +1 -1
  388. package/build/screens/bug_report_screen.js +11 -117
  389. package/build/screens/bug_report_screen.js.map +1 -1
  390. package/build/screens/conversation/message_read_receipts_screen.d.ts +1 -2
  391. package/build/screens/conversation/message_read_receipts_screen.d.ts.map +1 -1
  392. package/build/screens/conversation/message_read_receipts_screen.js +4 -20
  393. package/build/screens/conversation/message_read_receipts_screen.js.map +1 -1
  394. package/build/screens/conversation_details_screen.d.ts +1 -2
  395. package/build/screens/conversation_details_screen.d.ts.map +1 -1
  396. package/build/screens/conversation_details_screen.js +43 -106
  397. package/build/screens/conversation_details_screen.js.map +1 -1
  398. package/build/screens/conversation_filter_recipients/components/checkbox_row.d.ts +1 -1
  399. package/build/screens/conversation_filter_recipients/components/checkbox_row.d.ts.map +1 -1
  400. package/build/screens/conversation_filter_recipients/components/checkbox_row.js +3 -9
  401. package/build/screens/conversation_filter_recipients/components/checkbox_row.js.map +1 -1
  402. package/build/screens/conversation_filter_recipients/components/header_row.d.ts +1 -1
  403. package/build/screens/conversation_filter_recipients/components/header_row.d.ts.map +1 -1
  404. package/build/screens/conversation_filter_recipients/components/header_row.js +2 -12
  405. package/build/screens/conversation_filter_recipients/components/header_row.js.map +1 -1
  406. package/build/screens/conversation_filter_recipients/conversation_filter_recipients_screen.d.ts +1 -2
  407. package/build/screens/conversation_filter_recipients/conversation_filter_recipients_screen.d.ts.map +1 -1
  408. package/build/screens/conversation_filter_recipients/conversation_filter_recipients_screen.js +20 -44
  409. package/build/screens/conversation_filter_recipients/conversation_filter_recipients_screen.js.map +1 -1
  410. package/build/screens/conversation_filters/components/conversation_filters.d.ts +1 -2
  411. package/build/screens/conversation_filters/components/conversation_filters.d.ts.map +1 -1
  412. package/build/screens/conversation_filters/components/conversation_filters.js +10 -11
  413. package/build/screens/conversation_filters/components/conversation_filters.js.map +1 -1
  414. package/build/screens/conversation_filters/components/rows.d.ts +6 -6
  415. package/build/screens/conversation_filters/components/rows.d.ts.map +1 -1
  416. package/build/screens/conversation_filters/components/rows.js +7 -34
  417. package/build/screens/conversation_filters/components/rows.js.map +1 -1
  418. package/build/screens/conversation_filters/context/conversation_filter_context.d.ts +1 -1
  419. package/build/screens/conversation_filters/context/conversation_filter_context.d.ts.map +1 -1
  420. package/build/screens/conversation_filters/context/conversation_filter_context.js +2 -1
  421. package/build/screens/conversation_filters/context/conversation_filter_context.js.map +1 -1
  422. package/build/screens/conversation_filters/group_filters.d.ts +1 -2
  423. package/build/screens/conversation_filters/group_filters.d.ts.map +1 -1
  424. package/build/screens/conversation_filters/group_filters.js +2 -2
  425. package/build/screens/conversation_filters/group_filters.js.map +1 -1
  426. package/build/screens/conversation_filters/team_filters.d.ts +1 -2
  427. package/build/screens/conversation_filters/team_filters.d.ts.map +1 -1
  428. package/build/screens/conversation_filters/team_filters.js +2 -2
  429. package/build/screens/conversation_filters/team_filters.js.map +1 -1
  430. package/build/screens/conversation_filters_screen.d.ts +1 -2
  431. package/build/screens/conversation_filters_screen.d.ts.map +1 -1
  432. package/build/screens/conversation_filters_screen.js +4 -16
  433. package/build/screens/conversation_filters_screen.js.map +1 -1
  434. package/build/screens/conversation_new/components/avatar_selection_row.d.ts +2 -3
  435. package/build/screens/conversation_new/components/avatar_selection_row.d.ts.map +1 -1
  436. package/build/screens/conversation_new/components/avatar_selection_row.js +6 -16
  437. package/build/screens/conversation_new/components/avatar_selection_row.js.map +1 -1
  438. package/build/screens/conversation_new/components/filter_by_plan.d.ts +3 -4
  439. package/build/screens/conversation_new/components/filter_by_plan.d.ts.map +1 -1
  440. package/build/screens/conversation_new/components/filter_by_plan.js +22 -46
  441. package/build/screens/conversation_new/components/filter_by_plan.js.map +1 -1
  442. package/build/screens/conversation_new/components/form_list.d.ts +2 -3
  443. package/build/screens/conversation_new/components/form_list.d.ts.map +1 -1
  444. package/build/screens/conversation_new/components/form_list.js +4 -6
  445. package/build/screens/conversation_new/components/form_list.js.map +1 -1
  446. package/build/screens/conversation_new/components/gender_filter_toggle.d.ts +1 -2
  447. package/build/screens/conversation_new/components/gender_filter_toggle.d.ts.map +1 -1
  448. package/build/screens/conversation_new/components/gender_filter_toggle.js +4 -20
  449. package/build/screens/conversation_new/components/gender_filter_toggle.js.map +1 -1
  450. package/build/screens/conversation_new/components/groups_form.d.ts +1 -2
  451. package/build/screens/conversation_new/components/groups_form.d.ts.map +1 -1
  452. package/build/screens/conversation_new/components/groups_form.js +4 -30
  453. package/build/screens/conversation_new/components/groups_form.js.map +1 -1
  454. package/build/screens/conversation_new/components/services_form.d.ts +1 -2
  455. package/build/screens/conversation_new/components/services_form.d.ts.map +1 -1
  456. package/build/screens/conversation_new/components/services_form.js +27 -61
  457. package/build/screens/conversation_new/components/services_form.js.map +1 -1
  458. package/build/screens/conversation_new/components/source_app_error_card.d.ts +1 -1
  459. package/build/screens/conversation_new/components/source_app_error_card.d.ts.map +1 -1
  460. package/build/screens/conversation_new/components/source_app_error_card.js +2 -3
  461. package/build/screens/conversation_new/components/source_app_error_card.js.map +1 -1
  462. package/build/screens/conversation_new/conversation_new_screen.d.ts +1 -2
  463. package/build/screens/conversation_new/conversation_new_screen.d.ts.map +1 -1
  464. package/build/screens/conversation_new/conversation_new_screen.js +4 -4
  465. package/build/screens/conversation_new/conversation_new_screen.js.map +1 -1
  466. package/build/screens/conversation_notification_level_select_screen.d.ts +1 -2
  467. package/build/screens/conversation_notification_level_select_screen.d.ts.map +1 -1
  468. package/build/screens/conversation_notification_level_select_screen.js +4 -6
  469. package/build/screens/conversation_notification_level_select_screen.js.map +1 -1
  470. package/build/screens/conversation_screen.d.ts +2 -3
  471. package/build/screens/conversation_screen.d.ts.map +1 -1
  472. package/build/screens/conversation_screen.js +25 -66
  473. package/build/screens/conversation_screen.js.map +1 -1
  474. package/build/screens/conversation_select_recipients/components/groups_recipient_row.d.ts +1 -1
  475. package/build/screens/conversation_select_recipients/components/groups_recipient_row.d.ts.map +1 -1
  476. package/build/screens/conversation_select_recipients/components/groups_recipient_row.js +2 -1
  477. package/build/screens/conversation_select_recipients/components/groups_recipient_row.js.map +1 -1
  478. package/build/screens/conversation_select_recipients/components/recipient_link_row.d.ts +1 -2
  479. package/build/screens/conversation_select_recipients/components/recipient_link_row.d.ts.map +1 -1
  480. package/build/screens/conversation_select_recipients/components/recipient_link_row.js +2 -15
  481. package/build/screens/conversation_select_recipients/components/recipient_link_row.js.map +1 -1
  482. package/build/screens/conversation_select_recipients/components/restricted_group_row.d.ts +1 -2
  483. package/build/screens/conversation_select_recipients/components/restricted_group_row.d.ts.map +1 -1
  484. package/build/screens/conversation_select_recipients/components/restricted_group_row.js +2 -14
  485. package/build/screens/conversation_select_recipients/components/restricted_group_row.js.map +1 -1
  486. package/build/screens/conversation_select_recipients/components/team_recipient_row.d.ts +1 -1
  487. package/build/screens/conversation_select_recipients/components/team_recipient_row.d.ts.map +1 -1
  488. package/build/screens/conversation_select_recipients/components/team_recipient_row.js +2 -1
  489. package/build/screens/conversation_select_recipients/components/team_recipient_row.js.map +1 -1
  490. package/build/screens/conversation_select_recipients/components/view_more_link_row.d.ts +1 -1
  491. package/build/screens/conversation_select_recipients/components/view_more_link_row.d.ts.map +1 -1
  492. package/build/screens/conversation_select_recipients/components/view_more_link_row.js +2 -5
  493. package/build/screens/conversation_select_recipients/components/view_more_link_row.js.map +1 -1
  494. package/build/screens/conversation_select_recipients/conversation_new_entry_screen.d.ts +1 -2
  495. package/build/screens/conversation_select_recipients/conversation_new_entry_screen.d.ts.map +1 -1
  496. package/build/screens/conversation_select_recipients/conversation_new_entry_screen.js +4 -11
  497. package/build/screens/conversation_select_recipients/conversation_new_entry_screen.js.map +1 -1
  498. package/build/screens/conversation_select_recipients/conversation_select_direct_message_recipients_screen.d.ts +1 -1
  499. package/build/screens/conversation_select_recipients/conversation_select_direct_message_recipients_screen.d.ts.map +1 -1
  500. package/build/screens/conversation_select_recipients/conversation_select_direct_message_recipients_screen.js +11 -83
  501. package/build/screens/conversation_select_recipients/conversation_select_direct_message_recipients_screen.js.map +1 -1
  502. package/build/screens/conversation_select_recipients/conversation_select_group_recipients_screen.d.ts +1 -2
  503. package/build/screens/conversation_select_recipients/conversation_select_group_recipients_screen.d.ts.map +1 -1
  504. package/build/screens/conversation_select_recipients/conversation_select_group_recipients_screen.js +7 -14
  505. package/build/screens/conversation_select_recipients/conversation_select_group_recipients_screen.js.map +1 -1
  506. package/build/screens/conversation_select_recipients/conversation_select_teams_i_lead_recipients_screen.d.ts +1 -2
  507. package/build/screens/conversation_select_recipients/conversation_select_teams_i_lead_recipients_screen.d.ts.map +1 -1
  508. package/build/screens/conversation_select_recipients/conversation_select_teams_i_lead_recipients_screen.js +15 -18
  509. package/build/screens/conversation_select_recipients/conversation_select_teams_i_lead_recipients_screen.js.map +1 -1
  510. package/build/screens/conversation_select_type_screen.d.ts +1 -2
  511. package/build/screens/conversation_select_type_screen.d.ts.map +1 -1
  512. package/build/screens/conversation_select_type_screen.js +3 -10
  513. package/build/screens/conversation_select_type_screen.js.map +1 -1
  514. package/build/screens/conversations/components/chat_group_badge.d.ts +1 -2
  515. package/build/screens/conversations/components/chat_group_badge.d.ts.map +1 -1
  516. package/build/screens/conversations/components/chat_group_badge.js +3 -4
  517. package/build/screens/conversations/components/chat_group_badge.js.map +1 -1
  518. package/build/screens/conversations/components/list_header_action_button.d.ts +1 -2
  519. package/build/screens/conversations/components/list_header_action_button.d.ts.map +1 -1
  520. package/build/screens/conversations/components/list_header_action_button.js +3 -5
  521. package/build/screens/conversations/components/list_header_action_button.js.map +1 -1
  522. package/build/screens/conversations/components/list_header_component.d.ts +1 -2
  523. package/build/screens/conversations/components/list_header_component.d.ts.map +1 -1
  524. package/build/screens/conversations/components/list_header_component.js +19 -42
  525. package/build/screens/conversations/components/list_header_component.js.map +1 -1
  526. package/build/screens/conversations/conversations_screen.d.ts +1 -2
  527. package/build/screens/conversations/conversations_screen.d.ts.map +1 -1
  528. package/build/screens/conversations/conversations_screen.js +2 -6
  529. package/build/screens/conversations/conversations_screen.js.map +1 -1
  530. package/build/screens/design_system_screen.d.ts +1 -2
  531. package/build/screens/design_system_screen.d.ts.map +1 -1
  532. package/build/screens/design_system_screen.js +35 -558
  533. package/build/screens/design_system_screen.js.map +1 -1
  534. package/build/screens/get_help_screen.d.ts +1 -1
  535. package/build/screens/get_help_screen.d.ts.map +1 -1
  536. package/build/screens/get_help_screen.js +4 -25
  537. package/build/screens/get_help_screen.js.map +1 -1
  538. package/build/screens/group_notification_level_select_screen.d.ts +1 -2
  539. package/build/screens/group_notification_level_select_screen.d.ts.map +1 -1
  540. package/build/screens/group_notification_level_select_screen.js +2 -4
  541. package/build/screens/group_notification_level_select_screen.js.map +1 -1
  542. package/build/screens/group_notification_settings_screen.d.ts +1 -2
  543. package/build/screens/group_notification_settings_screen.d.ts.map +1 -1
  544. package/build/screens/group_notification_settings_screen.js +3 -25
  545. package/build/screens/group_notification_settings_screen.js.map +1 -1
  546. package/build/screens/message_actions_screen.d.ts +1 -2
  547. package/build/screens/message_actions_screen.d.ts.map +1 -1
  548. package/build/screens/message_actions_screen.js +12 -28
  549. package/build/screens/message_actions_screen.js.map +1 -1
  550. package/build/screens/message_report/components/message_preview.d.ts +1 -2
  551. package/build/screens/message_report/components/message_preview.d.ts.map +1 -1
  552. package/build/screens/message_report/components/message_preview.js +2 -22
  553. package/build/screens/message_report/components/message_preview.js.map +1 -1
  554. package/build/screens/message_report/components/report_reason_list.d.ts +1 -2
  555. package/build/screens/message_report/components/report_reason_list.d.ts.map +1 -1
  556. package/build/screens/message_report/components/report_reason_list.js +4 -13
  557. package/build/screens/message_report/components/report_reason_list.js.map +1 -1
  558. package/build/screens/message_report_screen.d.ts +1 -2
  559. package/build/screens/message_report_screen.d.ts.map +1 -1
  560. package/build/screens/message_report_screen.js +9 -61
  561. package/build/screens/message_report_screen.js.map +1 -1
  562. package/build/screens/not_found.d.ts +1 -2
  563. package/build/screens/not_found.d.ts.map +1 -1
  564. package/build/screens/not_found.js +2 -5
  565. package/build/screens/not_found.js.map +1 -1
  566. package/build/screens/notification_settings/hooks/groups.d.ts +1 -1
  567. package/build/screens/notification_settings/hooks/groups.d.ts.map +1 -1
  568. package/build/screens/notification_settings_screen.d.ts +1 -2
  569. package/build/screens/notification_settings_screen.d.ts.map +1 -1
  570. package/build/screens/notification_settings_screen.js +28 -66
  571. package/build/screens/notification_settings_screen.js.map +1 -1
  572. package/build/screens/preferred_app_selection_screen.d.ts +1 -2
  573. package/build/screens/preferred_app_selection_screen.d.ts.map +1 -1
  574. package/build/screens/preferred_app_selection_screen.js +3 -21
  575. package/build/screens/preferred_app_selection_screen.js.map +1 -1
  576. package/build/screens/reactions_screen.d.ts +1 -2
  577. package/build/screens/reactions_screen.d.ts.map +1 -1
  578. package/build/screens/reactions_screen.js +7 -19
  579. package/build/screens/reactions_screen.js.map +1 -1
  580. package/build/screens/send_giphy_screen.d.ts +1 -2
  581. package/build/screens/send_giphy_screen.d.ts.map +1 -1
  582. package/build/screens/send_giphy_screen.js +5 -31
  583. package/build/screens/send_giphy_screen.js.map +1 -1
  584. package/build/screens/settings_screen.d.ts +1 -2
  585. package/build/screens/settings_screen.d.ts.map +1 -1
  586. package/build/screens/settings_screen.js +4 -26
  587. package/build/screens/settings_screen.js.map +1 -1
  588. package/build/screens/system_message_people_screen.d.ts +1 -2
  589. package/build/screens/system_message_people_screen.d.ts.map +1 -1
  590. package/build/screens/system_message_people_screen.js +4 -10
  591. package/build/screens/system_message_people_screen.js.map +1 -1
  592. package/build/screens/team_conversation_screen.d.ts +1 -1
  593. package/build/screens/team_conversation_screen.d.ts.map +1 -1
  594. package/build/screens/team_conversation_screen.js +4 -12
  595. package/build/screens/team_conversation_screen.js.map +1 -1
  596. package/build/types/resources/conversation.d.ts +1 -10
  597. package/build/types/resources/conversation.d.ts.map +1 -1
  598. package/build/types/resources/conversation.js.map +1 -1
  599. package/build/utils/client/client.d.ts.map +1 -1
  600. package/build/utils/client/client.js +1 -2
  601. package/build/utils/client/client.js.map +1 -1
  602. package/build/utils/request/conversation.d.ts.map +1 -1
  603. package/build/utils/request/conversation.js +0 -2
  604. package/build/utils/request/conversation.js.map +1 -1
  605. package/build/utils/response_error.d.ts +0 -1
  606. package/build/utils/response_error.d.ts.map +1 -1
  607. package/build/utils/response_error.js +1 -10
  608. package/build/utils/response_error.js.map +1 -1
  609. package/build/utils/sha_256.js.map +1 -1
  610. package/build/utils/system_messages.d.ts +1 -1
  611. package/build/utils/system_messages.d.ts.map +1 -1
  612. package/build/utils/system_messages.js.map +1 -1
  613. package/build/utils/theme.d.ts +2 -2
  614. package/build/utils/theme.d.ts.map +1 -1
  615. package/build/utils/theme.js.map +1 -1
  616. package/package.json +12 -12
  617. package/src/__tests__/hooks/use_attachment_uploader.test.tsx +1 -0
  618. package/src/__tests__/hooks/use_font_scale.test.ts +7 -3
  619. package/src/__tests__/utils/native_adapters/configuration.ts +1 -1
  620. package/src/__tests__/utils/system_messages.ts +1 -1
  621. package/src/__tests__/utils/uri.ts +8 -50
  622. package/src/__utils__/handlers.ts +5 -6
  623. package/src/components/conversation/attachments/attachment_deleting_overlay.tsx +10 -3
  624. package/src/components/conversations/conversation_preview.tsx +23 -58
  625. package/src/components/conversations/unread_count_badge.tsx +4 -13
  626. package/src/components/page/__tests__/component_error_boundary.test.tsx +1 -1
  627. package/src/components/page/__tests__/error_boundary.test.tsx +6 -2
  628. package/src/components/page/__tests__/page_error_boundary.test.tsx +1 -1
  629. package/src/hooks/use_conversation.ts +0 -2
  630. package/src/hooks/use_conversation_jolt_events.ts +19 -3
  631. package/src/hooks/use_conversation_messages.ts +6 -5
  632. package/src/hooks/use_conversations_actions.ts +1 -3
  633. package/src/hooks/use_mark_latest_message_read.ts +4 -3
  634. package/src/hooks/use_suspense_api.ts +9 -1
  635. package/src/index.tsx +2 -1
  636. package/src/polyfills/events/EventTarget.ts +1 -1
  637. package/src/screens/conversation_screen.tsx +4 -2
  638. package/src/screens/conversations/components/list_header_component.tsx +6 -6
  639. package/src/types/resources/conversation.ts +1 -11
  640. package/src/utils/client/client.ts +1 -2
  641. package/src/utils/request/conversation.ts +0 -2
  642. package/src/utils/response_error.ts +1 -12
  643. package/src/utils/sha_256.ts +24 -24
  644. package/src/utils/system_messages.ts +1 -1
  645. package/src/utils/theme.ts +3 -2
  646. package/src/utils/__tests__/response_error.test.ts +0 -40
@@ -1 +1 @@
1
- {"version":3,"file":"safe_area_modal.js","sourceRoot":"","sources":["../../src/components/safe_area_modal.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAc,QAAQ,EAAE,KAAK,EAAE,IAAI,EAAwB,UAAU,EAAE,MAAM,cAAc,CAAA;AAClG,OAAO,EAAE,iBAAiB,EAAE,MAAM,gCAAgC,CAAA;AAClE,OAAO,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAA;AAMzD,MAAM,UAAU,aAAa,CAAC,KAAuB;IACnD,MAAM,EAAE,UAAU,GAAG,IAAI,EAAE,GAAG,cAAc,EAAE,CAAA;IAC9C,MAAM,MAAM,GAAG,cAAc,CAAC,KAAK,CAAC,CAAA;IAEpC,OAAO,CACL,CAAC,KAAK,CAAC,oBAAoB,CAAC,CAAC,UAAU,CAAC,CAAC,wBAAwB,CAAC,CAAC,UAAU,CAAC,CAAC,IAAI,KAAK,CAAC,CACvF;MAAA,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,cAAc,EAAE,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,QAAQ,CAAC,EAAE,IAAI,CAC/E;IAAA,EAAE,KAAK,CAAC,CACT,CAAA;AACH,CAAC;AAED,MAAM,cAAc,GAAG,CAAC,EAAE,iBAAiB,EAAoB,EAAE,EAAE;IACjE,MAAM,MAAM,GAAG,iBAAiB,EAAE,CAAA;IAClC,MAAM,SAAS,GAAG,QAAQ,CAAC,EAAE,KAAK,SAAS,CAAA;IAC3C,MAAM,YAAY,GAChB,SAAS,IAAI,CAAC,WAAW,EAAE,WAAW,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,KAAK,iBAAiB,CAAC,CAAA;IACrF,MAAM,UAAU,GAAG,YAAY,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAA;IAEhD,OAAO,UAAU,CAAC,MAAM,CAAC;QACvB,SAAS,EAAE,EAAE,UAAU,EAAE,aAAa,EAAE,MAAM,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,EAAE;KACjE,CAAC,CAAA;AACJ,CAAC,CAAA","sourcesContent":["import { ModalProps, Platform, Modal, View, StyleProp, ViewStyle, StyleSheet } from 'react-native'\nimport { useSafeAreaInsets } from 'react-native-safe-area-context'\nimport { useChatContext } from '../contexts/chat_context'\n\ninterface CustomModalProps extends ModalProps {\n containerStyle?: StyleProp<ViewStyle>\n}\n\nexport function SafeAreaModal(props: CustomModalProps) {\n const { edgeToEdge = true } = useChatContext()\n const styles = useModalStyles(props)\n\n return (\n <Modal statusBarTranslucent={edgeToEdge} navigationBarTranslucent={edgeToEdge} {...props}>\n <View style={[props.containerStyle, styles.container]}>{props.children}</View>\n </Modal>\n )\n}\n\nconst useModalStyles = ({ presentationStyle }: CustomModalProps) => {\n const insets = useSafeAreaInsets()\n const isAndroid = Platform.OS === 'android'\n const extendsToTop =\n isAndroid || ['pageSheet', 'formSheet'].every(style => style !== presentationStyle)\n const paddingTop = extendsToTop ? insets.top : 0\n\n return StyleSheet.create({\n container: { paddingTop, paddingBottom: insets.bottom, flex: 1 },\n })\n}\n"]}
1
+ {"version":3,"file":"safe_area_modal.js","sourceRoot":"","sources":["../../src/components/safe_area_modal.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAc,QAAQ,EAAE,KAAK,EAAE,IAAI,EAAwB,UAAU,EAAE,MAAM,cAAc,CAAA;AAClG,OAAO,EAAE,iBAAiB,EAAE,MAAM,gCAAgC,CAAA;AAClE,OAAO,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAA;AAMzD,MAAM,UAAU,aAAa,CAAC,KAAuB;IACnD,MAAM,EAAE,UAAU,GAAG,IAAI,EAAE,GAAG,cAAc,EAAE,CAAA;IAC9C,MAAM,MAAM,GAAG,cAAc,CAAC,KAAK,CAAC,CAAA;IAEpC,OAAO,CACL,KAAC,KAAK,IAAC,oBAAoB,EAAE,UAAU,EAAE,wBAAwB,EAAE,UAAU,KAAM,KAAK,YACtF,KAAC,IAAI,IAAC,KAAK,EAAE,CAAC,KAAK,CAAC,cAAc,EAAE,MAAM,CAAC,SAAS,CAAC,YAAG,KAAK,CAAC,QAAQ,GAAQ,GACxE,CACT,CAAA;AACH,CAAC;AAED,MAAM,cAAc,GAAG,CAAC,EAAE,iBAAiB,EAAoB,EAAE,EAAE;IACjE,MAAM,MAAM,GAAG,iBAAiB,EAAE,CAAA;IAClC,MAAM,SAAS,GAAG,QAAQ,CAAC,EAAE,KAAK,SAAS,CAAA;IAC3C,MAAM,YAAY,GAChB,SAAS,IAAI,CAAC,WAAW,EAAE,WAAW,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,KAAK,iBAAiB,CAAC,CAAA;IACrF,MAAM,UAAU,GAAG,YAAY,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAA;IAEhD,OAAO,UAAU,CAAC,MAAM,CAAC;QACvB,SAAS,EAAE,EAAE,UAAU,EAAE,aAAa,EAAE,MAAM,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,EAAE;KACjE,CAAC,CAAA;AACJ,CAAC,CAAA","sourcesContent":["import { ModalProps, Platform, Modal, View, StyleProp, ViewStyle, StyleSheet } from 'react-native'\nimport { useSafeAreaInsets } from 'react-native-safe-area-context'\nimport { useChatContext } from '../contexts/chat_context'\n\ninterface CustomModalProps extends ModalProps {\n containerStyle?: StyleProp<ViewStyle>\n}\n\nexport function SafeAreaModal(props: CustomModalProps) {\n const { edgeToEdge = true } = useChatContext()\n const styles = useModalStyles(props)\n\n return (\n <Modal statusBarTranslucent={edgeToEdge} navigationBarTranslucent={edgeToEdge} {...props}>\n <View style={[props.containerStyle, styles.container]}>{props.children}</View>\n </Modal>\n )\n}\n\nconst useModalStyles = ({ presentationStyle }: CustomModalProps) => {\n const insets = useSafeAreaInsets()\n const isAndroid = Platform.OS === 'android'\n const extendsToTop =\n isAndroid || ['pageSheet', 'formSheet'].every(style => style !== presentationStyle)\n const paddingTop = extendsToTop ? insets.top : 0\n\n return StyleSheet.create({\n container: { paddingTop, paddingBottom: insets.bottom, flex: 1 },\n })\n}\n"]}
@@ -1,7 +1,6 @@
1
1
  import { QueryClient } from '@tanstack/react-query';
2
- import React from 'react';
3
2
  import { ViewProps } from 'react-native';
4
3
  export declare const chatQueryClient: QueryClient;
5
- export declare function ApiProvider({ children }: ViewProps): React.JSX.Element;
4
+ export declare function ApiProvider({ children }: ViewProps): import("react/jsx-runtime").JSX.Element;
6
5
  export declare function useFocusManager(): string;
7
6
  //# sourceMappingURL=api_provider.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"api_provider.d.ts","sourceRoot":"","sources":["../../src/contexts/api_provider.tsx"],"names":[],"mappings":"AAAA,OAAO,EAEL,WAAW,EAIZ,MAAM,uBAAuB,CAAA;AAC9B,OAAO,KAAwC,MAAM,OAAO,CAAA;AAC5D,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAA;AA+BxC,eAAO,MAAM,eAAe,aAO1B,CAAA;AAEF,wBAAgB,WAAW,CAAC,EAAE,QAAQ,EAAE,EAAE,SAAS,qBA6BlD;AAcD,wBAAgB,eAAe,WAQ9B"}
1
+ {"version":3,"file":"api_provider.d.ts","sourceRoot":"","sources":["../../src/contexts/api_provider.tsx"],"names":[],"mappings":"AAAA,OAAO,EAEL,WAAW,EAIZ,MAAM,uBAAuB,CAAA;AAE9B,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAA;AA+BxC,eAAO,MAAM,eAAe,aAO1B,CAAA;AAEF,wBAAgB,WAAW,CAAC,EAAE,QAAQ,EAAE,EAAE,SAAS,2CA6BlD;AAcD,wBAAgB,eAAe,WAQ9B"}
@@ -1,5 +1,6 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
1
2
  import { focusManager, QueryClient, QueryClientProvider, usePrefetchQuery, } from '@tanstack/react-query';
2
- import React, { useContext, useEffect, useRef } from 'react';
3
+ import { useContext, useEffect, useRef } from 'react';
3
4
  import { useApiClient } from '../hooks/use_api_client';
4
5
  import { useAppState } from '../hooks/use_app_state';
5
6
  import { appGrantsRequestArgs } from '../hooks/use_chat_permissions';
@@ -48,10 +49,7 @@ export function ApiProvider({ children }) {
48
49
  useEffect(() => {
49
50
  apiClient = client;
50
51
  }, [client]);
51
- return (<QueryClientProvider client={chatQueryClient}>
52
- <PrefetchQueries />
53
- {children}
54
- </QueryClientProvider>);
52
+ return (_jsxs(QueryClientProvider, { client: chatQueryClient, children: [_jsx(PrefetchQueries, {}), children] }));
55
53
  }
56
54
  // Component to prefetch queries when the app is focused
57
55
  // This needs to live in the provider so that it can access the api client
@@ -1 +1 @@
1
- {"version":3,"file":"api_provider.js","sourceRoot":"","sources":["../../src/contexts/api_provider.tsx"],"names":[],"mappings":"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","sourcesContent":["import {\n focusManager,\n QueryClient,\n QueryClientProvider,\n QueryKey,\n usePrefetchQuery,\n} from '@tanstack/react-query'\nimport React, { useContext, useEffect, useRef } from 'react'\nimport { ViewProps } from 'react-native'\nimport { ApiClient, useApiClient } from '../hooks/use_api_client'\nimport { useAppState } from '../hooks/use_app_state'\nimport { appGrantsRequestArgs } from '../hooks/use_chat_permissions'\nimport { getRequestQueryKey, RequestQueryKey } from '../hooks/use_suspense_api'\nimport { emitAuthRefresh } from '../utils/auth_events'\nimport { ResponseError } from '../utils/response_error'\nimport { ChatContext, ChatContextValue } from './chat_context'\n\nlet apiClient: ApiClient | undefined\n\nconst defaultQueryFn = ({ queryKey }: { queryKey: QueryKey }) => {\n if (!apiClient) {\n throw new Error('No token present')\n }\n\n const [url, data, headers, app = 'chat'] = queryKey as RequestQueryKey\n\n return apiClient[app].get({ url, data, headers })\n}\n\nconst configuredRetry = (failureCount: number, error: any) => {\n if (is429Error(error)) return false\n\n return failureCount < 3\n}\n\nconst is429Error = (error: any): boolean => {\n return error instanceof ResponseError && error.status === 429\n}\n\nexport const chatQueryClient = new QueryClient({\n defaultOptions: {\n queries: {\n queryFn: defaultQueryFn,\n retry: configuredRetry,\n },\n },\n})\n\nexport function ApiProvider({ children }: ViewProps) {\n const { token, env } = useContext(ChatContext)\n const sessionChanged = useSessionChanged({ token, env })\n\n const client = useApiClient()\n\n useEffect(() => {\n if (!sessionChanged) return\n\n emitAuthRefresh()\n\n if (chatQueryClient.isFetching()) {\n chatQueryClient.invalidateQueries()\n return\n }\n\n chatQueryClient.clear()\n }, [sessionChanged])\n\n useEffect(() => {\n apiClient = client\n }, [client])\n\n return (\n <QueryClientProvider client={chatQueryClient}>\n <PrefetchQueries />\n {children}\n </QueryClientProvider>\n )\n}\n\n// Component to prefetch queries when the app is focused\n// This needs to live in the provider so that it can access the api client\n// and the chat query client\nconst PrefetchQueries = () => {\n usePrefetchQuery({\n queryKey: getRequestQueryKey(appGrantsRequestArgs),\n queryFn: defaultQueryFn,\n })\n\n return null\n}\n\nexport function useFocusManager() {\n const appState = useAppState()\n\n useEffect(() => {\n focusManager.setFocused(appState === 'active')\n }, [appState])\n\n return appState\n}\n\nfunction useSessionChanged(value: Pick<ChatContextValue, 'token' | 'env'>): boolean {\n const { token: newToken, env: newEnv } = value\n const { token: prevToken, env: prevEnv } = usePrevious<typeof value>(value)\n\n const isInitialLogin = !prevToken && !!newToken\n if (isInitialLogin) return false\n\n const tokenChanged = Boolean(\n prevToken?.access_token && newToken?.access_token !== prevToken?.access_token\n )\n\n const envChanged = Boolean(prevEnv && newEnv !== prevEnv)\n\n return tokenChanged || envChanged\n}\n\nfunction usePrevious<T>(value: T): T {\n const ref = useRef<T>(value)\n\n useEffect(() => {\n ref.current = value\n }, [value])\n\n return ref.current\n}\n"]}
1
+ {"version":3,"file":"api_provider.js","sourceRoot":"","sources":["../../src/contexts/api_provider.tsx"],"names":[],"mappings":"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","sourcesContent":["import {\n focusManager,\n QueryClient,\n QueryClientProvider,\n QueryKey,\n usePrefetchQuery,\n} from '@tanstack/react-query'\nimport React, { useContext, useEffect, useRef } from 'react'\nimport { ViewProps } from 'react-native'\nimport { ApiClient, useApiClient } from '../hooks/use_api_client'\nimport { useAppState } from '../hooks/use_app_state'\nimport { appGrantsRequestArgs } from '../hooks/use_chat_permissions'\nimport { getRequestQueryKey, RequestQueryKey } from '../hooks/use_suspense_api'\nimport { emitAuthRefresh } from '../utils/auth_events'\nimport { ResponseError } from '../utils/response_error'\nimport { ChatContext, ChatContextValue } from './chat_context'\n\nlet apiClient: ApiClient | undefined\n\nconst defaultQueryFn = ({ queryKey }: { queryKey: QueryKey }) => {\n if (!apiClient) {\n throw new Error('No token present')\n }\n\n const [url, data, headers, app = 'chat'] = queryKey as RequestQueryKey\n\n return apiClient[app].get({ url, data, headers })\n}\n\nconst configuredRetry = (failureCount: number, error: any) => {\n if (is429Error(error)) return false\n\n return failureCount < 3\n}\n\nconst is429Error = (error: any): boolean => {\n return error instanceof ResponseError && error.status === 429\n}\n\nexport const chatQueryClient = new QueryClient({\n defaultOptions: {\n queries: {\n queryFn: defaultQueryFn,\n retry: configuredRetry,\n },\n },\n})\n\nexport function ApiProvider({ children }: ViewProps) {\n const { token, env } = useContext(ChatContext)\n const sessionChanged = useSessionChanged({ token, env })\n\n const client = useApiClient()\n\n useEffect(() => {\n if (!sessionChanged) return\n\n emitAuthRefresh()\n\n if (chatQueryClient.isFetching()) {\n chatQueryClient.invalidateQueries()\n return\n }\n\n chatQueryClient.clear()\n }, [sessionChanged])\n\n useEffect(() => {\n apiClient = client\n }, [client])\n\n return (\n <QueryClientProvider client={chatQueryClient}>\n <PrefetchQueries />\n {children}\n </QueryClientProvider>\n )\n}\n\n// Component to prefetch queries when the app is focused\n// This needs to live in the provider so that it can access the api client\n// and the chat query client\nconst PrefetchQueries = () => {\n usePrefetchQuery({\n queryKey: getRequestQueryKey(appGrantsRequestArgs),\n queryFn: defaultQueryFn,\n })\n\n return null\n}\n\nexport function useFocusManager() {\n const appState = useAppState()\n\n useEffect(() => {\n focusManager.setFocused(appState === 'active')\n }, [appState])\n\n return appState\n}\n\nfunction useSessionChanged(value: Pick<ChatContextValue, 'token' | 'env'>): boolean {\n const { token: newToken, env: newEnv } = value\n const { token: prevToken, env: prevEnv } = usePrevious<typeof value>(value)\n\n const isInitialLogin = !prevToken && !!newToken\n if (isInitialLogin) return false\n\n const tokenChanged = Boolean(\n prevToken?.access_token && newToken?.access_token !== prevToken?.access_token\n )\n\n const envChanged = Boolean(prevEnv && newEnv !== prevEnv)\n\n return tokenChanged || envChanged\n}\n\nfunction usePrevious<T>(value: T): T {\n const ref = useRef<T>(value)\n\n useEffect(() => {\n ref.current = value\n }, [value])\n\n return ref.current\n}\n"]}
@@ -26,7 +26,7 @@ export declare const ChatContext: React.Context<ChatContextValue>;
26
26
  export declare function ChatProvider({ children, value }: {
27
27
  children: any;
28
28
  value: ChatProviderProps;
29
- }): React.JSX.Element;
29
+ }): import("react/jsx-runtime").JSX.Element;
30
30
  export interface CreateChatThemeProps {
31
31
  theme?: DeepPartial<DefaultTheme>;
32
32
  colorScheme?: ColorSchemeName;
@@ -1 +1 @@
1
- {"version":3,"file":"chat_context.d.ts","sourceRoot":"","sources":["../../src/contexts/chat_context.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAiC,MAAM,OAAO,CAAA;AACrD,OAAO,EAAE,eAAe,EAAkB,MAAM,cAAc,CAAA;AAC9D,OAAO,EAAE,mBAAmB,EAAE,MAAM,mCAAmC,CAAA;AACvE,OAAO,EAAe,WAAW,EAAE,MAAM,UAAU,CAAA;AACnD,OAAO,EAAE,cAAc,EAAE,MAAM,UAAU,CAAA;AACzC,OAAO,EAAE,sBAAsB,EAAE,MAAM,4BAA4B,CAAA;AACnE,OAAO,EAAU,GAAG,EAAE,SAAS,EAAE,YAAY,EAAE,OAAO,EAAO,MAAM,UAAU,CAAA;AAC7E,OAAO,EAAE,SAAS,EAAgB,YAAY,EAAE,MAAM,gBAAgB,CAAA;AAEtE,MAAM,WAAW,iBAAiB;IAChC,GAAG,CAAC,EAAE,GAAG,CAAA;IACT,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,qBAAqB,CAAC,EAAE,CAAC,MAAM,EAAE,mBAAmB,KAAK,IAAI,CAAA;IAC7D,sBAAsB,EAAE,CAAC,SAAS,EAAE,cAAc,KAAK,IAAI,CAAA;IAC3D,KAAK,CAAC,EAAE,YAAY,CAAA;IACpB,SAAS,CAAC,EAAE,SAAS,CAAA;IACrB,KAAK,EAAE,oBAAoB,CAAA;IAC3B,UAAU,CAAC,EAAE,OAAO,CAAA;CACrB;AAED,MAAM,WAAW,gBAAiB,SAAQ,IAAI,CAAC,iBAAiB,EAAE,OAAO,CAAC;IACxE,OAAO,EAAE,OAAO,CAAA;IAChB,KAAK,EAAE,SAAS,CAAA;IAChB,qBAAqB,EAAE,CAAC,MAAM,EAAE,mBAAmB,KAAK,IAAI,CAAA;IAC5D,sBAAsB,EAAE,sBAAsB,GAAG,SAAS,CAAA;CAC3D;AAED,eAAO,MAAM,WAAW,iCAUtB,CAAA;AAEF,wBAAgB,YAAY,CAAC,EAAE,QAAQ,EAAE,KAAK,EAAE,EAAE;IAAE,QAAQ,EAAE,GAAG,CAAC;IAAC,KAAK,EAAE,iBAAiB,CAAA;CAAE,qBA+B5F;AAED,MAAM,WAAW,oBAAoB;IACnC,KAAK,CAAC,EAAE,WAAW,CAAC,YAAY,CAAC,CAAA;IACjC,WAAW,CAAC,EAAE,eAAe,CAAA;CAC9B;AAED,eAAO,MAAM,cAAc,wBAE1B,CAAA;AAED,eAAO,MAAM,kBAAkB,GAAI,sDAGhC,oBAAoB,KAAG,SAYzB,CAAA"}
1
+ {"version":3,"file":"chat_context.d.ts","sourceRoot":"","sources":["../../src/contexts/chat_context.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAiC,MAAM,OAAO,CAAA;AACrD,OAAO,EAAE,eAAe,EAAkB,MAAM,cAAc,CAAA;AAC9D,OAAO,EAAE,mBAAmB,EAAE,MAAM,mCAAmC,CAAA;AACvE,OAAO,EAAe,WAAW,EAAE,MAAM,UAAU,CAAA;AACnD,OAAO,EAAE,cAAc,EAAE,MAAM,UAAU,CAAA;AACzC,OAAO,EAAE,sBAAsB,EAAE,MAAM,4BAA4B,CAAA;AACnE,OAAO,EAAU,GAAG,EAAE,SAAS,EAAE,YAAY,EAAE,OAAO,EAAO,MAAM,UAAU,CAAA;AAC7E,OAAO,EAAE,SAAS,EAAgB,YAAY,EAAE,MAAM,gBAAgB,CAAA;AAEtE,MAAM,WAAW,iBAAiB;IAChC,GAAG,CAAC,EAAE,GAAG,CAAA;IACT,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,qBAAqB,CAAC,EAAE,CAAC,MAAM,EAAE,mBAAmB,KAAK,IAAI,CAAA;IAC7D,sBAAsB,EAAE,CAAC,SAAS,EAAE,cAAc,KAAK,IAAI,CAAA;IAC3D,KAAK,CAAC,EAAE,YAAY,CAAA;IACpB,SAAS,CAAC,EAAE,SAAS,CAAA;IACrB,KAAK,EAAE,oBAAoB,CAAA;IAC3B,UAAU,CAAC,EAAE,OAAO,CAAA;CACrB;AAED,MAAM,WAAW,gBAAiB,SAAQ,IAAI,CAAC,iBAAiB,EAAE,OAAO,CAAC;IACxE,OAAO,EAAE,OAAO,CAAA;IAChB,KAAK,EAAE,SAAS,CAAA;IAChB,qBAAqB,EAAE,CAAC,MAAM,EAAE,mBAAmB,KAAK,IAAI,CAAA;IAC5D,sBAAsB,EAAE,sBAAsB,GAAG,SAAS,CAAA;CAC3D;AAED,eAAO,MAAM,WAAW,iCAUtB,CAAA;AAEF,wBAAgB,YAAY,CAAC,EAAE,QAAQ,EAAE,KAAK,EAAE,EAAE;IAAE,QAAQ,EAAE,GAAG,CAAC;IAAC,KAAK,EAAE,iBAAiB,CAAA;CAAE,2CA+B5F;AAED,MAAM,WAAW,oBAAoB;IACnC,KAAK,CAAC,EAAE,WAAW,CAAC,YAAY,CAAC,CAAA;IACjC,WAAW,CAAC,EAAE,eAAe,CAAA;CAC9B;AAED,eAAO,MAAM,cAAc,wBAE1B,CAAA;AAED,eAAO,MAAM,kBAAkB,GAAI,sDAGhC,oBAAoB,KAAG,SAYzB,CAAA"}
@@ -1,3 +1,4 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
1
2
  import { useQuery } from '@tanstack/react-query';
2
3
  import { merge } from 'lodash';
3
4
  import React, { createContext, useMemo } from 'react';
@@ -32,7 +33,7 @@ export function ChatProvider({ children, value }) {
32
33
  token,
33
34
  productAnalyticsConfig,
34
35
  };
35
- return <ChatContext.Provider value={contextValue}>{children}</ChatContext.Provider>;
36
+ return _jsx(ChatContext.Provider, { value: contextValue, children: children });
36
37
  }
37
38
  export const useChatContext = () => {
38
39
  return React.useContext(ChatContext);
@@ -1 +1 @@
1
- {"version":3,"file":"chat_context.js","sourceRoot":"","sources":["../../src/contexts/chat_context.tsx"],"names":[],"mappings":"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","sourcesContent":["import { useQuery } from '@tanstack/react-query'\nimport { merge } from 'lodash'\nimport React, { createContext, useMemo } from 'react'\nimport { ColorSchemeName, useColorScheme } from 'react-native'\nimport { AgeCheckContactInfo } from '../screens/age_check/screen_props'\nimport { ApiResource, DeepPartial } from '../types'\nimport { FailedResponse } from '../types'\nimport { ProductAnalyticsConfig } from '../types/product_analytics'\nimport { Client, ENV, OauthType, PartialToken, Session, Uri } from '../utils'\nimport { ChatTheme, defaultTheme, DefaultTheme } from '../utils/theme'\n\nexport interface ChatProviderProps {\n env?: ENV\n giphyApiKey?: string\n onAgeDisqualification?: (params: AgeCheckContactInfo) => void\n onUnauthorizedResponse: (_response: FailedResponse) => void\n token?: PartialToken\n tokenType?: OauthType\n theme: CreateChatThemeProps\n edgeToEdge?: boolean\n}\n\nexport interface ChatContextValue extends Omit<ChatProviderProps, 'theme'> {\n session: Session\n theme: ChatTheme\n onAgeDisqualification: (params: AgeCheckContactInfo) => void\n productAnalyticsConfig: ProductAnalyticsConfig | undefined\n}\n\nexport const ChatContext = createContext<ChatContextValue>({\n env: undefined,\n giphyApiKey: undefined,\n onAgeDisqualification: (_params: AgeCheckContactInfo) => {},\n onUnauthorizedResponse: () => {},\n session: new Session(),\n theme: defaultTheme('light'),\n token: undefined,\n edgeToEdge: true,\n productAnalyticsConfig: undefined,\n})\n\nexport function ChatProvider({ children, value }: { children: any; value: ChatProviderProps }) {\n const {\n env,\n token,\n onAgeDisqualification = (_params: AgeCheckContactInfo) => {},\n onUnauthorizedResponse,\n giphyApiKey,\n tokenType,\n edgeToEdge = true,\n } = value\n const theme = useCreateChatTheme(value.theme || {})\n const session = useMemo(\n () => new Session({ token, env, type: tokenType }),\n [env, token, tokenType]\n )\n\n const productAnalyticsConfig = useProductAnalyticsConfig(session)\n const contextValue: ChatContextValue = {\n ...value,\n edgeToEdge,\n env,\n giphyApiKey,\n onAgeDisqualification,\n onUnauthorizedResponse,\n session,\n theme,\n token,\n productAnalyticsConfig,\n }\n\n return <ChatContext.Provider value={contextValue}>{children}</ChatContext.Provider>\n}\n\nexport interface CreateChatThemeProps {\n theme?: DeepPartial<DefaultTheme>\n colorScheme?: ColorSchemeName\n}\n\nexport const useChatContext = () => {\n return React.useContext(ChatContext)\n}\n\nexport const useCreateChatTheme = ({\n theme: customTheme = {},\n colorScheme: appColorScheme,\n}: CreateChatThemeProps): ChatTheme => {\n const internalColorScheme = useColorScheme() || 'light'\n const colorScheme = appColorScheme || internalColorScheme\n\n const theme = {\n ...merge({}, defaultTheme(colorScheme), customTheme),\n colors: {\n ...merge({}, defaultTheme(colorScheme).colors, customTheme?.colors),\n },\n }\n\n return theme\n}\n\ninterface ProductAnalyticsTokenResponse {\n type: 'ProductAnalyticsToken'\n id: string\n url: string\n metadata: Record<string, unknown>\n}\n\n// expiry time comes from here:\n// https://github.com/planningcenter/pco-product-analytics/blob/e5bbc4c31b715b3c329c06a162829ee6967d3094/lib/pco/product/analytics/client_token_provider.rb#L24\nconst TOKEN_EXPIRY_TIME = 604800 * 1000 // 7 days in milliseconds\n\nconst useProductAnalyticsConfig = (session: Session): ProductAnalyticsConfig | undefined => {\n const uri = useMemo(() => new Uri({ session }), [session])\n const apiClient = useMemo(\n () =>\n new Client({\n root: uri.api(`/chat/v2`),\n defaultHeaders: uri.headers,\n version: '2018-11-01',\n }),\n [uri]\n )\n\n const { data: config } = useQuery<ProductAnalyticsConfig>({\n queryKey: ['product-analytics-token'],\n queryFn: () =>\n apiClient\n .post<ApiResource<ProductAnalyticsTokenResponse>>({\n url: '/me/product_analytics_authorize',\n data: {\n data: {\n type: 'ProductAnalyticsToken',\n attributes: {},\n },\n },\n })\n .then(res => ({\n token: res.data.id,\n endpoint: res.data.url,\n metadata: res.data.metadata,\n })),\n staleTime: TOKEN_EXPIRY_TIME,\n gcTime: TOKEN_EXPIRY_TIME,\n refetchInterval: TOKEN_EXPIRY_TIME,\n enabled: process.env.NODE_ENV !== 'test',\n })\n\n return config\n}\n"]}
1
+ {"version":3,"file":"chat_context.js","sourceRoot":"","sources":["../../src/contexts/chat_context.tsx"],"names":[],"mappings":"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","sourcesContent":["import { useQuery } from '@tanstack/react-query'\nimport { merge } from 'lodash'\nimport React, { createContext, useMemo } from 'react'\nimport { ColorSchemeName, useColorScheme } from 'react-native'\nimport { AgeCheckContactInfo } from '../screens/age_check/screen_props'\nimport { ApiResource, DeepPartial } from '../types'\nimport { FailedResponse } from '../types'\nimport { ProductAnalyticsConfig } from '../types/product_analytics'\nimport { Client, ENV, OauthType, PartialToken, Session, Uri } from '../utils'\nimport { ChatTheme, defaultTheme, DefaultTheme } from '../utils/theme'\n\nexport interface ChatProviderProps {\n env?: ENV\n giphyApiKey?: string\n onAgeDisqualification?: (params: AgeCheckContactInfo) => void\n onUnauthorizedResponse: (_response: FailedResponse) => void\n token?: PartialToken\n tokenType?: OauthType\n theme: CreateChatThemeProps\n edgeToEdge?: boolean\n}\n\nexport interface ChatContextValue extends Omit<ChatProviderProps, 'theme'> {\n session: Session\n theme: ChatTheme\n onAgeDisqualification: (params: AgeCheckContactInfo) => void\n productAnalyticsConfig: ProductAnalyticsConfig | undefined\n}\n\nexport const ChatContext = createContext<ChatContextValue>({\n env: undefined,\n giphyApiKey: undefined,\n onAgeDisqualification: (_params: AgeCheckContactInfo) => {},\n onUnauthorizedResponse: () => {},\n session: new Session(),\n theme: defaultTheme('light'),\n token: undefined,\n edgeToEdge: true,\n productAnalyticsConfig: undefined,\n})\n\nexport function ChatProvider({ children, value }: { children: any; value: ChatProviderProps }) {\n const {\n env,\n token,\n onAgeDisqualification = (_params: AgeCheckContactInfo) => {},\n onUnauthorizedResponse,\n giphyApiKey,\n tokenType,\n edgeToEdge = true,\n } = value\n const theme = useCreateChatTheme(value.theme || {})\n const session = useMemo(\n () => new Session({ token, env, type: tokenType }),\n [env, token, tokenType]\n )\n\n const productAnalyticsConfig = useProductAnalyticsConfig(session)\n const contextValue: ChatContextValue = {\n ...value,\n edgeToEdge,\n env,\n giphyApiKey,\n onAgeDisqualification,\n onUnauthorizedResponse,\n session,\n theme,\n token,\n productAnalyticsConfig,\n }\n\n return <ChatContext.Provider value={contextValue}>{children}</ChatContext.Provider>\n}\n\nexport interface CreateChatThemeProps {\n theme?: DeepPartial<DefaultTheme>\n colorScheme?: ColorSchemeName\n}\n\nexport const useChatContext = () => {\n return React.useContext(ChatContext)\n}\n\nexport const useCreateChatTheme = ({\n theme: customTheme = {},\n colorScheme: appColorScheme,\n}: CreateChatThemeProps): ChatTheme => {\n const internalColorScheme = useColorScheme() || 'light'\n const colorScheme = appColorScheme || internalColorScheme\n\n const theme = {\n ...merge({}, defaultTheme(colorScheme), customTheme),\n colors: {\n ...merge({}, defaultTheme(colorScheme).colors, customTheme?.colors),\n },\n }\n\n return theme\n}\n\ninterface ProductAnalyticsTokenResponse {\n type: 'ProductAnalyticsToken'\n id: string\n url: string\n metadata: Record<string, unknown>\n}\n\n// expiry time comes from here:\n// https://github.com/planningcenter/pco-product-analytics/blob/e5bbc4c31b715b3c329c06a162829ee6967d3094/lib/pco/product/analytics/client_token_provider.rb#L24\nconst TOKEN_EXPIRY_TIME = 604800 * 1000 // 7 days in milliseconds\n\nconst useProductAnalyticsConfig = (session: Session): ProductAnalyticsConfig | undefined => {\n const uri = useMemo(() => new Uri({ session }), [session])\n const apiClient = useMemo(\n () =>\n new Client({\n root: uri.api(`/chat/v2`),\n defaultHeaders: uri.headers,\n version: '2018-11-01',\n }),\n [uri]\n )\n\n const { data: config } = useQuery<ProductAnalyticsConfig>({\n queryKey: ['product-analytics-token'],\n queryFn: () =>\n apiClient\n .post<ApiResource<ProductAnalyticsTokenResponse>>({\n url: '/me/product_analytics_authorize',\n data: {\n data: {\n type: 'ProductAnalyticsToken',\n attributes: {},\n },\n },\n })\n .then(res => ({\n token: res.data.id,\n endpoint: res.data.url,\n metadata: res.data.metadata,\n })),\n staleTime: TOKEN_EXPIRY_TIME,\n gcTime: TOKEN_EXPIRY_TIME,\n refetchInterval: TOKEN_EXPIRY_TIME,\n enabled: process.env.NODE_ENV !== 'test',\n })\n\n return config\n}\n"]}
@@ -1,4 +1,4 @@
1
- import React, { PropsWithChildren } from 'react';
1
+ import { PropsWithChildren } from 'react';
2
2
  interface ConversationContextValue {
3
3
  conversationId: number;
4
4
  currentPageReplyRootId: string | null;
@@ -7,7 +7,7 @@ interface ConversationContextProviderProps extends PropsWithChildren {
7
7
  conversationId: number;
8
8
  currentPageReplyRootId: string | null;
9
9
  }
10
- export declare const ConversationContextProvider: ({ children, conversationId, currentPageReplyRootId, }: ConversationContextProviderProps) => React.JSX.Element;
10
+ export declare const ConversationContextProvider: ({ children, conversationId, currentPageReplyRootId, }: ConversationContextProviderProps) => import("react/jsx-runtime").JSX.Element;
11
11
  export declare const useConversationContext: () => ConversationContextValue;
12
12
  export {};
13
13
  //# sourceMappingURL=conversation_context.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"conversation_context.d.ts","sourceRoot":"","sources":["../../src/contexts/conversation_context.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAiB,iBAAiB,EAAuB,MAAM,OAAO,CAAA;AAEpF,UAAU,wBAAwB;IAChC,cAAc,EAAE,MAAM,CAAA;IACtB,sBAAsB,EAAE,MAAM,GAAG,IAAI,CAAA;CACtC;AAED,UAAU,gCAAiC,SAAQ,iBAAiB;IAClE,cAAc,EAAE,MAAM,CAAA;IACtB,sBAAsB,EAAE,MAAM,GAAG,IAAI,CAAA;CACtC;AAOD,eAAO,MAAM,2BAA2B,GAAI,uDAIzC,gCAAgC,sBAUlC,CAAA;AAED,eAAO,MAAM,sBAAsB,gCAAwC,CAAA"}
1
+ {"version":3,"file":"conversation_context.d.ts","sourceRoot":"","sources":["../../src/contexts/conversation_context.tsx"],"names":[],"mappings":"AAAA,OAAc,EAAiB,iBAAiB,EAAuB,MAAM,OAAO,CAAA;AAEpF,UAAU,wBAAwB;IAChC,cAAc,EAAE,MAAM,CAAA;IACtB,sBAAsB,EAAE,MAAM,GAAG,IAAI,CAAA;CACtC;AAED,UAAU,gCAAiC,SAAQ,iBAAiB;IAClE,cAAc,EAAE,MAAM,CAAA;IACtB,sBAAsB,EAAE,MAAM,GAAG,IAAI,CAAA;CACtC;AAOD,eAAO,MAAM,2BAA2B,GAAI,uDAIzC,gCAAgC,4CAUlC,CAAA;AAED,eAAO,MAAM,sBAAsB,gCAAwC,CAAA"}
@@ -1,4 +1,5 @@
1
- import React, { createContext, useContext, useMemo } from 'react';
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ import { createContext, useContext, useMemo } from 'react';
2
3
  const ConversationContext = createContext({
3
4
  conversationId: 0,
4
5
  currentPageReplyRootId: null,
@@ -8,7 +9,7 @@ export const ConversationContextProvider = ({ children, conversationId, currentP
8
9
  conversationId,
9
10
  currentPageReplyRootId,
10
11
  }), [conversationId, currentPageReplyRootId]);
11
- return <ConversationContext.Provider value={value}>{children}</ConversationContext.Provider>;
12
+ return _jsx(ConversationContext.Provider, { value: value, children: children });
12
13
  };
13
14
  export const useConversationContext = () => useContext(ConversationContext);
14
15
  //# sourceMappingURL=conversation_context.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"conversation_context.js","sourceRoot":"","sources":["../../src/contexts/conversation_context.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAE,aAAa,EAAqB,UAAU,EAAE,OAAO,EAAE,MAAM,OAAO,CAAA;AAYpF,MAAM,mBAAmB,GAAG,aAAa,CAA2B;IAClE,cAAc,EAAE,CAAC;IACjB,sBAAsB,EAAE,IAAI;CAC7B,CAAC,CAAA;AAEF,MAAM,CAAC,MAAM,2BAA2B,GAAG,CAAC,EAC1C,QAAQ,EACR,cAAc,EACd,sBAAsB,GACW,EAAE,EAAE;IACrC,MAAM,KAAK,GAAG,OAAO,CACnB,GAAG,EAAE,CAAC,CAAC;QACL,cAAc;QACd,sBAAsB;KACvB,CAAC,EACF,CAAC,cAAc,EAAE,sBAAsB,CAAC,CACzC,CAAA;IAED,OAAO,CAAC,mBAAmB,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,QAAQ,CAAC,EAAE,mBAAmB,CAAC,QAAQ,CAAC,CAAA;AAC9F,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,sBAAsB,GAAG,GAAG,EAAE,CAAC,UAAU,CAAC,mBAAmB,CAAC,CAAA","sourcesContent":["import React, { createContext, PropsWithChildren, useContext, useMemo } from 'react'\n\ninterface ConversationContextValue {\n conversationId: number\n currentPageReplyRootId: string | null\n}\n\ninterface ConversationContextProviderProps extends PropsWithChildren {\n conversationId: number\n currentPageReplyRootId: string | null\n}\n\nconst ConversationContext = createContext<ConversationContextValue>({\n conversationId: 0,\n currentPageReplyRootId: null,\n})\n\nexport const ConversationContextProvider = ({\n children,\n conversationId,\n currentPageReplyRootId,\n}: ConversationContextProviderProps) => {\n const value = useMemo(\n () => ({\n conversationId,\n currentPageReplyRootId,\n }),\n [conversationId, currentPageReplyRootId]\n )\n\n return <ConversationContext.Provider value={value}>{children}</ConversationContext.Provider>\n}\n\nexport const useConversationContext = () => useContext(ConversationContext)\n"]}
1
+ {"version":3,"file":"conversation_context.js","sourceRoot":"","sources":["../../src/contexts/conversation_context.tsx"],"names":[],"mappings":";AAAA,OAAc,EAAE,aAAa,EAAqB,UAAU,EAAE,OAAO,EAAE,MAAM,OAAO,CAAA;AAYpF,MAAM,mBAAmB,GAAG,aAAa,CAA2B;IAClE,cAAc,EAAE,CAAC;IACjB,sBAAsB,EAAE,IAAI;CAC7B,CAAC,CAAA;AAEF,MAAM,CAAC,MAAM,2BAA2B,GAAG,CAAC,EAC1C,QAAQ,EACR,cAAc,EACd,sBAAsB,GACW,EAAE,EAAE;IACrC,MAAM,KAAK,GAAG,OAAO,CACnB,GAAG,EAAE,CAAC,CAAC;QACL,cAAc;QACd,sBAAsB;KACvB,CAAC,EACF,CAAC,cAAc,EAAE,sBAAsB,CAAC,CACzC,CAAA;IAED,OAAO,KAAC,mBAAmB,CAAC,QAAQ,IAAC,KAAK,EAAE,KAAK,YAAG,QAAQ,GAAgC,CAAA;AAC9F,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,sBAAsB,GAAG,GAAG,EAAE,CAAC,UAAU,CAAC,mBAAmB,CAAC,CAAA","sourcesContent":["import React, { createContext, PropsWithChildren, useContext, useMemo } from 'react'\n\ninterface ConversationContextValue {\n conversationId: number\n currentPageReplyRootId: string | null\n}\n\ninterface ConversationContextProviderProps extends PropsWithChildren {\n conversationId: number\n currentPageReplyRootId: string | null\n}\n\nconst ConversationContext = createContext<ConversationContextValue>({\n conversationId: 0,\n currentPageReplyRootId: null,\n})\n\nexport const ConversationContextProvider = ({\n children,\n conversationId,\n currentPageReplyRootId,\n}: ConversationContextProviderProps) => {\n const value = useMemo(\n () => ({\n conversationId,\n currentPageReplyRootId,\n }),\n [conversationId, currentPageReplyRootId]\n )\n\n return <ConversationContext.Provider value={value}>{children}</ConversationContext.Provider>\n}\n\nexport const useConversationContext = () => useContext(ConversationContext)\n"]}
@@ -1,4 +1,4 @@
1
- import React, { PropsWithChildren } from 'react';
1
+ import { PropsWithChildren } from 'react';
2
2
  import { ApiGetQueryOptions } from '../hooks';
3
3
  import { UseConversationsValue } from '../hooks/use_conversations';
4
4
  import { ConversationFiltersParams } from '../screens/conversation_filters/screen_props';
@@ -10,7 +10,7 @@ interface ConversationsContextValue extends UseConversationsValue {
10
10
  export declare const ConversationsContextProvider: ({ children, args, opts: paginatorOptions, }: PropsWithChildren<{
11
11
  args: ConversationFiltersParams;
12
12
  opts?: ApiGetQueryOptions;
13
- }>) => React.JSX.Element;
13
+ }>) => import("react/jsx-runtime").JSX.Element;
14
14
  export declare const useConversationsContext: () => ConversationsContextValue;
15
15
  export {};
16
16
  //# sourceMappingURL=conversations_context.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"conversations_context.d.ts","sourceRoot":"","sources":["../../src/contexts/conversations_context.tsx"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,EAAiB,iBAAiB,EAAiC,MAAM,OAAO,CAAA;AAC9F,OAAO,EAAE,kBAAkB,EAAE,MAAM,UAAU,CAAA;AAC7C,OAAO,EAAoB,qBAAqB,EAAE,MAAM,4BAA4B,CAAA;AACpF,OAAO,EAAE,yBAAyB,EAAE,MAAM,8CAA8C,CAAA;AAIxF,UAAU,yBAA0B,SAAQ,qBAAqB;IAC/D,oBAAoB,CAAC,EAAE,MAAM,CAAA;IAC7B,uBAAuB,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,CAAA;IAC9C,IAAI,EAAE,yBAAyB,CAAA;CAChC;AAsBD,eAAO,MAAM,4BAA4B,GAAI,6CAI1C,iBAAiB,CAAC;IACnB,IAAI,EAAE,yBAAyB,CAAA;IAC/B,IAAI,CAAC,EAAE,kBAAkB,CAAA;CAC1B,CAAC,sBAwBD,CAAA;AAaD,eAAO,MAAM,uBAAuB,iCAAyC,CAAA"}
1
+ {"version":3,"file":"conversations_context.d.ts","sourceRoot":"","sources":["../../src/contexts/conversations_context.tsx"],"names":[],"mappings":"AAKA,OAAc,EAAiB,iBAAiB,EAAiC,MAAM,OAAO,CAAA;AAC9F,OAAO,EAAE,kBAAkB,EAAE,MAAM,UAAU,CAAA;AAC7C,OAAO,EAAoB,qBAAqB,EAAE,MAAM,4BAA4B,CAAA;AACpF,OAAO,EAAE,yBAAyB,EAAE,MAAM,8CAA8C,CAAA;AAIxF,UAAU,yBAA0B,SAAQ,qBAAqB;IAC/D,oBAAoB,CAAC,EAAE,MAAM,CAAA;IAC7B,uBAAuB,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,CAAA;IAC9C,IAAI,EAAE,yBAAyB,CAAA;CAChC;AAsBD,eAAO,MAAM,4BAA4B,GAAI,6CAI1C,iBAAiB,CAAC;IACnB,IAAI,EAAE,yBAAyB,CAAA;IAC/B,IAAI,CAAC,EAAE,kBAAkB,CAAA;CAC1B,CAAC,4CAwBD,CAAA;AAaD,eAAO,MAAM,uBAAuB,iCAAyC,CAAA"}
@@ -1,4 +1,5 @@
1
- import React, { createContext, useContext, useMemo, useState } from 'react';
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ import { createContext, useContext, useMemo, useState } from 'react';
2
3
  import { useConversations } from '../hooks/use_conversations';
3
4
  const defaultQueryValue = {
4
5
  conversations: [],
@@ -32,7 +33,7 @@ export const ConversationsContextProvider = ({ children, args = {}, opts: pagina
32
33
  setActiveConversationId,
33
34
  ...query,
34
35
  }), [args, activeConversationId, query]);
35
- return <ConversationsContext.Provider value={value}>{children}</ConversationsContext.Provider>;
36
+ return _jsx(ConversationsContext.Provider, { value: value, children: children });
36
37
  };
37
38
  function fetchNextPage(_options) {
38
39
  throw new Error('Function not implemented.');
@@ -1 +1 @@
1
- {"version":3,"file":"conversations_context.js","sourceRoot":"","sources":["../../src/contexts/conversations_context.tsx"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,EAAE,aAAa,EAAqB,UAAU,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAA;AAE9F,OAAO,EAAE,gBAAgB,EAAyB,MAAM,4BAA4B,CAAA;AAWpF,MAAM,iBAAiB,GAA0B;IAC/C,aAAa,EAAE,EAAE;IACjB,OAAO,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC;IACpC,KAAK,EAAE,IAAI;IACX,OAAO,EAAE,KAAK;IACd,SAAS,EAAE,IAAI;IACf,aAAa;IACb,WAAW,EAAE,KAAK;IAClB,UAAU,EAAE,KAAK;IACjB,SAAS,EAAE,KAAK;IAChB,YAAY,EAAE,KAAK;CACpB,CAAA;AAED,MAAM,oBAAoB,GAAG,aAAa,CAA4B;IACpE,IAAI,EAAE,EAAE;IACR,oBAAoB,EAAE,SAAS;IAC/B,uBAAuB,EAAE,GAAG,EAAE,GAAE,CAAC;IACjC,GAAG,iBAAiB;CACrB,CAAC,CAAA;AAEF,MAAM,CAAC,MAAM,4BAA4B,GAAG,CAAC,EAC3C,QAAQ,EACR,IAAI,GAAG,EAAE,EACT,IAAI,EAAE,gBAAgB,GAItB,EAAE,EAAE;IACJ,MAAM,CAAC,oBAAoB,EAAE,uBAAuB,CAAC,GAAG,QAAQ,EAAsB,CAAA;IACtF,MAAM,EAAE,mBAAmB,EAAE,qBAAqB,EAAE,oBAAoB,EAAE,GAAG,IAAI,CAAA;IAEjF,MAAM,KAAK,GAAG,gBAAgB,CAC5B;QACE,mBAAmB;QACnB,qBAAqB;QACrB,oBAAoB;KACrB,EACD,gBAAgB,CACjB,CAAA;IAED,MAAM,KAAK,GAAG,OAAO,CACnB,GAAG,EAAE,CAAC,CAAC;QACL,IAAI;QACJ,oBAAoB;QACpB,uBAAuB;QACvB,GAAG,KAAK;KACT,CAAC,EACF,CAAC,IAAI,EAAE,oBAAoB,EAAE,KAAK,CAAC,CACpC,CAAA;IAED,OAAO,CAAC,oBAAoB,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,QAAQ,CAAC,EAAE,oBAAoB,CAAC,QAAQ,CAAC,CAAA;AAChG,CAAC,CAAA;AAED,SAAS,aAAa,CACpB,QAA+B;IAO/B,MAAM,IAAI,KAAK,CAAC,2BAA2B,CAAC,CAAA;AAC9C,CAAC;AAED,MAAM,CAAC,MAAM,uBAAuB,GAAG,GAAG,EAAE,CAAC,UAAU,CAAC,oBAAoB,CAAC,CAAA","sourcesContent":["import {\n FetchNextPageOptions,\n InfiniteQueryObserverResult,\n InfiniteData,\n} from '@tanstack/react-query'\nimport React, { createContext, PropsWithChildren, useContext, useMemo, useState } from 'react'\nimport { ApiGetQueryOptions } from '../hooks'\nimport { useConversations, UseConversationsValue } from '../hooks/use_conversations'\nimport { ConversationFiltersParams } from '../screens/conversation_filters/screen_props'\nimport { ApiCollection, ConversationResource } from '../types'\nimport { ResponseError } from '../utils/response_error'\n\ninterface ConversationsContextValue extends UseConversationsValue {\n activeConversationId?: number\n setActiveConversationId: (_id: number) => void\n args: ConversationFiltersParams\n}\n\nconst defaultQueryValue: UseConversationsValue = {\n conversations: [],\n refetch: () => Promise.resolve(null),\n error: null,\n isError: false,\n isLoading: true,\n fetchNextPage,\n hasNextPage: false,\n isFetching: false,\n isFetched: false,\n isRefetching: false,\n}\n\nconst ConversationsContext = createContext<ConversationsContextValue>({\n args: {},\n activeConversationId: undefined,\n setActiveConversationId: () => {},\n ...defaultQueryValue,\n})\n\nexport const ConversationsContextProvider = ({\n children,\n args = {},\n opts: paginatorOptions,\n}: PropsWithChildren<{\n args: ConversationFiltersParams\n opts?: ApiGetQueryOptions\n}>) => {\n const [activeConversationId, setActiveConversationId] = useState<number | undefined>()\n const { chat_group_graph_id, group_source_app_name, show_direct_messages } = args\n\n const query = useConversations(\n {\n chat_group_graph_id,\n group_source_app_name,\n show_direct_messages,\n },\n paginatorOptions\n )\n\n const value = useMemo(\n () => ({\n args,\n activeConversationId,\n setActiveConversationId,\n ...query,\n }),\n [args, activeConversationId, query]\n )\n\n return <ConversationsContext.Provider value={value}>{children}</ConversationsContext.Provider>\n}\n\nfunction fetchNextPage(\n _options?: FetchNextPageOptions\n): Promise<\n InfiniteQueryObserverResult<\n InfiniteData<ApiCollection<ConversationResource>, unknown>,\n ResponseError\n >\n> {\n throw new Error('Function not implemented.')\n}\n\nexport const useConversationsContext = () => useContext(ConversationsContext)\n"]}
1
+ {"version":3,"file":"conversations_context.js","sourceRoot":"","sources":["../../src/contexts/conversations_context.tsx"],"names":[],"mappings":";AAKA,OAAc,EAAE,aAAa,EAAqB,UAAU,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAA;AAE9F,OAAO,EAAE,gBAAgB,EAAyB,MAAM,4BAA4B,CAAA;AAWpF,MAAM,iBAAiB,GAA0B;IAC/C,aAAa,EAAE,EAAE;IACjB,OAAO,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC;IACpC,KAAK,EAAE,IAAI;IACX,OAAO,EAAE,KAAK;IACd,SAAS,EAAE,IAAI;IACf,aAAa;IACb,WAAW,EAAE,KAAK;IAClB,UAAU,EAAE,KAAK;IACjB,SAAS,EAAE,KAAK;IAChB,YAAY,EAAE,KAAK;CACpB,CAAA;AAED,MAAM,oBAAoB,GAAG,aAAa,CAA4B;IACpE,IAAI,EAAE,EAAE;IACR,oBAAoB,EAAE,SAAS;IAC/B,uBAAuB,EAAE,GAAG,EAAE,GAAE,CAAC;IACjC,GAAG,iBAAiB;CACrB,CAAC,CAAA;AAEF,MAAM,CAAC,MAAM,4BAA4B,GAAG,CAAC,EAC3C,QAAQ,EACR,IAAI,GAAG,EAAE,EACT,IAAI,EAAE,gBAAgB,GAItB,EAAE,EAAE;IACJ,MAAM,CAAC,oBAAoB,EAAE,uBAAuB,CAAC,GAAG,QAAQ,EAAsB,CAAA;IACtF,MAAM,EAAE,mBAAmB,EAAE,qBAAqB,EAAE,oBAAoB,EAAE,GAAG,IAAI,CAAA;IAEjF,MAAM,KAAK,GAAG,gBAAgB,CAC5B;QACE,mBAAmB;QACnB,qBAAqB;QACrB,oBAAoB;KACrB,EACD,gBAAgB,CACjB,CAAA;IAED,MAAM,KAAK,GAAG,OAAO,CACnB,GAAG,EAAE,CAAC,CAAC;QACL,IAAI;QACJ,oBAAoB;QACpB,uBAAuB;QACvB,GAAG,KAAK;KACT,CAAC,EACF,CAAC,IAAI,EAAE,oBAAoB,EAAE,KAAK,CAAC,CACpC,CAAA;IAED,OAAO,KAAC,oBAAoB,CAAC,QAAQ,IAAC,KAAK,EAAE,KAAK,YAAG,QAAQ,GAAiC,CAAA;AAChG,CAAC,CAAA;AAED,SAAS,aAAa,CACpB,QAA+B;IAO/B,MAAM,IAAI,KAAK,CAAC,2BAA2B,CAAC,CAAA;AAC9C,CAAC;AAED,MAAM,CAAC,MAAM,uBAAuB,GAAG,GAAG,EAAE,CAAC,UAAU,CAAC,oBAAoB,CAAC,CAAA","sourcesContent":["import {\n FetchNextPageOptions,\n InfiniteQueryObserverResult,\n InfiniteData,\n} from '@tanstack/react-query'\nimport React, { createContext, PropsWithChildren, useContext, useMemo, useState } from 'react'\nimport { ApiGetQueryOptions } from '../hooks'\nimport { useConversations, UseConversationsValue } from '../hooks/use_conversations'\nimport { ConversationFiltersParams } from '../screens/conversation_filters/screen_props'\nimport { ApiCollection, ConversationResource } from '../types'\nimport { ResponseError } from '../utils/response_error'\n\ninterface ConversationsContextValue extends UseConversationsValue {\n activeConversationId?: number\n setActiveConversationId: (_id: number) => void\n args: ConversationFiltersParams\n}\n\nconst defaultQueryValue: UseConversationsValue = {\n conversations: [],\n refetch: () => Promise.resolve(null),\n error: null,\n isError: false,\n isLoading: true,\n fetchNextPage,\n hasNextPage: false,\n isFetching: false,\n isFetched: false,\n isRefetching: false,\n}\n\nconst ConversationsContext = createContext<ConversationsContextValue>({\n args: {},\n activeConversationId: undefined,\n setActiveConversationId: () => {},\n ...defaultQueryValue,\n})\n\nexport const ConversationsContextProvider = ({\n children,\n args = {},\n opts: paginatorOptions,\n}: PropsWithChildren<{\n args: ConversationFiltersParams\n opts?: ApiGetQueryOptions\n}>) => {\n const [activeConversationId, setActiveConversationId] = useState<number | undefined>()\n const { chat_group_graph_id, group_source_app_name, show_direct_messages } = args\n\n const query = useConversations(\n {\n chat_group_graph_id,\n group_source_app_name,\n show_direct_messages,\n },\n paginatorOptions\n )\n\n const value = useMemo(\n () => ({\n args,\n activeConversationId,\n setActiveConversationId,\n ...query,\n }),\n [args, activeConversationId, query]\n )\n\n return <ConversationsContext.Provider value={value}>{children}</ConversationsContext.Provider>\n}\n\nfunction fetchNextPage(\n _options?: FetchNextPageOptions\n): Promise<\n InfiniteQueryObserverResult<\n InfiniteData<ApiCollection<ConversationResource>, unknown>,\n ResponseError\n >\n> {\n throw new Error('Function not implemented.')\n}\n\nexport const useConversationsContext = () => useContext(ConversationsContext)\n"]}
@@ -39,6 +39,6 @@ export type SessionContextConfig = {
39
39
  export declare function SessionContextProvider({ children, queryClient, config, }: PropsWithChildren<{
40
40
  queryClient: QueryClient;
41
41
  config: SessionContextConfig;
42
- }>): React.JSX.Element;
42
+ }>): import("react/jsx-runtime").JSX.Element;
43
43
  export {};
44
44
  //# sourceMappingURL=session_context.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"session_context.d.ts","sourceRoot":"","sources":["../../src/contexts/session_context.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAe,MAAM,uBAAuB,CAAA;AAChE,OAAO,KAAK,EAAE,EAEZ,iBAAiB,EAKlB,MAAM,OAAO,CAAA;AAMd,OAAO,EAAyB,cAAc,EAAE,UAAU,EAAwB,MAAM,UAAU,CAAA;AAElG,OAAO,EAAE,GAAG,EAAgB,OAAO,EAA8B,MAAM,UAAU,CAAA;AACjF,OAAO,EAAE,cAAc,EAAE,MAAM,0CAA0C,CAAA;AAIzE,KAAK,QAAQ,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;AAEtC,MAAM,MAAM,mBAAmB,GAAG;IAChC,GAAG,EAAE,GAAG,CAAA;IACR,MAAM,EAAE,CAAC,IAAI,EAAE,GAAG,KAAK,IAAI,CAAA;IAC3B,OAAO,EAAE,OAAO,CAAA;IAChB,QAAQ,EAAE,QAAQ,CAAA;IAClB,KAAK,EAAE,UAAU,GAAG,SAAS,CAAA;IAC7B,0BAA0B,EAAE,CAAC,SAAS,EAAE,cAAc,KAAK,IAAI,CAAA;IAC/D,MAAM,EAAE,MAAM,IAAI,CAAA;IAClB,QAAQ,EAAE,CAAC,MAAM,EAAE,UAAU,KAAK,IAAI,CAAA;IACtC,aAAa,EAAE,CAAC,UAAU,EAAE,MAAM,KAAK,IAAI,CAAA;IAC3C,aAAa,EAAE,CAAC,QAAQ,EAAE,OAAO,KAAK,OAAO,CAAC,IAAI,CAAC,CAAA;CACpD,CAAA;AAED,eAAO,MAAM,cAAc,oCAWzB,CAAA;AAEF,MAAM,MAAM,oBAAoB,GAAG;IAEjC,aAAa,EAAE,cAAc,CAAA;IAG7B,cAAc,EAAE,CAAC,MAAM,EAAE;QAAE,aAAa,EAAE,MAAM,CAAC;QAAC,GAAG,EAAE,GAAG,CAAA;KAAE,KAAK,OAAO,CAAC,UAAU,CAAC,CAAA;IACpF,QAAQ,EAAE,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;IAGpC,WAAW,CAAC,EAAE;QACZ,QAAQ,CAAC,EAAE,MAAM,CAAA;QACjB,gBAAgB,CAAC,EAAE,MAAM,CAAA;KAC1B,CAAA;IACD,WAAW,CAAC,EAAE;QACZ,KAAK,CAAC,EAAE,MAAM,CAAA;QACd,OAAO,CAAC,EAAE,MAAM,CAAA;QAChB,SAAS,CAAC,EAAE,MAAM,CAAA;QAClB,UAAU,CAAC,EAAE,MAAM,CAAA;KACpB,CAAA;IACD,UAAU,CAAC,EAAE,GAAG,CAAA;CACjB,CAAA;AAgCD,wBAAgB,sBAAsB,CAAC,EACrC,QAAQ,EACR,WAAW,EACX,MAAM,GACP,EAAE,iBAAiB,CAAC;IAAE,WAAW,EAAE,WAAW,CAAC;IAAC,MAAM,EAAE,oBAAoB,CAAA;CAAE,CAAC,qBA2M/E"}
1
+ {"version":3,"file":"session_context.d.ts","sourceRoot":"","sources":["../../src/contexts/session_context.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAe,MAAM,uBAAuB,CAAA;AAChE,OAAO,KAAK,EAAE,EAEZ,iBAAiB,EAKlB,MAAM,OAAO,CAAA;AAMd,OAAO,EAAyB,cAAc,EAAE,UAAU,EAAwB,MAAM,UAAU,CAAA;AAElG,OAAO,EAAE,GAAG,EAAgB,OAAO,EAA8B,MAAM,UAAU,CAAA;AACjF,OAAO,EAAE,cAAc,EAAE,MAAM,0CAA0C,CAAA;AAIzE,KAAK,QAAQ,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;AAEtC,MAAM,MAAM,mBAAmB,GAAG;IAChC,GAAG,EAAE,GAAG,CAAA;IACR,MAAM,EAAE,CAAC,IAAI,EAAE,GAAG,KAAK,IAAI,CAAA;IAC3B,OAAO,EAAE,OAAO,CAAA;IAChB,QAAQ,EAAE,QAAQ,CAAA;IAClB,KAAK,EAAE,UAAU,GAAG,SAAS,CAAA;IAC7B,0BAA0B,EAAE,CAAC,SAAS,EAAE,cAAc,KAAK,IAAI,CAAA;IAC/D,MAAM,EAAE,MAAM,IAAI,CAAA;IAClB,QAAQ,EAAE,CAAC,MAAM,EAAE,UAAU,KAAK,IAAI,CAAA;IACtC,aAAa,EAAE,CAAC,UAAU,EAAE,MAAM,KAAK,IAAI,CAAA;IAC3C,aAAa,EAAE,CAAC,QAAQ,EAAE,OAAO,KAAK,OAAO,CAAC,IAAI,CAAC,CAAA;CACpD,CAAA;AAED,eAAO,MAAM,cAAc,oCAWzB,CAAA;AAEF,MAAM,MAAM,oBAAoB,GAAG;IAEjC,aAAa,EAAE,cAAc,CAAA;IAG7B,cAAc,EAAE,CAAC,MAAM,EAAE;QAAE,aAAa,EAAE,MAAM,CAAC;QAAC,GAAG,EAAE,GAAG,CAAA;KAAE,KAAK,OAAO,CAAC,UAAU,CAAC,CAAA;IACpF,QAAQ,EAAE,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;IAGpC,WAAW,CAAC,EAAE;QACZ,QAAQ,CAAC,EAAE,MAAM,CAAA;QACjB,gBAAgB,CAAC,EAAE,MAAM,CAAA;KAC1B,CAAA;IACD,WAAW,CAAC,EAAE;QACZ,KAAK,CAAC,EAAE,MAAM,CAAA;QACd,OAAO,CAAC,EAAE,MAAM,CAAA;QAChB,SAAS,CAAC,EAAE,MAAM,CAAA;QAClB,UAAU,CAAC,EAAE,MAAM,CAAA;KACpB,CAAA;IACD,UAAU,CAAC,EAAE,GAAG,CAAA;CACjB,CAAA;AAgCD,wBAAgB,sBAAsB,CAAC,EACrC,QAAQ,EACR,WAAW,EACX,MAAM,GACP,EAAE,iBAAiB,CAAC;IAAE,WAAW,EAAE,WAAW,CAAC;IAAC,MAAM,EAAE,oBAAoB,CAAA;CAAE,CAAC,2CA2M/E"}
@@ -1,5 +1,6 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
1
2
  import { useMutation } from '@tanstack/react-query';
2
- import React, { createContext, useCallback, useEffect, useMemo, useState, } from 'react';
3
+ import { createContext, useCallback, useEffect, useMemo, useState, } from 'react';
3
4
  import { Alert } from 'react-native';
4
5
  import { currentPersonQueryKey } from '../hooks/use_current_person';
5
6
  import { organizationRequestArgs } from '../hooks/use_organization';
@@ -187,6 +188,6 @@ export function SessionContextProvider({ children, queryClient, config, }) {
187
188
  await setManagerString(manager.toString());
188
189
  });
189
190
  }, [managerString, setManagerString]);
190
- return <SessionContext.Provider value={sessionContextValue}>{children}</SessionContext.Provider>;
191
+ return _jsx(SessionContext.Provider, { value: sessionContextValue, children: children });
191
192
  }
192
193
  //# sourceMappingURL=session_context.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"session_context.js","sourceRoot":"","sources":["../../src/contexts/session_context.tsx"],"names":[],"mappings":"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","sourcesContent":["import { QueryClient, useMutation } from '@tanstack/react-query'\nimport React, {\n createContext,\n PropsWithChildren,\n useCallback,\n useEffect,\n useMemo,\n useState,\n} from 'react'\nimport { Alert } from 'react-native'\nimport { currentPersonQueryKey } from '../hooks/use_current_person'\nimport { organizationRequestArgs } from '../hooks/use_organization'\nimport { useStorage } from '../hooks/use_storage'\nimport { getRequestQueryKey } from '../hooks/use_suspense_api'\nimport { CurrentPersonResource, FailedResponse, OAuthToken, OrganizationResource } from '../types'\nimport { ApiResource } from '../types/api_primitives'\nimport { ENV, PartialToken, Session, UNAUTHENTICATED_SESSION_ID } from '../utils'\nimport { StorageAdapter } from '../utils/native_adapters/storage_adapter'\nimport { SessionManager } from '../utils/session_manager'\nimport { chatQueryClient } from './api_provider'\n\ntype Sessions = Record<string, string> // Key is session ID\n\nexport type SessionContextValue = {\n env: ENV\n setEnv: (_env: ENV) => void\n session: Session\n sessions: Sessions\n token: OAuthToken | undefined\n handleUnauthorizedResponse: (_response: FailedResponse) => void\n logout: () => void\n setToken: (_token: OAuthToken) => void\n switchSession: (_sessionId: string) => void\n createSession: (_session: Session) => Promise<void>\n}\n\nexport const SessionContext = createContext<SessionContextValue>({\n env: 'production',\n setEnv: () => null,\n session: new Session(),\n sessions: {},\n token: undefined,\n handleUnauthorizedResponse: () => null,\n logout: () => null,\n setToken: () => null,\n switchSession: () => null,\n createSession: () => Promise.resolve(),\n})\n\nexport type SessionContextConfig = {\n // Storage adapters\n secureStorage: StorageAdapter // For sensitive data (tokens/sessions)\n\n // Functional callbacks\n refreshTokenFn: (params: { refresh_token: string; env: ENV }) => Promise<OAuthToken>\n onLogout: () => void | Promise<void>\n\n // Optional configuration\n storageKeys?: {\n sessions?: string\n currentSessionId?: string\n }\n alertConfig?: {\n title?: string\n message?: string\n retryText?: string\n logoutText?: string\n }\n defaultEnv?: ENV\n}\n\nconst decorateSession = async <T extends PartialToken>(session: Session<T>) => {\n if (!session.isAuthenticated) return session\n\n const { data: personData } = await chatQueryClient.fetchQuery<ApiResource<CurrentPersonResource>>(\n {\n queryKey: currentPersonQueryKey,\n }\n )\n const { data: organizationData } = await chatQueryClient.fetchQuery<\n ApiResource<OrganizationResource>\n >({\n queryKey: getRequestQueryKey(organizationRequestArgs),\n })\n\n if (personData) {\n const { name, avatar, id } = personData || {}\n session.setPerson({ id, type: 'Person', name, avatar })\n }\n\n if (organizationData) {\n session.setOrganization({\n id: organizationData.id,\n type: 'Organization',\n name: organizationData.name,\n })\n }\n\n return session\n}\n\nexport function SessionContextProvider({\n children,\n queryClient,\n config,\n}: PropsWithChildren<{ queryClient: QueryClient; config: SessionContextConfig }>) {\n const { secureStorage, refreshTokenFn, onLogout, storageKeys = {}, alertConfig = {} } = config\n\n const sessionsKey = storageKeys.sessions || 'sessions-storage'\n const [managerString, setManagerString] = useStorage<string>(secureStorage, sessionsKey, '')\n const sessionManager = useMemo(() => SessionManager.hydrate(managerString), [managerString])\n\n const sessions = sessionManager.sessions\n const currentSession = sessionManager.currentSession\n\n const [alertShown, setAlertShown] = useState(false)\n\n const { token } = currentSession\n\n const {\n mutate: refreshToken,\n isPending: isRefreshingToken,\n isError: isRefreshError,\n } = useMutation({\n mutationKey: ['refresh-token', token?.refresh_token],\n mutationFn: () => {\n if (!token?.refresh_token) {\n return Promise.reject(new Error('Refresh token is required'))\n }\n return refreshTokenFn({ refresh_token: token.refresh_token, env: currentSession.env }).then(\n handleTokenUpdate\n )\n },\n onError: (t: Partial<FailedResponse>) => {\n handleRefreshFailed(t)\n },\n })\n\n const handleClearQueryClient = useCallback(() => {\n chatQueryClient.clear()\n queryClient.clear()\n }, [queryClient])\n\n const handleSetEnv = useCallback(\n async (_env: ENV) => {\n const updatedManager = SessionManager.hydrate(managerString)\n const session = updatedManager.currentSession\n if (_env === session.env) return\n\n const productionEnvironments = ['production', 'staging']\n const switchingToDevelopment =\n _env === 'development' && productionEnvironments.includes(session.env)\n const switchingToProduction = _env === 'production' && session.env === 'development'\n\n if (switchingToDevelopment || switchingToProduction) {\n const newSession = new Session({ env: _env })\n updatedManager.upsertSession(newSession)\n }\n\n updatedManager.setEnv(_env)\n await setManagerString(updatedManager.toString())\n },\n [managerString, setManagerString]\n )\n\n const handleCreateSession = useCallback(\n async (session: Session) => {\n const updatedManager = SessionManager.hydrate(managerString)\n updatedManager.sessions[session.id] = session.toString()\n updatedManager.currentSessionId = session.id\n await setManagerString(updatedManager.toString())\n },\n [managerString, setManagerString]\n )\n\n const handleSwitchSession = useCallback(\n async (sessionId: string) => {\n const updatedManager = SessionManager.hydrate(managerString)\n try {\n updatedManager.switchSession(sessionId)\n } catch (_error) {\n Alert.alert('Error', 'Session is not authenticated')\n }\n await setManagerString(updatedManager.toString())\n },\n [managerString, setManagerString]\n )\n\n const handleLogout = useCallback(async () => {\n handleClearQueryClient()\n const manager = SessionManager.hydrate(managerString)\n\n // Clear the current session ID\n if (manager.currentSessionId) {\n manager.removeSession(manager.currentSessionId)\n await setManagerString(manager.toString())\n }\n\n return onLogout()\n }, [managerString, setManagerString, handleClearQueryClient, onLogout])\n\n const handleTokenUpdate = useCallback(\n async (t: OAuthToken) => {\n const updatedManager = SessionManager.hydrate(managerString)\n\n updatedManager.updateCurrentToken(t)\n await setManagerString(updatedManager.toString())\n },\n [managerString, setManagerString]\n )\n\n const handleRefreshFailed = useCallback(\n (t: Partial<FailedResponse>) => {\n if (t.status !== 401) return\n // If we didn't fail because of an unauthorized response ( 401 ),\n // it could be because we were unable to store the token.\n // Do not log out.\n\n const { errors = [] } = t\n // The code for a forced logout is \"capuchin\"\n const isForcedLogout = errors.some((e: { detail?: string }) =>\n /capuchin/i.test(e.detail || '')\n )\n\n if (isForcedLogout) {\n handleLogout()\n }\n },\n [handleLogout]\n )\n\n const handleUnauthorizedResponse = useCallback(\n async (response: FailedResponse) => {\n const { errors = [] } = response\n\n const isUnauthorized = errors.some((e: { detail?: string }) =>\n /TRASH_PANDA/i.test(e.detail || '')\n )\n\n if (isUnauthorized) return\n\n const isForcedLogout = errors.some((e: { detail?: string }) =>\n /capuchin/i.test(e.detail || '')\n )\n const isExpiredToken = errors.some((e: { detail?: string }) => /baboon/i.test(e.detail || ''))\n\n if (!isRefreshingToken || isExpiredToken || isForcedLogout) {\n refreshToken()\n }\n },\n [refreshToken, isRefreshingToken]\n )\n\n const sessionContextValue: SessionContextValue = {\n env: currentSession.env,\n token: currentSession.token as OAuthToken | undefined,\n session: currentSession,\n sessions,\n logout: handleLogout,\n setToken: handleTokenUpdate,\n handleUnauthorizedResponse,\n setEnv: handleSetEnv,\n switchSession: handleSwitchSession,\n createSession: handleCreateSession,\n }\n\n const alertTitle = alertConfig.title || 'Oops'\n const alertMessage = alertConfig.message || 'Something went wrong with your login!'\n const retryText = alertConfig.retryText || 'Keep trying'\n const logoutText = alertConfig.logoutText || 'Logout'\n\n useEffect(() => {\n if (isRefreshError && !alertShown && token?.refresh_token) {\n setAlertShown(true)\n Alert.alert(alertTitle, alertMessage, [\n {\n text: retryText,\n onPress: () => {\n refreshToken()\n setAlertShown(false)\n },\n },\n { text: logoutText, onPress: () => handleLogout() },\n ])\n }\n }, [\n isRefreshError,\n handleLogout,\n alertShown,\n refreshToken,\n token?.refresh_token,\n alertTitle,\n alertMessage,\n retryText,\n logoutText,\n ])\n\n useEffect(() => {\n const manager = SessionManager.hydrate(managerString)\n if (manager.currentSessionId === UNAUTHENTICATED_SESSION_ID) return\n\n decorateSession(manager.currentSession).then(async decoratedSession => {\n manager.upsertSession(decoratedSession)\n await setManagerString(manager.toString())\n })\n }, [managerString, setManagerString])\n\n return <SessionContext.Provider value={sessionContextValue}>{children}</SessionContext.Provider>\n}\n"]}
1
+ {"version":3,"file":"session_context.js","sourceRoot":"","sources":["../../src/contexts/session_context.tsx"],"names":[],"mappings":"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","sourcesContent":["import { QueryClient, useMutation } from '@tanstack/react-query'\nimport React, {\n createContext,\n PropsWithChildren,\n useCallback,\n useEffect,\n useMemo,\n useState,\n} from 'react'\nimport { Alert } from 'react-native'\nimport { currentPersonQueryKey } from '../hooks/use_current_person'\nimport { organizationRequestArgs } from '../hooks/use_organization'\nimport { useStorage } from '../hooks/use_storage'\nimport { getRequestQueryKey } from '../hooks/use_suspense_api'\nimport { CurrentPersonResource, FailedResponse, OAuthToken, OrganizationResource } from '../types'\nimport { ApiResource } from '../types/api_primitives'\nimport { ENV, PartialToken, Session, UNAUTHENTICATED_SESSION_ID } from '../utils'\nimport { StorageAdapter } from '../utils/native_adapters/storage_adapter'\nimport { SessionManager } from '../utils/session_manager'\nimport { chatQueryClient } from './api_provider'\n\ntype Sessions = Record<string, string> // Key is session ID\n\nexport type SessionContextValue = {\n env: ENV\n setEnv: (_env: ENV) => void\n session: Session\n sessions: Sessions\n token: OAuthToken | undefined\n handleUnauthorizedResponse: (_response: FailedResponse) => void\n logout: () => void\n setToken: (_token: OAuthToken) => void\n switchSession: (_sessionId: string) => void\n createSession: (_session: Session) => Promise<void>\n}\n\nexport const SessionContext = createContext<SessionContextValue>({\n env: 'production',\n setEnv: () => null,\n session: new Session(),\n sessions: {},\n token: undefined,\n handleUnauthorizedResponse: () => null,\n logout: () => null,\n setToken: () => null,\n switchSession: () => null,\n createSession: () => Promise.resolve(),\n})\n\nexport type SessionContextConfig = {\n // Storage adapters\n secureStorage: StorageAdapter // For sensitive data (tokens/sessions)\n\n // Functional callbacks\n refreshTokenFn: (params: { refresh_token: string; env: ENV }) => Promise<OAuthToken>\n onLogout: () => void | Promise<void>\n\n // Optional configuration\n storageKeys?: {\n sessions?: string\n currentSessionId?: string\n }\n alertConfig?: {\n title?: string\n message?: string\n retryText?: string\n logoutText?: string\n }\n defaultEnv?: ENV\n}\n\nconst decorateSession = async <T extends PartialToken>(session: Session<T>) => {\n if (!session.isAuthenticated) return session\n\n const { data: personData } = await chatQueryClient.fetchQuery<ApiResource<CurrentPersonResource>>(\n {\n queryKey: currentPersonQueryKey,\n }\n )\n const { data: organizationData } = await chatQueryClient.fetchQuery<\n ApiResource<OrganizationResource>\n >({\n queryKey: getRequestQueryKey(organizationRequestArgs),\n })\n\n if (personData) {\n const { name, avatar, id } = personData || {}\n session.setPerson({ id, type: 'Person', name, avatar })\n }\n\n if (organizationData) {\n session.setOrganization({\n id: organizationData.id,\n type: 'Organization',\n name: organizationData.name,\n })\n }\n\n return session\n}\n\nexport function SessionContextProvider({\n children,\n queryClient,\n config,\n}: PropsWithChildren<{ queryClient: QueryClient; config: SessionContextConfig }>) {\n const { secureStorage, refreshTokenFn, onLogout, storageKeys = {}, alertConfig = {} } = config\n\n const sessionsKey = storageKeys.sessions || 'sessions-storage'\n const [managerString, setManagerString] = useStorage<string>(secureStorage, sessionsKey, '')\n const sessionManager = useMemo(() => SessionManager.hydrate(managerString), [managerString])\n\n const sessions = sessionManager.sessions\n const currentSession = sessionManager.currentSession\n\n const [alertShown, setAlertShown] = useState(false)\n\n const { token } = currentSession\n\n const {\n mutate: refreshToken,\n isPending: isRefreshingToken,\n isError: isRefreshError,\n } = useMutation({\n mutationKey: ['refresh-token', token?.refresh_token],\n mutationFn: () => {\n if (!token?.refresh_token) {\n return Promise.reject(new Error('Refresh token is required'))\n }\n return refreshTokenFn({ refresh_token: token.refresh_token, env: currentSession.env }).then(\n handleTokenUpdate\n )\n },\n onError: (t: Partial<FailedResponse>) => {\n handleRefreshFailed(t)\n },\n })\n\n const handleClearQueryClient = useCallback(() => {\n chatQueryClient.clear()\n queryClient.clear()\n }, [queryClient])\n\n const handleSetEnv = useCallback(\n async (_env: ENV) => {\n const updatedManager = SessionManager.hydrate(managerString)\n const session = updatedManager.currentSession\n if (_env === session.env) return\n\n const productionEnvironments = ['production', 'staging']\n const switchingToDevelopment =\n _env === 'development' && productionEnvironments.includes(session.env)\n const switchingToProduction = _env === 'production' && session.env === 'development'\n\n if (switchingToDevelopment || switchingToProduction) {\n const newSession = new Session({ env: _env })\n updatedManager.upsertSession(newSession)\n }\n\n updatedManager.setEnv(_env)\n await setManagerString(updatedManager.toString())\n },\n [managerString, setManagerString]\n )\n\n const handleCreateSession = useCallback(\n async (session: Session) => {\n const updatedManager = SessionManager.hydrate(managerString)\n updatedManager.sessions[session.id] = session.toString()\n updatedManager.currentSessionId = session.id\n await setManagerString(updatedManager.toString())\n },\n [managerString, setManagerString]\n )\n\n const handleSwitchSession = useCallback(\n async (sessionId: string) => {\n const updatedManager = SessionManager.hydrate(managerString)\n try {\n updatedManager.switchSession(sessionId)\n } catch (_error) {\n Alert.alert('Error', 'Session is not authenticated')\n }\n await setManagerString(updatedManager.toString())\n },\n [managerString, setManagerString]\n )\n\n const handleLogout = useCallback(async () => {\n handleClearQueryClient()\n const manager = SessionManager.hydrate(managerString)\n\n // Clear the current session ID\n if (manager.currentSessionId) {\n manager.removeSession(manager.currentSessionId)\n await setManagerString(manager.toString())\n }\n\n return onLogout()\n }, [managerString, setManagerString, handleClearQueryClient, onLogout])\n\n const handleTokenUpdate = useCallback(\n async (t: OAuthToken) => {\n const updatedManager = SessionManager.hydrate(managerString)\n\n updatedManager.updateCurrentToken(t)\n await setManagerString(updatedManager.toString())\n },\n [managerString, setManagerString]\n )\n\n const handleRefreshFailed = useCallback(\n (t: Partial<FailedResponse>) => {\n if (t.status !== 401) return\n // If we didn't fail because of an unauthorized response ( 401 ),\n // it could be because we were unable to store the token.\n // Do not log out.\n\n const { errors = [] } = t\n // The code for a forced logout is \"capuchin\"\n const isForcedLogout = errors.some((e: { detail?: string }) =>\n /capuchin/i.test(e.detail || '')\n )\n\n if (isForcedLogout) {\n handleLogout()\n }\n },\n [handleLogout]\n )\n\n const handleUnauthorizedResponse = useCallback(\n async (response: FailedResponse) => {\n const { errors = [] } = response\n\n const isUnauthorized = errors.some((e: { detail?: string }) =>\n /TRASH_PANDA/i.test(e.detail || '')\n )\n\n if (isUnauthorized) return\n\n const isForcedLogout = errors.some((e: { detail?: string }) =>\n /capuchin/i.test(e.detail || '')\n )\n const isExpiredToken = errors.some((e: { detail?: string }) => /baboon/i.test(e.detail || ''))\n\n if (!isRefreshingToken || isExpiredToken || isForcedLogout) {\n refreshToken()\n }\n },\n [refreshToken, isRefreshingToken]\n )\n\n const sessionContextValue: SessionContextValue = {\n env: currentSession.env,\n token: currentSession.token as OAuthToken | undefined,\n session: currentSession,\n sessions,\n logout: handleLogout,\n setToken: handleTokenUpdate,\n handleUnauthorizedResponse,\n setEnv: handleSetEnv,\n switchSession: handleSwitchSession,\n createSession: handleCreateSession,\n }\n\n const alertTitle = alertConfig.title || 'Oops'\n const alertMessage = alertConfig.message || 'Something went wrong with your login!'\n const retryText = alertConfig.retryText || 'Keep trying'\n const logoutText = alertConfig.logoutText || 'Logout'\n\n useEffect(() => {\n if (isRefreshError && !alertShown && token?.refresh_token) {\n setAlertShown(true)\n Alert.alert(alertTitle, alertMessage, [\n {\n text: retryText,\n onPress: () => {\n refreshToken()\n setAlertShown(false)\n },\n },\n { text: logoutText, onPress: () => handleLogout() },\n ])\n }\n }, [\n isRefreshError,\n handleLogout,\n alertShown,\n refreshToken,\n token?.refresh_token,\n alertTitle,\n alertMessage,\n retryText,\n logoutText,\n ])\n\n useEffect(() => {\n const manager = SessionManager.hydrate(managerString)\n if (manager.currentSessionId === UNAUTHENTICATED_SESSION_ID) return\n\n decorateSession(manager.currentSession).then(async decoratedSession => {\n manager.upsertSession(decoratedSession)\n await setManagerString(manager.toString())\n })\n }, [managerString, setManagerString])\n\n return <SessionContext.Provider value={sessionContextValue}>{children}</SessionContext.Provider>\n}\n"]}
@@ -1,7 +1,7 @@
1
1
  export declare function useAnimatedMessageBackgroundColor(): {
2
- animatedBackgroundColor: {
2
+ animatedBackgroundColor: import("react-native-reanimated/lib/typescript/hook/commonTypes").AnimatedStyleHandle<{
3
3
  backgroundColor: string;
4
- };
4
+ }>;
5
5
  handleMessagePressIn: () => void;
6
6
  handleMessagePressOut: () => void;
7
7
  };
@@ -121,7 +121,7 @@ export declare const useConversationMute: ({ conversation_id }: {
121
121
  };
122
122
  export declare const useConversationUpdate: ({ conversation_id }: {
123
123
  conversation_id: number;
124
- }) => import("@tanstack/react-query").UseMutationResult<ApiResource<ConversationResource>, Error, Partial<ConversationResource>, void>;
124
+ }) => import("@tanstack/react-query").UseMutationResult<ApiResource<ConversationResource>, Error, Partial<ConversationResource>, Promise<undefined> | undefined>;
125
125
  export declare const useConversationDelete: ({ conversation_id }: {
126
126
  conversation_id: number;
127
127
  }) => import("@tanstack/react-query").UseMutationResult<any, Error, void, unknown>;
@@ -1 +1 @@
1
- {"version":3,"file":"use_conversation.d.ts","sourceRoot":"","sources":["../../src/hooks/use_conversation.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,WAAW,EAAE,oBAAoB,EAAE,MAAM,UAAU,CAAA;AAO5D,eAAO,MAAM,0BAA0B,GAAI,qBAAqB;IAAE,eAAe,EAAE,MAAM,CAAA;CAAE;;;;;;;;;;;;;CA2DzF,CAAA;AAEF,eAAO,MAAM,eAAe,GAAI,qBAAqB;IAAE,eAAe,EAAE,MAAM,CAAA;CAAE;;;;;;;;;;;;;;;;;;;;;;;;;;CAI/E,CAAA;AAED,eAAO,MAAM,mBAAmB,GAAI,qBAAqB;IAAE,eAAe,EAAE,MAAM,CAAA;CAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAiDnF,CAAA;AAED,eAAO,MAAM,qBAAqB,GAAI,qBAAqB;IAAE,eAAe,EAAE,MAAM,CAAA;CAAE,qIA+BrF,CAAA;AAED,eAAO,MAAM,qBAAqB,GAAI,qBAAqB;IAAE,eAAe,EAAE,MAAM,CAAA;CAAE,iFAiBrF,CAAA;AAED,eAAO,MAAM,6BAA6B,GAAI,qBAAqB;IAAE,eAAe,EAAE,MAAM,CAAA;CAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA6C7F,CAAA"}
1
+ {"version":3,"file":"use_conversation.d.ts","sourceRoot":"","sources":["../../src/hooks/use_conversation.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,WAAW,EAAE,oBAAoB,EAAE,MAAM,UAAU,CAAA;AAO5D,eAAO,MAAM,0BAA0B,GAAI,qBAAqB;IAAE,eAAe,EAAE,MAAM,CAAA;CAAE;;;;;;;;;;;;;CAyDzF,CAAA;AAEF,eAAO,MAAM,eAAe,GAAI,qBAAqB;IAAE,eAAe,EAAE,MAAM,CAAA;CAAE;;;;;;;;;;;;;;;;;;;;;;;;;;CAI/E,CAAA;AAED,eAAO,MAAM,mBAAmB,GAAI,qBAAqB;IAAE,eAAe,EAAE,MAAM,CAAA;CAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAiDnF,CAAA;AAED,eAAO,MAAM,qBAAqB,GAAI,qBAAqB;IAAE,eAAe,EAAE,MAAM,CAAA;CAAE,+JA+BrF,CAAA;AAED,eAAO,MAAM,qBAAqB,GAAI,qBAAqB;IAAE,eAAe,EAAE,MAAM,CAAA;CAAE,iFAiBrF,CAAA;AAED,eAAO,MAAM,6BAA6B,GAAI,qBAAqB;IAAE,eAAe,EAAE,MAAM,CAAA;CAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA6C7F,CAAA"}
@@ -14,7 +14,6 @@ export const getConversationRequestArgs = ({ conversation_id }) => ({
14
14
  'created_at',
15
15
  'badges',
16
16
  'conversation_membership',
17
- 'conversation_preview',
18
17
  'gender_option',
19
18
  'groups',
20
19
  'last_message_author_id',
@@ -35,7 +34,6 @@ export const getConversationRequestArgs = ({ conversation_id }) => ({
35
34
  'replies_disabled',
36
35
  'title',
37
36
  'unread_count',
38
- 'unread_reaction',
39
37
  'updated_at',
40
38
  ],
41
39
  AnalyticsMetadata: ['metadata'],
@@ -1 +1 @@
1
- {"version":3,"file":"use_conversation.js","sourceRoot":"","sources":["../../src/hooks/use_conversation.ts"],"names":[],"mappings":"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","sourcesContent":["import { useMutation, useQueryClient } from '@tanstack/react-query'\nimport { useState } from 'react'\nimport { ApiResource, ConversationResource } from '../types'\nimport { transformGetToPost } from '../utils/client/request_helpers'\nimport { Haptic } from '../utils/native_adapters'\nimport { getConversationsRequestArgs } from '../utils/request/conversation'\nimport { useApiClient } from './use_api_client'\nimport { getRequestQueryKey, useSuspenseGet } from './use_suspense_api'\n\nexport const getConversationRequestArgs = ({ conversation_id }: { conversation_id: number }) => ({\n url: `/me/conversations/${conversation_id}`,\n data: {\n fields: {\n Conversation: [\n 'analytics_metadata',\n 'created_at',\n 'badges',\n 'conversation_membership',\n 'conversation_preview',\n 'gender_option',\n 'groups',\n 'last_message_author_id',\n 'last_message_author_name',\n 'last_message_created_at',\n 'last_message_text_preview',\n 'latest_read_message_sort_key',\n 'preview_avatar_urls',\n 'custom_avatar_type',\n 'custom_avatar_key',\n 'custom_avatar_color',\n 'custom_avatar_image_url',\n 'direct_message',\n 'disabled',\n 'disabled_reason',\n 'member_ability',\n 'muted',\n 'replies_disabled',\n 'title',\n 'unread_count',\n 'unread_reaction',\n 'updated_at',\n ],\n AnalyticsMetadata: ['metadata'],\n MemberAbility: [\n 'can_update',\n 'can_delete',\n 'leader',\n 'can_reply',\n 'can_delete_non_authored_messages',\n ],\n ConversationMembership: [\n 'last_read_message_sort_key',\n 'notification_level',\n 'notification_level_description',\n 'notification_level_options',\n 'muted',\n ],\n ConversationBadge: ['app_name', 'pco_resource_type', 'text'],\n Group: ['type', 'id', 'links', 'name', 'source_app_name', 'source_type'],\n },\n include: [\n 'badges',\n 'conversation_membership',\n 'member_ability',\n 'groups',\n 'analytics_metadata',\n ],\n },\n})\n\nexport const useConversation = ({ conversation_id }: { conversation_id: number }) => {\n const args = getConversationRequestArgs({ conversation_id })\n\n return useSuspenseGet<ConversationResource>(args)\n}\n\nexport const useConversationMute = ({ conversation_id }: { conversation_id: number }) => {\n const apiClient = useApiClient()\n const queryClient = useQueryClient()\n const requestArgs = getConversationRequestArgs({ conversation_id })\n const queryKey = getRequestQueryKey(requestArgs)\n const { data: conversation } = useConversation({ conversation_id })\n const [value, setValue] = useState<boolean>(conversation.muted)\n\n const { mutate: setMuted, ...mutation } = useMutation({\n onMutate: async (muted: boolean) => {\n return queryClient.setQueryData<ApiResource<ConversationResource>>(queryKey, prev => {\n if (!prev?.data) return prev\n setValue(muted)\n prev.data.muted = muted\n if (prev.data.conversationMembership) {\n prev.data.conversationMembership.muted = muted\n }\n\n return prev\n })\n },\n mutationKey: ['muteConversation'],\n mutationFn: async (muted: boolean) => {\n const action = muted ? 'mute' : 'unmute'\n\n return apiClient.chat.post<ApiResource<ConversationResource>>({\n url: `/me/conversations/${conversation_id}/${action}`,\n data: { data: { type: '', attributes: {} }, fields: { Conversation: 'muted' } },\n })\n },\n onSuccess: (response: ApiResource<ConversationResource>) => {\n queryClient.invalidateQueries({ queryKey: ['/me/conversations'] })\n queryClient.setQueryData<ApiResource<ConversationResource>>(queryKey, prev => {\n if (!prev?.data) return prev\n\n // Posting to the mute action endpoint can't return all the fields\n // so we need to set only the fields we require\n prev.data.muted = response.data.muted\n if (prev.data.conversationMembership) {\n prev.data.conversationMembership.muted = response.data.muted\n }\n setValue(response.data.muted)\n\n return prev\n })\n },\n })\n\n return { muted: value, setMuted, ...mutation }\n}\n\nexport const useConversationUpdate = ({ conversation_id }: { conversation_id: number }) => {\n const apiClient = useApiClient()\n const queryClient = useQueryClient()\n const requestArgs = getConversationRequestArgs({ conversation_id })\n const queryKey = getRequestQueryKey(requestArgs)\n\n return useMutation({\n onMutate: async (update: Partial<ConversationResource>) => {\n queryClient.setQueryData<ApiResource<ConversationResource>>(queryKey, prev => {\n if (prev?.data) {\n prev.data = {\n ...prev.data,\n ...update,\n }\n }\n\n return prev\n })\n },\n mutationKey: ['mutateConversation'],\n mutationFn: async (update: Partial<ConversationResource>) => {\n const postArgs = transformGetToPost(requestArgs).data\n return apiClient.chat.patch<ApiResource<ConversationResource>>({\n url: `/me/conversations/${conversation_id}/`,\n data: { data: { type: '', attributes: update }, ...postArgs },\n })\n },\n onSuccess: response => {\n queryClient.setQueryData<ApiResource<ConversationResource>>(queryKey, () => response)\n },\n })\n}\n\nexport const useConversationDelete = ({ conversation_id }: { conversation_id: number }) => {\n const apiClient = useApiClient()\n const queryClient = useQueryClient()\n const { url } = getConversationsRequestArgs()\n\n return useMutation({\n mutationKey: ['deleteConversation'],\n mutationFn: async () => {\n return apiClient.chat.delete({\n url: `/me/conversations/${conversation_id}`,\n })\n },\n onSuccess: () => {\n queryClient.invalidateQueries({ queryKey: [url] })\n Haptic.notificationSuccess()\n },\n })\n}\n\nexport const useConversationDisableReplies = ({ conversation_id }: { conversation_id: number }) => {\n const apiClient = useApiClient()\n const queryClient = useQueryClient()\n const requestArgs = getConversationRequestArgs({ conversation_id })\n const queryKey = getRequestQueryKey(requestArgs)\n const { data: conversation } = useConversation({ conversation_id })\n const [value, setValue] = useState<boolean>(conversation.repliesDisabled)\n\n const { mutate: setRepliesDisabled, ...mutation } = useMutation({\n onMutate: async (repliesDisabled: boolean) => {\n return queryClient.setQueryData<ApiResource<ConversationResource>>(queryKey, prev => {\n if (!prev?.data) return prev\n setValue(repliesDisabled)\n prev.data.repliesDisabled = repliesDisabled\n\n return prev\n })\n },\n mutationKey: ['disableRepliesConversation'],\n mutationFn: async (repliesDisabled: boolean) => {\n return apiClient.chat.patch<ApiResource<ConversationResource>>({\n url: `/me/conversations/${conversation_id}`,\n data: {\n data: {\n type: 'Conversation',\n attributes: {\n replies_disabled: repliesDisabled,\n },\n },\n },\n })\n },\n onSuccess: (response: ApiResource<ConversationResource>) => {\n queryClient.setQueryData<ApiResource<ConversationResource>>(queryKey, prev => {\n if (!prev?.data) return prev\n\n prev.data.repliesDisabled = response.data.repliesDisabled\n setValue(response.data.repliesDisabled)\n\n return prev\n })\n },\n })\n\n return { repliesDisabled: value, setRepliesDisabled, ...mutation }\n}\n"]}
1
+ {"version":3,"file":"use_conversation.js","sourceRoot":"","sources":["../../src/hooks/use_conversation.ts"],"names":[],"mappings":"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","sourcesContent":["import { useMutation, useQueryClient } from '@tanstack/react-query'\nimport { useState } from 'react'\nimport { ApiResource, ConversationResource } from '../types'\nimport { transformGetToPost } from '../utils/client/request_helpers'\nimport { Haptic } from '../utils/native_adapters'\nimport { getConversationsRequestArgs } from '../utils/request/conversation'\nimport { useApiClient } from './use_api_client'\nimport { getRequestQueryKey, useSuspenseGet } from './use_suspense_api'\n\nexport const getConversationRequestArgs = ({ conversation_id }: { conversation_id: number }) => ({\n url: `/me/conversations/${conversation_id}`,\n data: {\n fields: {\n Conversation: [\n 'analytics_metadata',\n 'created_at',\n 'badges',\n 'conversation_membership',\n 'gender_option',\n 'groups',\n 'last_message_author_id',\n 'last_message_author_name',\n 'last_message_created_at',\n 'last_message_text_preview',\n 'latest_read_message_sort_key',\n 'preview_avatar_urls',\n 'custom_avatar_type',\n 'custom_avatar_key',\n 'custom_avatar_color',\n 'custom_avatar_image_url',\n 'direct_message',\n 'disabled',\n 'disabled_reason',\n 'member_ability',\n 'muted',\n 'replies_disabled',\n 'title',\n 'unread_count',\n 'updated_at',\n ],\n AnalyticsMetadata: ['metadata'],\n MemberAbility: [\n 'can_update',\n 'can_delete',\n 'leader',\n 'can_reply',\n 'can_delete_non_authored_messages',\n ],\n ConversationMembership: [\n 'last_read_message_sort_key',\n 'notification_level',\n 'notification_level_description',\n 'notification_level_options',\n 'muted',\n ],\n ConversationBadge: ['app_name', 'pco_resource_type', 'text'],\n Group: ['type', 'id', 'links', 'name', 'source_app_name', 'source_type'],\n },\n include: [\n 'badges',\n 'conversation_membership',\n 'member_ability',\n 'groups',\n 'analytics_metadata',\n ],\n },\n})\n\nexport const useConversation = ({ conversation_id }: { conversation_id: number }) => {\n const args = getConversationRequestArgs({ conversation_id })\n\n return useSuspenseGet<ConversationResource>(args)\n}\n\nexport const useConversationMute = ({ conversation_id }: { conversation_id: number }) => {\n const apiClient = useApiClient()\n const queryClient = useQueryClient()\n const requestArgs = getConversationRequestArgs({ conversation_id })\n const queryKey = getRequestQueryKey(requestArgs)\n const { data: conversation } = useConversation({ conversation_id })\n const [value, setValue] = useState<boolean>(conversation.muted)\n\n const { mutate: setMuted, ...mutation } = useMutation({\n onMutate: async (muted: boolean) => {\n return queryClient.setQueryData<ApiResource<ConversationResource>>(queryKey, prev => {\n if (!prev?.data) return prev\n setValue(muted)\n prev.data.muted = muted\n if (prev.data.conversationMembership) {\n prev.data.conversationMembership.muted = muted\n }\n\n return prev\n })\n },\n mutationKey: ['muteConversation'],\n mutationFn: async (muted: boolean) => {\n const action = muted ? 'mute' : 'unmute'\n\n return apiClient.chat.post<ApiResource<ConversationResource>>({\n url: `/me/conversations/${conversation_id}/${action}`,\n data: { data: { type: '', attributes: {} }, fields: { Conversation: 'muted' } },\n })\n },\n onSuccess: (response: ApiResource<ConversationResource>) => {\n queryClient.invalidateQueries({ queryKey: ['/me/conversations'] })\n queryClient.setQueryData<ApiResource<ConversationResource>>(queryKey, prev => {\n if (!prev?.data) return prev\n\n // Posting to the mute action endpoint can't return all the fields\n // so we need to set only the fields we require\n prev.data.muted = response.data.muted\n if (prev.data.conversationMembership) {\n prev.data.conversationMembership.muted = response.data.muted\n }\n setValue(response.data.muted)\n\n return prev\n })\n },\n })\n\n return { muted: value, setMuted, ...mutation }\n}\n\nexport const useConversationUpdate = ({ conversation_id }: { conversation_id: number }) => {\n const apiClient = useApiClient()\n const queryClient = useQueryClient()\n const requestArgs = getConversationRequestArgs({ conversation_id })\n const queryKey = getRequestQueryKey(requestArgs)\n\n return useMutation({\n onMutate: async (update: Partial<ConversationResource>) => {\n queryClient.setQueryData<ApiResource<ConversationResource>>(queryKey, prev => {\n if (prev?.data) {\n prev.data = {\n ...prev.data,\n ...update,\n }\n }\n\n return prev\n })\n },\n mutationKey: ['mutateConversation'],\n mutationFn: async (update: Partial<ConversationResource>) => {\n const postArgs = transformGetToPost(requestArgs).data\n return apiClient.chat.patch<ApiResource<ConversationResource>>({\n url: `/me/conversations/${conversation_id}/`,\n data: { data: { type: '', attributes: update }, ...postArgs },\n })\n },\n onSuccess: response => {\n queryClient.setQueryData<ApiResource<ConversationResource>>(queryKey, () => response)\n },\n })\n}\n\nexport const useConversationDelete = ({ conversation_id }: { conversation_id: number }) => {\n const apiClient = useApiClient()\n const queryClient = useQueryClient()\n const { url } = getConversationsRequestArgs()\n\n return useMutation({\n mutationKey: ['deleteConversation'],\n mutationFn: async () => {\n return apiClient.chat.delete({\n url: `/me/conversations/${conversation_id}`,\n })\n },\n onSuccess: () => {\n queryClient.invalidateQueries({ queryKey: [url] })\n Haptic.notificationSuccess()\n },\n })\n}\n\nexport const useConversationDisableReplies = ({ conversation_id }: { conversation_id: number }) => {\n const apiClient = useApiClient()\n const queryClient = useQueryClient()\n const requestArgs = getConversationRequestArgs({ conversation_id })\n const queryKey = getRequestQueryKey(requestArgs)\n const { data: conversation } = useConversation({ conversation_id })\n const [value, setValue] = useState<boolean>(conversation.repliesDisabled)\n\n const { mutate: setRepliesDisabled, ...mutation } = useMutation({\n onMutate: async (repliesDisabled: boolean) => {\n return queryClient.setQueryData<ApiResource<ConversationResource>>(queryKey, prev => {\n if (!prev?.data) return prev\n setValue(repliesDisabled)\n prev.data.repliesDisabled = repliesDisabled\n\n return prev\n })\n },\n mutationKey: ['disableRepliesConversation'],\n mutationFn: async (repliesDisabled: boolean) => {\n return apiClient.chat.patch<ApiResource<ConversationResource>>({\n url: `/me/conversations/${conversation_id}`,\n data: {\n data: {\n type: 'Conversation',\n attributes: {\n replies_disabled: repliesDisabled,\n },\n },\n },\n })\n },\n onSuccess: (response: ApiResource<ConversationResource>) => {\n queryClient.setQueryData<ApiResource<ConversationResource>>(queryKey, prev => {\n if (!prev?.data) return prev\n\n prev.data.repliesDisabled = response.data.repliesDisabled\n setValue(response.data.repliesDisabled)\n\n return prev\n })\n },\n })\n\n return { repliesDisabled: value, setRepliesDisabled, ...mutation }\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"use_conversation_jolt_events.d.ts","sourceRoot":"","sources":["../../src/hooks/use_conversation_jolt_events.ts"],"names":[],"mappings":"AAWA,UAAU,KAAK;IACb,cAAc,EAAE,MAAM,CAAA;CACvB;AAED,wBAAgB,yBAAyB,CAAC,EAAE,cAAc,EAAE,EAAE,KAAK,QAqFlE"}
1
+ {"version":3,"file":"use_conversation_jolt_events.d.ts","sourceRoot":"","sources":["../../src/hooks/use_conversation_jolt_events.ts"],"names":[],"mappings":"AAWA,UAAU,KAAK;IACb,cAAc,EAAE,MAAM,CAAA;CACvB;AAED,wBAAgB,yBAAyB,CAAC,EAAE,cAAc,EAAE,EAAE,KAAK,QAqGlE"}
@@ -42,7 +42,7 @@ export function useConversationJoltEvents({ conversationId }) {
42
42
  data: {
43
43
  ...prev.data,
44
44
  latestReadMessageSortKey: latest_read_message_sort_key,
45
- unreadReaction: false,
45
+ unreadReactionCount: 0,
46
46
  },
47
47
  };
48
48
  });
@@ -61,9 +61,24 @@ export function useConversationJoltEvents({ conversationId }) {
61
61
  });
62
62
  }, [queryClient, queryKey]);
63
63
  const handleReactionJoltEvent = useCallback((event) => {
64
- if (event.data.data.author_id === currentPersonId)
65
- return;
66
- queryClient.invalidateQueries({ queryKey });
64
+ queryClient.setQueryData(queryKey, prev => {
65
+ if (!prev?.data)
66
+ return prev;
67
+ if (event.data.data.author_id === currentPersonId) {
68
+ return prev;
69
+ }
70
+ return {
71
+ ...prev,
72
+ data: {
73
+ ...prev.data,
74
+ // Not a real count, just a derived value from Jolt events so we can
75
+ // determine if we should mark the conversation as read
76
+ unreadReactionCount: prev.data.unreadReactionCount
77
+ ? prev.data.unreadReactionCount + 1
78
+ : 1,
79
+ },
80
+ };
81
+ });
67
82
  }, [queryClient, queryKey, currentPersonId]);
68
83
  useJoltEvent(joltChannel, 'conversation.updated', handleUpdatedConversation);
69
84
  useJoltEvent(joltChannel, 'conversation.read', handleConversationRead);