@planningcenter/chat-react-native 3.30.0-rc.0 → 3.30.0-rc.2

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 (928) hide show
  1. package/build/components/conversation/attachments/attachment_card.js +3 -3
  2. package/build/components/conversation/attachments/attachment_card.js.map +1 -1
  3. package/build/components/conversation/attachments/attachment_deleting_overlay.js +2 -2
  4. package/build/components/conversation/attachments/attachment_deleting_overlay.js.map +1 -1
  5. package/build/components/conversation/attachments/audio_attachment.d.ts +1 -1
  6. package/build/components/conversation/attachments/audio_attachment.d.ts.map +1 -1
  7. package/build/components/conversation/attachments/audio_attachment.js +4 -4
  8. package/build/components/conversation/attachments/audio_attachment.js.map +1 -1
  9. package/build/components/conversation/attachments/expanded_link.d.ts +1 -1
  10. package/build/components/conversation/attachments/expanded_link.d.ts.map +1 -1
  11. package/build/components/conversation/attachments/expanded_link.js +4 -4
  12. package/build/components/conversation/attachments/expanded_link.js.map +1 -1
  13. package/build/components/conversation/attachments/generic_file_attachment.d.ts +1 -1
  14. package/build/components/conversation/attachments/generic_file_attachment.d.ts.map +1 -1
  15. package/build/components/conversation/attachments/generic_file_attachment.js +5 -5
  16. package/build/components/conversation/attachments/generic_file_attachment.js.map +1 -1
  17. package/build/components/conversation/attachments/giphy_attachment.d.ts +1 -1
  18. package/build/components/conversation/attachments/giphy_attachment.d.ts.map +1 -1
  19. package/build/components/conversation/attachments/giphy_attachment.js +5 -5
  20. package/build/components/conversation/attachments/giphy_attachment.js.map +1 -1
  21. package/build/components/conversation/attachments/image_attachment.d.ts +1 -1
  22. package/build/components/conversation/attachments/image_attachment.d.ts.map +1 -1
  23. package/build/components/conversation/attachments/image_attachment.js +8 -8
  24. package/build/components/conversation/attachments/image_attachment.js.map +1 -1
  25. package/build/components/conversation/attachments/video_attachment.d.ts +1 -1
  26. package/build/components/conversation/attachments/video_attachment.d.ts.map +1 -1
  27. package/build/components/conversation/attachments/video_attachment.js +6 -6
  28. package/build/components/conversation/attachments/video_attachment.js.map +1 -1
  29. package/build/components/conversation/empty_conversation_blank_state.js +1 -1
  30. package/build/components/conversation/empty_conversation_blank_state.js.map +1 -1
  31. package/build/components/conversation/jump_to_bottom_button.js +3 -3
  32. package/build/components/conversation/jump_to_bottom_button.js.map +1 -1
  33. package/build/components/conversation/message.d.ts +1 -1
  34. package/build/components/conversation/message.d.ts.map +1 -1
  35. package/build/components/conversation/message.js +14 -14
  36. package/build/components/conversation/message.js.map +1 -1
  37. package/build/components/conversation/message_attachments.d.ts +1 -1
  38. package/build/components/conversation/message_attachments.d.ts.map +1 -1
  39. package/build/components/conversation/message_attachments.js +4 -4
  40. package/build/components/conversation/message_attachments.js.map +1 -1
  41. package/build/components/conversation/message_form/message_form_attachment_image.d.ts +1 -1
  42. package/build/components/conversation/message_form/message_form_attachment_image.d.ts.map +1 -1
  43. package/build/components/conversation/message_form/message_form_attachment_image.js +1 -1
  44. package/build/components/conversation/message_form/message_form_attachment_image.js.map +1 -1
  45. package/build/components/conversation/message_form/message_form_attachment_video.d.ts +1 -1
  46. package/build/components/conversation/message_form/message_form_attachment_video.d.ts.map +1 -1
  47. package/build/components/conversation/message_form/message_form_attachment_video.js +1 -1
  48. package/build/components/conversation/message_form/message_form_attachment_video.js.map +1 -1
  49. package/build/components/conversation/message_form.d.ts +1 -1
  50. package/build/components/conversation/message_form.d.ts.map +1 -1
  51. package/build/components/conversation/message_form.js +13 -13
  52. package/build/components/conversation/message_form.js.map +1 -1
  53. package/build/components/conversation/message_markdown.js +3 -3
  54. package/build/components/conversation/message_markdown.js.map +1 -1
  55. package/build/components/conversation/message_reaction.d.ts +2 -2
  56. package/build/components/conversation/message_reaction.d.ts.map +1 -1
  57. package/build/components/conversation/message_reaction.js +6 -6
  58. package/build/components/conversation/message_reaction.js.map +1 -1
  59. package/build/components/conversation/message_read_receipts.d.ts +1 -1
  60. package/build/components/conversation/message_read_receipts.d.ts.map +1 -1
  61. package/build/components/conversation/message_read_receipts.js +2 -2
  62. package/build/components/conversation/message_read_receipts.js.map +1 -1
  63. package/build/components/conversation/messages_disabled_banners.js +2 -2
  64. package/build/components/conversation/messages_disabled_banners.js.map +1 -1
  65. package/build/components/conversation/reply_connectors.d.ts +1 -1
  66. package/build/components/conversation/reply_connectors.d.ts.map +1 -1
  67. package/build/components/conversation/reply_connectors.js +2 -2
  68. package/build/components/conversation/reply_connectors.js.map +1 -1
  69. package/build/components/conversation/reply_shadow_message.d.ts +1 -1
  70. package/build/components/conversation/reply_shadow_message.d.ts.map +1 -1
  71. package/build/components/conversation/reply_shadow_message.js +8 -8
  72. package/build/components/conversation/reply_shadow_message.js.map +1 -1
  73. package/build/components/conversation/typing_indicator.js +3 -3
  74. package/build/components/conversation/typing_indicator.js.map +1 -1
  75. package/build/components/conversations/conversation_actions.d.ts +1 -1
  76. package/build/components/conversations/conversation_actions.d.ts.map +1 -1
  77. package/build/components/conversations/conversation_actions.js +5 -5
  78. package/build/components/conversations/conversation_actions.js.map +1 -1
  79. package/build/components/conversations/conversation_preview.d.ts +1 -1
  80. package/build/components/conversations/conversation_preview.d.ts.map +1 -1
  81. package/build/components/conversations/conversation_preview.js +4 -4
  82. package/build/components/conversations/conversation_preview.js.map +1 -1
  83. package/build/components/conversations/conversations.js +5 -5
  84. package/build/components/conversations/conversations.js.map +1 -1
  85. package/build/components/conversations/mute_indicator.js +3 -3
  86. package/build/components/conversations/mute_indicator.js.map +1 -1
  87. package/build/components/conversations/swipeable_toggle_button.d.ts +1 -1
  88. package/build/components/conversations/swipeable_toggle_button.d.ts.map +1 -1
  89. package/build/components/conversations/swipeable_toggle_button.js +5 -5
  90. package/build/components/conversations/swipeable_toggle_button.js.map +1 -1
  91. package/build/components/conversations/unread_count_badge.js +3 -3
  92. package/build/components/conversations/unread_count_badge.js.map +1 -1
  93. package/build/components/display/action_button.d.ts.map +1 -1
  94. package/build/components/display/action_button.js +4 -4
  95. package/build/components/display/action_button.js.map +1 -1
  96. package/build/components/display/avatar.d.ts +1 -1
  97. package/build/components/display/avatar.d.ts.map +1 -1
  98. package/build/components/display/avatar.js +1 -1
  99. package/build/components/display/avatar.js.map +1 -1
  100. package/build/components/display/avatar_group.d.ts +1 -1
  101. package/build/components/display/avatar_group.d.ts.map +1 -1
  102. package/build/components/display/avatar_group.js +1 -1
  103. package/build/components/display/avatar_group.js.map +1 -1
  104. package/build/components/display/badge.d.ts.map +1 -1
  105. package/build/components/display/badge.js +3 -3
  106. package/build/components/display/badge.js.map +1 -1
  107. package/build/components/display/banner.d.ts +1 -1
  108. package/build/components/display/banner.d.ts.map +1 -1
  109. package/build/components/display/banner.js +1 -1
  110. package/build/components/display/banner.js.map +1 -1
  111. package/build/components/display/banner_collapsible.js +1 -1
  112. package/build/components/display/banner_collapsible.js.map +1 -1
  113. package/build/components/display/button.d.ts.map +1 -1
  114. package/build/components/display/button.js +3 -3
  115. package/build/components/display/button.js.map +1 -1
  116. package/build/components/display/child_notice.d.ts +1 -1
  117. package/build/components/display/child_notice.d.ts.map +1 -1
  118. package/build/components/display/child_notice.js +3 -3
  119. package/build/components/display/child_notice.js.map +1 -1
  120. package/build/components/display/heading.d.ts.map +1 -1
  121. package/build/components/display/heading.js +3 -3
  122. package/build/components/display/heading.js.map +1 -1
  123. package/build/components/display/icon.d.ts +4 -4
  124. package/build/components/display/icon.d.ts.map +1 -1
  125. package/build/components/display/icon.js +5 -5
  126. package/build/components/display/icon.js.map +1 -1
  127. package/build/components/display/icon_button.d.ts.map +1 -1
  128. package/build/components/display/icon_button.js +2 -2
  129. package/build/components/display/icon_button.js.map +1 -1
  130. package/build/components/display/image.js +1 -1
  131. package/build/components/display/image.js.map +1 -1
  132. package/build/components/display/image_attachment_preview.js +4 -4
  133. package/build/components/display/image_attachment_preview.js.map +1 -1
  134. package/build/components/display/keyboard_view.js +1 -1
  135. package/build/components/display/keyboard_view.js.map +1 -1
  136. package/build/components/display/person.d.ts +1 -1
  137. package/build/components/display/person.d.ts.map +1 -1
  138. package/build/components/display/person.js +2 -2
  139. package/build/components/display/person.js.map +1 -1
  140. package/build/components/display/platform_modal_header_buttons.d.ts +1 -1
  141. package/build/components/display/platform_modal_header_buttons.d.ts.map +1 -1
  142. package/build/components/display/platform_modal_header_buttons.js +3 -3
  143. package/build/components/display/platform_modal_header_buttons.js.map +1 -1
  144. package/build/components/display/pressable_row.d.ts.map +1 -1
  145. package/build/components/display/pressable_row.js +1 -1
  146. package/build/components/display/pressable_row.js.map +1 -1
  147. package/build/components/display/spinner.js +1 -1
  148. package/build/components/display/spinner.js.map +1 -1
  149. package/build/components/display/switch.js +1 -1
  150. package/build/components/display/switch.js.map +1 -1
  151. package/build/components/display/tabs.js +1 -1
  152. package/build/components/display/tabs.js.map +1 -1
  153. package/build/components/display/text.d.ts.map +1 -1
  154. package/build/components/display/text.js +2 -2
  155. package/build/components/display/text.js.map +1 -1
  156. package/build/components/display/text_button.d.ts.map +1 -1
  157. package/build/components/display/text_button.js +2 -2
  158. package/build/components/display/text_button.js.map +1 -1
  159. package/build/components/display/text_inline_button.d.ts.map +1 -1
  160. package/build/components/display/text_inline_button.js +3 -3
  161. package/build/components/display/text_inline_button.js.map +1 -1
  162. package/build/components/display/toggle_button.d.ts.map +1 -1
  163. package/build/components/display/toggle_button.js +5 -5
  164. package/build/components/display/toggle_button.js.map +1 -1
  165. package/build/components/display/utils/button_colors.js +1 -1
  166. package/build/components/display/utils/button_colors.js.map +1 -1
  167. package/build/components/display/utils/status_colors.js +1 -1
  168. package/build/components/display/utils/status_colors.js.map +1 -1
  169. package/build/components/display/video_attachment_preview.js +5 -5
  170. package/build/components/display/video_attachment_preview.js.map +1 -1
  171. package/build/components/group_conversation_list.d.ts +1 -1
  172. package/build/components/group_conversation_list.d.ts.map +1 -1
  173. package/build/components/group_conversation_list.js +2 -2
  174. package/build/components/group_conversation_list.js.map +1 -1
  175. package/build/components/page/error_boundary.d.ts +1 -1
  176. package/build/components/page/error_boundary.d.ts.map +1 -1
  177. package/build/components/page/error_boundary.js +2 -2
  178. package/build/components/page/error_boundary.js.map +1 -1
  179. package/build/components/page/loading.js +1 -1
  180. package/build/components/page/loading.js.map +1 -1
  181. package/build/components/primitive/avatar_primitive.d.ts +2 -2
  182. package/build/components/primitive/avatar_primitive.d.ts.map +1 -1
  183. package/build/components/primitive/avatar_primitive.js +5 -5
  184. package/build/components/primitive/avatar_primitive.js.map +1 -1
  185. package/build/components/primitive/banner_primitive.d.ts +2 -2
  186. package/build/components/primitive/banner_primitive.d.ts.map +1 -1
  187. package/build/components/primitive/banner_primitive.js +8 -8
  188. package/build/components/primitive/banner_primitive.js.map +1 -1
  189. package/build/components/primitive/blank_state_primitive.d.ts +1 -1
  190. package/build/components/primitive/blank_state_primitive.d.ts.map +1 -1
  191. package/build/components/primitive/blank_state_primitive.js +2 -2
  192. package/build/components/primitive/blank_state_primitive.js.map +1 -1
  193. package/build/components/primitive/form_sheet.d.ts +2 -2
  194. package/build/components/primitive/form_sheet.d.ts.map +1 -1
  195. package/build/components/primitive/form_sheet.js +3 -3
  196. package/build/components/primitive/form_sheet.js.map +1 -1
  197. package/build/components/safe_area_modal.js +1 -1
  198. package/build/components/safe_area_modal.js.map +1 -1
  199. package/build/contexts/api_provider.js +4 -4
  200. package/build/contexts/api_provider.js.map +1 -1
  201. package/build/contexts/chat_context.d.ts +6 -6
  202. package/build/contexts/chat_context.d.ts.map +1 -1
  203. package/build/contexts/chat_context.js +3 -3
  204. package/build/contexts/chat_context.js.map +1 -1
  205. package/build/contexts/conversations_context.d.ts +2 -2
  206. package/build/contexts/conversations_context.d.ts.map +1 -1
  207. package/build/contexts/conversations_context.js +1 -1
  208. package/build/contexts/conversations_context.js.map +1 -1
  209. package/build/contexts/session_context.d.ts +3 -3
  210. package/build/contexts/session_context.d.ts.map +1 -1
  211. package/build/contexts/session_context.js +6 -6
  212. package/build/contexts/session_context.js.map +1 -1
  213. package/build/hooks/groups/use_group_members_for_new_conversation.d.ts +7 -7
  214. package/build/hooks/groups/use_group_members_for_new_conversation.d.ts.map +1 -1
  215. package/build/hooks/groups/use_group_members_for_new_conversation.js +2 -2
  216. package/build/hooks/groups/use_group_members_for_new_conversation.js.map +1 -1
  217. package/build/hooks/groups/use_groups_conversation_create.d.ts +1 -1
  218. package/build/hooks/groups/use_groups_conversation_create.d.ts.map +1 -1
  219. package/build/hooks/groups/use_groups_conversation_create.js +2 -2
  220. package/build/hooks/groups/use_groups_conversation_create.js.map +1 -1
  221. package/build/hooks/services/use_find_or_create_services_conversation.d.ts +2 -2
  222. package/build/hooks/services/use_find_or_create_services_conversation.d.ts.map +1 -1
  223. package/build/hooks/services/use_find_or_create_services_conversation.js +3 -3
  224. package/build/hooks/services/use_find_or_create_services_conversation.js.map +1 -1
  225. package/build/hooks/services/use_services_team.d.ts +1 -1
  226. package/build/hooks/services/use_services_team.d.ts.map +1 -1
  227. package/build/hooks/services/use_services_team.js +1 -1
  228. package/build/hooks/services/use_services_team.js.map +1 -1
  229. package/build/hooks/services/use_team_members_for_new_conversation.d.ts +21 -21
  230. package/build/hooks/services/use_team_members_for_new_conversation.d.ts.map +1 -1
  231. package/build/hooks/services/use_team_members_for_new_conversation.js +1 -1
  232. package/build/hooks/services/use_team_members_for_new_conversation.js.map +1 -1
  233. package/build/hooks/services/use_team_plans.d.ts +1 -1
  234. package/build/hooks/services/use_team_plans.js +2 -2
  235. package/build/hooks/services/use_team_plans.js.map +1 -1
  236. package/build/hooks/use_api.d.ts +2 -2
  237. package/build/hooks/use_api.d.ts.map +1 -1
  238. package/build/hooks/use_api.js.map +1 -1
  239. package/build/hooks/use_api_client.d.ts +1 -1
  240. package/build/hooks/use_api_client.d.ts.map +1 -1
  241. package/build/hooks/use_api_client.js +3 -3
  242. package/build/hooks/use_api_client.js.map +1 -1
  243. package/build/hooks/use_async_storage.js +1 -1
  244. package/build/hooks/use_async_storage.js.map +1 -1
  245. package/build/hooks/use_attachment_uploader.d.ts +1 -1
  246. package/build/hooks/use_attachment_uploader.d.ts.map +1 -1
  247. package/build/hooks/use_attachment_uploader.js +1 -1
  248. package/build/hooks/use_attachment_uploader.js.map +1 -1
  249. package/build/hooks/use_broadcast_typing_status.js +1 -1
  250. package/build/hooks/use_broadcast_typing_status.js.map +1 -1
  251. package/build/hooks/use_chat_permissions.d.ts +21 -21
  252. package/build/hooks/use_chat_permissions.d.ts.map +1 -1
  253. package/build/hooks/use_chat_permissions.js.map +1 -1
  254. package/build/hooks/use_conversation.d.ts +5 -5
  255. package/build/hooks/use_conversation.d.ts.map +1 -1
  256. package/build/hooks/use_conversation.js +4 -3
  257. package/build/hooks/use_conversation.js.map +1 -1
  258. package/build/hooks/use_conversation_jolt_events.js +1 -1
  259. package/build/hooks/use_conversation_jolt_events.js.map +1 -1
  260. package/build/hooks/use_conversation_membership.d.ts +1 -1
  261. package/build/hooks/use_conversation_membership.d.ts.map +1 -1
  262. package/build/hooks/use_conversation_membership.js +2 -2
  263. package/build/hooks/use_conversation_membership.js.map +1 -1
  264. package/build/hooks/use_conversation_message.d.ts +1 -1
  265. package/build/hooks/use_conversation_message.d.ts.map +1 -1
  266. package/build/hooks/use_conversation_message.js +1 -1
  267. package/build/hooks/use_conversation_message.js.map +1 -1
  268. package/build/hooks/use_conversation_messages.d.ts +3 -3
  269. package/build/hooks/use_conversation_messages.d.ts.map +1 -1
  270. package/build/hooks/use_conversation_messages.js +1 -1
  271. package/build/hooks/use_conversation_messages.js.map +1 -1
  272. package/build/hooks/use_conversation_messages_jolt_events.js +8 -8
  273. package/build/hooks/use_conversation_messages_jolt_events.js.map +1 -1
  274. package/build/hooks/use_conversations.d.ts +2 -2
  275. package/build/hooks/use_conversations.d.ts.map +1 -1
  276. package/build/hooks/use_conversations.js +1 -1
  277. package/build/hooks/use_conversations.js.map +1 -1
  278. package/build/hooks/use_conversations_actions.d.ts +19 -19
  279. package/build/hooks/use_conversations_actions.d.ts.map +1 -1
  280. package/build/hooks/use_conversations_actions.js +1 -1
  281. package/build/hooks/use_conversations_actions.js.map +1 -1
  282. package/build/hooks/use_conversations_cache.d.ts +2 -2
  283. package/build/hooks/use_conversations_cache.d.ts.map +1 -1
  284. package/build/hooks/use_conversations_cache.js +2 -2
  285. package/build/hooks/use_conversations_cache.js.map +1 -1
  286. package/build/hooks/use_conversations_jolt_events.js +2 -2
  287. package/build/hooks/use_conversations_jolt_events.js.map +1 -1
  288. package/build/hooks/use_create_android_ripple_color.js +1 -1
  289. package/build/hooks/use_create_android_ripple_color.js.map +1 -1
  290. package/build/hooks/use_current_person.d.ts +1 -1
  291. package/build/hooks/use_current_person.d.ts.map +1 -1
  292. package/build/hooks/use_current_person.js.map +1 -1
  293. package/build/hooks/use_features.d.ts +2 -2
  294. package/build/hooks/use_features.d.ts.map +1 -1
  295. package/build/hooks/use_features.js +2 -2
  296. package/build/hooks/use_features.js.map +1 -1
  297. package/build/hooks/use_font_scale.js +1 -1
  298. package/build/hooks/use_font_scale.js.map +1 -1
  299. package/build/hooks/use_giphy.d.ts +1 -1
  300. package/build/hooks/use_giphy.d.ts.map +1 -1
  301. package/build/hooks/use_giphy.js +1 -1
  302. package/build/hooks/use_giphy.js.map +1 -1
  303. package/build/hooks/use_groups.d.ts +2 -2
  304. package/build/hooks/use_groups.d.ts.map +1 -1
  305. package/build/hooks/use_groups.js.map +1 -1
  306. package/build/hooks/use_groups_groups.d.ts +33 -33
  307. package/build/hooks/use_groups_groups.d.ts.map +1 -1
  308. package/build/hooks/use_groups_groups.js.map +1 -1
  309. package/build/hooks/use_interaction_ghost_color.js +1 -1
  310. package/build/hooks/use_interaction_ghost_color.js.map +1 -1
  311. package/build/hooks/use_jolt.js +2 -2
  312. package/build/hooks/use_jolt.js.map +1 -1
  313. package/build/hooks/use_live_relative_time.d.ts +1 -1
  314. package/build/hooks/use_live_relative_time.d.ts.map +1 -1
  315. package/build/hooks/use_live_relative_time.js +2 -2
  316. package/build/hooks/use_live_relative_time.js.map +1 -1
  317. package/build/hooks/use_mark_latest_message_read.d.ts +1 -1
  318. package/build/hooks/use_mark_latest_message_read.d.ts.map +1 -1
  319. package/build/hooks/use_mark_latest_message_read.js.map +1 -1
  320. package/build/hooks/use_message_create_or_update.d.ts +2 -2
  321. package/build/hooks/use_message_create_or_update.d.ts.map +1 -1
  322. package/build/hooks/use_message_create_or_update.js +7 -7
  323. package/build/hooks/use_message_create_or_update.js.map +1 -1
  324. package/build/hooks/use_message_draft.d.ts +1 -1
  325. package/build/hooks/use_message_draft.d.ts.map +1 -1
  326. package/build/hooks/use_message_draft.js +1 -1
  327. package/build/hooks/use_message_draft.js.map +1 -1
  328. package/build/hooks/use_message_reaction_toggle.d.ts +2 -2
  329. package/build/hooks/use_message_reaction_toggle.d.ts.map +1 -1
  330. package/build/hooks/use_message_reaction_toggle.js +2 -2
  331. package/build/hooks/use_message_reaction_toggle.js.map +1 -1
  332. package/build/hooks/use_my_gender.js.map +1 -1
  333. package/build/hooks/use_organization.d.ts +5 -5
  334. package/build/hooks/use_organization.d.ts.map +1 -1
  335. package/build/hooks/use_organization.js.map +1 -1
  336. package/build/hooks/use_people_person.d.ts +1 -1
  337. package/build/hooks/use_people_person.d.ts.map +1 -1
  338. package/build/hooks/use_people_person.js.map +1 -1
  339. package/build/hooks/use_product_analytics.d.ts +1 -1
  340. package/build/hooks/use_product_analytics.d.ts.map +1 -1
  341. package/build/hooks/use_product_analytics.js +3 -3
  342. package/build/hooks/use_product_analytics.js.map +1 -1
  343. package/build/hooks/use_qualified_by_age.js +1 -1
  344. package/build/hooks/use_qualified_by_age.js.map +1 -1
  345. package/build/hooks/use_read_receipts.d.ts +2 -2
  346. package/build/hooks/use_read_receipts.d.ts.map +1 -1
  347. package/build/hooks/use_read_receipts.js.map +1 -1
  348. package/build/hooks/use_report_message.d.ts +1 -1
  349. package/build/hooks/use_report_message.d.ts.map +1 -1
  350. package/build/hooks/use_report_message.js +1 -1
  351. package/build/hooks/use_report_message.js.map +1 -1
  352. package/build/hooks/use_storage.d.ts +1 -1
  353. package/build/hooks/use_storage.d.ts.map +1 -1
  354. package/build/hooks/use_storage.js.map +1 -1
  355. package/build/hooks/use_submit_age_check.d.ts +1 -1
  356. package/build/hooks/use_submit_age_check.d.ts.map +1 -1
  357. package/build/hooks/use_submit_age_check.js +2 -2
  358. package/build/hooks/use_submit_age_check.js.map +1 -1
  359. package/build/hooks/use_suspense_api.d.ts +5 -5
  360. package/build/hooks/use_suspense_api.d.ts.map +1 -1
  361. package/build/hooks/use_suspense_api.js +2 -2
  362. package/build/hooks/use_suspense_api.js.map +1 -1
  363. package/build/hooks/use_teams.d.ts +1 -1
  364. package/build/hooks/use_teams.d.ts.map +1 -1
  365. package/build/hooks/use_teams.js.map +1 -1
  366. package/build/hooks/use_theme.d.ts +1 -1
  367. package/build/hooks/use_theme.d.ts.map +1 -1
  368. package/build/hooks/use_theme.js +1 -1
  369. package/build/hooks/use_theme.js.map +1 -1
  370. package/build/hooks/use_typing_indicators.d.ts.map +1 -1
  371. package/build/hooks/use_typing_indicators.js +1 -1
  372. package/build/hooks/use_typing_indicators.js.map +1 -1
  373. package/build/hooks/use_typing_status_cache.d.ts +1 -1
  374. package/build/hooks/use_typing_status_cache.d.ts.map +1 -1
  375. package/build/hooks/use_typing_status_cache.js.map +1 -1
  376. package/build/hooks/use_upload_client.d.ts +1 -1
  377. package/build/hooks/use_upload_client.d.ts.map +1 -1
  378. package/build/hooks/use_upload_client.js +3 -3
  379. package/build/hooks/use_upload_client.js.map +1 -1
  380. package/build/navigation/chat_access_gate.js +7 -7
  381. package/build/navigation/chat_access_gate.js.map +1 -1
  382. package/build/navigation/index.d.ts +25 -25
  383. package/build/navigation/index.d.ts.map +1 -1
  384. package/build/navigation/index.js +28 -28
  385. package/build/navigation/index.js.map +1 -1
  386. package/build/navigation/screenLayout.js +2 -2
  387. package/build/navigation/screenLayout.js.map +1 -1
  388. package/build/polyfills/events/Event.js +1 -1
  389. package/build/polyfills/events/Event.js.map +1 -1
  390. package/build/polyfills/events/EventTarget.js +1 -1
  391. package/build/polyfills/events/EventTarget.js.map +1 -1
  392. package/build/polyfills/events/internals/EventInternals.d.ts +2 -2
  393. package/build/polyfills/events/internals/EventInternals.d.ts.map +1 -1
  394. package/build/polyfills/events/internals/EventInternals.js.map +1 -1
  395. package/build/polyfills/events/internals/EventTargetInternals.d.ts +2 -2
  396. package/build/polyfills/events/internals/EventTargetInternals.d.ts.map +1 -1
  397. package/build/polyfills/events/internals/EventTargetInternals.js.map +1 -1
  398. package/build/screens/age_check/age_check_required_screen.d.ts.map +1 -1
  399. package/build/screens/age_check/age_check_required_screen.js +9 -9
  400. package/build/screens/age_check/age_check_required_screen.js.map +1 -1
  401. package/build/screens/age_check/age_check_underage_screen.d.ts.map +1 -1
  402. package/build/screens/age_check/age_check_underage_screen.js +4 -4
  403. package/build/screens/age_check/age_check_underage_screen.js.map +1 -1
  404. package/build/screens/age_check/components/age_check_select_birthdate_modal.d.ts.map +1 -1
  405. package/build/screens/age_check/components/age_check_select_birthdate_modal.js +4 -4
  406. package/build/screens/age_check/components/age_check_select_birthdate_modal.js.map +1 -1
  407. package/build/screens/attachment_actions/attachment_actions_screen.js +1 -1
  408. package/build/screens/attachment_actions/attachment_actions_screen.js.map +1 -1
  409. package/build/screens/attachment_actions/hooks/useDeleteAttachment.js +4 -4
  410. package/build/screens/attachment_actions/hooks/useDeleteAttachment.js.map +1 -1
  411. package/build/screens/bug_report_screen.d.ts +1 -1
  412. package/build/screens/bug_report_screen.d.ts.map +1 -1
  413. package/build/screens/bug_report_screen.js +13 -13
  414. package/build/screens/bug_report_screen.js.map +1 -1
  415. package/build/screens/conversation/message_read_receipts_screen.js +5 -5
  416. package/build/screens/conversation/message_read_receipts_screen.js.map +1 -1
  417. package/build/screens/conversation_details_screen.d.ts.map +1 -1
  418. package/build/screens/conversation_details_screen.js +37 -9
  419. package/build/screens/conversation_details_screen.js.map +1 -1
  420. package/build/screens/conversation_filter_recipients/components/checkbox_row.d.ts +1 -1
  421. package/build/screens/conversation_filter_recipients/components/checkbox_row.d.ts.map +1 -1
  422. package/build/screens/conversation_filter_recipients/components/checkbox_row.js +4 -4
  423. package/build/screens/conversation_filter_recipients/components/checkbox_row.js.map +1 -1
  424. package/build/screens/conversation_filter_recipients/components/header_row.d.ts +1 -1
  425. package/build/screens/conversation_filter_recipients/components/header_row.d.ts.map +1 -1
  426. package/build/screens/conversation_filter_recipients/components/header_row.js +5 -5
  427. package/build/screens/conversation_filter_recipients/components/header_row.js.map +1 -1
  428. package/build/screens/conversation_filter_recipients/conversation_filter_recipients_screen.d.ts.map +1 -1
  429. package/build/screens/conversation_filter_recipients/conversation_filter_recipients_screen.js +6 -6
  430. package/build/screens/conversation_filter_recipients/conversation_filter_recipients_screen.js.map +1 -1
  431. package/build/screens/conversation_filter_recipients/hooks/use_flattened_array_of_service_types_with_teams.d.ts +1 -1
  432. package/build/screens/conversation_filter_recipients/hooks/use_flattened_array_of_service_types_with_teams.d.ts.map +1 -1
  433. package/build/screens/conversation_filter_recipients/hooks/use_flattened_array_of_service_types_with_teams.js +1 -1
  434. package/build/screens/conversation_filter_recipients/hooks/use_flattened_array_of_service_types_with_teams.js.map +1 -1
  435. package/build/screens/conversation_filter_recipients/hooks/use_service_types_with_teams.d.ts +22 -22
  436. package/build/screens/conversation_filter_recipients/hooks/use_service_types_with_teams.d.ts.map +1 -1
  437. package/build/screens/conversation_filter_recipients/hooks/use_service_types_with_teams.js +2 -2
  438. package/build/screens/conversation_filter_recipients/hooks/use_service_types_with_teams.js.map +1 -1
  439. package/build/screens/conversation_filter_recipients/types.d.ts +2 -2
  440. package/build/screens/conversation_filter_recipients/types.d.ts.map +1 -1
  441. package/build/screens/conversation_filter_recipients/types.js.map +1 -1
  442. package/build/screens/conversation_filters/components/conversation_filters.d.ts.map +1 -1
  443. package/build/screens/conversation_filters/components/conversation_filters.js +5 -5
  444. package/build/screens/conversation_filters/components/conversation_filters.js.map +1 -1
  445. package/build/screens/conversation_filters/components/rows.d.ts +4 -4
  446. package/build/screens/conversation_filters/components/rows.d.ts.map +1 -1
  447. package/build/screens/conversation_filters/components/rows.js +5 -5
  448. package/build/screens/conversation_filters/components/rows.js.map +1 -1
  449. package/build/screens/conversation_filters/context/conversation_filter_context.d.ts +1 -1
  450. package/build/screens/conversation_filters/context/conversation_filter_context.d.ts.map +1 -1
  451. package/build/screens/conversation_filters/context/conversation_filter_context.js +2 -2
  452. package/build/screens/conversation_filters/context/conversation_filter_context.js.map +1 -1
  453. package/build/screens/conversation_filters/group_filters.d.ts +1 -1
  454. package/build/screens/conversation_filters/group_filters.d.ts.map +1 -1
  455. package/build/screens/conversation_filters/group_filters.js +2 -2
  456. package/build/screens/conversation_filters/group_filters.js.map +1 -1
  457. package/build/screens/conversation_filters/hooks/filters.d.ts +54 -54
  458. package/build/screens/conversation_filters/hooks/filters.d.ts.map +1 -1
  459. package/build/screens/conversation_filters/hooks/filters.js +3 -3
  460. package/build/screens/conversation_filters/hooks/filters.js.map +1 -1
  461. package/build/screens/conversation_filters/screen_props.d.ts +1 -1
  462. package/build/screens/conversation_filters/screen_props.d.ts.map +1 -1
  463. package/build/screens/conversation_filters/screen_props.js.map +1 -1
  464. package/build/screens/conversation_filters/team_filters.d.ts.map +1 -1
  465. package/build/screens/conversation_filters/team_filters.js +1 -1
  466. package/build/screens/conversation_filters/team_filters.js.map +1 -1
  467. package/build/screens/conversation_filters_screen.js +2 -2
  468. package/build/screens/conversation_filters_screen.js.map +1 -1
  469. package/build/screens/conversation_new/components/filter_by_plan.d.ts.map +1 -1
  470. package/build/screens/conversation_new/components/filter_by_plan.js +8 -8
  471. package/build/screens/conversation_new/components/filter_by_plan.js.map +1 -1
  472. package/build/screens/conversation_new/components/form_list.d.ts +1 -1
  473. package/build/screens/conversation_new/components/form_list.d.ts.map +1 -1
  474. package/build/screens/conversation_new/components/form_list.js +2 -2
  475. package/build/screens/conversation_new/components/form_list.js.map +1 -1
  476. package/build/screens/conversation_new/components/gender_filter_toggle.js +3 -3
  477. package/build/screens/conversation_new/components/gender_filter_toggle.js.map +1 -1
  478. package/build/screens/conversation_new/components/groups_form.d.ts +1 -1
  479. package/build/screens/conversation_new/components/groups_form.d.ts.map +1 -1
  480. package/build/screens/conversation_new/components/groups_form.js +10 -10
  481. package/build/screens/conversation_new/components/groups_form.js.map +1 -1
  482. package/build/screens/conversation_new/components/services_form.d.ts +1 -1
  483. package/build/screens/conversation_new/components/services_form.d.ts.map +1 -1
  484. package/build/screens/conversation_new/components/services_form.js +10 -10
  485. package/build/screens/conversation_new/components/services_form.js.map +1 -1
  486. package/build/screens/conversation_new/components/source_app_error_card.js +1 -1
  487. package/build/screens/conversation_new/components/source_app_error_card.js.map +1 -1
  488. package/build/screens/conversation_new/conversation_new_screen.d.ts +3 -3
  489. package/build/screens/conversation_new/conversation_new_screen.d.ts.map +1 -1
  490. package/build/screens/conversation_new/conversation_new_screen.js.map +1 -1
  491. package/build/screens/conversation_notification_level_select_screen.js +5 -5
  492. package/build/screens/conversation_notification_level_select_screen.js.map +1 -1
  493. package/build/screens/conversation_screen.d.ts +3 -3
  494. package/build/screens/conversation_screen.d.ts.map +1 -1
  495. package/build/screens/conversation_screen.js +21 -21
  496. package/build/screens/conversation_screen.js.map +1 -1
  497. package/build/screens/conversation_select_recipients/components/groups_recipient_row.d.ts +1 -1
  498. package/build/screens/conversation_select_recipients/components/groups_recipient_row.d.ts.map +1 -1
  499. package/build/screens/conversation_select_recipients/components/groups_recipient_row.js +1 -1
  500. package/build/screens/conversation_select_recipients/components/groups_recipient_row.js.map +1 -1
  501. package/build/screens/conversation_select_recipients/components/recipient_link_row.js +3 -3
  502. package/build/screens/conversation_select_recipients/components/recipient_link_row.js.map +1 -1
  503. package/build/screens/conversation_select_recipients/components/restricted_group_row.d.ts +1 -1
  504. package/build/screens/conversation_select_recipients/components/restricted_group_row.d.ts.map +1 -1
  505. package/build/screens/conversation_select_recipients/components/restricted_group_row.js +3 -3
  506. package/build/screens/conversation_select_recipients/components/restricted_group_row.js.map +1 -1
  507. package/build/screens/conversation_select_recipients/components/team_recipient_row.d.ts +1 -1
  508. package/build/screens/conversation_select_recipients/components/team_recipient_row.d.ts.map +1 -1
  509. package/build/screens/conversation_select_recipients/components/team_recipient_row.js +1 -1
  510. package/build/screens/conversation_select_recipients/components/team_recipient_row.js.map +1 -1
  511. package/build/screens/conversation_select_recipients/components/view_more_link_row.js +1 -1
  512. package/build/screens/conversation_select_recipients/components/view_more_link_row.js.map +1 -1
  513. package/build/screens/conversation_select_recipients/conversation_new_entry_screen.d.ts.map +1 -1
  514. package/build/screens/conversation_select_recipients/conversation_new_entry_screen.js +4 -4
  515. package/build/screens/conversation_select_recipients/conversation_new_entry_screen.js.map +1 -1
  516. package/build/screens/conversation_select_recipients/conversation_select_group_recipients_screen.d.ts.map +1 -1
  517. package/build/screens/conversation_select_recipients/conversation_select_group_recipients_screen.js +2 -2
  518. package/build/screens/conversation_select_recipients/conversation_select_group_recipients_screen.js.map +1 -1
  519. package/build/screens/conversation_select_recipients/conversation_select_teams_i_lead_recipients_screen.d.ts.map +1 -1
  520. package/build/screens/conversation_select_recipients/conversation_select_teams_i_lead_recipients_screen.js +4 -4
  521. package/build/screens/conversation_select_recipients/conversation_select_teams_i_lead_recipients_screen.js.map +1 -1
  522. package/build/screens/conversation_select_recipients/types/screen_props.d.ts +2 -2
  523. package/build/screens/conversation_select_recipients/types/screen_props.d.ts.map +1 -1
  524. package/build/screens/conversation_select_recipients/types/screen_props.js.map +1 -1
  525. package/build/screens/conversation_select_type_screen.d.ts +3 -3
  526. package/build/screens/conversation_select_type_screen.d.ts.map +1 -1
  527. package/build/screens/conversation_select_type_screen.js +3 -3
  528. package/build/screens/conversation_select_type_screen.js.map +1 -1
  529. package/build/screens/conversations/components/chat_group_badge.js +2 -2
  530. package/build/screens/conversations/components/chat_group_badge.js.map +1 -1
  531. package/build/screens/conversations/components/list_header_action_button.d.ts +1 -1
  532. package/build/screens/conversations/components/list_header_action_button.d.ts.map +1 -1
  533. package/build/screens/conversations/components/list_header_action_button.js +4 -4
  534. package/build/screens/conversations/components/list_header_action_button.js.map +1 -1
  535. package/build/screens/conversations/components/list_header_component.js +9 -9
  536. package/build/screens/conversations/components/list_header_component.js.map +1 -1
  537. package/build/screens/conversations/conversations_screen.d.ts +2 -2
  538. package/build/screens/conversations/conversations_screen.d.ts.map +1 -1
  539. package/build/screens/conversations/conversations_screen.js +3 -3
  540. package/build/screens/conversations/conversations_screen.js.map +1 -1
  541. package/build/screens/design_system_screen.js +6 -6
  542. package/build/screens/design_system_screen.js.map +1 -1
  543. package/build/screens/get_help_screen.js +4 -4
  544. package/build/screens/get_help_screen.js.map +1 -1
  545. package/build/screens/group_notification_level_select_screen.js +3 -3
  546. package/build/screens/group_notification_level_select_screen.js.map +1 -1
  547. package/build/screens/group_notification_settings_screen.js +3 -3
  548. package/build/screens/group_notification_settings_screen.js.map +1 -1
  549. package/build/screens/message_actions_screen.js +10 -10
  550. package/build/screens/message_actions_screen.js.map +1 -1
  551. package/build/screens/message_report/components/message_preview.d.ts +1 -1
  552. package/build/screens/message_report/components/message_preview.d.ts.map +1 -1
  553. package/build/screens/message_report/components/message_preview.js +2 -2
  554. package/build/screens/message_report/components/message_preview.js.map +1 -1
  555. package/build/screens/message_report/components/report_reason_list.d.ts +1 -1
  556. package/build/screens/message_report/components/report_reason_list.d.ts.map +1 -1
  557. package/build/screens/message_report/components/report_reason_list.js +5 -5
  558. package/build/screens/message_report/components/report_reason_list.js.map +1 -1
  559. package/build/screens/message_report_screen.d.ts +2 -2
  560. package/build/screens/message_report_screen.d.ts.map +1 -1
  561. package/build/screens/message_report_screen.js +8 -8
  562. package/build/screens/message_report_screen.js.map +1 -1
  563. package/build/screens/not_found.d.ts.map +1 -1
  564. package/build/screens/not_found.js +1 -1
  565. package/build/screens/not_found.js.map +1 -1
  566. package/build/screens/notification_settings/hooks/groups.d.ts +7 -7
  567. package/build/screens/notification_settings/hooks/groups.d.ts.map +1 -1
  568. package/build/screens/notification_settings/hooks/groups.js +4 -4
  569. package/build/screens/notification_settings/hooks/groups.js.map +1 -1
  570. package/build/screens/notification_settings_screen.js +4 -4
  571. package/build/screens/notification_settings_screen.js.map +1 -1
  572. package/build/screens/preferred_app/hooks/use_chat_types.d.ts +5 -5
  573. package/build/screens/preferred_app/hooks/use_chat_types.d.ts.map +1 -1
  574. package/build/screens/preferred_app/hooks/use_chat_types.js +1 -1
  575. package/build/screens/preferred_app/hooks/use_chat_types.js.map +1 -1
  576. package/build/screens/preferred_app_selection_screen.d.ts.map +1 -1
  577. package/build/screens/preferred_app_selection_screen.js +7 -7
  578. package/build/screens/preferred_app_selection_screen.js.map +1 -1
  579. package/build/screens/reactions_screen.js +7 -7
  580. package/build/screens/reactions_screen.js.map +1 -1
  581. package/build/screens/send_giphy_screen.js +8 -8
  582. package/build/screens/send_giphy_screen.js.map +1 -1
  583. package/build/screens/team_conversation_screen.js +3 -3
  584. package/build/screens/team_conversation_screen.js.map +1 -1
  585. package/build/types/jolt_events/message_events.d.ts +1 -1
  586. package/build/types/jolt_events/message_events.d.ts.map +1 -1
  587. package/build/types/jolt_events/message_events.js.map +1 -1
  588. package/build/types/jolt_events/reaction_events.d.ts +1 -1
  589. package/build/types/jolt_events/reaction_events.d.ts.map +1 -1
  590. package/build/types/jolt_events/reaction_events.js.map +1 -1
  591. package/build/types/resources/app_grant.d.ts +1 -1
  592. package/build/types/resources/app_grant.d.ts.map +1 -1
  593. package/build/types/resources/app_grant.js.map +1 -1
  594. package/build/types/resources/conversation.d.ts +1 -0
  595. package/build/types/resources/conversation.d.ts.map +1 -1
  596. package/build/types/resources/conversation.js.map +1 -1
  597. package/build/types/resources/conversation_membership.d.ts +1 -1
  598. package/build/types/resources/conversation_membership.d.ts.map +1 -1
  599. package/build/types/resources/conversation_membership.js.map +1 -1
  600. package/build/types/resources/group_membership.d.ts +1 -1
  601. package/build/types/resources/group_membership.d.ts.map +1 -1
  602. package/build/types/resources/group_membership.js.map +1 -1
  603. package/build/types/resources/groups/groups_group_resource.d.ts +1 -1
  604. package/build/types/resources/groups/groups_group_resource.d.ts.map +1 -1
  605. package/build/types/resources/groups/groups_group_resource.js.map +1 -1
  606. package/build/types/resources/organization.d.ts +1 -1
  607. package/build/types/resources/organization.d.ts.map +1 -1
  608. package/build/types/resources/organization.js.map +1 -1
  609. package/build/types/resources/person.d.ts +1 -1
  610. package/build/types/resources/person.d.ts.map +1 -1
  611. package/build/types/resources/person.js.map +1 -1
  612. package/build/types/resources/services/chat_resource.d.ts +1 -1
  613. package/build/types/resources/services/chat_resource.d.ts.map +1 -1
  614. package/build/types/resources/services/chat_resource.js.map +1 -1
  615. package/build/types/resources/services/team_resource.d.ts +1 -1
  616. package/build/types/resources/services/team_resource.d.ts.map +1 -1
  617. package/build/types/resources/services/team_resource.js.map +1 -1
  618. package/build/utils/cache/messages_cache.d.ts +3 -3
  619. package/build/utils/cache/messages_cache.d.ts.map +1 -1
  620. package/build/utils/cache/messages_cache.js +4 -4
  621. package/build/utils/cache/messages_cache.js.map +1 -1
  622. package/build/utils/cache/optimistically_create_message.d.ts +2 -2
  623. package/build/utils/cache/optimistically_create_message.d.ts.map +1 -1
  624. package/build/utils/cache/optimistically_create_message.js +4 -4
  625. package/build/utils/cache/optimistically_create_message.js.map +1 -1
  626. package/build/utils/cache/optimistically_update_message.d.ts +1 -1
  627. package/build/utils/cache/optimistically_update_message.d.ts.map +1 -1
  628. package/build/utils/cache/optimistically_update_message.js +2 -2
  629. package/build/utils/cache/optimistically_update_message.js.map +1 -1
  630. package/build/utils/cache/page_mutations.d.ts +5 -5
  631. package/build/utils/cache/page_mutations.d.ts.map +1 -1
  632. package/build/utils/cache/page_mutations.js.map +1 -1
  633. package/build/utils/client/client.d.ts +1 -1
  634. package/build/utils/client/client.d.ts.map +1 -1
  635. package/build/utils/client/client.js.map +1 -1
  636. package/build/utils/client/transform_request_data.d.ts.map +1 -1
  637. package/build/utils/client/transform_request_data.js.map +1 -1
  638. package/build/utils/convert_attachments_for_create.d.ts +2 -2
  639. package/build/utils/convert_attachments_for_create.d.ts.map +1 -1
  640. package/build/utils/convert_attachments_for_create.js.map +1 -1
  641. package/build/utils/destructure_chat_group_graph_id.d.ts +2 -2
  642. package/build/utils/destructure_chat_group_graph_id.d.ts.map +1 -1
  643. package/build/utils/destructure_chat_group_graph_id.js.map +1 -1
  644. package/build/utils/jolt/transform_message_event_data_to_message_resource.d.ts +2 -2
  645. package/build/utils/jolt/transform_message_event_data_to_message_resource.d.ts.map +1 -1
  646. package/build/utils/jolt/transform_message_event_data_to_message_resource.js +1 -1
  647. package/build/utils/jolt/transform_message_event_data_to_message_resource.js.map +1 -1
  648. package/build/utils/jolt/transform_reaction_event_data_to_reaction_count_resource.d.ts +3 -3
  649. package/build/utils/jolt/transform_reaction_event_data_to_reaction_count_resource.d.ts.map +1 -1
  650. package/build/utils/jolt/transform_reaction_event_data_to_reaction_count_resource.js.map +1 -1
  651. package/build/utils/native_adapters/configuration.d.ts +3 -3
  652. package/build/utils/native_adapters/configuration.d.ts.map +1 -1
  653. package/build/utils/native_adapters/configuration.js +5 -5
  654. package/build/utils/native_adapters/configuration.js.map +1 -1
  655. package/build/utils/performance_tracking.d.ts +1 -1
  656. package/build/utils/performance_tracking.d.ts.map +1 -1
  657. package/build/utils/performance_tracking.js +1 -1
  658. package/build/utils/performance_tracking.js.map +1 -1
  659. package/build/utils/reaction_constants.d.ts +1 -1
  660. package/build/utils/reaction_constants.d.ts.map +1 -1
  661. package/build/utils/reaction_constants.js.map +1 -1
  662. package/build/utils/request/conversation.d.ts +2 -2
  663. package/build/utils/request/conversation.d.ts.map +1 -1
  664. package/build/utils/request/conversation.js.map +1 -1
  665. package/build/utils/request/get_features.d.ts +1 -1
  666. package/build/utils/request/get_features.d.ts.map +1 -1
  667. package/build/utils/request/get_features.js +1 -1
  668. package/build/utils/request/get_features.js.map +1 -1
  669. package/build/utils/request/get_message.d.ts +1 -1
  670. package/build/utils/request/get_message.d.ts.map +1 -1
  671. package/build/utils/request/get_message.js +1 -1
  672. package/build/utils/request/get_message.js.map +1 -1
  673. package/build/utils/request/get_messages.d.ts +1 -1
  674. package/build/utils/request/get_messages.d.ts.map +1 -1
  675. package/build/utils/request/get_messages.js +1 -1
  676. package/build/utils/request/get_messages.js.map +1 -1
  677. package/build/utils/response_error.d.ts +1 -1
  678. package/build/utils/response_error.d.ts.map +1 -1
  679. package/build/utils/response_error.js.map +1 -1
  680. package/build/utils/session.d.ts +1 -1
  681. package/build/utils/session.d.ts.map +1 -1
  682. package/build/utils/session.js.map +1 -1
  683. package/build/utils/session_manager.d.ts +1 -1
  684. package/build/utils/session_manager.d.ts.map +1 -1
  685. package/build/utils/session_manager.js.map +1 -1
  686. package/build/utils/styles.js +1 -1
  687. package/build/utils/styles.js.map +1 -1
  688. package/build/utils/theme.d.ts +1 -1
  689. package/build/utils/theme.d.ts.map +1 -1
  690. package/build/utils/theme.js +2 -2
  691. package/build/utils/theme.js.map +1 -1
  692. package/package.json +3 -2
  693. package/src/__tests__/contexts/session_context.tsx +7 -7
  694. package/src/__tests__/event-polyfill.test.ts +3 -4
  695. package/src/__tests__/hooks/useTheme.tsx +3 -3
  696. package/src/__tests__/hooks/use_async_storage.test.tsx +3 -3
  697. package/src/__tests__/hooks/use_conversation_messages.ts +2 -2
  698. package/src/__tests__/hooks/use_font_scale.test.ts +1 -1
  699. package/src/__tests__/utils/cache/page_mutations.ts +1 -1
  700. package/src/__tests__/utils/client.ts +5 -5
  701. package/src/__tests__/utils/native_adapters/configuration.ts +4 -4
  702. package/src/__tests__/utils/parse_simple_markdown.ts +1 -1
  703. package/src/__tests__/utils/pluralize.tsx +1 -1
  704. package/src/__tests__/utils/session.ts +2 -2
  705. package/src/__tests__/utils/uri.ts +1 -1
  706. package/src/__utils__/handlers.ts +1 -1
  707. package/src/components/conversation/attachments/attachment_card.tsx +3 -3
  708. package/src/components/conversation/attachments/attachment_deleting_overlay.tsx +2 -2
  709. package/src/components/conversation/attachments/audio_attachment.tsx +5 -5
  710. package/src/components/conversation/attachments/expanded_link.tsx +5 -5
  711. package/src/components/conversation/attachments/generic_file_attachment.tsx +6 -6
  712. package/src/components/conversation/attachments/giphy_attachment.tsx +6 -6
  713. package/src/components/conversation/attachments/image_attachment.tsx +9 -9
  714. package/src/components/conversation/attachments/video_attachment.tsx +7 -7
  715. package/src/components/conversation/empty_conversation_blank_state.tsx +1 -1
  716. package/src/components/conversation/jump_to_bottom_button.tsx +3 -3
  717. package/src/components/conversation/message.tsx +21 -21
  718. package/src/components/conversation/message_attachments.tsx +8 -8
  719. package/src/components/conversation/message_form/message_form_attachment_image.tsx +2 -2
  720. package/src/components/conversation/message_form/message_form_attachment_video.tsx +2 -2
  721. package/src/components/conversation/message_form.tsx +21 -23
  722. package/src/components/conversation/message_markdown.tsx +3 -3
  723. package/src/components/conversation/message_reaction.tsx +8 -8
  724. package/src/components/conversation/message_read_receipts.tsx +3 -3
  725. package/src/components/conversation/messages_disabled_banners.tsx +2 -2
  726. package/src/components/conversation/reply_connectors.tsx +3 -3
  727. package/src/components/conversation/reply_shadow_message.tsx +12 -12
  728. package/src/components/conversation/typing_indicator.tsx +3 -3
  729. package/src/components/conversations/conversation_actions.tsx +6 -9
  730. package/src/components/conversations/conversation_preview.tsx +5 -10
  731. package/src/components/conversations/conversations.tsx +6 -6
  732. package/src/components/conversations/mute_indicator.tsx +3 -3
  733. package/src/components/conversations/swipeable_toggle_button.tsx +5 -5
  734. package/src/components/conversations/unread_count_badge.tsx +3 -3
  735. package/src/components/display/action_button.tsx +5 -5
  736. package/src/components/display/avatar.tsx +2 -2
  737. package/src/components/display/avatar_group.tsx +2 -2
  738. package/src/components/display/badge.tsx +3 -3
  739. package/src/components/display/banner.tsx +2 -2
  740. package/src/components/display/banner_collapsible.tsx +1 -1
  741. package/src/components/display/button.tsx +3 -3
  742. package/src/components/display/child_notice.tsx +4 -4
  743. package/src/components/display/heading.tsx +3 -3
  744. package/src/components/display/icon.tsx +7 -8
  745. package/src/components/display/icon_button.tsx +2 -2
  746. package/src/components/display/image.tsx +1 -1
  747. package/src/components/display/image_attachment_preview.tsx +4 -4
  748. package/src/components/display/keyboard_view.tsx +1 -1
  749. package/src/components/display/person.tsx +3 -3
  750. package/src/components/display/platform_modal_header_buttons.tsx +4 -4
  751. package/src/components/display/pressable_row.tsx +1 -1
  752. package/src/components/display/spinner.tsx +1 -1
  753. package/src/components/display/switch.tsx +1 -1
  754. package/src/components/display/tabs.tsx +1 -1
  755. package/src/components/display/text.tsx +2 -2
  756. package/src/components/display/text_button.tsx +2 -2
  757. package/src/components/display/text_inline_button.tsx +3 -3
  758. package/src/components/display/toggle_button.tsx +5 -5
  759. package/src/components/display/utils/button_colors.ts +1 -1
  760. package/src/components/display/utils/status_colors.ts +1 -1
  761. package/src/components/display/video_attachment_preview.tsx +5 -5
  762. package/src/components/group_conversation_list.tsx +3 -3
  763. package/src/components/page/error_boundary.tsx +2 -2
  764. package/src/components/page/loading.tsx +1 -1
  765. package/src/components/primitive/avatar_primitive.tsx +5 -5
  766. package/src/components/primitive/banner_primitive.tsx +8 -8
  767. package/src/components/primitive/blank_state_primitive.tsx +2 -2
  768. package/src/components/primitive/form_sheet.tsx +4 -4
  769. package/src/components/safe_area_modal.tsx +1 -1
  770. package/src/contexts/api_provider.tsx +4 -4
  771. package/src/contexts/chat_context.tsx +7 -7
  772. package/src/contexts/conversations_context.tsx +4 -4
  773. package/src/contexts/session_context.tsx +9 -9
  774. package/src/hooks/groups/use_group_members_for_new_conversation.ts +4 -4
  775. package/src/hooks/groups/use_groups_conversation_create.ts +3 -3
  776. package/src/hooks/services/use_find_or_create_services_conversation.ts +4 -4
  777. package/src/hooks/services/use_services_team.ts +2 -2
  778. package/src/hooks/services/use_team_members_for_new_conversation.ts +2 -2
  779. package/src/hooks/services/use_team_plans.ts +3 -3
  780. package/src/hooks/use_api.ts +2 -2
  781. package/src/hooks/use_api_client.ts +3 -3
  782. package/src/hooks/use_async_storage.ts +1 -1
  783. package/src/hooks/use_attachment_uploader.ts +3 -3
  784. package/src/hooks/use_broadcast_typing_status.ts +1 -1
  785. package/src/hooks/use_chat_permissions.ts +1 -1
  786. package/src/hooks/use_conversation.ts +5 -4
  787. package/src/hooks/use_conversation_jolt_events.ts +3 -3
  788. package/src/hooks/use_conversation_membership.ts +3 -3
  789. package/src/hooks/use_conversation_message.ts +2 -2
  790. package/src/hooks/use_conversation_messages.ts +2 -2
  791. package/src/hooks/use_conversation_messages_jolt_events.ts +14 -14
  792. package/src/hooks/use_conversations.ts +2 -2
  793. package/src/hooks/use_conversations_actions.ts +2 -2
  794. package/src/hooks/use_conversations_cache.ts +5 -5
  795. package/src/hooks/use_conversations_jolt_events.ts +4 -4
  796. package/src/hooks/use_create_android_ripple_color.ts +1 -1
  797. package/src/hooks/use_current_person.ts +2 -2
  798. package/src/hooks/use_features.ts +4 -4
  799. package/src/hooks/use_font_scale.ts +1 -1
  800. package/src/hooks/use_giphy.ts +2 -2
  801. package/src/hooks/use_groups.ts +2 -2
  802. package/src/hooks/use_groups_groups.ts +1 -1
  803. package/src/hooks/use_interaction_ghost_color.ts +1 -1
  804. package/src/hooks/use_jolt.ts +3 -3
  805. package/src/hooks/use_live_relative_time.ts +2 -2
  806. package/src/hooks/use_mark_latest_message_read.ts +1 -1
  807. package/src/hooks/use_message_create_or_update.ts +10 -10
  808. package/src/hooks/use_message_draft.ts +2 -2
  809. package/src/hooks/use_message_reaction_toggle.ts +4 -4
  810. package/src/hooks/use_my_gender.ts +1 -1
  811. package/src/hooks/use_organization.ts +2 -2
  812. package/src/hooks/use_people_person.ts +1 -1
  813. package/src/hooks/use_product_analytics.ts +5 -5
  814. package/src/hooks/use_qualified_by_age.ts +1 -1
  815. package/src/hooks/use_read_receipts.ts +1 -1
  816. package/src/hooks/use_report_message.ts +2 -2
  817. package/src/hooks/use_storage.ts +1 -1
  818. package/src/hooks/use_submit_age_check.ts +3 -3
  819. package/src/hooks/use_suspense_api.ts +5 -5
  820. package/src/hooks/use_teams.ts +1 -1
  821. package/src/hooks/use_theme.tsx +2 -2
  822. package/src/hooks/use_typing_indicators.ts +2 -2
  823. package/src/hooks/use_typing_status_cache.ts +1 -1
  824. package/src/hooks/use_upload_client.ts +3 -3
  825. package/src/navigation/chat_access_gate.tsx +7 -7
  826. package/src/navigation/index.tsx +34 -37
  827. package/src/navigation/screenLayout.tsx +2 -2
  828. package/src/polyfills/events/Event.ts +1 -1
  829. package/src/polyfills/events/EventTarget.ts +1 -1
  830. package/src/polyfills/events/internals/EventInternals.ts +2 -2
  831. package/src/polyfills/events/internals/EventTargetInternals.ts +2 -2
  832. package/src/screens/age_check/age_check_required_screen.tsx +9 -9
  833. package/src/screens/age_check/age_check_underage_screen.tsx +4 -4
  834. package/src/screens/age_check/components/age_check_select_birthdate_modal.tsx +4 -4
  835. package/src/screens/attachment_actions/attachment_actions_screen.tsx +1 -1
  836. package/src/screens/attachment_actions/hooks/useDeleteAttachment.tsx +4 -4
  837. package/src/screens/bug_report_screen.tsx +18 -18
  838. package/src/screens/conversation/message_read_receipts_screen.tsx +6 -6
  839. package/src/screens/conversation_details_screen.tsx +47 -13
  840. package/src/screens/conversation_filter_recipients/components/checkbox_row.tsx +9 -5
  841. package/src/screens/conversation_filter_recipients/components/header_row.tsx +6 -6
  842. package/src/screens/conversation_filter_recipients/conversation_filter_recipients_screen.tsx +6 -6
  843. package/src/screens/conversation_filter_recipients/hooks/use_flattened_array_of_service_types_with_teams.tsx +5 -1
  844. package/src/screens/conversation_filter_recipients/hooks/use_service_types_with_teams.ts +6 -3
  845. package/src/screens/conversation_filter_recipients/types.tsx +2 -2
  846. package/src/screens/conversation_filters/components/conversation_filters.tsx +8 -5
  847. package/src/screens/conversation_filters/components/rows.tsx +9 -14
  848. package/src/screens/conversation_filters/context/conversation_filter_context.tsx +6 -3
  849. package/src/screens/conversation_filters/group_filters.tsx +4 -4
  850. package/src/screens/conversation_filters/hooks/filters.ts +5 -5
  851. package/src/screens/conversation_filters/screen_props.ts +1 -1
  852. package/src/screens/conversation_filters/team_filters.tsx +1 -1
  853. package/src/screens/conversation_filters_screen.tsx +2 -2
  854. package/src/screens/conversation_new/components/filter_by_plan.tsx +8 -8
  855. package/src/screens/conversation_new/components/form_list.tsx +3 -3
  856. package/src/screens/conversation_new/components/gender_filter_toggle.tsx +3 -3
  857. package/src/screens/conversation_new/components/groups_form.tsx +14 -14
  858. package/src/screens/conversation_new/components/services_form.tsx +12 -12
  859. package/src/screens/conversation_new/components/source_app_error_card.tsx +1 -1
  860. package/src/screens/conversation_new/conversation_new_screen.tsx +3 -3
  861. package/src/screens/conversation_notification_level_select_screen.tsx +6 -6
  862. package/src/screens/conversation_screen.tsx +23 -23
  863. package/src/screens/conversation_select_recipients/components/groups_recipient_row.tsx +2 -2
  864. package/src/screens/conversation_select_recipients/components/recipient_link_row.tsx +3 -3
  865. package/src/screens/conversation_select_recipients/components/restricted_group_row.tsx +4 -4
  866. package/src/screens/conversation_select_recipients/components/team_recipient_row.tsx +2 -2
  867. package/src/screens/conversation_select_recipients/components/view_more_link_row.tsx +1 -1
  868. package/src/screens/conversation_select_recipients/conversation_new_entry_screen.tsx +4 -4
  869. package/src/screens/conversation_select_recipients/conversation_select_group_recipients_screen.tsx +4 -4
  870. package/src/screens/conversation_select_recipients/conversation_select_teams_i_lead_recipients_screen.tsx +8 -5
  871. package/src/screens/conversation_select_recipients/types/screen_props.tsx +2 -2
  872. package/src/screens/conversation_select_type_screen.tsx +5 -5
  873. package/src/screens/conversations/components/chat_group_badge.tsx +4 -4
  874. package/src/screens/conversations/components/list_header_action_button.tsx +4 -4
  875. package/src/screens/conversations/components/list_header_component.tsx +10 -10
  876. package/src/screens/conversations/conversations_screen.tsx +5 -5
  877. package/src/screens/design_system_screen.tsx +6 -6
  878. package/src/screens/get_help_screen.tsx +5 -5
  879. package/src/screens/group_notification_level_select_screen.tsx +3 -3
  880. package/src/screens/group_notification_settings_screen.tsx +4 -4
  881. package/src/screens/message_actions_screen.tsx +12 -12
  882. package/src/screens/message_report/components/message_preview.tsx +3 -3
  883. package/src/screens/message_report/components/report_reason_list.tsx +5 -8
  884. package/src/screens/message_report_screen.tsx +15 -15
  885. package/src/screens/not_found.tsx +1 -1
  886. package/src/screens/notification_settings/hooks/groups.ts +6 -6
  887. package/src/screens/notification_settings_screen.tsx +4 -4
  888. package/src/screens/preferred_app/hooks/use_chat_types.ts +2 -2
  889. package/src/screens/preferred_app_selection_screen.tsx +7 -7
  890. package/src/screens/reactions_screen.tsx +9 -9
  891. package/src/screens/send_giphy_screen.tsx +8 -8
  892. package/src/screens/team_conversation_screen.tsx +3 -3
  893. package/src/types/jolt_events/message_events.ts +1 -1
  894. package/src/types/jolt_events/reaction_events.ts +1 -1
  895. package/src/types/resources/app_grant.ts +1 -1
  896. package/src/types/resources/conversation.ts +1 -0
  897. package/src/types/resources/conversation_membership.ts +1 -1
  898. package/src/types/resources/group_membership.ts +1 -1
  899. package/src/types/resources/groups/groups_group_resource.ts +1 -1
  900. package/src/types/resources/organization.ts +1 -1
  901. package/src/types/resources/person.ts +1 -1
  902. package/src/types/resources/services/chat_resource.ts +1 -1
  903. package/src/types/resources/services/team_resource.ts +1 -1
  904. package/src/utils/__tests__/convert_attachments_for_create.test.ts +3 -3
  905. package/src/utils/__tests__/session_manager.test.ts +3 -3
  906. package/src/utils/__tests__/sha_256.test.ts +1 -1
  907. package/src/utils/cache/messages_cache.ts +6 -6
  908. package/src/utils/cache/optimistically_create_message.ts +7 -7
  909. package/src/utils/cache/optimistically_update_message.ts +3 -3
  910. package/src/utils/cache/page_mutations.ts +1 -1
  911. package/src/utils/client/client.ts +1 -2
  912. package/src/utils/client/transform_request_data.ts +1 -1
  913. package/src/utils/convert_attachments_for_create.ts +2 -2
  914. package/src/utils/destructure_chat_group_graph_id.ts +2 -2
  915. package/src/utils/jolt/transform_message_event_data_to_message_resource.ts +4 -4
  916. package/src/utils/jolt/transform_reaction_event_data_to_reaction_count_resource.ts +3 -3
  917. package/src/utils/native_adapters/configuration.ts +5 -5
  918. package/src/utils/performance_tracking.ts +2 -2
  919. package/src/utils/reaction_constants.ts +1 -1
  920. package/src/utils/request/conversation.ts +2 -2
  921. package/src/utils/request/get_features.ts +1 -1
  922. package/src/utils/request/get_message.ts +1 -1
  923. package/src/utils/request/get_messages.ts +1 -1
  924. package/src/utils/response_error.ts +1 -1
  925. package/src/utils/session.ts +1 -1
  926. package/src/utils/session_manager.ts +1 -1
  927. package/src/utils/styles.ts +1 -1
  928. package/src/utils/theme.ts +2 -2
@@ -1 +1 @@
1
- {"version":3,"file":"use_find_or_create_services_conversation.js","sourceRoot":"","sources":["../../../src/hooks/services/use_find_or_create_services_conversation.ts"],"names":[],"mappings":"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","sourcesContent":["import { useMutation, useQuery } from '@tanstack/react-query'\nimport { useMemo } from 'react'\nimport { omitBy, isNil } from 'lodash'\nimport {\n ApiCollection,\n ApiResource,\n ConversationResource,\n ServicesChatGroupIdentifiersResource,\n ServicesChatPayloadResource,\n} from '../../types'\nimport { ApiClient, useApiClient } from '../use_api_client'\nimport { throwResponseError } from '../../utils/response_error'\n\ninterface Props {\n teamIds?: number[]\n planId?: number\n onSuccess?: (conversation: ConversationResource) => void\n}\n\ninterface TeamAndPlanParams {\n team_id?: string | null\n plan_id?: number\n}\n\nexport const useFindOrCreateServicesConversation = ({ teamIds, planId, onSuccess }: Props) => {\n const apiClient = useApiClient()\n\n const teamAndPlanParams: TeamAndPlanParams = useMemo(\n () =>\n omitBy(\n {\n team_id: teamIds?.join(',') || null,\n plan_id: planId,\n },\n isNil\n ),\n [teamIds, planId]\n )\n\n const { data: selectionHasConversation = false, isLoading: isLoadingConversationCheck } =\n useQuery({\n queryKey: ['conversation-with-group-exists', teamAndPlanParams],\n queryFn: () => checkIfConversationWithGroupExists(apiClient, teamAndPlanParams),\n enabled: !!(teamIds?.length || planId),\n })\n\n const mutation = useMutation({\n throwOnError: true,\n onSuccess: result => {\n onSuccess && onSuccess(result)\n },\n mutationFn: async () => findOrCreateServicesConversation(apiClient, teamAndPlanParams),\n })\n\n return { ...mutation, selectionHasConversation, isLoadingConversationCheck }\n}\n\nexport const findOrCreateServicesConversation = async (\n apiClient: ApiClient,\n teamAndPlanParams: TeamAndPlanParams\n) => {\n const foundConversations = await getGroupIdsFromServices(apiClient, teamAndPlanParams)\n .then(res => res.data.groupIdentifiers)\n .then(groupIdentifiers => findConversationWithExactTeams(apiClient, groupIdentifiers))\n .catch(() => null)\n const foundConversation = foundConversations?.data[0]\n\n if (foundConversation?.id) {\n return foundConversation\n }\n\n return fetchServicesPayload(apiClient, teamAndPlanParams)\n .then(res => res.data.payload)\n .then(payload => createConversation(apiClient, payload))\n .then(res => res.data)\n .catch(throwResponseError)\n}\n\nexport const fetchServicesPayload = (\n apiClient: ApiClient,\n teamAndPlanParams: TeamAndPlanParams\n) => {\n return apiClient.services.get({\n url: `/chat`,\n data: {\n ...teamAndPlanParams,\n fields: {\n Chat: ['payload'],\n },\n },\n }) as Promise<ApiResource<ServicesChatPayloadResource>>\n}\n\nexport const getGroupIdsFromServices = (\n apiClient: ApiClient,\n teamAndPlanParams: TeamAndPlanParams\n) => {\n return apiClient.services.get({\n url: '/chat',\n data: {\n ...teamAndPlanParams,\n fields: {\n Chat: ['group_identifiers'],\n },\n },\n }) as Promise<ApiResource<ServicesChatGroupIdentifiersResource>>\n}\n\nexport const findConversationWithExactTeams = (\n apiClient: ApiClient,\n groupIdentifiers: string[]\n) => {\n return apiClient.chat.get({\n url: '/me/conversations',\n data: {\n fields: {\n Conversation: ['stream_channel', 'title'],\n },\n filter: 'with_exact_groups',\n gids: groupIdentifiers.join(','),\n },\n }) as Promise<ApiCollection<ConversationResource>>\n}\n\nexport const createConversation = (apiClient: ApiClient, payload: string) => {\n return apiClient.chat.post({\n url: '/me/conversations',\n data: {\n data: { type: 'Conversation', attributes: { payload } },\n },\n }) as Promise<ApiResource<ConversationResource>>\n}\n\nexport const findExactTeamConversation = (apiClient: ApiClient, groupIdentifiers: string[]) => {\n return apiClient.chat.get({\n url: '/me/conversations',\n data: {\n fields: {\n Conversation: ['stream_channel', 'title'],\n },\n filter: 'with_exact_groups',\n gids: groupIdentifiers.join(','),\n },\n }) as Promise<ApiCollection<ConversationResource>>\n}\n\nexport const checkIfConversationWithGroupExists = (\n apiClient: ApiClient,\n teamAndPlanParams: TeamAndPlanParams\n) => {\n return getGroupIdsFromServices(apiClient, teamAndPlanParams)\n .then(res => res.data.groupIdentifiers)\n .then(groupIdentifiers => findExactTeamConversation(apiClient, groupIdentifiers))\n .then(response => response.data.length > 0)\n}\n\nexport const buildTeamAndPlanParams = (teamIds: number[] = [], planId?: number) => {\n return omitBy(\n {\n team_id: teamIds.join(','),\n plan_id: planId,\n },\n isNil\n )\n}\n"]}
1
+ {"version":3,"file":"use_find_or_create_services_conversation.js","sourceRoot":"","sources":["../../../src/hooks/services/use_find_or_create_services_conversation.ts"],"names":[],"mappings":"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","sourcesContent":["import { useMutation, useQuery } from '@tanstack/react-query'\nimport { omitBy, isNil } from 'lodash'\nimport { useMemo } from 'react'\nimport { ApiClient, useApiClient } from '@/hooks/use_api_client'\nimport {\n ApiCollection,\n ApiResource,\n ConversationResource,\n ServicesChatGroupIdentifiersResource,\n ServicesChatPayloadResource,\n} from '@/types'\nimport { throwResponseError } from '@/utils/response_error'\n\ninterface Props {\n teamIds?: number[]\n planId?: number\n onSuccess?: (conversation: ConversationResource) => void\n}\n\ninterface TeamAndPlanParams {\n team_id?: string | null\n plan_id?: number\n}\n\nexport const useFindOrCreateServicesConversation = ({ teamIds, planId, onSuccess }: Props) => {\n const apiClient = useApiClient()\n\n const teamAndPlanParams: TeamAndPlanParams = useMemo(\n () =>\n omitBy(\n {\n team_id: teamIds?.join(',') || null,\n plan_id: planId,\n },\n isNil\n ),\n [teamIds, planId]\n )\n\n const { data: selectionHasConversation = false, isLoading: isLoadingConversationCheck } =\n useQuery({\n queryKey: ['conversation-with-group-exists', teamAndPlanParams],\n queryFn: () => checkIfConversationWithGroupExists(apiClient, teamAndPlanParams),\n enabled: !!(teamIds?.length || planId),\n })\n\n const mutation = useMutation({\n throwOnError: true,\n onSuccess: result => {\n onSuccess && onSuccess(result)\n },\n mutationFn: async () => findOrCreateServicesConversation(apiClient, teamAndPlanParams),\n })\n\n return { ...mutation, selectionHasConversation, isLoadingConversationCheck }\n}\n\nexport const findOrCreateServicesConversation = async (\n apiClient: ApiClient,\n teamAndPlanParams: TeamAndPlanParams\n) => {\n const foundConversations = await getGroupIdsFromServices(apiClient, teamAndPlanParams)\n .then(res => res.data.groupIdentifiers)\n .then(groupIdentifiers => findConversationWithExactTeams(apiClient, groupIdentifiers))\n .catch(() => null)\n const foundConversation = foundConversations?.data[0]\n\n if (foundConversation?.id) {\n return foundConversation\n }\n\n return fetchServicesPayload(apiClient, teamAndPlanParams)\n .then(res => res.data.payload)\n .then(payload => createConversation(apiClient, payload))\n .then(res => res.data)\n .catch(throwResponseError)\n}\n\nexport const fetchServicesPayload = (\n apiClient: ApiClient,\n teamAndPlanParams: TeamAndPlanParams\n) => {\n return apiClient.services.get({\n url: `/chat`,\n data: {\n ...teamAndPlanParams,\n fields: {\n Chat: ['payload'],\n },\n },\n }) as Promise<ApiResource<ServicesChatPayloadResource>>\n}\n\nexport const getGroupIdsFromServices = (\n apiClient: ApiClient,\n teamAndPlanParams: TeamAndPlanParams\n) => {\n return apiClient.services.get({\n url: '/chat',\n data: {\n ...teamAndPlanParams,\n fields: {\n Chat: ['group_identifiers'],\n },\n },\n }) as Promise<ApiResource<ServicesChatGroupIdentifiersResource>>\n}\n\nexport const findConversationWithExactTeams = (\n apiClient: ApiClient,\n groupIdentifiers: string[]\n) => {\n return apiClient.chat.get({\n url: '/me/conversations',\n data: {\n fields: {\n Conversation: ['stream_channel', 'title'],\n },\n filter: 'with_exact_groups',\n gids: groupIdentifiers.join(','),\n },\n }) as Promise<ApiCollection<ConversationResource>>\n}\n\nexport const createConversation = (apiClient: ApiClient, payload: string) => {\n return apiClient.chat.post({\n url: '/me/conversations',\n data: {\n data: { type: 'Conversation', attributes: { payload } },\n },\n }) as Promise<ApiResource<ConversationResource>>\n}\n\nexport const findExactTeamConversation = (apiClient: ApiClient, groupIdentifiers: string[]) => {\n return apiClient.chat.get({\n url: '/me/conversations',\n data: {\n fields: {\n Conversation: ['stream_channel', 'title'],\n },\n filter: 'with_exact_groups',\n gids: groupIdentifiers.join(','),\n },\n }) as Promise<ApiCollection<ConversationResource>>\n}\n\nexport const checkIfConversationWithGroupExists = (\n apiClient: ApiClient,\n teamAndPlanParams: TeamAndPlanParams\n) => {\n return getGroupIdsFromServices(apiClient, teamAndPlanParams)\n .then(res => res.data.groupIdentifiers)\n .then(groupIdentifiers => findExactTeamConversation(apiClient, groupIdentifiers))\n .then(response => response.data.length > 0)\n}\n\nexport const buildTeamAndPlanParams = (teamIds: number[] = [], planId?: number) => {\n return omitBy(\n {\n team_id: teamIds.join(','),\n plan_id: planId,\n },\n isNil\n )\n}\n"]}
@@ -1,4 +1,4 @@
1
- import { TeamOptionResponseItem } from '../../types';
1
+ import { TeamOptionResponseItem } from '@/types';
2
2
  export declare const useServicesTeams: () => TeamOptionResponseItem[];
3
3
  export declare const useServicesTeamsMap: () => Record<string, TeamOptionResponseItem>;
4
4
  //# sourceMappingURL=use_services_team.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"use_services_team.d.ts","sourceRoot":"","sources":["../../../src/hooks/services/use_services_team.ts"],"names":[],"mappings":"AAAA,OAAO,EAAsB,sBAAsB,EAAE,MAAM,aAAa,CAAA;AAGxE,eAAO,MAAM,gBAAgB,gCAY5B,CAAA;AAED,eAAO,MAAM,mBAAmB,8CAY/B,CAAA"}
1
+ {"version":3,"file":"use_services_team.d.ts","sourceRoot":"","sources":["../../../src/hooks/services/use_services_team.ts"],"names":[],"mappings":"AACA,OAAO,EAAsB,sBAAsB,EAAE,MAAM,SAAS,CAAA;AAEpE,eAAO,MAAM,gBAAgB,gCAY5B,CAAA;AAED,eAAO,MAAM,mBAAmB,8CAY/B,CAAA"}
@@ -1,4 +1,4 @@
1
- import { useApiGet } from '../use_api';
1
+ import { useApiGet } from '@/hooks/use_api';
2
2
  export const useServicesTeams = () => {
3
3
  const { data: chat } = useApiGet({
4
4
  url: '/chat',
@@ -1 +1 @@
1
- {"version":3,"file":"use_services_team.js","sourceRoot":"","sources":["../../../src/hooks/services/use_services_team.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,MAAM,YAAY,CAAA;AAEtC,MAAM,CAAC,MAAM,gBAAgB,GAAG,GAAG,EAAE;IACnC,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,GAAG,SAAS,CAAqB;QACnD,GAAG,EAAE,OAAO;QACZ,IAAI,EAAE;YACJ,MAAM,EAAE;gBACN,IAAI,EAAE,CAAC,OAAO,CAAC;aAChB;SACF;QACD,GAAG,EAAE,UAAU;KAChB,CAAC,CAAA;IAEF,OAAO,IAAI,EAAE,KAAK,IAAI,EAAE,CAAA;AAC1B,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,mBAAmB,GAAG,GAAG,EAAE;IACtC,MAAM,KAAK,GAAG,gBAAgB,EAAE,CAAA;IAEhC,OAAO,KAAK,CAAC,MAAM,CACjB,CAAC,GAAG,EAAE,IAAI,EAAE,EAAE;QACZ,MAAM,EAAE,GAAG,iBAAiB,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,CAAA;QAC/C,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAA;QAEd,OAAO,GAAG,CAAA;IACZ,CAAC,EACD,EAA4C,CAC7C,CAAA;AACH,CAAC,CAAA","sourcesContent":["import { TeamOptionResource, TeamOptionResponseItem } from '../../types'\nimport { useApiGet } from '../use_api'\n\nexport const useServicesTeams = () => {\n const { data: chat } = useApiGet<TeamOptionResource>({\n url: '/chat',\n data: {\n fields: {\n Chat: ['teams'],\n },\n },\n app: 'services',\n })\n\n return chat?.teams || []\n}\n\nexport const useServicesTeamsMap = () => {\n const teams = useServicesTeams()\n\n return teams.reduce(\n (acc, team) => {\n const id = `Services-Team-${team.value.teamId}`\n acc[id] = team\n\n return acc\n },\n {} as Record<string, TeamOptionResponseItem>\n )\n}\n"]}
1
+ {"version":3,"file":"use_services_team.js","sourceRoot":"","sources":["../../../src/hooks/services/use_services_team.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAA;AAG3C,MAAM,CAAC,MAAM,gBAAgB,GAAG,GAAG,EAAE;IACnC,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,GAAG,SAAS,CAAqB;QACnD,GAAG,EAAE,OAAO;QACZ,IAAI,EAAE;YACJ,MAAM,EAAE;gBACN,IAAI,EAAE,CAAC,OAAO,CAAC;aAChB;SACF;QACD,GAAG,EAAE,UAAU;KAChB,CAAC,CAAA;IAEF,OAAO,IAAI,EAAE,KAAK,IAAI,EAAE,CAAA;AAC1B,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,mBAAmB,GAAG,GAAG,EAAE;IACtC,MAAM,KAAK,GAAG,gBAAgB,EAAE,CAAA;IAEhC,OAAO,KAAK,CAAC,MAAM,CACjB,CAAC,GAAG,EAAE,IAAI,EAAE,EAAE;QACZ,MAAM,EAAE,GAAG,iBAAiB,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,CAAA;QAC/C,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAA;QAEd,OAAO,GAAG,CAAA;IACZ,CAAC,EACD,EAA4C,CAC7C,CAAA;AACH,CAAC,CAAA","sourcesContent":["import { useApiGet } from '@/hooks/use_api'\nimport { TeamOptionResource, TeamOptionResponseItem } from '@/types'\n\nexport const useServicesTeams = () => {\n const { data: chat } = useApiGet<TeamOptionResource>({\n url: '/chat',\n data: {\n fields: {\n Chat: ['teams'],\n },\n },\n app: 'services',\n })\n\n return chat?.teams || []\n}\n\nexport const useServicesTeamsMap = () => {\n const teams = useServicesTeams()\n\n return teams.reduce(\n (acc, team) => {\n const id = `Services-Team-${team.value.teamId}`\n acc[id] = team\n\n return acc\n },\n {} as Record<string, TeamOptionResponseItem>\n )\n}\n"]}
@@ -1,10 +1,10 @@
1
- import { MemberResource, TeamPeopleResource } from '../../types';
1
+ import { MemberResource, TeamPeopleResource } from '@/types';
2
2
  interface Props {
3
3
  teamIds: number[];
4
4
  planId?: number;
5
5
  }
6
6
  export declare function useTeamMembersForNewConversation({ teamIds, planId }: Props): {
7
- error: import("../../types").FailedResponse;
7
+ error: import("@/types").FailedResponse;
8
8
  isError: true;
9
9
  isPending: false;
10
10
  isLoading: false;
@@ -16,7 +16,7 @@ export declare function useTeamMembersForNewConversation({ teamIds, planId }: Pr
16
16
  dataUpdatedAt: number;
17
17
  errorUpdatedAt: number;
18
18
  failureCount: number;
19
- failureReason: import("../../types").FailedResponse | null;
19
+ failureReason: import("@/types").FailedResponse | null;
20
20
  errorUpdateCount: number;
21
21
  isFetched: boolean;
22
22
  isFetchedAfterMount: boolean;
@@ -25,9 +25,9 @@ export declare function useTeamMembersForNewConversation({ teamIds, planId }: Pr
25
25
  isPaused: boolean;
26
26
  isRefetching: boolean;
27
27
  isStale: boolean;
28
- refetch: (options?: import("@tanstack/query-core").RefetchOptions) => Promise<import("@tanstack/query-core").QueryObserverResult<import("../../types").ApiResource<TeamPeopleResource>, import("../../types").FailedResponse>>;
28
+ refetch: (options?: import("@tanstack/query-core").RefetchOptions) => Promise<import("@tanstack/query-core").QueryObserverResult<import("@/types").ApiResource<TeamPeopleResource>, import("@/types").FailedResponse>>;
29
29
  fetchStatus: import("@tanstack/query-core").FetchStatus;
30
- promise: Promise<import("../../types").ApiResource<TeamPeopleResource>>;
30
+ promise: Promise<import("@/types").ApiResource<TeamPeopleResource>>;
31
31
  links?: Record<string, string> | undefined;
32
32
  meta?: Record<string, unknown> | undefined;
33
33
  members: MemberResource[];
@@ -44,7 +44,7 @@ export declare function useTeamMembersForNewConversation({ teamIds, planId }: Pr
44
44
  dataUpdatedAt: number;
45
45
  errorUpdatedAt: number;
46
46
  failureCount: number;
47
- failureReason: import("../../types").FailedResponse | null;
47
+ failureReason: import("@/types").FailedResponse | null;
48
48
  errorUpdateCount: number;
49
49
  isFetched: boolean;
50
50
  isFetchedAfterMount: boolean;
@@ -53,14 +53,14 @@ export declare function useTeamMembersForNewConversation({ teamIds, planId }: Pr
53
53
  isPaused: boolean;
54
54
  isRefetching: boolean;
55
55
  isStale: boolean;
56
- refetch: (options?: import("@tanstack/query-core").RefetchOptions) => Promise<import("@tanstack/query-core").QueryObserverResult<import("../../types").ApiResource<TeamPeopleResource>, import("../../types").FailedResponse>>;
56
+ refetch: (options?: import("@tanstack/query-core").RefetchOptions) => Promise<import("@tanstack/query-core").QueryObserverResult<import("@/types").ApiResource<TeamPeopleResource>, import("@/types").FailedResponse>>;
57
57
  fetchStatus: import("@tanstack/query-core").FetchStatus;
58
- promise: Promise<import("../../types").ApiResource<TeamPeopleResource>>;
58
+ promise: Promise<import("@/types").ApiResource<TeamPeopleResource>>;
59
59
  links?: Record<string, string> | undefined;
60
60
  meta?: Record<string, unknown> | undefined;
61
61
  members: MemberResource[];
62
62
  } | {
63
- error: import("../../types").FailedResponse;
63
+ error: import("@/types").FailedResponse;
64
64
  isError: true;
65
65
  isPending: false;
66
66
  isLoading: false;
@@ -72,7 +72,7 @@ export declare function useTeamMembersForNewConversation({ teamIds, planId }: Pr
72
72
  dataUpdatedAt: number;
73
73
  errorUpdatedAt: number;
74
74
  failureCount: number;
75
- failureReason: import("../../types").FailedResponse | null;
75
+ failureReason: import("@/types").FailedResponse | null;
76
76
  errorUpdateCount: number;
77
77
  isFetched: boolean;
78
78
  isFetchedAfterMount: boolean;
@@ -81,9 +81,9 @@ export declare function useTeamMembersForNewConversation({ teamIds, planId }: Pr
81
81
  isPaused: boolean;
82
82
  isRefetching: boolean;
83
83
  isStale: boolean;
84
- refetch: (options?: import("@tanstack/query-core").RefetchOptions) => Promise<import("@tanstack/query-core").QueryObserverResult<import("../../types").ApiResource<TeamPeopleResource>, import("../../types").FailedResponse>>;
84
+ refetch: (options?: import("@tanstack/query-core").RefetchOptions) => Promise<import("@tanstack/query-core").QueryObserverResult<import("@/types").ApiResource<TeamPeopleResource>, import("@/types").FailedResponse>>;
85
85
  fetchStatus: import("@tanstack/query-core").FetchStatus;
86
- promise: Promise<import("../../types").ApiResource<TeamPeopleResource>>;
86
+ promise: Promise<import("@/types").ApiResource<TeamPeopleResource>>;
87
87
  links?: Record<string, string> | undefined;
88
88
  meta?: Record<string, unknown> | undefined;
89
89
  members: MemberResource[];
@@ -100,7 +100,7 @@ export declare function useTeamMembersForNewConversation({ teamIds, planId }: Pr
100
100
  dataUpdatedAt: number;
101
101
  errorUpdatedAt: number;
102
102
  failureCount: number;
103
- failureReason: import("../../types").FailedResponse | null;
103
+ failureReason: import("@/types").FailedResponse | null;
104
104
  errorUpdateCount: number;
105
105
  isFetched: boolean;
106
106
  isFetchedAfterMount: boolean;
@@ -109,9 +109,9 @@ export declare function useTeamMembersForNewConversation({ teamIds, planId }: Pr
109
109
  isPaused: boolean;
110
110
  isRefetching: boolean;
111
111
  isStale: boolean;
112
- refetch: (options?: import("@tanstack/query-core").RefetchOptions) => Promise<import("@tanstack/query-core").QueryObserverResult<import("../../types").ApiResource<TeamPeopleResource>, import("../../types").FailedResponse>>;
112
+ refetch: (options?: import("@tanstack/query-core").RefetchOptions) => Promise<import("@tanstack/query-core").QueryObserverResult<import("@/types").ApiResource<TeamPeopleResource>, import("@/types").FailedResponse>>;
113
113
  fetchStatus: import("@tanstack/query-core").FetchStatus;
114
- promise: Promise<import("../../types").ApiResource<TeamPeopleResource>>;
114
+ promise: Promise<import("@/types").ApiResource<TeamPeopleResource>>;
115
115
  links?: Record<string, string> | undefined;
116
116
  meta?: Record<string, unknown> | undefined;
117
117
  members: MemberResource[];
@@ -127,7 +127,7 @@ export declare function useTeamMembersForNewConversation({ teamIds, planId }: Pr
127
127
  dataUpdatedAt: number;
128
128
  errorUpdatedAt: number;
129
129
  failureCount: number;
130
- failureReason: import("../../types").FailedResponse | null;
130
+ failureReason: import("@/types").FailedResponse | null;
131
131
  errorUpdateCount: number;
132
132
  isFetched: boolean;
133
133
  isFetchedAfterMount: boolean;
@@ -137,9 +137,9 @@ export declare function useTeamMembersForNewConversation({ teamIds, planId }: Pr
137
137
  isPaused: boolean;
138
138
  isRefetching: boolean;
139
139
  isStale: boolean;
140
- refetch: (options?: import("@tanstack/query-core").RefetchOptions) => Promise<import("@tanstack/query-core").QueryObserverResult<import("../../types").ApiResource<TeamPeopleResource>, import("../../types").FailedResponse>>;
140
+ refetch: (options?: import("@tanstack/query-core").RefetchOptions) => Promise<import("@tanstack/query-core").QueryObserverResult<import("@/types").ApiResource<TeamPeopleResource>, import("@/types").FailedResponse>>;
141
141
  fetchStatus: import("@tanstack/query-core").FetchStatus;
142
- promise: Promise<import("../../types").ApiResource<TeamPeopleResource>>;
142
+ promise: Promise<import("@/types").ApiResource<TeamPeopleResource>>;
143
143
  links?: Record<string, string> | undefined;
144
144
  meta?: Record<string, unknown> | undefined;
145
145
  members: MemberResource[];
@@ -156,7 +156,7 @@ export declare function useTeamMembersForNewConversation({ teamIds, planId }: Pr
156
156
  dataUpdatedAt: number;
157
157
  errorUpdatedAt: number;
158
158
  failureCount: number;
159
- failureReason: import("../../types").FailedResponse | null;
159
+ failureReason: import("@/types").FailedResponse | null;
160
160
  errorUpdateCount: number;
161
161
  isFetched: boolean;
162
162
  isFetchedAfterMount: boolean;
@@ -165,9 +165,9 @@ export declare function useTeamMembersForNewConversation({ teamIds, planId }: Pr
165
165
  isPaused: boolean;
166
166
  isRefetching: boolean;
167
167
  isStale: boolean;
168
- refetch: (options?: import("@tanstack/query-core").RefetchOptions) => Promise<import("@tanstack/query-core").QueryObserverResult<import("../../types").ApiResource<TeamPeopleResource>, import("../../types").FailedResponse>>;
168
+ refetch: (options?: import("@tanstack/query-core").RefetchOptions) => Promise<import("@tanstack/query-core").QueryObserverResult<import("@/types").ApiResource<TeamPeopleResource>, import("@/types").FailedResponse>>;
169
169
  fetchStatus: import("@tanstack/query-core").FetchStatus;
170
- promise: Promise<import("../../types").ApiResource<TeamPeopleResource>>;
170
+ promise: Promise<import("@/types").ApiResource<TeamPeopleResource>>;
171
171
  links?: Record<string, string> | undefined;
172
172
  meta?: Record<string, unknown> | undefined;
173
173
  members: MemberResource[];
@@ -1 +1 @@
1
- {"version":3,"file":"use_team_members_for_new_conversation.d.ts","sourceRoot":"","sources":["../../../src/hooks/services/use_team_members_for_new_conversation.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,cAAc,EAAE,kBAAkB,EAA0B,MAAM,aAAa,CAAA;AAGxF,UAAU,KAAK;IACb,OAAO,EAAE,MAAM,EAAE,CAAA;IACjB,MAAM,CAAC,EAAE,MAAM,CAAA;CAChB;AAED,wBAAgB,gCAAgC,CAAC,EAAE,OAAO,EAAE,MAAM,EAAE,EAAE,KAAK;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EA2B1E"}
1
+ {"version":3,"file":"use_team_members_for_new_conversation.d.ts","sourceRoot":"","sources":["../../../src/hooks/services/use_team_members_for_new_conversation.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,cAAc,EAAE,kBAAkB,EAA0B,MAAM,SAAS,CAAA;AAEpF,UAAU,KAAK;IACb,OAAO,EAAE,MAAM,EAAE,CAAA;IACjB,MAAM,CAAC,EAAE,MAAM,CAAA;CAChB;AAED,wBAAgB,gCAAgC,CAAC,EAAE,OAAO,EAAE,MAAM,EAAE,EAAE,KAAK;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EA2B1E"}
@@ -1,6 +1,6 @@
1
1
  import { isNil, omitBy } from 'lodash';
2
- import { useApiGet } from '../use_api';
3
2
  import { useMemo } from 'react';
3
+ import { useApiGet } from '@/hooks/use_api';
4
4
  export function useTeamMembersForNewConversation({ teamIds, planId }) {
5
5
  const params = omitBy({ team_id: teamIds.join(','), plan_id: planId }, isNil);
6
6
  const { data, ...rest } = useApiGet({
@@ -1 +1 @@
1
- {"version":3,"file":"use_team_members_for_new_conversation.js","sourceRoot":"","sources":["../../../src/hooks/services/use_team_members_for_new_conversation.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAA;AACtC,OAAO,EAAE,SAAS,EAAE,MAAM,YAAY,CAAA;AAEtC,OAAO,EAAE,OAAO,EAAE,MAAM,OAAO,CAAA;AAO/B,MAAM,UAAU,gCAAgC,CAAC,EAAE,OAAO,EAAE,MAAM,EAAS;IACzE,MAAM,MAAM,GAAG,MAAM,CAAC,EAAE,OAAO,EAAE,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,OAAO,EAAE,MAAM,EAAE,EAAE,KAAK,CAAC,CAAA;IAE7E,MAAM,EAAE,IAAI,EAAE,GAAG,IAAI,EAAE,GAAG,SAAS,CAAqB;QACtD,GAAG,EAAE,OAAO;QACZ,IAAI,EAAE;YACJ,GAAG,MAAM;YACT,MAAM,EAAE;gBACN,IAAI,EAAE,CAAC,QAAQ,CAAC;aACjB;SACF;QACD,GAAG,EAAE,UAAU;KAChB,CAAC,CAAA;IAEF,MAAM,MAAM,GAAG,IAAI,EAAE,MAAM,IAAI,sBAAsB,CAAA;IAErD,MAAM,OAAO,GAAqB,OAAO,CAAC,GAAG,EAAE;QAC7C,OAAO,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;YAC3B,GAAG,MAAM;YACT,IAAI,EAAE,QAAQ;SACf,CAAC,CAAC,CAAA;IACL,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC,CAAA;IAEZ,OAAO;QACL,OAAO;QACP,GAAG,IAAI;KACR,CAAA;AACH,CAAC;AAED,MAAM,sBAAsB,GAA6B,EAAE,CAAA","sourcesContent":["import { isNil, omitBy } from 'lodash'\nimport { useApiGet } from '../use_api'\nimport { MemberResource, TeamPeopleResource, TeamPersonResponseItem } from '../../types'\nimport { useMemo } from 'react'\n\ninterface Props {\n teamIds: number[]\n planId?: number\n}\n\nexport function useTeamMembersForNewConversation({ teamIds, planId }: Props) {\n const params = omitBy({ team_id: teamIds.join(','), plan_id: planId }, isNil)\n\n const { data, ...rest } = useApiGet<TeamPeopleResource>({\n url: '/chat',\n data: {\n ...params,\n fields: {\n Chat: ['people'],\n },\n },\n app: 'services',\n })\n\n const people = data?.people || stableEmptyPersonArray\n\n const members: MemberResource[] = useMemo(() => {\n return people.map(person => ({\n ...person,\n type: 'Member',\n }))\n }, [people])\n\n return {\n members,\n ...rest,\n }\n}\n\nconst stableEmptyPersonArray: TeamPersonResponseItem[] = []\n"]}
1
+ {"version":3,"file":"use_team_members_for_new_conversation.js","sourceRoot":"","sources":["../../../src/hooks/services/use_team_members_for_new_conversation.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAA;AACtC,OAAO,EAAE,OAAO,EAAE,MAAM,OAAO,CAAA;AAC/B,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAA;AAQ3C,MAAM,UAAU,gCAAgC,CAAC,EAAE,OAAO,EAAE,MAAM,EAAS;IACzE,MAAM,MAAM,GAAG,MAAM,CAAC,EAAE,OAAO,EAAE,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,OAAO,EAAE,MAAM,EAAE,EAAE,KAAK,CAAC,CAAA;IAE7E,MAAM,EAAE,IAAI,EAAE,GAAG,IAAI,EAAE,GAAG,SAAS,CAAqB;QACtD,GAAG,EAAE,OAAO;QACZ,IAAI,EAAE;YACJ,GAAG,MAAM;YACT,MAAM,EAAE;gBACN,IAAI,EAAE,CAAC,QAAQ,CAAC;aACjB;SACF;QACD,GAAG,EAAE,UAAU;KAChB,CAAC,CAAA;IAEF,MAAM,MAAM,GAAG,IAAI,EAAE,MAAM,IAAI,sBAAsB,CAAA;IAErD,MAAM,OAAO,GAAqB,OAAO,CAAC,GAAG,EAAE;QAC7C,OAAO,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;YAC3B,GAAG,MAAM;YACT,IAAI,EAAE,QAAQ;SACf,CAAC,CAAC,CAAA;IACL,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC,CAAA;IAEZ,OAAO;QACL,OAAO;QACP,GAAG,IAAI;KACR,CAAA;AACH,CAAC;AAED,MAAM,sBAAsB,GAA6B,EAAE,CAAA","sourcesContent":["import { isNil, omitBy } from 'lodash'\nimport { useMemo } from 'react'\nimport { useApiGet } from '@/hooks/use_api'\nimport { MemberResource, TeamPeopleResource, TeamPersonResponseItem } from '@/types'\n\ninterface Props {\n teamIds: number[]\n planId?: number\n}\n\nexport function useTeamMembersForNewConversation({ teamIds, planId }: Props) {\n const params = omitBy({ team_id: teamIds.join(','), plan_id: planId }, isNil)\n\n const { data, ...rest } = useApiGet<TeamPeopleResource>({\n url: '/chat',\n data: {\n ...params,\n fields: {\n Chat: ['people'],\n },\n },\n app: 'services',\n })\n\n const people = data?.people || stableEmptyPersonArray\n\n const members: MemberResource[] = useMemo(() => {\n return people.map(person => ({\n ...person,\n type: 'Member',\n }))\n }, [people])\n\n return {\n members,\n ...rest,\n }\n}\n\nconst stableEmptyPersonArray: TeamPersonResponseItem[] = []\n"]}
@@ -12,6 +12,6 @@ export declare function useTeamPlans({ teamIds }: {
12
12
  planOptions: PlanListItem[];
13
13
  isFetching: boolean;
14
14
  isError: boolean;
15
- findPlan: (id: number | undefined) => 0 | import("../../types").PlansResponseItem | undefined;
15
+ findPlan: (id: number | undefined) => 0 | import("@/types").PlansResponseItem | undefined;
16
16
  };
17
17
  //# sourceMappingURL=use_team_plans.d.ts.map
@@ -1,7 +1,7 @@
1
- import { useApiClient } from '../use_api_client';
2
- import { useMemo } from 'react';
3
1
  import { useQueries } from '@tanstack/react-query';
4
2
  import { groupBy, keyBy, uniqBy } from 'lodash';
3
+ import { useMemo } from 'react';
4
+ import { useApiClient } from '@/hooks/use_api_client';
5
5
  export function useTeamPlans({ teamIds }) {
6
6
  const apiClient = useApiClient();
7
7
  const planQueries = useQueries({
@@ -1 +1 @@
1
- {"version":3,"file":"use_team_plans.js","sourceRoot":"","sources":["../../../src/hooks/services/use_team_plans.ts"],"names":[],"mappings":"AACA,OAAO,EAAa,YAAY,EAAE,MAAM,mBAAmB,CAAA;AAC3D,OAAO,EAAE,OAAO,EAAE,MAAM,OAAO,CAAA;AAC/B,OAAO,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAA;AAClD,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAA;AAM/C,MAAM,UAAU,YAAY,CAAC,EAAE,OAAO,EAAyB;IAC7D,MAAM,SAAS,GAAG,YAAY,EAAE,CAAA;IAChC,MAAM,WAAW,GAAG,UAAU,CAAC;QAC7B,OAAO,EAAE,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;YAC9B,QAAQ,EAAE,CAAC,cAAc,EAAE,MAAM,CAAC;YAClC,OAAO,EAAE,GAAG,EAAE,CAAC,cAAc,CAAC,SAAS,EAAE,MAAM,CAAC;YAChD,WAAW,EAAE,aAAa;YAC1B,KAAK,EAAE,KAAK;SACb,CAAC,CAAC;KACJ,CAAC,CAAA;IAEF,MAAM,CAAC,SAAS,EAAE,eAAe,CAAC,GAAG,OAAO,CAAC,GAAG,EAAE;QAChD,MAAM,WAAW,GAAG,WAAW,CAAC,OAAO,CAAC,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;QACxF,MAAM,eAAe,GAAG,MAAM,CAAC,WAAW,EAAE,OAAO,CAAC,CAAA;QACpD,MAAM,kBAAkB,GAAG,OAAO,CAAC,eAAe,EAAE,OAAO,CAAC,CAAA;QAE5D,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC,kBAAkB,CAAC,CAAC,MAAM,CACvD,CAAC,GAAG,EAAE,CAAC,KAAK,EAAE,KAAK,CAAC,EAAkB,EAAE,CAAC;YACvC,GAAG,GAAG;YACN,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACzB,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,EAAgB,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;SACjF,EACD,EAAE,CACH,CAAA;QAED,OAAO,CAAC,KAAK,CAAC,eAAe,EAAE,OAAO,CAAC,EAAE,OAAO,CAAC,CAAA;IACnD,CAAC,EAAE,CAAC,WAAW,CAAC,CAAC,CAAA;IAEjB,OAAO;QACL,WAAW,EAAE,eAAe;QAC5B,UAAU,EAAE,WAAW,CAAC,IAAI,CAAC,CAAC,EAAE,UAAU,EAAE,EAAE,EAAE,CAAC,UAAU,CAAC;QAC5D,OAAO,EAAE,WAAW,CAAC,IAAI,CAAC,CAAC,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC,OAAO,CAAC;QACnD,QAAQ,EAAE,CAAC,EAAsB,EAAE,EAAE,CAAC,EAAE,IAAI,SAAS,CAAC,EAAE,CAAC;KAC1D,CAAA;AACH,CAAC;AAED,MAAM,aAAa,GAAG,EAAE,IAAI,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,CAAA;AAEvF,SAAS,cAAc,CAAC,SAAoB,EAAE,MAAc;IAC1D,OAAO,SAAS,CAAC,QAAQ,CAAC,GAAG,CAA6B;QACxD,GAAG,EAAE,OAAO;QACZ,IAAI,EAAE;YACJ,OAAO,EAAE,MAAM;YACf,MAAM,EAAE;gBACN,IAAI,EAAE,CAAC,OAAO,CAAC;aAChB;SACF;KACF,CAAC,CAAA;AACJ,CAAC","sourcesContent":["import { ApiResource, PlansResource } from '../../types'\nimport { ApiClient, useApiClient } from '../use_api_client'\nimport { useMemo } from 'react'\nimport { useQueries } from '@tanstack/react-query'\nimport { groupBy, keyBy, uniqBy } from 'lodash'\n\nexport type PlanListItem =\n | { type: 'header'; title: string }\n | { type: 'plan'; value: number; name: string }\n\nexport function useTeamPlans({ teamIds }: { teamIds: number[] }) {\n const apiClient = useApiClient()\n const planQueries = useQueries({\n queries: teamIds.map(teamId => ({\n queryKey: ['plansForTeam', teamId],\n queryFn: () => fetchTeamPlans(apiClient, teamId),\n initialData: NULL_RESPONSE,\n retry: false,\n })),\n })\n\n const [planIndex, flatPlanOptions] = useMemo(() => {\n const planOptions = planQueries.flatMap(({ data }) => data?.data.plans).filter(p => !!p)\n const uniqPlanOptions = uniqBy(planOptions, 'value')\n const groupedPlanOptions = groupBy(uniqPlanOptions, 'group')\n\n const options = Object.entries(groupedPlanOptions).reduce<PlanListItem[]>(\n (acc, [title, plans]): PlanListItem[] => [\n ...acc,\n { type: 'header', title },\n ...plans.map(({ value, name }): PlanListItem => ({ type: 'plan', value, name })),\n ],\n []\n )\n\n return [keyBy(uniqPlanOptions, 'value'), options]\n }, [planQueries])\n\n return {\n planOptions: flatPlanOptions,\n isFetching: planQueries.some(({ isFetching }) => isFetching),\n isError: planQueries.some(({ isError }) => isError),\n findPlan: (id: number | undefined) => id && planIndex[id],\n }\n}\n\nconst NULL_RESPONSE = { data: { id: 0, plans: [], type: 'Chat' }, links: {}, meta: {} }\n\nfunction fetchTeamPlans(apiClient: ApiClient, teamId: number) {\n return apiClient.services.get<ApiResource<PlansResource>>({\n url: '/chat',\n data: {\n team_id: teamId,\n fields: {\n Chat: ['plans'],\n },\n },\n })\n}\n"]}
1
+ {"version":3,"file":"use_team_plans.js","sourceRoot":"","sources":["../../../src/hooks/services/use_team_plans.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAA;AAClD,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAA;AAC/C,OAAO,EAAE,OAAO,EAAE,MAAM,OAAO,CAAA;AAC/B,OAAO,EAAa,YAAY,EAAE,MAAM,wBAAwB,CAAA;AAOhE,MAAM,UAAU,YAAY,CAAC,EAAE,OAAO,EAAyB;IAC7D,MAAM,SAAS,GAAG,YAAY,EAAE,CAAA;IAChC,MAAM,WAAW,GAAG,UAAU,CAAC;QAC7B,OAAO,EAAE,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;YAC9B,QAAQ,EAAE,CAAC,cAAc,EAAE,MAAM,CAAC;YAClC,OAAO,EAAE,GAAG,EAAE,CAAC,cAAc,CAAC,SAAS,EAAE,MAAM,CAAC;YAChD,WAAW,EAAE,aAAa;YAC1B,KAAK,EAAE,KAAK;SACb,CAAC,CAAC;KACJ,CAAC,CAAA;IAEF,MAAM,CAAC,SAAS,EAAE,eAAe,CAAC,GAAG,OAAO,CAAC,GAAG,EAAE;QAChD,MAAM,WAAW,GAAG,WAAW,CAAC,OAAO,CAAC,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;QACxF,MAAM,eAAe,GAAG,MAAM,CAAC,WAAW,EAAE,OAAO,CAAC,CAAA;QACpD,MAAM,kBAAkB,GAAG,OAAO,CAAC,eAAe,EAAE,OAAO,CAAC,CAAA;QAE5D,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC,kBAAkB,CAAC,CAAC,MAAM,CACvD,CAAC,GAAG,EAAE,CAAC,KAAK,EAAE,KAAK,CAAC,EAAkB,EAAE,CAAC;YACvC,GAAG,GAAG;YACN,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YACzB,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,EAAgB,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;SACjF,EACD,EAAE,CACH,CAAA;QAED,OAAO,CAAC,KAAK,CAAC,eAAe,EAAE,OAAO,CAAC,EAAE,OAAO,CAAC,CAAA;IACnD,CAAC,EAAE,CAAC,WAAW,CAAC,CAAC,CAAA;IAEjB,OAAO;QACL,WAAW,EAAE,eAAe;QAC5B,UAAU,EAAE,WAAW,CAAC,IAAI,CAAC,CAAC,EAAE,UAAU,EAAE,EAAE,EAAE,CAAC,UAAU,CAAC;QAC5D,OAAO,EAAE,WAAW,CAAC,IAAI,CAAC,CAAC,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC,OAAO,CAAC;QACnD,QAAQ,EAAE,CAAC,EAAsB,EAAE,EAAE,CAAC,EAAE,IAAI,SAAS,CAAC,EAAE,CAAC;KAC1D,CAAA;AACH,CAAC;AAED,MAAM,aAAa,GAAG,EAAE,IAAI,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,CAAA;AAEvF,SAAS,cAAc,CAAC,SAAoB,EAAE,MAAc;IAC1D,OAAO,SAAS,CAAC,QAAQ,CAAC,GAAG,CAA6B;QACxD,GAAG,EAAE,OAAO;QACZ,IAAI,EAAE;YACJ,OAAO,EAAE,MAAM;YACf,MAAM,EAAE;gBACN,IAAI,EAAE,CAAC,OAAO,CAAC;aAChB;SACF;KACF,CAAC,CAAA;AACJ,CAAC","sourcesContent":["import { useQueries } from '@tanstack/react-query'\nimport { groupBy, keyBy, uniqBy } from 'lodash'\nimport { useMemo } from 'react'\nimport { ApiClient, useApiClient } from '@/hooks/use_api_client'\nimport { ApiResource, PlansResource } from '@/types'\n\nexport type PlanListItem =\n | { type: 'header'; title: string }\n | { type: 'plan'; value: number; name: string }\n\nexport function useTeamPlans({ teamIds }: { teamIds: number[] }) {\n const apiClient = useApiClient()\n const planQueries = useQueries({\n queries: teamIds.map(teamId => ({\n queryKey: ['plansForTeam', teamId],\n queryFn: () => fetchTeamPlans(apiClient, teamId),\n initialData: NULL_RESPONSE,\n retry: false,\n })),\n })\n\n const [planIndex, flatPlanOptions] = useMemo(() => {\n const planOptions = planQueries.flatMap(({ data }) => data?.data.plans).filter(p => !!p)\n const uniqPlanOptions = uniqBy(planOptions, 'value')\n const groupedPlanOptions = groupBy(uniqPlanOptions, 'group')\n\n const options = Object.entries(groupedPlanOptions).reduce<PlanListItem[]>(\n (acc, [title, plans]): PlanListItem[] => [\n ...acc,\n { type: 'header', title },\n ...plans.map(({ value, name }): PlanListItem => ({ type: 'plan', value, name })),\n ],\n []\n )\n\n return [keyBy(uniqPlanOptions, 'value'), options]\n }, [planQueries])\n\n return {\n planOptions: flatPlanOptions,\n isFetching: planQueries.some(({ isFetching }) => isFetching),\n isError: planQueries.some(({ isError }) => isError),\n findPlan: (id: number | undefined) => id && planIndex[id],\n }\n}\n\nconst NULL_RESPONSE = { data: { id: 0, plans: [], type: 'Chat' }, links: {}, meta: {} }\n\nfunction fetchTeamPlans(apiClient: ApiClient, teamId: number) {\n return apiClient.services.get<ApiResource<PlansResource>>({\n url: '/chat',\n data: {\n team_id: teamId,\n fields: {\n Chat: ['plans'],\n },\n },\n })\n}\n"]}
@@ -1,7 +1,7 @@
1
1
  import { AnyUseSuspenseInfiniteQueryOptions, InfiniteData } from '@tanstack/react-query';
2
- import { ApiCollection, ApiResource, FailedResponse, ResourceObject } from '../types';
3
- import { GetRequest } from '../utils/client';
4
2
  import { App } from './use_api_client';
3
+ import { ApiCollection, ApiResource, FailedResponse, ResourceObject } from '@/types';
4
+ import { GetRequest } from '@/utils/client';
5
5
  interface ApiGetOptions extends GetRequest {
6
6
  app?: App;
7
7
  enabled?: boolean;
@@ -1 +1 @@
1
- {"version":3,"file":"use_api.d.ts","sourceRoot":"","sources":["../../src/hooks/use_api.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,kCAAkC,EAClC,YAAY,EAGb,MAAM,uBAAuB,CAAA;AAC9B,OAAO,EAAE,aAAa,EAAE,WAAW,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,UAAU,CAAA;AACrF,OAAO,EAAE,UAAU,EAAe,MAAM,iBAAiB,CAAA;AACzD,OAAO,EAAE,GAAG,EAAgB,MAAM,kBAAkB,CAAA;AAGpD,UAAU,aAAc,SAAQ,UAAU;IACxC,GAAG,CAAC,EAAE,GAAG,CAAA;IACT,OAAO,CAAC,EAAE,OAAO,CAAA;CAClB;AAED,eAAO,MAAM,SAAS,GAAI,CAAC,SAAS,cAAc,GAAG,cAAc,EAAE,QAAQ,aAAa;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAezF,CAAA;AAOD,MAAM,MAAM,gBAAgB,GAAG,IAAI,CACjC,kCAAkC,EAClC,kBAAkB,GAAG,kBAAkB,GAAG,SAAS,GAAG,UAAU,CACjE,CAAA;AAED,eAAO,MAAM,eAAe,GAAI,CAAC,SAAS,cAAc,QAChD,aAAa,SACZ,gBAAgB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAyCxB,CAAA"}
1
+ {"version":3,"file":"use_api.d.ts","sourceRoot":"","sources":["../../src/hooks/use_api.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,kCAAkC,EAClC,YAAY,EAGb,MAAM,uBAAuB,CAAA;AAC9B,OAAO,EAAE,GAAG,EAAgB,MAAM,kBAAkB,CAAA;AAEpD,OAAO,EAAE,aAAa,EAAE,WAAW,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,SAAS,CAAA;AACpF,OAAO,EAAE,UAAU,EAAe,MAAM,gBAAgB,CAAA;AAExD,UAAU,aAAc,SAAQ,UAAU;IACxC,GAAG,CAAC,EAAE,GAAG,CAAA;IACT,OAAO,CAAC,EAAE,OAAO,CAAA;CAClB;AAED,eAAO,MAAM,SAAS,GAAI,CAAC,SAAS,cAAc,GAAG,cAAc,EAAE,QAAQ,aAAa;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAezF,CAAA;AAOD,MAAM,MAAM,gBAAgB,GAAG,IAAI,CACjC,kCAAkC,EAClC,kBAAkB,GAAG,kBAAkB,GAAG,SAAS,GAAG,UAAU,CACjE,CAAA;AAED,eAAO,MAAM,eAAe,GAAI,CAAC,SAAS,cAAc,QAChD,aAAa,SACZ,gBAAgB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAyCxB,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"use_api.js","sourceRoot":"","sources":["../../src/hooks/use_api.ts"],"names":[],"mappings":"AAAA,OAAO,EAGL,gBAAgB,EAChB,QAAQ,GACT,MAAM,uBAAuB,CAAA;AAG9B,OAAO,EAAO,YAAY,EAAE,MAAM,kBAAkB,CAAA;AACpD,OAAO,EAAE,kBAAkB,EAAmB,MAAM,oBAAoB,CAAA;AAOxE,MAAM,CAAC,MAAM,SAAS,GAAG,CAA8C,IAAmB,EAAE,EAAE;IAE5F,MAAM,SAAS,GAAG,YAAY,EAAE,CAAA;IAEhC,MAAM,EAAE,IAAI,EAAE,GAAG,KAAK,EAAE,GAAG,QAAQ,CAA2B;QAC5D,QAAQ,EAAE,kBAAkB,CAAC,IAAI,CAAC;QAClC,OAAO,EAAE,CAAC,EAAE,QAAQ,EAAE,EAAE,EAAE;YACxB,MAAM,CAAC,GAAG,EAAE,CAAC,EAAE,OAAO,EAAE,GAAG,GAAG,MAAM,CAAC,GAAG,QAA2B,CAAA;YAEnE,OAAO,SAAS,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,EAAE,GAAG,EAAE,IAAI,EAAE,CAAC,EAAE,OAAO,EAAE,CAAsB,CAAA;QAC3E,CAAC;QACD,OAAO,EAAE,IAAI,CAAC,OAAO;KACtB,CAAC,CAAA;IAEF,OAAO,EAAE,GAAG,IAAI,EAAE,GAAG,KAAK,EAAE,CAAA;AAC9B,CAAC,CAAA;AAYD,MAAM,CAAC,MAAM,eAAe,GAAG,CAC7B,IAAmB,EACnB,IAAuB,EACvB,EAAE;IACF,MAAM,SAAS,GAAG,YAAY,EAAE,CAAA;IAChC,MAAM,KAAK,GAAG,gBAAgB,CAM5B;QACA,QAAQ,EAAE,kBAAkB,CAAC,IAAI,CAAC;QAClC,OAAO,EAAE,CAAC,EAAE,SAAS,EAAE,EAAE,EAAE;YACzB,MAAM,aAAa,GAAG,SAAS,EAAE,KAAK,IAAI,EAAE,CAAA;YAC5C,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,KAAK,IAAI,EAAE,CAAA;YACvC,MAAM,KAAK,GAAG,EAAE,GAAG,SAAS,EAAE,GAAG,aAAa,EAAE,CAAA;YAChD,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,IAAI,MAAM,CAAA;YAC9B,MAAM,MAAM,GAAG,SAAS,EAAE,MAAM,IAAI,IAAI,CAAC,IAAI,CAAC,MAAM,CAAA;YACpD,MAAM,IAAI,GAAG,EAAE,GAAG,IAAI,CAAC,IAAI,EAAE,KAAK,EAAE,MAAM,EAAE,CAAA;YAE5C,OAAO,SAAS,CAAC,GAAG,CAAC,CAAC,GAAG,CAAmB;gBAC1C,GAAG,EAAE,IAAI,CAAC,GAAG;gBACb,IAAI;aACL,CAAC,CAAA;QACJ,CAAC;QACD,gBAAgB,EAAE,EAA0B;QAC5C,gBAAgB,EAAE,QAAQ,CAAC,EAAE;YAC3B,MAAM,IAAI,GAAa,QAAQ,CAAC,IAAI,EAAE,IAAI,IAAI,EAAE,CAAA;YAChD,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,IAAI,CAAA;YAE7B,IAAI,IAAI;gBAAE,OAAO,EAAE,KAAK,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE,CAAA;YAC3C,IAAI,MAAM;gBAAE,OAAO,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,CAAA;YAE7C,OAAO,SAAS,CAAA;QAClB,CAAC;QACD,OAAO,EAAE,IAAI,CAAC,OAAO;QACrB,GAAG,CAAC,IAAI,IAAI,EAAE,CAAC;KAChB,CAAC,CAAA;IAEF,MAAM,IAAI,GAAQ,KAAK,CAAC,IAAI,EAAE,KAAK,EAAE,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,CAAA;IAErE,OAAO,EAAE,GAAG,KAAK,EAAE,IAAI,EAAE,CAAA;AAC3B,CAAC,CAAA","sourcesContent":["import {\n AnyUseSuspenseInfiniteQueryOptions,\n InfiniteData,\n useInfiniteQuery,\n useQuery,\n} from '@tanstack/react-query'\nimport { ApiCollection, ApiResource, FailedResponse, ResourceObject } from '../types'\nimport { GetRequest, RequestData } from '../utils/client'\nimport { App, useApiClient } from './use_api_client'\nimport { getRequestQueryKey, RequestQueryKey } from './use_suspense_api'\n\ninterface ApiGetOptions extends GetRequest {\n app?: App\n enabled?: boolean\n}\n\nexport const useApiGet = <T extends ResourceObject | ResourceObject[]>(args: ApiGetOptions) => {\n type Resource = ApiResource<T>\n const apiClient = useApiClient()\n\n const { data, ...query } = useQuery<Resource, FailedResponse>({\n queryKey: getRequestQueryKey(args),\n queryFn: ({ queryKey }) => {\n const [url, d, headers, app = 'chat'] = queryKey as RequestQueryKey\n\n return apiClient[app].get({ url, data: d, headers }) as Promise<Resource>\n },\n enabled: args.enabled,\n })\n\n return { ...data, ...query }\n}\n\ntype NextMeta = Partial<{\n offset: string\n idLt: string\n}>\n\nexport type PaginatorOptions = Omit<\n AnyUseSuspenseInfiniteQueryOptions,\n 'getNextPageParam' | 'initialPageParam' | 'queryFn' | 'queryKey'\n>\n\nexport const useApiPaginator = <T extends ResourceObject>(\n args: ApiGetOptions,\n opts?: PaginatorOptions\n) => {\n const apiClient = useApiClient()\n const query = useInfiniteQuery<\n ApiCollection<T>,\n FailedResponse,\n InfiniteData<ApiCollection<T>>,\n any,\n Partial<RequestData> | undefined\n >({\n queryKey: getRequestQueryKey(args),\n queryFn: ({ pageParam }) => {\n const pageParmWhere = pageParam?.where || {}\n const argsWhere = args.data.where || {}\n const where = { ...argsWhere, ...pageParmWhere }\n const app = args.app || 'chat'\n const offset = pageParam?.offset || args.data.offset\n const data = { ...args.data, where, offset }\n\n return apiClient[app].get<ApiCollection<T>>({\n url: args.url,\n data,\n })\n },\n initialPageParam: {} as Partial<RequestData>,\n getNextPageParam: lastPage => {\n const next: NextMeta = lastPage.meta?.next || {}\n const { offset, idLt } = next\n\n if (idLt) return { where: { id_lt: idLt } }\n if (offset) return { offset: Number(offset) }\n\n return undefined\n },\n enabled: args.enabled,\n ...(opts || {}),\n })\n\n const data: T[] = query.data?.pages?.flatMap(page => page.data) || []\n\n return { ...query, data }\n}\n"]}
1
+ {"version":3,"file":"use_api.js","sourceRoot":"","sources":["../../src/hooks/use_api.ts"],"names":[],"mappings":"AAAA,OAAO,EAGL,gBAAgB,EAChB,QAAQ,GACT,MAAM,uBAAuB,CAAA;AAC9B,OAAO,EAAO,YAAY,EAAE,MAAM,kBAAkB,CAAA;AACpD,OAAO,EAAE,kBAAkB,EAAmB,MAAM,oBAAoB,CAAA;AASxE,MAAM,CAAC,MAAM,SAAS,GAAG,CAA8C,IAAmB,EAAE,EAAE;IAE5F,MAAM,SAAS,GAAG,YAAY,EAAE,CAAA;IAEhC,MAAM,EAAE,IAAI,EAAE,GAAG,KAAK,EAAE,GAAG,QAAQ,CAA2B;QAC5D,QAAQ,EAAE,kBAAkB,CAAC,IAAI,CAAC;QAClC,OAAO,EAAE,CAAC,EAAE,QAAQ,EAAE,EAAE,EAAE;YACxB,MAAM,CAAC,GAAG,EAAE,CAAC,EAAE,OAAO,EAAE,GAAG,GAAG,MAAM,CAAC,GAAG,QAA2B,CAAA;YAEnE,OAAO,SAAS,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,EAAE,GAAG,EAAE,IAAI,EAAE,CAAC,EAAE,OAAO,EAAE,CAAsB,CAAA;QAC3E,CAAC;QACD,OAAO,EAAE,IAAI,CAAC,OAAO;KACtB,CAAC,CAAA;IAEF,OAAO,EAAE,GAAG,IAAI,EAAE,GAAG,KAAK,EAAE,CAAA;AAC9B,CAAC,CAAA;AAYD,MAAM,CAAC,MAAM,eAAe,GAAG,CAC7B,IAAmB,EACnB,IAAuB,EACvB,EAAE;IACF,MAAM,SAAS,GAAG,YAAY,EAAE,CAAA;IAChC,MAAM,KAAK,GAAG,gBAAgB,CAM5B;QACA,QAAQ,EAAE,kBAAkB,CAAC,IAAI,CAAC;QAClC,OAAO,EAAE,CAAC,EAAE,SAAS,EAAE,EAAE,EAAE;YACzB,MAAM,aAAa,GAAG,SAAS,EAAE,KAAK,IAAI,EAAE,CAAA;YAC5C,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,KAAK,IAAI,EAAE,CAAA;YACvC,MAAM,KAAK,GAAG,EAAE,GAAG,SAAS,EAAE,GAAG,aAAa,EAAE,CAAA;YAChD,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,IAAI,MAAM,CAAA;YAC9B,MAAM,MAAM,GAAG,SAAS,EAAE,MAAM,IAAI,IAAI,CAAC,IAAI,CAAC,MAAM,CAAA;YACpD,MAAM,IAAI,GAAG,EAAE,GAAG,IAAI,CAAC,IAAI,EAAE,KAAK,EAAE,MAAM,EAAE,CAAA;YAE5C,OAAO,SAAS,CAAC,GAAG,CAAC,CAAC,GAAG,CAAmB;gBAC1C,GAAG,EAAE,IAAI,CAAC,GAAG;gBACb,IAAI;aACL,CAAC,CAAA;QACJ,CAAC;QACD,gBAAgB,EAAE,EAA0B;QAC5C,gBAAgB,EAAE,QAAQ,CAAC,EAAE;YAC3B,MAAM,IAAI,GAAa,QAAQ,CAAC,IAAI,EAAE,IAAI,IAAI,EAAE,CAAA;YAChD,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,IAAI,CAAA;YAE7B,IAAI,IAAI;gBAAE,OAAO,EAAE,KAAK,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE,CAAA;YAC3C,IAAI,MAAM;gBAAE,OAAO,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,CAAA;YAE7C,OAAO,SAAS,CAAA;QAClB,CAAC;QACD,OAAO,EAAE,IAAI,CAAC,OAAO;QACrB,GAAG,CAAC,IAAI,IAAI,EAAE,CAAC;KAChB,CAAC,CAAA;IAEF,MAAM,IAAI,GAAQ,KAAK,CAAC,IAAI,EAAE,KAAK,EAAE,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,CAAA;IAErE,OAAO,EAAE,GAAG,KAAK,EAAE,IAAI,EAAE,CAAA;AAC3B,CAAC,CAAA","sourcesContent":["import {\n AnyUseSuspenseInfiniteQueryOptions,\n InfiniteData,\n useInfiniteQuery,\n useQuery,\n} from '@tanstack/react-query'\nimport { App, useApiClient } from './use_api_client'\nimport { getRequestQueryKey, RequestQueryKey } from './use_suspense_api'\nimport { ApiCollection, ApiResource, FailedResponse, ResourceObject } from '@/types'\nimport { GetRequest, RequestData } from '@/utils/client'\n\ninterface ApiGetOptions extends GetRequest {\n app?: App\n enabled?: boolean\n}\n\nexport const useApiGet = <T extends ResourceObject | ResourceObject[]>(args: ApiGetOptions) => {\n type Resource = ApiResource<T>\n const apiClient = useApiClient()\n\n const { data, ...query } = useQuery<Resource, FailedResponse>({\n queryKey: getRequestQueryKey(args),\n queryFn: ({ queryKey }) => {\n const [url, d, headers, app = 'chat'] = queryKey as RequestQueryKey\n\n return apiClient[app].get({ url, data: d, headers }) as Promise<Resource>\n },\n enabled: args.enabled,\n })\n\n return { ...data, ...query }\n}\n\ntype NextMeta = Partial<{\n offset: string\n idLt: string\n}>\n\nexport type PaginatorOptions = Omit<\n AnyUseSuspenseInfiniteQueryOptions,\n 'getNextPageParam' | 'initialPageParam' | 'queryFn' | 'queryKey'\n>\n\nexport const useApiPaginator = <T extends ResourceObject>(\n args: ApiGetOptions,\n opts?: PaginatorOptions\n) => {\n const apiClient = useApiClient()\n const query = useInfiniteQuery<\n ApiCollection<T>,\n FailedResponse,\n InfiniteData<ApiCollection<T>>,\n any,\n Partial<RequestData> | undefined\n >({\n queryKey: getRequestQueryKey(args),\n queryFn: ({ pageParam }) => {\n const pageParmWhere = pageParam?.where || {}\n const argsWhere = args.data.where || {}\n const where = { ...argsWhere, ...pageParmWhere }\n const app = args.app || 'chat'\n const offset = pageParam?.offset || args.data.offset\n const data = { ...args.data, where, offset }\n\n return apiClient[app].get<ApiCollection<T>>({\n url: args.url,\n data,\n })\n },\n initialPageParam: {} as Partial<RequestData>,\n getNextPageParam: lastPage => {\n const next: NextMeta = lastPage.meta?.next || {}\n const { offset, idLt } = next\n\n if (idLt) return { where: { id_lt: idLt } }\n if (offset) return { offset: Number(offset) }\n\n return undefined\n },\n enabled: args.enabled,\n ...(opts || {}),\n })\n\n const data: T[] = query.data?.pages?.flatMap(page => page.data) || []\n\n return { ...query, data }\n}\n"]}
@@ -1,4 +1,4 @@
1
- import { Client } from '../utils/client';
1
+ import { Client } from '@/utils/client';
2
2
  export type App = 'chat' | 'groups' | 'services' | 'people';
3
3
  export type ApiClient = {
4
4
  [_K in App]: Client;
@@ -1 +1 @@
1
- {"version":3,"file":"use_api_client.d.ts","sourceRoot":"","sources":["../../src/hooks/use_api_client.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAA;AAGxC,MAAM,MAAM,GAAG,GAAG,MAAM,GAAG,QAAQ,GAAG,UAAU,GAAG,QAAQ,CAAA;AAG3D,MAAM,MAAM,SAAS,GAAG;KAAG,EAAE,IAAI,GAAG,GAAG,MAAM;CAAE,CAAA;AAE/C,eAAO,MAAM,YAAY,iBAoBxB,CAAA"}
1
+ {"version":3,"file":"use_api_client.d.ts","sourceRoot":"","sources":["../../src/hooks/use_api_client.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAA;AAEvC,MAAM,MAAM,GAAG,GAAG,MAAM,GAAG,QAAQ,GAAG,UAAU,GAAG,QAAQ,CAAA;AAG3D,MAAM,MAAM,SAAS,GAAG;KAAG,EAAE,IAAI,GAAG,GAAG,MAAM;CAAE,CAAA;AAE/C,eAAO,MAAM,YAAY,iBAoBxB,CAAA"}
@@ -1,7 +1,7 @@
1
1
  import { useContext, useMemo } from 'react';
2
- import { ChatContext } from '../contexts/chat_context';
3
- import { Client } from '../utils/client';
4
- import { Uri } from '../utils';
2
+ import { ChatContext } from '@/contexts/chat_context';
3
+ import { Uri } from '@/utils';
4
+ import { Client } from '@/utils/client';
5
5
  const apps = ['chat', 'groups', 'services', 'people'];
6
6
  export const useApiClient = () => {
7
7
  const { session, onUnauthorizedResponse } = useContext(ChatContext);
@@ -1 +1 @@
1
- {"version":3,"file":"use_api_client.js","sourceRoot":"","sources":["../../src/hooks/use_api_client.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,OAAO,EAAE,MAAM,OAAO,CAAA;AAC3C,OAAO,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAA;AACtD,OAAO,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAA;AACxC,OAAO,EAAE,GAAG,EAAE,MAAM,UAAU,CAAA;AAG9B,MAAM,IAAI,GAAU,CAAC,MAAM,EAAE,QAAQ,EAAE,UAAU,EAAE,QAAQ,CAAC,CAAA;AAI5D,MAAM,CAAC,MAAM,YAAY,GAAG,GAAG,EAAE;IAC/B,MAAM,EAAE,OAAO,EAAE,sBAAsB,EAAE,GAAG,UAAU,CAAC,WAAW,CAAC,CAAA;IAEnE,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC,IAAI,GAAG,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,OAAO,CAAC,CAAC,CAAA;IAE1D,MAAM,GAAG,GAAG,OAAO,CACjB,GAAG,EAAE,CACH,IAAI,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE;QACvB,GAAG,CAAC,GAAG,CAAC,GAAG,IAAI,MAAM,CAAC;YACpB,IAAI,EAAE,GAAG,CAAC,GAAG,CAAC,IAAI,GAAG,KAAK,CAAC;YAC3B,cAAc,EAAE,GAAG,CAAC,OAAO;YAC3B,OAAO,EAAE,YAAY;YACrB,sBAAsB;SACvB,CAAC,CAAA;QACF,OAAO,GAAG,CAAA;IACZ,CAAC,EAAE,EAAe,CAAC,EACrB,CAAC,GAAG,EAAE,sBAAsB,CAAC,CAC9B,CAAA;IAED,OAAO,GAAG,CAAA;AACZ,CAAC,CAAA","sourcesContent":["import { useContext, useMemo } from 'react'\nimport { ChatContext } from '../contexts/chat_context'\nimport { Client } from '../utils/client'\nimport { Uri } from '../utils'\n\nexport type App = 'chat' | 'groups' | 'services' | 'people'\nconst apps: App[] = ['chat', 'groups', 'services', 'people']\n\nexport type ApiClient = { [_K in App]: Client }\n\nexport const useApiClient = () => {\n const { session, onUnauthorizedResponse } = useContext(ChatContext)\n\n const uri = useMemo(() => new Uri({ session }), [session])\n\n const api = useMemo(\n () =>\n apps.reduce((acc, app) => {\n acc[app] = new Client({\n root: uri.api(`/${app}/v2`),\n defaultHeaders: uri.headers,\n version: '2018-11-01',\n onUnauthorizedResponse,\n })\n return acc\n }, {} as ApiClient),\n [uri, onUnauthorizedResponse]\n )\n\n return api\n}\n"]}
1
+ {"version":3,"file":"use_api_client.js","sourceRoot":"","sources":["../../src/hooks/use_api_client.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,OAAO,EAAE,MAAM,OAAO,CAAA;AAC3C,OAAO,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAA;AACrD,OAAO,EAAE,GAAG,EAAE,MAAM,SAAS,CAAA;AAC7B,OAAO,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAA;AAGvC,MAAM,IAAI,GAAU,CAAC,MAAM,EAAE,QAAQ,EAAE,UAAU,EAAE,QAAQ,CAAC,CAAA;AAI5D,MAAM,CAAC,MAAM,YAAY,GAAG,GAAG,EAAE;IAC/B,MAAM,EAAE,OAAO,EAAE,sBAAsB,EAAE,GAAG,UAAU,CAAC,WAAW,CAAC,CAAA;IAEnE,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC,IAAI,GAAG,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,OAAO,CAAC,CAAC,CAAA;IAE1D,MAAM,GAAG,GAAG,OAAO,CACjB,GAAG,EAAE,CACH,IAAI,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE;QACvB,GAAG,CAAC,GAAG,CAAC,GAAG,IAAI,MAAM,CAAC;YACpB,IAAI,EAAE,GAAG,CAAC,GAAG,CAAC,IAAI,GAAG,KAAK,CAAC;YAC3B,cAAc,EAAE,GAAG,CAAC,OAAO;YAC3B,OAAO,EAAE,YAAY;YACrB,sBAAsB;SACvB,CAAC,CAAA;QACF,OAAO,GAAG,CAAA;IACZ,CAAC,EAAE,EAAe,CAAC,EACrB,CAAC,GAAG,EAAE,sBAAsB,CAAC,CAC9B,CAAA;IAED,OAAO,GAAG,CAAA;AACZ,CAAC,CAAA","sourcesContent":["import { useContext, useMemo } from 'react'\nimport { ChatContext } from '@/contexts/chat_context'\nimport { Uri } from '@/utils'\nimport { Client } from '@/utils/client'\n\nexport type App = 'chat' | 'groups' | 'services' | 'people'\nconst apps: App[] = ['chat', 'groups', 'services', 'people']\n\nexport type ApiClient = { [_K in App]: Client }\n\nexport const useApiClient = () => {\n const { session, onUnauthorizedResponse } = useContext(ChatContext)\n\n const uri = useMemo(() => new Uri({ session }), [session])\n\n const api = useMemo(\n () =>\n apps.reduce((acc, app) => {\n acc[app] = new Client({\n root: uri.api(`/${app}/v2`),\n defaultHeaders: uri.headers,\n version: '2018-11-01',\n onUnauthorizedResponse,\n })\n return acc\n }, {} as ApiClient),\n [uri, onUnauthorizedResponse]\n )\n\n return api\n}\n"]}
@@ -1,5 +1,5 @@
1
- import { Storage } from '../utils/native_adapters';
2
1
  import { useStorage } from './use_storage';
2
+ import { Storage } from '@/utils/native_adapters';
3
3
  export function useAsyncStorage(key, initialValue, throwOnError = false) {
4
4
  return useStorage(Storage, key, initialValue, throwOnError);
5
5
  }
@@ -1 +1 @@
1
- {"version":3,"file":"use_async_storage.js","sourceRoot":"","sources":["../../src/hooks/use_async_storage.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,0BAA0B,CAAA;AAClD,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAA;AAI1C,MAAM,UAAU,eAAe,CAC7B,GAAW,EACX,YAAwB,EACxB,eAAwB,KAAK;IAE7B,OAAO,UAAU,CAAa,OAAO,EAAE,GAAG,EAAE,YAAY,EAAE,YAAY,CAAC,CAAA;AACzE,CAAC","sourcesContent":["import { Storage } from '../utils/native_adapters'\nimport { useStorage } from './use_storage'\n\ntype SetValue<TCacheData> = (_itemValue?: TCacheData | null) => Promise<void>\n\nexport function useAsyncStorage<TCacheData>(\n key: string,\n initialValue: TCacheData,\n throwOnError: boolean = false\n): [TCacheData, SetValue<TCacheData>] {\n return useStorage<TCacheData>(Storage, key, initialValue, throwOnError)\n}\n"]}
1
+ {"version":3,"file":"use_async_storage.js","sourceRoot":"","sources":["../../src/hooks/use_async_storage.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAA;AAC1C,OAAO,EAAE,OAAO,EAAE,MAAM,yBAAyB,CAAA;AAIjD,MAAM,UAAU,eAAe,CAC7B,GAAW,EACX,YAAwB,EACxB,eAAwB,KAAK;IAE7B,OAAO,UAAU,CAAa,OAAO,EAAE,GAAG,EAAE,YAAY,EAAE,YAAY,CAAC,CAAA;AACzE,CAAC","sourcesContent":["import { useStorage } from './use_storage'\nimport { Storage } from '@/utils/native_adapters'\n\ntype SetValue<TCacheData> = (_itemValue?: TCacheData | null) => Promise<void>\n\nexport function useAsyncStorage<TCacheData>(\n key: string,\n initialValue: TCacheData,\n throwOnError: boolean = false\n): [TCacheData, SetValue<TCacheData>] {\n return useStorage<TCacheData>(Storage, key, initialValue, throwOnError)\n}\n"]}
@@ -1,4 +1,4 @@
1
- import { FileAttachment, NativeAttachmentFile } from '../types/resources/denormalized_attachment_resource_for_create';
1
+ import { FileAttachment, NativeAttachmentFile } from '@/types/resources/denormalized_attachment_resource_for_create';
2
2
  export interface FileError {
3
3
  file_type?: string[];
4
4
  file_size?: boolean;
@@ -1 +1 @@
1
- {"version":3,"file":"use_attachment_uploader.d.ts","sourceRoot":"","sources":["../../src/hooks/use_attachment_uploader.ts"],"names":[],"mappings":"AAKA,OAAO,EACL,cAAc,EAEd,oBAAoB,EACrB,MAAM,gEAAgE,CAAA;AAEvE,MAAM,WAAW,SAAS;IACxB,SAAS,CAAC,EAAE,MAAM,EAAE,CAAA;IACpB,SAAS,CAAC,EAAE,OAAO,CAAA;CACpB;AAMD,wBAAgB,qBAAqB,CAAC,EACpC,cAAc,EACd,gBAAgB,GACjB,EAAE;IACD,cAAc,EAAE,MAAM,CAAA;IACtB,gBAAgB,CAAC,EAAE,cAAc,EAAE,CAAA;CACpC;;;iCAUW,oBAAoB,EAAE;mCAqGkB,cAAc;;;;;;;EAmCjE"}
1
+ {"version":3,"file":"use_attachment_uploader.d.ts","sourceRoot":"","sources":["../../src/hooks/use_attachment_uploader.ts"],"names":[],"mappings":"AAKA,OAAO,EACL,cAAc,EAEd,oBAAoB,EACrB,MAAM,+DAA+D,CAAA;AAEtE,MAAM,WAAW,SAAS;IACxB,SAAS,CAAC,EAAE,MAAM,EAAE,CAAA;IACpB,SAAS,CAAC,EAAE,OAAO,CAAA;CACpB;AAMD,wBAAgB,qBAAqB,CAAC,EACpC,cAAc,EACd,gBAAgB,GACjB,EAAE;IACD,cAAc,EAAE,MAAM,CAAA;IACtB,gBAAgB,CAAC,EAAE,cAAc,EAAE,CAAA;CACpC;;;iCAUW,oBAAoB,EAAE;mCAqGkB,cAAc;;;;;;;EAmCjE"}
@@ -1,7 +1,7 @@
1
1
  import { useCallback, useEffect, useMemo, useRef, useState } from 'react';
2
2
  import { SUPPORTED_EXTENSIONS } from './attachments/supported_extensions';
3
- import { useUploadClient } from './use_upload_client';
4
3
  import { useApiClient } from './use_api_client';
4
+ import { useUploadClient } from './use_upload_client';
5
5
  const MAX_FILE_SIZE_IN_MB = 50;
6
6
  const MAX_FILE_SIZE_IN_BYTES = MAX_FILE_SIZE_IN_MB * 1024 * 1024;
7
7
  const MAX_NUMBER_OF_ATTACHMENTS = 10;
@@ -1 +1 @@
1
- {"version":3,"file":"use_attachment_uploader.js","sourceRoot":"","sources":["../../src/hooks/use_attachment_uploader.ts"],"names":[],"mappings":"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","sourcesContent":["import { useCallback, useEffect, useMemo, useRef, useState } from 'react'\nimport { SUPPORTED_EXTENSIONS } from './attachments/supported_extensions'\nimport { useUploadClient } from './use_upload_client'\nimport { useApiClient } from './use_api_client'\nimport { ApiResource } from '../types'\nimport {\n FileAttachment,\n FileUploadState,\n NativeAttachmentFile,\n} from '../types/resources/denormalized_attachment_resource_for_create'\n\nexport interface FileError {\n file_type?: string[]\n file_size?: boolean\n}\n\nconst MAX_FILE_SIZE_IN_MB = 50\nconst MAX_FILE_SIZE_IN_BYTES = MAX_FILE_SIZE_IN_MB * 1024 * 1024\nconst MAX_NUMBER_OF_ATTACHMENTS = 10\n\nexport function useAttachmentUploader({\n conversationId,\n draftAttachments,\n}: {\n conversationId: number\n draftAttachments?: FileAttachment[]\n}) {\n const apiClient = useApiClient()\n const uploadApi = useUploadClient()\n const [attachments, setAttachments] = useState<FileAttachment[]>(() => draftAttachments || [])\n const uploadState = useRef<FileUploadState>({})\n const [lastUploadId, setLastUploadId] = useState<string>()\n const numberOfAttachments = attachments.length\n const [errorMessage, setErrorMessage] = useState<string | null>(null)\n\n const handleFilesAttached = useCallback(\n (files: NativeAttachmentFile[]) => {\n const fileErrors = {} as FileError\n\n const validFiles = files.filter(file => {\n const extension = file.name.split('.').pop() as string\n const isValidExtension = SUPPORTED_EXTENSIONS.includes(`.${extension}`)\n const isValidFileSize = file.size <= MAX_FILE_SIZE_IN_BYTES\n\n if (!isValidExtension) {\n fileErrors.file_type ||= []\n fileErrors.file_type.push(extension)\n }\n if (!isValidFileSize) {\n fileErrors.file_size = true\n }\n\n return isValidFileSize && isValidExtension\n })\n\n const errorMessages: string[] = []\n if (fileErrors.file_type) {\n errorMessages.push(\n `The following file types are not supported: ${fileErrors.file_type.join(', ')}`\n )\n }\n if (fileErrors.file_size) {\n errorMessages.push(`File size exceeds ${MAX_FILE_SIZE_IN_MB} MB`)\n }\n if (numberOfAttachments + validFiles.length > MAX_NUMBER_OF_ATTACHMENTS) {\n errorMessages.push(`You can't attach more than ${MAX_NUMBER_OF_ATTACHMENTS} files at once.`)\n }\n if (errorMessages.length > 0) {\n setErrorMessage(errorMessages.join('\\n'))\n return\n }\n\n const newAttachments: FileAttachment[] = validFiles.map(file => ({\n file,\n status: 'uploading',\n uploadedAt: Date.now(),\n }))\n\n if (newAttachments && newAttachments.length > 0) {\n setAttachments(prevAttachments => [...prevAttachments, ...newAttachments])\n\n newAttachments.forEach(attachment => {\n uploadApi\n .uploadFile(attachment.file)\n .then(({ id: uploadedFileId }) =>\n apiClient.chat.post<ApiResource<MessageAttachmentResource>>({\n url: `/me/conversations/${conversationId}/message_attachments`,\n data: {\n data: {\n type: 'MessageAttachment',\n attributes: { uploaded_file_id: uploadedFileId },\n },\n },\n })\n )\n .then(({ data: { id: messageAttachmentId } }) => {\n uploadState.current[attachment.file.name] = {\n status: 'success',\n id: messageAttachmentId,\n }\n setLastUploadId(messageAttachmentId)\n })\n .catch(err => {\n const isFlagged = err?.code === 'image_flagged'\n uploadState.current[attachment.file.name] = {\n status: 'error',\n flagged: isFlagged,\n }\n if (!isFlagged) {\n setErrorMessage('This file could not be uploaded.')\n }\n setLastUploadId(attachment.file.name)\n })\n })\n }\n },\n [numberOfAttachments, uploadApi, apiClient.chat, conversationId]\n )\n\n useEffect(() => {\n if (!lastUploadId) return\n\n setLastUploadId(undefined)\n setAttachments(\n attachments.map(attachment => {\n // Don't risk overwriting ids already set\n if (attachment.id) return attachment\n\n const state = uploadState.current[attachment.file.name]\n if (state) {\n return { ...attachment, id: state.id, status: state.status, flagged: state.flagged }\n }\n return attachment\n })\n )\n }, [attachments, lastUploadId])\n\n const removeAttachment = useCallback((attachment: FileAttachment) => {\n setAttachments(prevAttachments =>\n prevAttachments.filter(a => a.file.uri !== attachment.file.uri)\n )\n }, [])\n\n const removeFlaggedAttachments = useCallback(() => {\n setAttachments(prevAttachments => prevAttachments.filter(a => !a.flagged))\n }, [])\n\n const reset = useCallback(() => {\n setAttachments([])\n setErrorMessage(null)\n }, [])\n\n const pendingUploads = attachments.filter(a => a.status === 'uploading').length > 0\n const flaggedAttachmentCount = attachments.filter(a => a.flagged).length\n\n const attachmentIds = useMemo(\n () => attachments.filter(a => a.status === 'success' && a.id).map(a => a.id as string),\n [attachments]\n )\n\n return {\n attachments,\n attachmentIds,\n handleFilesAttached,\n removeAttachment,\n removeFlaggedAttachments,\n reset,\n pendingUploads,\n errorMessage,\n flaggedAttachmentCount,\n remainingAttachable: MAX_NUMBER_OF_ATTACHMENTS - numberOfAttachments,\n }\n}\n\ninterface MessageAttachmentResource {\n type: 'MessageAttachment'\n id: string\n uploadedFileId: string\n filename: string\n messageSortKey: string\n metadata: Record<string, unknown>\n checksum: string\n contentType: string\n byteSize: number\n}\n"]}
1
+ {"version":3,"file":"use_attachment_uploader.js","sourceRoot":"","sources":["../../src/hooks/use_attachment_uploader.ts"],"names":[],"mappings":"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","sourcesContent":["import { useCallback, useEffect, useMemo, useRef, useState } from 'react'\nimport { SUPPORTED_EXTENSIONS } from './attachments/supported_extensions'\nimport { useApiClient } from './use_api_client'\nimport { useUploadClient } from './use_upload_client'\nimport { ApiResource } from '@/types'\nimport {\n FileAttachment,\n FileUploadState,\n NativeAttachmentFile,\n} from '@/types/resources/denormalized_attachment_resource_for_create'\n\nexport interface FileError {\n file_type?: string[]\n file_size?: boolean\n}\n\nconst MAX_FILE_SIZE_IN_MB = 50\nconst MAX_FILE_SIZE_IN_BYTES = MAX_FILE_SIZE_IN_MB * 1024 * 1024\nconst MAX_NUMBER_OF_ATTACHMENTS = 10\n\nexport function useAttachmentUploader({\n conversationId,\n draftAttachments,\n}: {\n conversationId: number\n draftAttachments?: FileAttachment[]\n}) {\n const apiClient = useApiClient()\n const uploadApi = useUploadClient()\n const [attachments, setAttachments] = useState<FileAttachment[]>(() => draftAttachments || [])\n const uploadState = useRef<FileUploadState>({})\n const [lastUploadId, setLastUploadId] = useState<string>()\n const numberOfAttachments = attachments.length\n const [errorMessage, setErrorMessage] = useState<string | null>(null)\n\n const handleFilesAttached = useCallback(\n (files: NativeAttachmentFile[]) => {\n const fileErrors = {} as FileError\n\n const validFiles = files.filter(file => {\n const extension = file.name.split('.').pop() as string\n const isValidExtension = SUPPORTED_EXTENSIONS.includes(`.${extension}`)\n const isValidFileSize = file.size <= MAX_FILE_SIZE_IN_BYTES\n\n if (!isValidExtension) {\n fileErrors.file_type ||= []\n fileErrors.file_type.push(extension)\n }\n if (!isValidFileSize) {\n fileErrors.file_size = true\n }\n\n return isValidFileSize && isValidExtension\n })\n\n const errorMessages: string[] = []\n if (fileErrors.file_type) {\n errorMessages.push(\n `The following file types are not supported: ${fileErrors.file_type.join(', ')}`\n )\n }\n if (fileErrors.file_size) {\n errorMessages.push(`File size exceeds ${MAX_FILE_SIZE_IN_MB} MB`)\n }\n if (numberOfAttachments + validFiles.length > MAX_NUMBER_OF_ATTACHMENTS) {\n errorMessages.push(`You can't attach more than ${MAX_NUMBER_OF_ATTACHMENTS} files at once.`)\n }\n if (errorMessages.length > 0) {\n setErrorMessage(errorMessages.join('\\n'))\n return\n }\n\n const newAttachments: FileAttachment[] = validFiles.map(file => ({\n file,\n status: 'uploading',\n uploadedAt: Date.now(),\n }))\n\n if (newAttachments && newAttachments.length > 0) {\n setAttachments(prevAttachments => [...prevAttachments, ...newAttachments])\n\n newAttachments.forEach(attachment => {\n uploadApi\n .uploadFile(attachment.file)\n .then(({ id: uploadedFileId }) =>\n apiClient.chat.post<ApiResource<MessageAttachmentResource>>({\n url: `/me/conversations/${conversationId}/message_attachments`,\n data: {\n data: {\n type: 'MessageAttachment',\n attributes: { uploaded_file_id: uploadedFileId },\n },\n },\n })\n )\n .then(({ data: { id: messageAttachmentId } }) => {\n uploadState.current[attachment.file.name] = {\n status: 'success',\n id: messageAttachmentId,\n }\n setLastUploadId(messageAttachmentId)\n })\n .catch(err => {\n const isFlagged = err?.code === 'image_flagged'\n uploadState.current[attachment.file.name] = {\n status: 'error',\n flagged: isFlagged,\n }\n if (!isFlagged) {\n setErrorMessage('This file could not be uploaded.')\n }\n setLastUploadId(attachment.file.name)\n })\n })\n }\n },\n [numberOfAttachments, uploadApi, apiClient.chat, conversationId]\n )\n\n useEffect(() => {\n if (!lastUploadId) return\n\n setLastUploadId(undefined)\n setAttachments(\n attachments.map(attachment => {\n // Don't risk overwriting ids already set\n if (attachment.id) return attachment\n\n const state = uploadState.current[attachment.file.name]\n if (state) {\n return { ...attachment, id: state.id, status: state.status, flagged: state.flagged }\n }\n return attachment\n })\n )\n }, [attachments, lastUploadId])\n\n const removeAttachment = useCallback((attachment: FileAttachment) => {\n setAttachments(prevAttachments =>\n prevAttachments.filter(a => a.file.uri !== attachment.file.uri)\n )\n }, [])\n\n const removeFlaggedAttachments = useCallback(() => {\n setAttachments(prevAttachments => prevAttachments.filter(a => !a.flagged))\n }, [])\n\n const reset = useCallback(() => {\n setAttachments([])\n setErrorMessage(null)\n }, [])\n\n const pendingUploads = attachments.filter(a => a.status === 'uploading').length > 0\n const flaggedAttachmentCount = attachments.filter(a => a.flagged).length\n\n const attachmentIds = useMemo(\n () => attachments.filter(a => a.status === 'success' && a.id).map(a => a.id as string),\n [attachments]\n )\n\n return {\n attachments,\n attachmentIds,\n handleFilesAttached,\n removeAttachment,\n removeFlaggedAttachments,\n reset,\n pendingUploads,\n errorMessage,\n flaggedAttachmentCount,\n remainingAttachable: MAX_NUMBER_OF_ATTACHMENTS - numberOfAttachments,\n }\n}\n\ninterface MessageAttachmentResource {\n type: 'MessageAttachment'\n id: string\n uploadedFileId: string\n filename: string\n messageSortKey: string\n metadata: Record<string, unknown>\n checksum: string\n contentType: string\n byteSize: number\n}\n"]}
@@ -1,6 +1,6 @@
1
1
  import { useCallback, useRef } from 'react';
2
2
  import { useApiClient } from './use_api_client';
3
- import { useConversationContext } from '../contexts/conversation_context';
3
+ import { useConversationContext } from '@/contexts/conversation_context';
4
4
  const THROTTLE_INTERVAL = 3000; // 3 seconds
5
5
  /**
6
6
  * Hook for broadcasting typing status to other users in a conversation
@@ -1 +1 @@
1
- {"version":3,"file":"use_broadcast_typing_status.js","sourceRoot":"","sources":["../../src/hooks/use_broadcast_typing_status.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,EAAE,MAAM,OAAO,CAAA;AAC3C,OAAO,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAA;AAC/C,OAAO,EAAE,sBAAsB,EAAE,MAAM,kCAAkC,CAAA;AAEzE,MAAM,iBAAiB,GAAG,IAAI,CAAA,CAAC,YAAY;AAE3C;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,wBAAwB,GAAG,GAAG,EAAE;IAC3C,MAAM,EAAE,cAAc,EAAE,sBAAsB,EAAE,GAAG,sBAAsB,EAAE,CAAA;IAC3E,MAAM,SAAS,GAAG,YAAY,EAAE,CAAA;IAChC,MAAM,iBAAiB,GAAG,MAAM,CAAS,CAAC,CAAC,CAAA;IAE3C,MAAM,qBAAqB,GAAG,WAAW,CAAC,GAAG,EAAE;QAC7C,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAA;QAEtB,IAAI,GAAG,GAAG,iBAAiB,CAAC,OAAO,GAAG,iBAAiB,EAAE,CAAC;YACxD,OAAM;QACR,CAAC;QAED,iBAAiB,CAAC,OAAO,GAAG,GAAG,CAAA;QAE/B,SAAS,CAAC,IAAI;aACX,IAAI,CAAC;YACJ,GAAG,EAAE,qBAAqB,cAAc,0BAA0B;YAClE,IAAI,EAAE;gBACJ,IAAI,EAAE,EAAE,IAAI,EAAE,cAAc,EAAE,UAAU,EAAE,EAAE,aAAa,EAAE,sBAAsB,EAAE,EAAE;aACtF;SACF,CAAC;aACD,KAAK,CAAC,KAAK,CAAC,EAAE;YACb,OAAO,CAAC,KAAK,CAAC,oCAAoC,EAAE,KAAK,CAAC,CAAA;QAC5D,CAAC,CAAC,CAAA;IACN,CAAC,EAAE,CAAC,SAAS,CAAC,IAAI,EAAE,cAAc,EAAE,sBAAsB,CAAC,CAAC,CAAA;IAE5D,OAAO,qBAAqB,CAAA;AAC9B,CAAC,CAAA","sourcesContent":["import { useCallback, useRef } from 'react'\nimport { useApiClient } from './use_api_client'\nimport { useConversationContext } from '../contexts/conversation_context'\n\nconst THROTTLE_INTERVAL = 3000 // 3 seconds\n\n/**\n * Hook for broadcasting typing status to other users in a conversation\n *\n * We only broadcast once every 3 seconds, but we show the typing indicator for 6 seconds\n * after receiving a typing event. This is how we can show a steady typing indicator even\n * if the user types once every 2.9 seconds.\n */\nexport const useBroadcastTypingStatus = () => {\n const { conversationId, currentPageReplyRootId } = useConversationContext()\n const apiClient = useApiClient()\n const lastBroadcastTime = useRef<number>(0)\n\n const broadcastTypingStatus = useCallback(() => {\n const now = Date.now()\n\n if (now - lastBroadcastTime.current < THROTTLE_INTERVAL) {\n return\n }\n\n lastBroadcastTime.current = now\n\n apiClient.chat\n .post({\n url: `/me/conversations/${conversationId}/broadcast_typing_status`,\n data: {\n data: { type: 'TypingStatus', attributes: { reply_root_id: currentPageReplyRootId } },\n },\n })\n .catch(error => {\n console.error('Failed to broadcast typing status:', error)\n })\n }, [apiClient.chat, conversationId, currentPageReplyRootId])\n\n return broadcastTypingStatus\n}\n"]}
1
+ {"version":3,"file":"use_broadcast_typing_status.js","sourceRoot":"","sources":["../../src/hooks/use_broadcast_typing_status.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,EAAE,MAAM,OAAO,CAAA;AAC3C,OAAO,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAA;AAC/C,OAAO,EAAE,sBAAsB,EAAE,MAAM,iCAAiC,CAAA;AAExE,MAAM,iBAAiB,GAAG,IAAI,CAAA,CAAC,YAAY;AAE3C;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,wBAAwB,GAAG,GAAG,EAAE;IAC3C,MAAM,EAAE,cAAc,EAAE,sBAAsB,EAAE,GAAG,sBAAsB,EAAE,CAAA;IAC3E,MAAM,SAAS,GAAG,YAAY,EAAE,CAAA;IAChC,MAAM,iBAAiB,GAAG,MAAM,CAAS,CAAC,CAAC,CAAA;IAE3C,MAAM,qBAAqB,GAAG,WAAW,CAAC,GAAG,EAAE;QAC7C,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAA;QAEtB,IAAI,GAAG,GAAG,iBAAiB,CAAC,OAAO,GAAG,iBAAiB,EAAE,CAAC;YACxD,OAAM;QACR,CAAC;QAED,iBAAiB,CAAC,OAAO,GAAG,GAAG,CAAA;QAE/B,SAAS,CAAC,IAAI;aACX,IAAI,CAAC;YACJ,GAAG,EAAE,qBAAqB,cAAc,0BAA0B;YAClE,IAAI,EAAE;gBACJ,IAAI,EAAE,EAAE,IAAI,EAAE,cAAc,EAAE,UAAU,EAAE,EAAE,aAAa,EAAE,sBAAsB,EAAE,EAAE;aACtF;SACF,CAAC;aACD,KAAK,CAAC,KAAK,CAAC,EAAE;YACb,OAAO,CAAC,KAAK,CAAC,oCAAoC,EAAE,KAAK,CAAC,CAAA;QAC5D,CAAC,CAAC,CAAA;IACN,CAAC,EAAE,CAAC,SAAS,CAAC,IAAI,EAAE,cAAc,EAAE,sBAAsB,CAAC,CAAC,CAAA;IAE5D,OAAO,qBAAqB,CAAA;AAC9B,CAAC,CAAA","sourcesContent":["import { useCallback, useRef } from 'react'\nimport { useApiClient } from './use_api_client'\nimport { useConversationContext } from '@/contexts/conversation_context'\n\nconst THROTTLE_INTERVAL = 3000 // 3 seconds\n\n/**\n * Hook for broadcasting typing status to other users in a conversation\n *\n * We only broadcast once every 3 seconds, but we show the typing indicator for 6 seconds\n * after receiving a typing event. This is how we can show a steady typing indicator even\n * if the user types once every 2.9 seconds.\n */\nexport const useBroadcastTypingStatus = () => {\n const { conversationId, currentPageReplyRootId } = useConversationContext()\n const apiClient = useApiClient()\n const lastBroadcastTime = useRef<number>(0)\n\n const broadcastTypingStatus = useCallback(() => {\n const now = Date.now()\n\n if (now - lastBroadcastTime.current < THROTTLE_INTERVAL) {\n return\n }\n\n lastBroadcastTime.current = now\n\n apiClient.chat\n .post({\n url: `/me/conversations/${conversationId}/broadcast_typing_status`,\n data: {\n data: { type: 'TypingStatus', attributes: { reply_root_id: currentPageReplyRootId } },\n },\n })\n .catch(error => {\n console.error('Failed to broadcast typing status:', error)\n })\n }, [apiClient.chat, conversationId, currentPageReplyRootId])\n\n return broadcastTypingStatus\n}\n"]}