@planningcenter/chat-react-native 3.30.0-rc.1 → 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 (895) 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 +3 -3
  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 +3 -3
  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 +4 -4
  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 +4 -4
  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 +5 -5
  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 +4 -4
  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 +12 -12
  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 +1 -1
  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 +12 -12
  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 +6 -6
  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 +3 -3
  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 +2 -2
  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.d.ts.map +1 -1
  112. package/build/components/display/banner_collapsible.js +1 -1
  113. package/build/components/display/banner_collapsible.js.map +1 -1
  114. package/build/components/display/button.d.ts.map +1 -1
  115. package/build/components/display/button.js +3 -3
  116. package/build/components/display/button.js.map +1 -1
  117. package/build/components/display/child_notice.d.ts +1 -1
  118. package/build/components/display/child_notice.d.ts.map +1 -1
  119. package/build/components/display/child_notice.js +2 -2
  120. package/build/components/display/child_notice.js.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.js +1 -1
  124. package/build/components/display/icon.js.map +1 -1
  125. package/build/components/display/icon_button.d.ts.map +1 -1
  126. package/build/components/display/icon_button.js +2 -2
  127. package/build/components/display/icon_button.js.map +1 -1
  128. package/build/components/display/image.js +1 -1
  129. package/build/components/display/image.js.map +1 -1
  130. package/build/components/display/image_attachment_preview.js +2 -2
  131. package/build/components/display/image_attachment_preview.js.map +1 -1
  132. package/build/components/display/keyboard_view.js +1 -1
  133. package/build/components/display/keyboard_view.js.map +1 -1
  134. package/build/components/display/person.d.ts +1 -1
  135. package/build/components/display/person.d.ts.map +1 -1
  136. package/build/components/display/person.js +1 -1
  137. package/build/components/display/person.js.map +1 -1
  138. package/build/components/display/platform_modal_header_buttons.js +1 -1
  139. package/build/components/display/platform_modal_header_buttons.js.map +1 -1
  140. package/build/components/display/pressable_row.d.ts.map +1 -1
  141. package/build/components/display/pressable_row.js +1 -1
  142. package/build/components/display/pressable_row.js.map +1 -1
  143. package/build/components/display/spinner.js +1 -1
  144. package/build/components/display/spinner.js.map +1 -1
  145. package/build/components/display/switch.js +1 -1
  146. package/build/components/display/switch.js.map +1 -1
  147. package/build/components/display/tabs.js +1 -1
  148. package/build/components/display/tabs.js.map +1 -1
  149. package/build/components/display/text.js +2 -2
  150. package/build/components/display/text.js.map +1 -1
  151. package/build/components/display/text_button.d.ts.map +1 -1
  152. package/build/components/display/text_button.js +2 -2
  153. package/build/components/display/text_button.js.map +1 -1
  154. package/build/components/display/text_inline_button.d.ts.map +1 -1
  155. package/build/components/display/text_inline_button.js +2 -2
  156. package/build/components/display/text_inline_button.js.map +1 -1
  157. package/build/components/display/toggle_button.d.ts.map +1 -1
  158. package/build/components/display/toggle_button.js +4 -4
  159. package/build/components/display/toggle_button.js.map +1 -1
  160. package/build/components/display/utils/button_colors.js +1 -1
  161. package/build/components/display/utils/button_colors.js.map +1 -1
  162. package/build/components/display/utils/status_colors.js +1 -1
  163. package/build/components/display/utils/status_colors.js.map +1 -1
  164. package/build/components/display/video_attachment_preview.js +3 -3
  165. package/build/components/display/video_attachment_preview.js.map +1 -1
  166. package/build/components/group_conversation_list.d.ts +1 -1
  167. package/build/components/group_conversation_list.d.ts.map +1 -1
  168. package/build/components/group_conversation_list.js +2 -2
  169. package/build/components/group_conversation_list.js.map +1 -1
  170. package/build/components/page/error_boundary.d.ts +1 -1
  171. package/build/components/page/error_boundary.d.ts.map +1 -1
  172. package/build/components/page/error_boundary.js +2 -2
  173. package/build/components/page/error_boundary.js.map +1 -1
  174. package/build/components/page/loading.js +1 -1
  175. package/build/components/page/loading.js.map +1 -1
  176. package/build/components/primitive/avatar_primitive.d.ts +2 -2
  177. package/build/components/primitive/avatar_primitive.d.ts.map +1 -1
  178. package/build/components/primitive/avatar_primitive.js +5 -5
  179. package/build/components/primitive/avatar_primitive.js.map +1 -1
  180. package/build/components/primitive/banner_primitive.d.ts +2 -2
  181. package/build/components/primitive/banner_primitive.d.ts.map +1 -1
  182. package/build/components/primitive/banner_primitive.js +8 -8
  183. package/build/components/primitive/banner_primitive.js.map +1 -1
  184. package/build/components/primitive/blank_state_primitive.d.ts +1 -1
  185. package/build/components/primitive/blank_state_primitive.d.ts.map +1 -1
  186. package/build/components/primitive/blank_state_primitive.js +2 -2
  187. package/build/components/primitive/blank_state_primitive.js.map +1 -1
  188. package/build/components/primitive/form_sheet.d.ts +2 -2
  189. package/build/components/primitive/form_sheet.d.ts.map +1 -1
  190. package/build/components/primitive/form_sheet.js +3 -3
  191. package/build/components/primitive/form_sheet.js.map +1 -1
  192. package/build/components/safe_area_modal.js +1 -1
  193. package/build/components/safe_area_modal.js.map +1 -1
  194. package/build/contexts/api_provider.js +4 -4
  195. package/build/contexts/api_provider.js.map +1 -1
  196. package/build/contexts/chat_context.d.ts +6 -6
  197. package/build/contexts/chat_context.d.ts.map +1 -1
  198. package/build/contexts/chat_context.js +2 -2
  199. package/build/contexts/chat_context.js.map +1 -1
  200. package/build/contexts/conversations_context.d.ts +2 -2
  201. package/build/contexts/conversations_context.d.ts.map +1 -1
  202. package/build/contexts/conversations_context.js +1 -1
  203. package/build/contexts/conversations_context.js.map +1 -1
  204. package/build/contexts/session_context.d.ts +3 -3
  205. package/build/contexts/session_context.d.ts.map +1 -1
  206. package/build/contexts/session_context.js +6 -6
  207. package/build/contexts/session_context.js.map +1 -1
  208. package/build/hooks/groups/use_group_members_for_new_conversation.d.ts +7 -7
  209. package/build/hooks/groups/use_group_members_for_new_conversation.d.ts.map +1 -1
  210. package/build/hooks/groups/use_group_members_for_new_conversation.js +2 -2
  211. package/build/hooks/groups/use_group_members_for_new_conversation.js.map +1 -1
  212. package/build/hooks/groups/use_groups_conversation_create.d.ts +1 -1
  213. package/build/hooks/groups/use_groups_conversation_create.d.ts.map +1 -1
  214. package/build/hooks/groups/use_groups_conversation_create.js +2 -2
  215. package/build/hooks/groups/use_groups_conversation_create.js.map +1 -1
  216. package/build/hooks/services/use_find_or_create_services_conversation.d.ts +2 -2
  217. package/build/hooks/services/use_find_or_create_services_conversation.d.ts.map +1 -1
  218. package/build/hooks/services/use_find_or_create_services_conversation.js +2 -2
  219. package/build/hooks/services/use_find_or_create_services_conversation.js.map +1 -1
  220. package/build/hooks/services/use_services_team.d.ts +1 -1
  221. package/build/hooks/services/use_services_team.d.ts.map +1 -1
  222. package/build/hooks/services/use_services_team.js +1 -1
  223. package/build/hooks/services/use_services_team.js.map +1 -1
  224. package/build/hooks/services/use_team_members_for_new_conversation.d.ts +21 -21
  225. package/build/hooks/services/use_team_members_for_new_conversation.d.ts.map +1 -1
  226. package/build/hooks/services/use_team_members_for_new_conversation.js +1 -1
  227. package/build/hooks/services/use_team_members_for_new_conversation.js.map +1 -1
  228. package/build/hooks/services/use_team_plans.d.ts +1 -1
  229. package/build/hooks/services/use_team_plans.js +1 -1
  230. package/build/hooks/services/use_team_plans.js.map +1 -1
  231. package/build/hooks/use_api.d.ts +2 -2
  232. package/build/hooks/use_api.d.ts.map +1 -1
  233. package/build/hooks/use_api.js.map +1 -1
  234. package/build/hooks/use_api_client.d.ts +1 -1
  235. package/build/hooks/use_api_client.d.ts.map +1 -1
  236. package/build/hooks/use_api_client.js +3 -3
  237. package/build/hooks/use_api_client.js.map +1 -1
  238. package/build/hooks/use_async_storage.js +1 -1
  239. package/build/hooks/use_async_storage.js.map +1 -1
  240. package/build/hooks/use_attachment_uploader.d.ts +1 -1
  241. package/build/hooks/use_attachment_uploader.d.ts.map +1 -1
  242. package/build/hooks/use_attachment_uploader.js.map +1 -1
  243. package/build/hooks/use_broadcast_typing_status.js +1 -1
  244. package/build/hooks/use_broadcast_typing_status.js.map +1 -1
  245. package/build/hooks/use_chat_permissions.d.ts +21 -21
  246. package/build/hooks/use_chat_permissions.d.ts.map +1 -1
  247. package/build/hooks/use_chat_permissions.js.map +1 -1
  248. package/build/hooks/use_conversation.d.ts +5 -5
  249. package/build/hooks/use_conversation.d.ts.map +1 -1
  250. package/build/hooks/use_conversation.js +4 -3
  251. package/build/hooks/use_conversation.js.map +1 -1
  252. package/build/hooks/use_conversation_jolt_events.js +1 -1
  253. package/build/hooks/use_conversation_jolt_events.js.map +1 -1
  254. package/build/hooks/use_conversation_membership.d.ts +1 -1
  255. package/build/hooks/use_conversation_membership.d.ts.map +1 -1
  256. package/build/hooks/use_conversation_membership.js +2 -2
  257. package/build/hooks/use_conversation_membership.js.map +1 -1
  258. package/build/hooks/use_conversation_message.d.ts +1 -1
  259. package/build/hooks/use_conversation_message.d.ts.map +1 -1
  260. package/build/hooks/use_conversation_message.js +1 -1
  261. package/build/hooks/use_conversation_message.js.map +1 -1
  262. package/build/hooks/use_conversation_messages.d.ts +3 -3
  263. package/build/hooks/use_conversation_messages.d.ts.map +1 -1
  264. package/build/hooks/use_conversation_messages.js +1 -1
  265. package/build/hooks/use_conversation_messages.js.map +1 -1
  266. package/build/hooks/use_conversation_messages_jolt_events.js +6 -6
  267. package/build/hooks/use_conversation_messages_jolt_events.js.map +1 -1
  268. package/build/hooks/use_conversations.d.ts +2 -2
  269. package/build/hooks/use_conversations.d.ts.map +1 -1
  270. package/build/hooks/use_conversations.js +1 -1
  271. package/build/hooks/use_conversations.js.map +1 -1
  272. package/build/hooks/use_conversations_actions.d.ts +19 -19
  273. package/build/hooks/use_conversations_actions.d.ts.map +1 -1
  274. package/build/hooks/use_conversations_actions.js +1 -1
  275. package/build/hooks/use_conversations_actions.js.map +1 -1
  276. package/build/hooks/use_conversations_cache.d.ts +2 -2
  277. package/build/hooks/use_conversations_cache.d.ts.map +1 -1
  278. package/build/hooks/use_conversations_cache.js +2 -2
  279. package/build/hooks/use_conversations_cache.js.map +1 -1
  280. package/build/hooks/use_conversations_jolt_events.js +2 -2
  281. package/build/hooks/use_conversations_jolt_events.js.map +1 -1
  282. package/build/hooks/use_current_person.d.ts +1 -1
  283. package/build/hooks/use_current_person.d.ts.map +1 -1
  284. package/build/hooks/use_current_person.js.map +1 -1
  285. package/build/hooks/use_features.d.ts +2 -2
  286. package/build/hooks/use_features.d.ts.map +1 -1
  287. package/build/hooks/use_features.js +2 -2
  288. package/build/hooks/use_features.js.map +1 -1
  289. package/build/hooks/use_giphy.d.ts +1 -1
  290. package/build/hooks/use_giphy.d.ts.map +1 -1
  291. package/build/hooks/use_giphy.js +1 -1
  292. package/build/hooks/use_giphy.js.map +1 -1
  293. package/build/hooks/use_groups.d.ts +2 -2
  294. package/build/hooks/use_groups.d.ts.map +1 -1
  295. package/build/hooks/use_groups.js.map +1 -1
  296. package/build/hooks/use_groups_groups.d.ts +33 -33
  297. package/build/hooks/use_groups_groups.d.ts.map +1 -1
  298. package/build/hooks/use_groups_groups.js.map +1 -1
  299. package/build/hooks/use_jolt.js +2 -2
  300. package/build/hooks/use_jolt.js.map +1 -1
  301. package/build/hooks/use_live_relative_time.d.ts +1 -1
  302. package/build/hooks/use_live_relative_time.d.ts.map +1 -1
  303. package/build/hooks/use_live_relative_time.js +2 -2
  304. package/build/hooks/use_live_relative_time.js.map +1 -1
  305. package/build/hooks/use_mark_latest_message_read.d.ts +1 -1
  306. package/build/hooks/use_mark_latest_message_read.d.ts.map +1 -1
  307. package/build/hooks/use_mark_latest_message_read.js.map +1 -1
  308. package/build/hooks/use_message_create_or_update.d.ts +2 -2
  309. package/build/hooks/use_message_create_or_update.d.ts.map +1 -1
  310. package/build/hooks/use_message_create_or_update.js +7 -7
  311. package/build/hooks/use_message_create_or_update.js.map +1 -1
  312. package/build/hooks/use_message_draft.d.ts +1 -1
  313. package/build/hooks/use_message_draft.d.ts.map +1 -1
  314. package/build/hooks/use_message_draft.js +1 -1
  315. package/build/hooks/use_message_draft.js.map +1 -1
  316. package/build/hooks/use_message_reaction_toggle.d.ts +2 -2
  317. package/build/hooks/use_message_reaction_toggle.d.ts.map +1 -1
  318. package/build/hooks/use_message_reaction_toggle.js +2 -2
  319. package/build/hooks/use_message_reaction_toggle.js.map +1 -1
  320. package/build/hooks/use_my_gender.js.map +1 -1
  321. package/build/hooks/use_organization.d.ts +5 -5
  322. package/build/hooks/use_organization.d.ts.map +1 -1
  323. package/build/hooks/use_organization.js.map +1 -1
  324. package/build/hooks/use_people_person.d.ts +1 -1
  325. package/build/hooks/use_people_person.d.ts.map +1 -1
  326. package/build/hooks/use_people_person.js.map +1 -1
  327. package/build/hooks/use_product_analytics.d.ts +1 -1
  328. package/build/hooks/use_product_analytics.d.ts.map +1 -1
  329. package/build/hooks/use_product_analytics.js +3 -3
  330. package/build/hooks/use_product_analytics.js.map +1 -1
  331. package/build/hooks/use_qualified_by_age.js +1 -1
  332. package/build/hooks/use_qualified_by_age.js.map +1 -1
  333. package/build/hooks/use_read_receipts.d.ts +2 -2
  334. package/build/hooks/use_read_receipts.d.ts.map +1 -1
  335. package/build/hooks/use_read_receipts.js.map +1 -1
  336. package/build/hooks/use_report_message.d.ts +1 -1
  337. package/build/hooks/use_report_message.d.ts.map +1 -1
  338. package/build/hooks/use_report_message.js +1 -1
  339. package/build/hooks/use_report_message.js.map +1 -1
  340. package/build/hooks/use_storage.d.ts +1 -1
  341. package/build/hooks/use_storage.d.ts.map +1 -1
  342. package/build/hooks/use_storage.js.map +1 -1
  343. package/build/hooks/use_submit_age_check.d.ts +1 -1
  344. package/build/hooks/use_submit_age_check.d.ts.map +1 -1
  345. package/build/hooks/use_submit_age_check.js +1 -1
  346. package/build/hooks/use_submit_age_check.js.map +1 -1
  347. package/build/hooks/use_suspense_api.d.ts +5 -5
  348. package/build/hooks/use_suspense_api.d.ts.map +1 -1
  349. package/build/hooks/use_suspense_api.js +2 -2
  350. package/build/hooks/use_suspense_api.js.map +1 -1
  351. package/build/hooks/use_teams.d.ts +1 -1
  352. package/build/hooks/use_teams.d.ts.map +1 -1
  353. package/build/hooks/use_teams.js.map +1 -1
  354. package/build/hooks/use_theme.d.ts +1 -1
  355. package/build/hooks/use_theme.d.ts.map +1 -1
  356. package/build/hooks/use_theme.js +1 -1
  357. package/build/hooks/use_theme.js.map +1 -1
  358. package/build/hooks/use_typing_indicators.d.ts.map +1 -1
  359. package/build/hooks/use_typing_indicators.js +1 -1
  360. package/build/hooks/use_typing_indicators.js.map +1 -1
  361. package/build/hooks/use_typing_status_cache.d.ts +1 -1
  362. package/build/hooks/use_typing_status_cache.d.ts.map +1 -1
  363. package/build/hooks/use_typing_status_cache.js.map +1 -1
  364. package/build/hooks/use_upload_client.d.ts +1 -1
  365. package/build/hooks/use_upload_client.d.ts.map +1 -1
  366. package/build/hooks/use_upload_client.js +3 -3
  367. package/build/hooks/use_upload_client.js.map +1 -1
  368. package/build/navigation/chat_access_gate.js +7 -7
  369. package/build/navigation/chat_access_gate.js.map +1 -1
  370. package/build/navigation/index.d.ts +25 -25
  371. package/build/navigation/index.d.ts.map +1 -1
  372. package/build/navigation/index.js +28 -28
  373. package/build/navigation/index.js.map +1 -1
  374. package/build/navigation/screenLayout.js +2 -2
  375. package/build/navigation/screenLayout.js.map +1 -1
  376. package/build/polyfills/events/Event.d.ts +4 -0
  377. package/build/polyfills/events/Event.d.ts.map +1 -1
  378. package/build/polyfills/events/Event.js +1 -5
  379. package/build/polyfills/events/Event.js.map +1 -1
  380. package/build/polyfills/events/EventTarget.d.ts +3 -0
  381. package/build/polyfills/events/EventTarget.d.ts.map +1 -1
  382. package/build/polyfills/events/EventTarget.js +1 -1
  383. package/build/polyfills/events/EventTarget.js.map +1 -1
  384. package/build/polyfills/events/internals/EventInternals.d.ts +2 -2
  385. package/build/polyfills/events/internals/EventInternals.d.ts.map +1 -1
  386. package/build/polyfills/events/internals/EventInternals.js.map +1 -1
  387. package/build/polyfills/events/internals/EventTargetInternals.d.ts +2 -2
  388. package/build/polyfills/events/internals/EventTargetInternals.d.ts.map +1 -1
  389. package/build/polyfills/events/internals/EventTargetInternals.js.map +1 -1
  390. package/build/screens/age_check/age_check_required_screen.js +8 -8
  391. package/build/screens/age_check/age_check_required_screen.js.map +1 -1
  392. package/build/screens/age_check/age_check_underage_screen.js +3 -3
  393. package/build/screens/age_check/age_check_underage_screen.js.map +1 -1
  394. package/build/screens/age_check/components/age_check_select_birthdate_modal.js +3 -3
  395. package/build/screens/age_check/components/age_check_select_birthdate_modal.js.map +1 -1
  396. package/build/screens/attachment_actions/attachment_actions_screen.js +1 -1
  397. package/build/screens/attachment_actions/attachment_actions_screen.js.map +1 -1
  398. package/build/screens/attachment_actions/hooks/useDeleteAttachment.js +3 -3
  399. package/build/screens/attachment_actions/hooks/useDeleteAttachment.js.map +1 -1
  400. package/build/screens/bug_report_screen.js +11 -11
  401. package/build/screens/bug_report_screen.js.map +1 -1
  402. package/build/screens/conversation/message_read_receipts_screen.js +4 -4
  403. package/build/screens/conversation/message_read_receipts_screen.js.map +1 -1
  404. package/build/screens/conversation_details_screen.d.ts.map +1 -1
  405. package/build/screens/conversation_details_screen.js +37 -9
  406. package/build/screens/conversation_details_screen.js.map +1 -1
  407. package/build/screens/conversation_filter_recipients/components/checkbox_row.d.ts +1 -1
  408. package/build/screens/conversation_filter_recipients/components/checkbox_row.d.ts.map +1 -1
  409. package/build/screens/conversation_filter_recipients/components/checkbox_row.js +3 -3
  410. package/build/screens/conversation_filter_recipients/components/checkbox_row.js.map +1 -1
  411. package/build/screens/conversation_filter_recipients/components/header_row.d.ts +1 -1
  412. package/build/screens/conversation_filter_recipients/components/header_row.d.ts.map +1 -1
  413. package/build/screens/conversation_filter_recipients/components/header_row.js +4 -4
  414. package/build/screens/conversation_filter_recipients/components/header_row.js.map +1 -1
  415. package/build/screens/conversation_filter_recipients/conversation_filter_recipients_screen.d.ts.map +1 -1
  416. package/build/screens/conversation_filter_recipients/conversation_filter_recipients_screen.js +6 -6
  417. package/build/screens/conversation_filter_recipients/conversation_filter_recipients_screen.js.map +1 -1
  418. package/build/screens/conversation_filter_recipients/hooks/use_flattened_array_of_service_types_with_teams.d.ts +1 -1
  419. package/build/screens/conversation_filter_recipients/hooks/use_flattened_array_of_service_types_with_teams.d.ts.map +1 -1
  420. package/build/screens/conversation_filter_recipients/hooks/use_flattened_array_of_service_types_with_teams.js +1 -1
  421. package/build/screens/conversation_filter_recipients/hooks/use_flattened_array_of_service_types_with_teams.js.map +1 -1
  422. package/build/screens/conversation_filter_recipients/hooks/use_service_types_with_teams.d.ts +22 -22
  423. package/build/screens/conversation_filter_recipients/hooks/use_service_types_with_teams.d.ts.map +1 -1
  424. package/build/screens/conversation_filter_recipients/hooks/use_service_types_with_teams.js +2 -2
  425. package/build/screens/conversation_filter_recipients/hooks/use_service_types_with_teams.js.map +1 -1
  426. package/build/screens/conversation_filter_recipients/types.d.ts +1 -1
  427. package/build/screens/conversation_filter_recipients/types.d.ts.map +1 -1
  428. package/build/screens/conversation_filter_recipients/types.js.map +1 -1
  429. package/build/screens/conversation_filters/components/conversation_filters.d.ts.map +1 -1
  430. package/build/screens/conversation_filters/components/conversation_filters.js +5 -5
  431. package/build/screens/conversation_filters/components/conversation_filters.js.map +1 -1
  432. package/build/screens/conversation_filters/components/rows.d.ts +4 -4
  433. package/build/screens/conversation_filters/components/rows.d.ts.map +1 -1
  434. package/build/screens/conversation_filters/components/rows.js +5 -5
  435. package/build/screens/conversation_filters/components/rows.js.map +1 -1
  436. package/build/screens/conversation_filters/context/conversation_filter_context.d.ts +1 -1
  437. package/build/screens/conversation_filters/context/conversation_filter_context.d.ts.map +1 -1
  438. package/build/screens/conversation_filters/context/conversation_filter_context.js.map +1 -1
  439. package/build/screens/conversation_filters/group_filters.d.ts.map +1 -1
  440. package/build/screens/conversation_filters/group_filters.js +1 -1
  441. package/build/screens/conversation_filters/group_filters.js.map +1 -1
  442. package/build/screens/conversation_filters/hooks/filters.d.ts +54 -54
  443. package/build/screens/conversation_filters/hooks/filters.d.ts.map +1 -1
  444. package/build/screens/conversation_filters/hooks/filters.js +3 -3
  445. package/build/screens/conversation_filters/hooks/filters.js.map +1 -1
  446. package/build/screens/conversation_filters/screen_props.d.ts +1 -1
  447. package/build/screens/conversation_filters/screen_props.d.ts.map +1 -1
  448. package/build/screens/conversation_filters/screen_props.js.map +1 -1
  449. package/build/screens/conversation_filters/team_filters.d.ts.map +1 -1
  450. package/build/screens/conversation_filters/team_filters.js +1 -1
  451. package/build/screens/conversation_filters/team_filters.js.map +1 -1
  452. package/build/screens/conversation_filters_screen.d.ts.map +1 -1
  453. package/build/screens/conversation_filters_screen.js +1 -1
  454. package/build/screens/conversation_filters_screen.js.map +1 -1
  455. package/build/screens/conversation_new/components/filter_by_plan.js +7 -7
  456. package/build/screens/conversation_new/components/filter_by_plan.js.map +1 -1
  457. package/build/screens/conversation_new/components/form_list.d.ts +1 -1
  458. package/build/screens/conversation_new/components/form_list.d.ts.map +1 -1
  459. package/build/screens/conversation_new/components/form_list.js +2 -2
  460. package/build/screens/conversation_new/components/form_list.js.map +1 -1
  461. package/build/screens/conversation_new/components/gender_filter_toggle.js +3 -3
  462. package/build/screens/conversation_new/components/gender_filter_toggle.js.map +1 -1
  463. package/build/screens/conversation_new/components/groups_form.d.ts +1 -1
  464. package/build/screens/conversation_new/components/groups_form.d.ts.map +1 -1
  465. package/build/screens/conversation_new/components/groups_form.js +10 -10
  466. package/build/screens/conversation_new/components/groups_form.js.map +1 -1
  467. package/build/screens/conversation_new/components/services_form.d.ts +1 -1
  468. package/build/screens/conversation_new/components/services_form.d.ts.map +1 -1
  469. package/build/screens/conversation_new/components/services_form.js +8 -8
  470. package/build/screens/conversation_new/components/services_form.js.map +1 -1
  471. package/build/screens/conversation_new/components/source_app_error_card.js +1 -1
  472. package/build/screens/conversation_new/components/source_app_error_card.js.map +1 -1
  473. package/build/screens/conversation_new/conversation_new_screen.d.ts +3 -3
  474. package/build/screens/conversation_new/conversation_new_screen.d.ts.map +1 -1
  475. package/build/screens/conversation_new/conversation_new_screen.js.map +1 -1
  476. package/build/screens/conversation_notification_level_select_screen.js +5 -5
  477. package/build/screens/conversation_notification_level_select_screen.js.map +1 -1
  478. package/build/screens/conversation_screen.d.ts +3 -3
  479. package/build/screens/conversation_screen.d.ts.map +1 -1
  480. package/build/screens/conversation_screen.js +21 -21
  481. package/build/screens/conversation_screen.js.map +1 -1
  482. package/build/screens/conversation_select_recipients/components/groups_recipient_row.d.ts +1 -1
  483. package/build/screens/conversation_select_recipients/components/groups_recipient_row.d.ts.map +1 -1
  484. package/build/screens/conversation_select_recipients/components/groups_recipient_row.js +1 -1
  485. package/build/screens/conversation_select_recipients/components/groups_recipient_row.js.map +1 -1
  486. package/build/screens/conversation_select_recipients/components/recipient_link_row.js +3 -3
  487. package/build/screens/conversation_select_recipients/components/recipient_link_row.js.map +1 -1
  488. package/build/screens/conversation_select_recipients/components/restricted_group_row.d.ts +1 -1
  489. package/build/screens/conversation_select_recipients/components/restricted_group_row.d.ts.map +1 -1
  490. package/build/screens/conversation_select_recipients/components/restricted_group_row.js +3 -3
  491. package/build/screens/conversation_select_recipients/components/restricted_group_row.js.map +1 -1
  492. package/build/screens/conversation_select_recipients/components/team_recipient_row.d.ts +1 -1
  493. package/build/screens/conversation_select_recipients/components/team_recipient_row.d.ts.map +1 -1
  494. package/build/screens/conversation_select_recipients/components/team_recipient_row.js +1 -1
  495. package/build/screens/conversation_select_recipients/components/team_recipient_row.js.map +1 -1
  496. package/build/screens/conversation_select_recipients/components/view_more_link_row.js +1 -1
  497. package/build/screens/conversation_select_recipients/components/view_more_link_row.js.map +1 -1
  498. package/build/screens/conversation_select_recipients/conversation_new_entry_screen.d.ts.map +1 -1
  499. package/build/screens/conversation_select_recipients/conversation_new_entry_screen.js +4 -4
  500. package/build/screens/conversation_select_recipients/conversation_new_entry_screen.js.map +1 -1
  501. package/build/screens/conversation_select_recipients/conversation_select_group_recipients_screen.d.ts.map +1 -1
  502. package/build/screens/conversation_select_recipients/conversation_select_group_recipients_screen.js +2 -2
  503. package/build/screens/conversation_select_recipients/conversation_select_group_recipients_screen.js.map +1 -1
  504. package/build/screens/conversation_select_recipients/conversation_select_teams_i_lead_recipients_screen.d.ts.map +1 -1
  505. package/build/screens/conversation_select_recipients/conversation_select_teams_i_lead_recipients_screen.js +4 -4
  506. package/build/screens/conversation_select_recipients/conversation_select_teams_i_lead_recipients_screen.js.map +1 -1
  507. package/build/screens/conversation_select_recipients/types/screen_props.d.ts +2 -2
  508. package/build/screens/conversation_select_recipients/types/screen_props.d.ts.map +1 -1
  509. package/build/screens/conversation_select_recipients/types/screen_props.js.map +1 -1
  510. package/build/screens/conversation_select_type_screen.d.ts +2 -2
  511. package/build/screens/conversation_select_type_screen.d.ts.map +1 -1
  512. package/build/screens/conversation_select_type_screen.js +2 -2
  513. package/build/screens/conversation_select_type_screen.js.map +1 -1
  514. package/build/screens/conversations/components/chat_group_badge.js +2 -2
  515. package/build/screens/conversations/components/chat_group_badge.js.map +1 -1
  516. package/build/screens/conversations/components/list_header_action_button.d.ts +1 -1
  517. package/build/screens/conversations/components/list_header_action_button.d.ts.map +1 -1
  518. package/build/screens/conversations/components/list_header_action_button.js +4 -4
  519. package/build/screens/conversations/components/list_header_action_button.js.map +1 -1
  520. package/build/screens/conversations/components/list_header_component.js +9 -9
  521. package/build/screens/conversations/components/list_header_component.js.map +1 -1
  522. package/build/screens/conversations/conversations_screen.d.ts +2 -2
  523. package/build/screens/conversations/conversations_screen.d.ts.map +1 -1
  524. package/build/screens/conversations/conversations_screen.js +3 -3
  525. package/build/screens/conversations/conversations_screen.js.map +1 -1
  526. package/build/screens/design_system_screen.js +6 -6
  527. package/build/screens/design_system_screen.js.map +1 -1
  528. package/build/screens/get_help_screen.js +4 -4
  529. package/build/screens/get_help_screen.js.map +1 -1
  530. package/build/screens/group_notification_level_select_screen.js +3 -3
  531. package/build/screens/group_notification_level_select_screen.js.map +1 -1
  532. package/build/screens/group_notification_settings_screen.js +3 -3
  533. package/build/screens/group_notification_settings_screen.js.map +1 -1
  534. package/build/screens/message_actions_screen.js +10 -10
  535. package/build/screens/message_actions_screen.js.map +1 -1
  536. package/build/screens/message_report/components/message_preview.d.ts +1 -1
  537. package/build/screens/message_report/components/message_preview.d.ts.map +1 -1
  538. package/build/screens/message_report/components/message_preview.js +2 -2
  539. package/build/screens/message_report/components/message_preview.js.map +1 -1
  540. package/build/screens/message_report/components/report_reason_list.d.ts +1 -1
  541. package/build/screens/message_report/components/report_reason_list.d.ts.map +1 -1
  542. package/build/screens/message_report/components/report_reason_list.js +4 -4
  543. package/build/screens/message_report/components/report_reason_list.js.map +1 -1
  544. package/build/screens/message_report_screen.js +7 -7
  545. package/build/screens/message_report_screen.js.map +1 -1
  546. package/build/screens/notification_settings/hooks/groups.d.ts +7 -7
  547. package/build/screens/notification_settings/hooks/groups.d.ts.map +1 -1
  548. package/build/screens/notification_settings/hooks/groups.js +4 -4
  549. package/build/screens/notification_settings/hooks/groups.js.map +1 -1
  550. package/build/screens/notification_settings_screen.js +4 -4
  551. package/build/screens/notification_settings_screen.js.map +1 -1
  552. package/build/screens/preferred_app/hooks/use_chat_types.d.ts +5 -5
  553. package/build/screens/preferred_app/hooks/use_chat_types.d.ts.map +1 -1
  554. package/build/screens/preferred_app/hooks/use_chat_types.js +1 -1
  555. package/build/screens/preferred_app/hooks/use_chat_types.js.map +1 -1
  556. package/build/screens/preferred_app_selection_screen.d.ts.map +1 -1
  557. package/build/screens/preferred_app_selection_screen.js +7 -7
  558. package/build/screens/preferred_app_selection_screen.js.map +1 -1
  559. package/build/screens/reactions_screen.js +7 -7
  560. package/build/screens/reactions_screen.js.map +1 -1
  561. package/build/screens/send_giphy_screen.js +8 -8
  562. package/build/screens/send_giphy_screen.js.map +1 -1
  563. package/build/screens/team_conversation_screen.js +3 -3
  564. package/build/screens/team_conversation_screen.js.map +1 -1
  565. package/build/types/jolt_events/message_events.d.ts +1 -1
  566. package/build/types/jolt_events/message_events.d.ts.map +1 -1
  567. package/build/types/jolt_events/message_events.js.map +1 -1
  568. package/build/types/jolt_events/reaction_events.d.ts +1 -1
  569. package/build/types/jolt_events/reaction_events.d.ts.map +1 -1
  570. package/build/types/jolt_events/reaction_events.js.map +1 -1
  571. package/build/types/resources/app_grant.d.ts +1 -1
  572. package/build/types/resources/app_grant.d.ts.map +1 -1
  573. package/build/types/resources/app_grant.js.map +1 -1
  574. package/build/types/resources/conversation.d.ts +1 -0
  575. package/build/types/resources/conversation.d.ts.map +1 -1
  576. package/build/types/resources/conversation.js.map +1 -1
  577. package/build/types/resources/conversation_membership.d.ts +1 -1
  578. package/build/types/resources/conversation_membership.d.ts.map +1 -1
  579. package/build/types/resources/conversation_membership.js.map +1 -1
  580. package/build/types/resources/group_membership.d.ts +1 -1
  581. package/build/types/resources/group_membership.d.ts.map +1 -1
  582. package/build/types/resources/group_membership.js.map +1 -1
  583. package/build/types/resources/groups/groups_group_resource.d.ts +1 -1
  584. package/build/types/resources/groups/groups_group_resource.d.ts.map +1 -1
  585. package/build/types/resources/groups/groups_group_resource.js.map +1 -1
  586. package/build/types/resources/organization.d.ts +1 -1
  587. package/build/types/resources/organization.d.ts.map +1 -1
  588. package/build/types/resources/organization.js.map +1 -1
  589. package/build/types/resources/person.d.ts +1 -1
  590. package/build/types/resources/person.d.ts.map +1 -1
  591. package/build/types/resources/person.js.map +1 -1
  592. package/build/types/resources/services/chat_resource.d.ts +1 -1
  593. package/build/types/resources/services/chat_resource.d.ts.map +1 -1
  594. package/build/types/resources/services/chat_resource.js.map +1 -1
  595. package/build/types/resources/services/team_resource.d.ts +1 -1
  596. package/build/types/resources/services/team_resource.d.ts.map +1 -1
  597. package/build/types/resources/services/team_resource.js.map +1 -1
  598. package/build/utils/cache/messages_cache.d.ts +3 -3
  599. package/build/utils/cache/messages_cache.d.ts.map +1 -1
  600. package/build/utils/cache/messages_cache.js +3 -3
  601. package/build/utils/cache/messages_cache.js.map +1 -1
  602. package/build/utils/cache/optimistically_create_message.d.ts +2 -2
  603. package/build/utils/cache/optimistically_create_message.d.ts.map +1 -1
  604. package/build/utils/cache/optimistically_create_message.js +4 -4
  605. package/build/utils/cache/optimistically_create_message.js.map +1 -1
  606. package/build/utils/cache/optimistically_update_message.d.ts +1 -1
  607. package/build/utils/cache/optimistically_update_message.d.ts.map +1 -1
  608. package/build/utils/cache/optimistically_update_message.js +2 -2
  609. package/build/utils/cache/optimistically_update_message.js.map +1 -1
  610. package/build/utils/cache/page_mutations.d.ts +5 -5
  611. package/build/utils/cache/page_mutations.d.ts.map +1 -1
  612. package/build/utils/cache/page_mutations.js.map +1 -1
  613. package/build/utils/client/client.d.ts +1 -1
  614. package/build/utils/client/client.d.ts.map +1 -1
  615. package/build/utils/client/client.js.map +1 -1
  616. package/build/utils/convert_attachments_for_create.d.ts +2 -2
  617. package/build/utils/convert_attachments_for_create.d.ts.map +1 -1
  618. package/build/utils/convert_attachments_for_create.js.map +1 -1
  619. package/build/utils/destructure_chat_group_graph_id.d.ts +2 -2
  620. package/build/utils/destructure_chat_group_graph_id.d.ts.map +1 -1
  621. package/build/utils/destructure_chat_group_graph_id.js.map +1 -1
  622. package/build/utils/jolt/transform_message_event_data_to_message_resource.d.ts +2 -2
  623. package/build/utils/jolt/transform_message_event_data_to_message_resource.d.ts.map +1 -1
  624. package/build/utils/jolt/transform_message_event_data_to_message_resource.js +1 -1
  625. package/build/utils/jolt/transform_message_event_data_to_message_resource.js.map +1 -1
  626. package/build/utils/jolt/transform_reaction_event_data_to_reaction_count_resource.d.ts +3 -3
  627. package/build/utils/jolt/transform_reaction_event_data_to_reaction_count_resource.d.ts.map +1 -1
  628. package/build/utils/jolt/transform_reaction_event_data_to_reaction_count_resource.js.map +1 -1
  629. package/build/utils/performance_tracking.d.ts +1 -1
  630. package/build/utils/performance_tracking.d.ts.map +1 -1
  631. package/build/utils/performance_tracking.js.map +1 -1
  632. package/build/utils/reaction_constants.d.ts +1 -1
  633. package/build/utils/reaction_constants.d.ts.map +1 -1
  634. package/build/utils/reaction_constants.js.map +1 -1
  635. package/build/utils/request/conversation.d.ts +2 -2
  636. package/build/utils/request/conversation.d.ts.map +1 -1
  637. package/build/utils/request/conversation.js.map +1 -1
  638. package/build/utils/request/get_features.d.ts +1 -1
  639. package/build/utils/request/get_features.d.ts.map +1 -1
  640. package/build/utils/request/get_features.js +1 -1
  641. package/build/utils/request/get_features.js.map +1 -1
  642. package/build/utils/request/get_message.d.ts +1 -1
  643. package/build/utils/request/get_message.d.ts.map +1 -1
  644. package/build/utils/request/get_message.js +1 -1
  645. package/build/utils/request/get_message.js.map +1 -1
  646. package/build/utils/request/get_messages.d.ts +1 -1
  647. package/build/utils/request/get_messages.d.ts.map +1 -1
  648. package/build/utils/request/get_messages.js +1 -1
  649. package/build/utils/request/get_messages.js.map +1 -1
  650. package/build/utils/response_error.d.ts +1 -1
  651. package/build/utils/response_error.d.ts.map +1 -1
  652. package/build/utils/response_error.js.map +1 -1
  653. package/build/utils/session.d.ts +1 -1
  654. package/build/utils/session.d.ts.map +1 -1
  655. package/build/utils/session.js.map +1 -1
  656. package/build/utils/session_manager.d.ts +1 -1
  657. package/build/utils/session_manager.d.ts.map +1 -1
  658. package/build/utils/session_manager.js.map +1 -1
  659. package/build/utils/styles.js +1 -1
  660. package/build/utils/styles.js.map +1 -1
  661. package/build/utils/theme.d.ts +1 -1
  662. package/build/utils/theme.d.ts.map +1 -1
  663. package/build/utils/theme.js +2 -2
  664. package/build/utils/theme.js.map +1 -1
  665. package/package.json +3 -2
  666. package/src/__tests__/contexts/session_context.tsx +5 -5
  667. package/src/__tests__/event-polyfill.test.ts +3 -3
  668. package/src/__tests__/hooks/useTheme.tsx +2 -2
  669. package/src/__tests__/hooks/use_async_storage.test.tsx +1 -1
  670. package/src/__tests__/hooks/use_conversation_messages.ts +2 -2
  671. package/src/__tests__/hooks/use_font_scale.test.ts +1 -1
  672. package/src/__tests__/utils/cache/page_mutations.ts +1 -1
  673. package/src/__tests__/utils/client.ts +5 -5
  674. package/src/__tests__/utils/native_adapters/configuration.ts +4 -4
  675. package/src/__tests__/utils/parse_simple_markdown.ts +1 -1
  676. package/src/__tests__/utils/pluralize.tsx +1 -1
  677. package/src/__tests__/utils/session.ts +2 -2
  678. package/src/__tests__/utils/uri.ts +1 -1
  679. package/src/__utils__/handlers.ts +1 -1
  680. package/src/components/conversation/attachments/attachment_card.tsx +3 -3
  681. package/src/components/conversation/attachments/attachment_deleting_overlay.tsx +2 -2
  682. package/src/components/conversation/attachments/audio_attachment.tsx +4 -4
  683. package/src/components/conversation/attachments/expanded_link.tsx +4 -4
  684. package/src/components/conversation/attachments/generic_file_attachment.tsx +5 -5
  685. package/src/components/conversation/attachments/giphy_attachment.tsx +5 -5
  686. package/src/components/conversation/attachments/image_attachment.tsx +6 -6
  687. package/src/components/conversation/attachments/video_attachment.tsx +5 -5
  688. package/src/components/conversation/empty_conversation_blank_state.tsx +1 -1
  689. package/src/components/conversation/jump_to_bottom_button.tsx +3 -3
  690. package/src/components/conversation/message.tsx +19 -19
  691. package/src/components/conversation/message_attachments.tsx +5 -5
  692. package/src/components/conversation/message_form/message_form_attachment_image.tsx +2 -2
  693. package/src/components/conversation/message_form/message_form_attachment_video.tsx +2 -2
  694. package/src/components/conversation/message_form.tsx +17 -17
  695. package/src/components/conversation/message_markdown.tsx +3 -3
  696. package/src/components/conversation/message_reaction.tsx +8 -8
  697. package/src/components/conversation/message_read_receipts.tsx +3 -3
  698. package/src/components/conversation/messages_disabled_banners.tsx +2 -2
  699. package/src/components/conversation/reply_connectors.tsx +3 -3
  700. package/src/components/conversation/reply_shadow_message.tsx +9 -9
  701. package/src/components/conversation/typing_indicator.tsx +3 -3
  702. package/src/components/conversations/conversation_actions.tsx +6 -9
  703. package/src/components/conversations/conversation_preview.tsx +4 -9
  704. package/src/components/conversations/conversations.tsx +6 -6
  705. package/src/components/conversations/mute_indicator.tsx +3 -3
  706. package/src/components/conversations/swipeable_toggle_button.tsx +5 -5
  707. package/src/components/conversations/unread_count_badge.tsx +3 -3
  708. package/src/components/display/action_button.tsx +2 -2
  709. package/src/components/display/avatar.tsx +2 -2
  710. package/src/components/display/avatar_group.tsx +2 -2
  711. package/src/components/display/badge.tsx +3 -3
  712. package/src/components/display/banner.tsx +1 -1
  713. package/src/components/display/banner_collapsible.tsx +1 -1
  714. package/src/components/display/button.tsx +3 -3
  715. package/src/components/display/child_notice.tsx +3 -3
  716. package/src/components/display/heading.tsx +3 -3
  717. package/src/components/display/icon.tsx +1 -1
  718. package/src/components/display/icon_button.tsx +2 -2
  719. package/src/components/display/image.tsx +1 -1
  720. package/src/components/display/image_attachment_preview.tsx +2 -2
  721. package/src/components/display/keyboard_view.tsx +1 -1
  722. package/src/components/display/person.tsx +2 -2
  723. package/src/components/display/platform_modal_header_buttons.tsx +1 -1
  724. package/src/components/display/pressable_row.tsx +1 -1
  725. package/src/components/display/spinner.tsx +1 -1
  726. package/src/components/display/switch.tsx +1 -1
  727. package/src/components/display/tabs.tsx +1 -1
  728. package/src/components/display/text.tsx +2 -2
  729. package/src/components/display/text_button.tsx +2 -2
  730. package/src/components/display/text_inline_button.tsx +2 -2
  731. package/src/components/display/toggle_button.tsx +6 -6
  732. package/src/components/display/utils/button_colors.ts +1 -1
  733. package/src/components/display/utils/status_colors.ts +1 -1
  734. package/src/components/display/video_attachment_preview.tsx +3 -3
  735. package/src/components/group_conversation_list.tsx +5 -5
  736. package/src/components/page/error_boundary.tsx +2 -2
  737. package/src/components/page/loading.tsx +1 -1
  738. package/src/components/primitive/avatar_primitive.tsx +5 -5
  739. package/src/components/primitive/banner_primitive.tsx +11 -11
  740. package/src/components/primitive/blank_state_primitive.tsx +2 -2
  741. package/src/components/primitive/form_sheet.tsx +4 -4
  742. package/src/components/safe_area_modal.tsx +1 -1
  743. package/src/contexts/api_provider.tsx +4 -4
  744. package/src/contexts/chat_context.tsx +6 -6
  745. package/src/contexts/conversations_context.tsx +3 -3
  746. package/src/contexts/session_context.tsx +9 -9
  747. package/src/hooks/groups/use_group_members_for_new_conversation.ts +4 -4
  748. package/src/hooks/groups/use_groups_conversation_create.ts +3 -3
  749. package/src/hooks/services/use_find_or_create_services_conversation.ts +3 -3
  750. package/src/hooks/services/use_services_team.ts +2 -2
  751. package/src/hooks/services/use_team_members_for_new_conversation.ts +2 -2
  752. package/src/hooks/services/use_team_plans.ts +2 -2
  753. package/src/hooks/use_api.ts +2 -2
  754. package/src/hooks/use_api_client.ts +3 -3
  755. package/src/hooks/use_async_storage.ts +1 -1
  756. package/src/hooks/use_attachment_uploader.ts +5 -5
  757. package/src/hooks/use_broadcast_typing_status.ts +1 -1
  758. package/src/hooks/use_chat_permissions.ts +1 -1
  759. package/src/hooks/use_conversation.ts +5 -4
  760. package/src/hooks/use_conversation_jolt_events.ts +3 -3
  761. package/src/hooks/use_conversation_membership.ts +3 -3
  762. package/src/hooks/use_conversation_message.ts +2 -2
  763. package/src/hooks/use_conversation_messages.ts +2 -2
  764. package/src/hooks/use_conversation_messages_jolt_events.ts +14 -14
  765. package/src/hooks/use_conversations.ts +2 -2
  766. package/src/hooks/use_conversations_actions.ts +2 -2
  767. package/src/hooks/use_conversations_cache.ts +5 -5
  768. package/src/hooks/use_conversations_jolt_events.ts +4 -4
  769. package/src/hooks/use_current_person.ts +2 -2
  770. package/src/hooks/use_features.ts +4 -4
  771. package/src/hooks/use_giphy.ts +2 -2
  772. package/src/hooks/use_groups.ts +2 -2
  773. package/src/hooks/use_groups_groups.ts +1 -1
  774. package/src/hooks/use_jolt.ts +3 -3
  775. package/src/hooks/use_live_relative_time.ts +2 -2
  776. package/src/hooks/use_mark_latest_message_read.ts +1 -1
  777. package/src/hooks/use_message_create_or_update.ts +11 -11
  778. package/src/hooks/use_message_draft.ts +2 -2
  779. package/src/hooks/use_message_reaction_toggle.ts +4 -4
  780. package/src/hooks/use_my_gender.ts +1 -1
  781. package/src/hooks/use_organization.ts +1 -1
  782. package/src/hooks/use_people_person.ts +1 -1
  783. package/src/hooks/use_product_analytics.ts +5 -5
  784. package/src/hooks/use_qualified_by_age.ts +1 -1
  785. package/src/hooks/use_read_receipts.ts +1 -1
  786. package/src/hooks/use_report_message.ts +2 -2
  787. package/src/hooks/use_storage.ts +1 -1
  788. package/src/hooks/use_submit_age_check.ts +2 -2
  789. package/src/hooks/use_suspense_api.ts +5 -5
  790. package/src/hooks/use_teams.ts +1 -1
  791. package/src/hooks/use_theme.tsx +2 -2
  792. package/src/hooks/use_typing_indicators.ts +1 -1
  793. package/src/hooks/use_typing_status_cache.ts +1 -1
  794. package/src/hooks/use_upload_client.ts +3 -3
  795. package/src/navigation/chat_access_gate.tsx +7 -7
  796. package/src/navigation/index.tsx +31 -34
  797. package/src/navigation/screenLayout.tsx +2 -2
  798. package/src/polyfills/events/Event.ts +1 -1
  799. package/src/polyfills/events/EventTarget.ts +1 -1
  800. package/src/polyfills/events/internals/EventInternals.ts +2 -2
  801. package/src/polyfills/events/internals/EventTargetInternals.ts +2 -2
  802. package/src/screens/age_check/age_check_required_screen.tsx +8 -8
  803. package/src/screens/age_check/age_check_underage_screen.tsx +3 -3
  804. package/src/screens/age_check/components/age_check_select_birthdate_modal.tsx +3 -3
  805. package/src/screens/attachment_actions/attachment_actions_screen.tsx +1 -1
  806. package/src/screens/attachment_actions/hooks/useDeleteAttachment.tsx +3 -3
  807. package/src/screens/bug_report_screen.tsx +11 -11
  808. package/src/screens/conversation/message_read_receipts_screen.tsx +5 -5
  809. package/src/screens/conversation_details_screen.tsx +47 -12
  810. package/src/screens/conversation_filter_recipients/components/checkbox_row.tsx +8 -4
  811. package/src/screens/conversation_filter_recipients/components/header_row.tsx +5 -5
  812. package/src/screens/conversation_filter_recipients/conversation_filter_recipients_screen.tsx +6 -6
  813. package/src/screens/conversation_filter_recipients/hooks/use_flattened_array_of_service_types_with_teams.tsx +5 -1
  814. package/src/screens/conversation_filter_recipients/hooks/use_service_types_with_teams.ts +6 -3
  815. package/src/screens/conversation_filter_recipients/types.tsx +1 -1
  816. package/src/screens/conversation_filters/components/conversation_filters.tsx +8 -5
  817. package/src/screens/conversation_filters/components/rows.tsx +9 -14
  818. package/src/screens/conversation_filters/context/conversation_filter_context.tsx +4 -1
  819. package/src/screens/conversation_filters/group_filters.tsx +1 -1
  820. package/src/screens/conversation_filters/hooks/filters.ts +5 -5
  821. package/src/screens/conversation_filters/screen_props.ts +1 -1
  822. package/src/screens/conversation_filters/team_filters.tsx +1 -1
  823. package/src/screens/conversation_filters_screen.tsx +1 -1
  824. package/src/screens/conversation_new/components/filter_by_plan.tsx +7 -7
  825. package/src/screens/conversation_new/components/form_list.tsx +3 -3
  826. package/src/screens/conversation_new/components/gender_filter_toggle.tsx +3 -3
  827. package/src/screens/conversation_new/components/groups_form.tsx +14 -14
  828. package/src/screens/conversation_new/components/services_form.tsx +10 -10
  829. package/src/screens/conversation_new/components/source_app_error_card.tsx +1 -1
  830. package/src/screens/conversation_new/conversation_new_screen.tsx +3 -3
  831. package/src/screens/conversation_notification_level_select_screen.tsx +6 -6
  832. package/src/screens/conversation_screen.tsx +23 -23
  833. package/src/screens/conversation_select_recipients/components/groups_recipient_row.tsx +2 -2
  834. package/src/screens/conversation_select_recipients/components/recipient_link_row.tsx +3 -3
  835. package/src/screens/conversation_select_recipients/components/restricted_group_row.tsx +4 -4
  836. package/src/screens/conversation_select_recipients/components/team_recipient_row.tsx +2 -2
  837. package/src/screens/conversation_select_recipients/components/view_more_link_row.tsx +1 -1
  838. package/src/screens/conversation_select_recipients/conversation_new_entry_screen.tsx +4 -4
  839. package/src/screens/conversation_select_recipients/conversation_select_group_recipients_screen.tsx +3 -3
  840. package/src/screens/conversation_select_recipients/conversation_select_teams_i_lead_recipients_screen.tsx +7 -4
  841. package/src/screens/conversation_select_recipients/types/screen_props.tsx +2 -2
  842. package/src/screens/conversation_select_type_screen.tsx +4 -4
  843. package/src/screens/conversations/components/chat_group_badge.tsx +4 -4
  844. package/src/screens/conversations/components/list_header_action_button.tsx +4 -4
  845. package/src/screens/conversations/components/list_header_component.tsx +10 -10
  846. package/src/screens/conversations/conversations_screen.tsx +5 -5
  847. package/src/screens/design_system_screen.tsx +6 -6
  848. package/src/screens/get_help_screen.tsx +5 -5
  849. package/src/screens/group_notification_level_select_screen.tsx +3 -3
  850. package/src/screens/group_notification_settings_screen.tsx +3 -3
  851. package/src/screens/message_actions_screen.tsx +12 -12
  852. package/src/screens/message_report/components/message_preview.tsx +3 -3
  853. package/src/screens/message_report/components/report_reason_list.tsx +4 -7
  854. package/src/screens/message_report_screen.tsx +11 -11
  855. package/src/screens/notification_settings/hooks/groups.ts +6 -6
  856. package/src/screens/notification_settings_screen.tsx +4 -4
  857. package/src/screens/preferred_app/hooks/use_chat_types.ts +2 -2
  858. package/src/screens/preferred_app_selection_screen.tsx +7 -7
  859. package/src/screens/reactions_screen.tsx +9 -9
  860. package/src/screens/send_giphy_screen.tsx +8 -8
  861. package/src/screens/team_conversation_screen.tsx +3 -3
  862. package/src/types/jolt_events/message_events.ts +1 -1
  863. package/src/types/jolt_events/reaction_events.ts +1 -1
  864. package/src/types/resources/app_grant.ts +1 -1
  865. package/src/types/resources/conversation.ts +1 -0
  866. package/src/types/resources/conversation_membership.ts +1 -1
  867. package/src/types/resources/group_membership.ts +1 -1
  868. package/src/types/resources/groups/groups_group_resource.ts +1 -1
  869. package/src/types/resources/organization.ts +1 -1
  870. package/src/types/resources/person.ts +1 -1
  871. package/src/types/resources/services/chat_resource.ts +1 -1
  872. package/src/types/resources/services/team_resource.ts +1 -1
  873. package/src/utils/__tests__/convert_attachments_for_create.test.ts +3 -3
  874. package/src/utils/__tests__/session_manager.test.ts +3 -3
  875. package/src/utils/__tests__/sha_256.test.ts +1 -1
  876. package/src/utils/cache/messages_cache.ts +5 -5
  877. package/src/utils/cache/optimistically_create_message.ts +7 -7
  878. package/src/utils/cache/optimistically_update_message.ts +3 -3
  879. package/src/utils/cache/page_mutations.ts +1 -1
  880. package/src/utils/client/client.ts +1 -1
  881. package/src/utils/convert_attachments_for_create.ts +2 -2
  882. package/src/utils/destructure_chat_group_graph_id.ts +2 -2
  883. package/src/utils/jolt/transform_message_event_data_to_message_resource.ts +4 -4
  884. package/src/utils/jolt/transform_reaction_event_data_to_reaction_count_resource.ts +3 -3
  885. package/src/utils/performance_tracking.ts +1 -1
  886. package/src/utils/reaction_constants.ts +1 -1
  887. package/src/utils/request/conversation.ts +2 -2
  888. package/src/utils/request/get_features.ts +1 -1
  889. package/src/utils/request/get_message.ts +1 -1
  890. package/src/utils/request/get_messages.ts +1 -1
  891. package/src/utils/response_error.ts +1 -1
  892. package/src/utils/session.ts +1 -1
  893. package/src/utils/session_manager.ts +1 -1
  894. package/src/utils/styles.ts +1 -1
  895. package/src/utils/theme.ts +2 -2
@@ -1 +1 @@
1
- {"version":3,"file":"filter_by_plan.js","sourceRoot":"","sources":["../../../../src/screens/conversation_new/components/filter_by_plan.tsx"],"names":[],"mappings":"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","sourcesContent":["import { Header, PlatformPressable } from '@react-navigation/elements'\nimport React, { useState } from 'react'\nimport { StyleSheet, View, FlatList, Platform } from 'react-native'\nimport { Banner, Icon, Spinner, Text, Heading } from '../../../components'\nimport { HeaderDismissButton } from '../../../components/display/platform_modal_header_buttons'\nimport { DefaultLoading } from '../../../components/page/loading'\nimport { SafeAreaModal } from '../../../components/safe_area_modal'\nimport { useTheme } from '../../../hooks'\nimport { useTeamPlans } from '../../../hooks/services/use_team_plans'\nimport { tokens } from '../../../vendor/tapestry/tokens'\n\n// ==========================================\n// Interfaces\n// ==========================================\n\ninterface FilterByPlanProps {\n teamIds: number[]\n selectedPlanId?: number\n onPlanSelect: (planId: number | undefined) => void\n}\n\ninterface FilterByPlanFieldProps {\n teamIds: number[]\n planId?: number\n onOpenModal: () => void\n}\n\ninterface FilterByPlanModalProps {\n visible: boolean\n onClose: () => void\n teamIds: number[]\n selectedPlanId?: number\n onPlanSelect: (planId: number | undefined) => void\n}\n\ninterface OptionItemProps {\n plan: { value: number; name: string }\n isSelected: boolean\n onPress: () => void\n}\n\n// ==========================================\n// Main Component\n// ==========================================\n\nexport function FilterByPlan({ teamIds, selectedPlanId, onPlanSelect }: FilterByPlanProps) {\n const [modalVisible, setModalVisible] = useState(false)\n\n return (\n <>\n <FilterByPlanField\n teamIds={teamIds}\n planId={selectedPlanId}\n onOpenModal={() => setModalVisible(true)}\n />\n <FilterByPlanModal\n visible={modalVisible}\n onClose={() => setModalVisible(false)}\n teamIds={teamIds}\n selectedPlanId={selectedPlanId}\n onPlanSelect={planId => {\n onPlanSelect(planId)\n setModalVisible(false)\n }}\n />\n </>\n )\n}\n\n// ==========================================\n// Sub-components\n// ==========================================\n\nexport function FilterByPlanField({ teamIds, planId, onOpenModal }: FilterByPlanFieldProps) {\n const styles = useStyles()\n const { planOptions, findPlan, isFetching, isError } = useTeamPlans({ teamIds })\n\n if (isFetching) {\n return (\n <View style={styles.spinnerContainer}>\n <Spinner size={20} />\n </View>\n )\n }\n\n if (isError) {\n return (\n <Banner\n appearance=\"error\"\n description=\"An error occurred while fetching plans. Please try again.\"\n />\n )\n }\n\n if (!planOptions || planOptions.length === 0) {\n return <Banner appearance=\"neutral\" description=\"No plans available with the selected teams.\" />\n }\n\n const selectedPlan = findPlan(planId)\n const buttonText = selectedPlan ? selectedPlan.name : 'Select a plan'\n\n return (\n <PlatformPressable\n style={styles.selectButton}\n onPress={onOpenModal}\n accessibilityRole=\"button\"\n accessibilityLabel={`Selected plan: ${buttonText}`}\n accessibilityHint=\"Opens plan selection\"\n >\n <Text style={styles.buttonText} numberOfLines={1}>\n {buttonText}\n </Text>\n <Icon name=\"general.downChevron\" size={16} style={styles.chevronIcon} />\n </PlatformPressable>\n )\n}\n\nexport function FilterByPlanModal({\n visible,\n onClose,\n teamIds,\n selectedPlanId,\n onPlanSelect,\n}: FilterByPlanModalProps) {\n const styles = useStyles()\n const { planOptions, isFetching } = useTeamPlans({ teamIds })\n\n return (\n <SafeAreaModal\n visible={visible}\n animationType=\"slide\"\n presentationStyle=\"pageSheet\"\n onRequestClose={onClose}\n >\n <View style={styles.modalContainer}>\n <Header\n headerStyle={styles.header}\n title=\"Select a plan\"\n headerShadowVisible={false}\n headerRight={createStableHeaderRight(onClose)}\n headerRightContainerStyle={styles.modalHeaderRightContainer}\n />\n\n {isFetching && <DefaultLoading />}\n\n {planOptions && planOptions.length > 0 && (\n <FlatList\n data={planOptions}\n contentContainerStyle={styles.listContainer}\n keyExtractor={item =>\n item.type === 'header' ? `header-${item.title}` : `plan-${item.value}`\n }\n renderItem={({ item }) => {\n switch (item.type) {\n case 'header':\n return (\n <Heading variant=\"h3\" numberOfLines={1} style={styles.listHeader}>\n {item.title}\n </Heading>\n )\n case 'plan': {\n const isSelected = item.value === selectedPlanId\n return (\n <OptionItem\n plan={item}\n isSelected={isSelected}\n onPress={() => onPlanSelect(isSelected ? undefined : item.value)}\n />\n )\n }\n }\n }}\n showsVerticalScrollIndicator={false}\n />\n )}\n </View>\n </SafeAreaModal>\n )\n}\n\n// ==========================================\n// Helper Components\n// ==========================================\n\nconst createStableHeaderRight = (onClose: () => void) => () => (\n <HeaderDismissButton onPress={onClose} title=\"Cancel\" />\n)\n\nfunction OptionItem({ plan, isSelected, onPress }: OptionItemProps) {\n const styles = useStyles()\n return (\n <PlatformPressable\n style={styles.optionItem}\n onPress={onPress}\n accessibilityRole=\"radio\"\n accessibilityState={{ selected: isSelected }}\n accessibilityLabel={plan.name}\n >\n <Text style={styles.optionText} numberOfLines={1}>\n {plan.name}\n </Text>\n {isSelected && <Icon name=\"general.check\" size={16} style={styles.checkIcon} />}\n </PlatformPressable>\n )\n}\n\n// ==========================================\n// Styles\n// ==========================================\n\nconst useStyles = () => {\n const { colors } = useTheme()\n\n return StyleSheet.create({\n spinnerContainer: {\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n minHeight: 44,\n },\n header: {\n borderBottomWidth: 1,\n borderBottomColor: colors.borderColorDefaultBase,\n },\n selectButton: {\n flexDirection: 'row',\n alignItems: 'center',\n justifyContent: 'space-between',\n paddingHorizontal: 16,\n paddingVertical: 12,\n backgroundColor: colors.surfaceColor100,\n borderWidth: 1,\n borderColor: colors.borderColorDefaultBase,\n borderRadius: tokens.borderRadiusRound,\n minHeight: 44,\n },\n buttonText: {\n flex: 1,\n color: colors.textColorDefaultPrimary,\n },\n chevronIcon: {\n color: colors.iconColorDefaultSecondary,\n marginLeft: 8,\n },\n modalContainer: {\n backgroundColor: colors.surfaceColor100,\n flex: 1,\n },\n modalHeaderRightContainer: {\n paddingRight: Platform.select({ ios: 20, android: 0 }),\n },\n listContainer: {\n paddingBottom: 16,\n },\n listHeader: {\n paddingHorizontal: 16,\n paddingTop: 24,\n paddingBottom: 12,\n },\n optionItem: {\n flexDirection: 'row',\n alignItems: 'center',\n justifyContent: 'space-between',\n paddingHorizontal: 16,\n paddingVertical: 16,\n borderBottomWidth: 1,\n borderBottomColor: colors.borderColorDefaultDim,\n },\n optionText: {\n flex: 1,\n color: colors.textColorDefaultPrimary,\n },\n checkIcon: {\n color: colors.statusSuccessIcon,\n marginLeft: 8,\n },\n })\n}\n"]}
1
+ {"version":3,"file":"filter_by_plan.js","sourceRoot":"","sources":["../../../../src/screens/conversation_new/components/filter_by_plan.tsx"],"names":[],"mappings":"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","sourcesContent":["import { Header, PlatformPressable } from '@react-navigation/elements'\nimport React, { useState } from 'react'\nimport { StyleSheet, View, FlatList, Platform } from 'react-native'\nimport { Banner, Icon, Spinner, Text, Heading } from '@/components'\nimport { HeaderDismissButton } from '@/components/display/platform_modal_header_buttons'\nimport { DefaultLoading } from '@/components/page/loading'\nimport { SafeAreaModal } from '@/components/safe_area_modal'\nimport { useTheme } from '@/hooks'\nimport { useTeamPlans } from '@/hooks/services/use_team_plans'\nimport { tokens } from '@/vendor/tapestry/tokens'\n\n// ==========================================\n// Interfaces\n// ==========================================\n\ninterface FilterByPlanProps {\n teamIds: number[]\n selectedPlanId?: number\n onPlanSelect: (planId: number | undefined) => void\n}\n\ninterface FilterByPlanFieldProps {\n teamIds: number[]\n planId?: number\n onOpenModal: () => void\n}\n\ninterface FilterByPlanModalProps {\n visible: boolean\n onClose: () => void\n teamIds: number[]\n selectedPlanId?: number\n onPlanSelect: (planId: number | undefined) => void\n}\n\ninterface OptionItemProps {\n plan: { value: number; name: string }\n isSelected: boolean\n onPress: () => void\n}\n\n// ==========================================\n// Main Component\n// ==========================================\n\nexport function FilterByPlan({ teamIds, selectedPlanId, onPlanSelect }: FilterByPlanProps) {\n const [modalVisible, setModalVisible] = useState(false)\n\n return (\n <>\n <FilterByPlanField\n teamIds={teamIds}\n planId={selectedPlanId}\n onOpenModal={() => setModalVisible(true)}\n />\n <FilterByPlanModal\n visible={modalVisible}\n onClose={() => setModalVisible(false)}\n teamIds={teamIds}\n selectedPlanId={selectedPlanId}\n onPlanSelect={planId => {\n onPlanSelect(planId)\n setModalVisible(false)\n }}\n />\n </>\n )\n}\n\n// ==========================================\n// Sub-components\n// ==========================================\n\nexport function FilterByPlanField({ teamIds, planId, onOpenModal }: FilterByPlanFieldProps) {\n const styles = useStyles()\n const { planOptions, findPlan, isFetching, isError } = useTeamPlans({ teamIds })\n\n if (isFetching) {\n return (\n <View style={styles.spinnerContainer}>\n <Spinner size={20} />\n </View>\n )\n }\n\n if (isError) {\n return (\n <Banner\n appearance=\"error\"\n description=\"An error occurred while fetching plans. Please try again.\"\n />\n )\n }\n\n if (!planOptions || planOptions.length === 0) {\n return <Banner appearance=\"neutral\" description=\"No plans available with the selected teams.\" />\n }\n\n const selectedPlan = findPlan(planId)\n const buttonText = selectedPlan ? selectedPlan.name : 'Select a plan'\n\n return (\n <PlatformPressable\n style={styles.selectButton}\n onPress={onOpenModal}\n accessibilityRole=\"button\"\n accessibilityLabel={`Selected plan: ${buttonText}`}\n accessibilityHint=\"Opens plan selection\"\n >\n <Text style={styles.buttonText} numberOfLines={1}>\n {buttonText}\n </Text>\n <Icon name=\"general.downChevron\" size={16} style={styles.chevronIcon} />\n </PlatformPressable>\n )\n}\n\nexport function FilterByPlanModal({\n visible,\n onClose,\n teamIds,\n selectedPlanId,\n onPlanSelect,\n}: FilterByPlanModalProps) {\n const styles = useStyles()\n const { planOptions, isFetching } = useTeamPlans({ teamIds })\n\n return (\n <SafeAreaModal\n visible={visible}\n animationType=\"slide\"\n presentationStyle=\"pageSheet\"\n onRequestClose={onClose}\n >\n <View style={styles.modalContainer}>\n <Header\n headerStyle={styles.header}\n title=\"Select a plan\"\n headerShadowVisible={false}\n headerRight={createStableHeaderRight(onClose)}\n headerRightContainerStyle={styles.modalHeaderRightContainer}\n />\n\n {isFetching && <DefaultLoading />}\n\n {planOptions && planOptions.length > 0 && (\n <FlatList\n data={planOptions}\n contentContainerStyle={styles.listContainer}\n keyExtractor={item =>\n item.type === 'header' ? `header-${item.title}` : `plan-${item.value}`\n }\n renderItem={({ item }) => {\n switch (item.type) {\n case 'header':\n return (\n <Heading variant=\"h3\" numberOfLines={1} style={styles.listHeader}>\n {item.title}\n </Heading>\n )\n case 'plan': {\n const isSelected = item.value === selectedPlanId\n return (\n <OptionItem\n plan={item}\n isSelected={isSelected}\n onPress={() => onPlanSelect(isSelected ? undefined : item.value)}\n />\n )\n }\n }\n }}\n showsVerticalScrollIndicator={false}\n />\n )}\n </View>\n </SafeAreaModal>\n )\n}\n\n// ==========================================\n// Helper Components\n// ==========================================\n\nconst createStableHeaderRight = (onClose: () => void) => () => (\n <HeaderDismissButton onPress={onClose} title=\"Cancel\" />\n)\n\nfunction OptionItem({ plan, isSelected, onPress }: OptionItemProps) {\n const styles = useStyles()\n return (\n <PlatformPressable\n style={styles.optionItem}\n onPress={onPress}\n accessibilityRole=\"radio\"\n accessibilityState={{ selected: isSelected }}\n accessibilityLabel={plan.name}\n >\n <Text style={styles.optionText} numberOfLines={1}>\n {plan.name}\n </Text>\n {isSelected && <Icon name=\"general.check\" size={16} style={styles.checkIcon} />}\n </PlatformPressable>\n )\n}\n\n// ==========================================\n// Styles\n// ==========================================\n\nconst useStyles = () => {\n const { colors } = useTheme()\n\n return StyleSheet.create({\n spinnerContainer: {\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n minHeight: 44,\n },\n header: {\n borderBottomWidth: 1,\n borderBottomColor: colors.borderColorDefaultBase,\n },\n selectButton: {\n flexDirection: 'row',\n alignItems: 'center',\n justifyContent: 'space-between',\n paddingHorizontal: 16,\n paddingVertical: 12,\n backgroundColor: colors.surfaceColor100,\n borderWidth: 1,\n borderColor: colors.borderColorDefaultBase,\n borderRadius: tokens.borderRadiusRound,\n minHeight: 44,\n },\n buttonText: {\n flex: 1,\n color: colors.textColorDefaultPrimary,\n },\n chevronIcon: {\n color: colors.iconColorDefaultSecondary,\n marginLeft: 8,\n },\n modalContainer: {\n backgroundColor: colors.surfaceColor100,\n flex: 1,\n },\n modalHeaderRightContainer: {\n paddingRight: Platform.select({ ios: 20, android: 0 }),\n },\n listContainer: {\n paddingBottom: 16,\n },\n listHeader: {\n paddingHorizontal: 16,\n paddingTop: 24,\n paddingBottom: 12,\n },\n optionItem: {\n flexDirection: 'row',\n alignItems: 'center',\n justifyContent: 'space-between',\n paddingHorizontal: 16,\n paddingVertical: 16,\n borderBottomWidth: 1,\n borderBottomColor: colors.borderColorDefaultDim,\n },\n optionText: {\n flex: 1,\n color: colors.textColorDefaultPrimary,\n },\n checkIcon: {\n color: colors.statusSuccessIcon,\n marginLeft: 8,\n },\n })\n}\n"]}
@@ -1,6 +1,6 @@
1
1
  import React from 'react';
2
2
  import { type FlatListProps } from 'react-native';
3
- import { MemberResource } from '../../../types';
3
+ import { MemberResource } from '@/types';
4
4
  interface FormListProps {
5
5
  memberData: MemberResource[];
6
6
  loadingMore?: boolean;
@@ -1 +1 @@
1
- {"version":3,"file":"form_list.d.ts","sourceRoot":"","sources":["../../../../src/screens/conversation_new/components/form_list.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAA;AACzB,OAAO,EAAY,KAAK,aAAa,EAAoB,MAAM,cAAc,CAAA;AAG7E,OAAO,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAA;AAE/C,UAAU,aAAa;IACrB,UAAU,EAAE,cAAc,EAAE,CAAA;IAC5B,WAAW,CAAC,EAAE,OAAO,CAAA;IACrB,WAAW,CAAC,EAAE,aAAa,CAAC,cAAc,CAAC,CAAC,qBAAqB,CAAC,CAAA;IAClE,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB,YAAY,CAAC,EAAE,MAAM,IAAI,CAAA;CAC1B;AAED,eAAO,MAAM,QAAQ,2EAMlB,aAAa,sBAgBf,CAAA;AAYD,eAAO,MAAM,OAAO,yBAInB,CAAA"}
1
+ {"version":3,"file":"form_list.d.ts","sourceRoot":"","sources":["../../../../src/screens/conversation_new/components/form_list.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAA;AACzB,OAAO,EAAY,KAAK,aAAa,EAAoB,MAAM,cAAc,CAAA;AAG7E,OAAO,EAAE,cAAc,EAAE,MAAM,SAAS,CAAA;AAExC,UAAU,aAAa;IACrB,UAAU,EAAE,cAAc,EAAE,CAAA;IAC5B,WAAW,CAAC,EAAE,OAAO,CAAA;IACrB,WAAW,CAAC,EAAE,aAAa,CAAC,cAAc,CAAC,CAAC,qBAAqB,CAAC,CAAA;IAClE,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB,YAAY,CAAC,EAAE,MAAM,IAAI,CAAA;CAC1B;AAED,eAAO,MAAM,QAAQ,2EAMlB,aAAa,sBAgBf,CAAA;AAYD,eAAO,MAAM,OAAO,yBAInB,CAAA"}
@@ -1,7 +1,7 @@
1
1
  import React from 'react';
2
2
  import { FlatList, StyleSheet, View } from 'react-native';
3
- import { Person, Text } from '../../../components/display';
4
- import { useTheme } from '../../../hooks';
3
+ import { Person, Text } from '@/components/display';
4
+ import { useTheme } from '@/hooks';
5
5
  export const FormList = ({ memberData, loadingMore, FormContent, listEmptyText, onEndReached, }) => {
6
6
  const styles = useStyles();
7
7
  return (<FlatList data={memberData} ListHeaderComponent={FormContent} renderItem={({ item }) => <Person person={item} style={styles.person}/>} ListFooterComponent={loadingMore ? <Text style={styles.loadingMore}>Loading more...</Text> : null} keyExtractor={item => item.id.toString()} ListEmptyComponent={<ListEmptyText text={listEmptyText || 'No members found'}/>} onEndReached={onEndReached}/>);
@@ -1 +1 @@
1
- {"version":3,"file":"form_list.js","sourceRoot":"","sources":["../../../../src/screens/conversation_new/components/form_list.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAA;AACzB,OAAO,EAAE,QAAQ,EAAsB,UAAU,EAAE,IAAI,EAAE,MAAM,cAAc,CAAA;AAC7E,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,6BAA6B,CAAA;AAC1D,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAA;AAWzC,MAAM,CAAC,MAAM,QAAQ,GAAG,CAAC,EACvB,UAAU,EACV,WAAW,EACX,WAAW,EACX,aAAa,EACb,YAAY,GACE,EAAE,EAAE;IAClB,MAAM,MAAM,GAAG,SAAS,EAAE,CAAA;IAE1B,OAAO,CACL,CAAC,QAAQ,CACP,IAAI,CAAC,CAAC,UAAU,CAAC,CACjB,mBAAmB,CAAC,CAAC,WAAW,CAAC,CACjC,UAAU,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,EAAG,CAAC,CACzE,mBAAmB,CAAC,CAClB,WAAW,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,eAAe,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,IAC1E,CAAC,CACD,YAAY,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,QAAQ,EAAE,CAAC,CACzC,kBAAkB,CAAC,CAAC,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC,aAAa,IAAI,kBAAkB,CAAC,EAAG,CAAC,CACjF,YAAY,CAAC,CAAC,YAAY,CAAC,EAC3B,CACH,CAAA;AACH,CAAC,CAAA;AAED,MAAM,aAAa,GAAG,CAAC,EAAE,IAAI,EAAoB,EAAE,EAAE;IACnD,MAAM,MAAM,GAAG,SAAS,EAAE,CAAA;IAE1B,OAAO,CACL,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,kBAAkB,CAAC,CACrC;MAAA,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,IAAI,CAC7C;IAAA,EAAE,IAAI,CAAC,CACR,CAAA;AACH,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,OAAO,GAAG,GAAG,EAAE;IAC1B,MAAM,MAAM,GAAG,SAAS,EAAE,CAAA;IAE1B,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,EAAG,CAAA;AACxC,CAAC,CAAA;AAED,MAAM,SAAS,GAAG,GAAG,EAAE;IACrB,MAAM,EAAE,MAAM,EAAE,GAAG,QAAQ,EAAE,CAAA;IAE7B,OAAO,UAAU,CAAC,MAAM,CAAC;QACvB,MAAM,EAAE;YACN,iBAAiB,EAAE,EAAE;YACrB,aAAa,EAAE,EAAE;SAClB;QACD,WAAW,EAAE;YACX,iBAAiB,EAAE,EAAE;YACrB,aAAa,EAAE,EAAE;SAClB;QACD,kBAAkB,EAAE;YAClB,UAAU,EAAE,QAAQ;YACpB,cAAc,EAAE,QAAQ;YACxB,OAAO,EAAE,EAAE;SACZ;QACD,SAAS,EAAE;YACT,SAAS,EAAE,QAAQ;YACnB,KAAK,EAAE,MAAM,CAAC,yBAAyB;SACxC;QACD,OAAO,EAAE;YACP,iBAAiB,EAAE,CAAC;YACpB,iBAAiB,EAAE,MAAM,CAAC,uBAAuB;SAClD;KACF,CAAC,CAAA;AACJ,CAAC,CAAA","sourcesContent":["import React from 'react'\nimport { FlatList, type FlatListProps, StyleSheet, View } from 'react-native'\nimport { Person, Text } from '../../../components/display'\nimport { useTheme } from '../../../hooks'\nimport { MemberResource } from '../../../types'\n\ninterface FormListProps {\n memberData: MemberResource[]\n loadingMore?: boolean\n FormContent?: FlatListProps<MemberResource>['ListHeaderComponent']\n listEmptyText?: string\n onEndReached?: () => void\n}\n\nexport const FormList = ({\n memberData,\n loadingMore,\n FormContent,\n listEmptyText,\n onEndReached,\n}: FormListProps) => {\n const styles = useStyles()\n\n return (\n <FlatList\n data={memberData}\n ListHeaderComponent={FormContent}\n renderItem={({ item }) => <Person person={item} style={styles.person} />}\n ListFooterComponent={\n loadingMore ? <Text style={styles.loadingMore}>Loading more...</Text> : null\n }\n keyExtractor={item => item.id.toString()}\n ListEmptyComponent={<ListEmptyText text={listEmptyText || 'No members found'} />}\n onEndReached={onEndReached}\n />\n )\n}\n\nconst ListEmptyText = ({ text }: { text: string }) => {\n const styles = useStyles()\n\n return (\n <View style={styles.emptyTextContainer}>\n <Text style={styles.emptyText}>{text}</Text>\n </View>\n )\n}\n\nexport const Divider = () => {\n const styles = useStyles()\n\n return <View style={styles.divider} />\n}\n\nconst useStyles = () => {\n const { colors } = useTheme()\n\n return StyleSheet.create({\n person: {\n paddingHorizontal: 16,\n paddingBottom: 12,\n },\n loadingMore: {\n paddingHorizontal: 16,\n paddingBottom: 12,\n },\n emptyTextContainer: {\n alignItems: 'center',\n justifyContent: 'center',\n padding: 32,\n },\n emptyText: {\n textAlign: 'center',\n color: colors.textColorDefaultSecondary,\n },\n divider: {\n borderBottomWidth: 1,\n borderBottomColor: colors.fillColorNeutral050Base,\n },\n })\n}\n"]}
1
+ {"version":3,"file":"form_list.js","sourceRoot":"","sources":["../../../../src/screens/conversation_new/components/form_list.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAA;AACzB,OAAO,EAAE,QAAQ,EAAsB,UAAU,EAAE,IAAI,EAAE,MAAM,cAAc,CAAA;AAC7E,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,sBAAsB,CAAA;AACnD,OAAO,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAA;AAWlC,MAAM,CAAC,MAAM,QAAQ,GAAG,CAAC,EACvB,UAAU,EACV,WAAW,EACX,WAAW,EACX,aAAa,EACb,YAAY,GACE,EAAE,EAAE;IAClB,MAAM,MAAM,GAAG,SAAS,EAAE,CAAA;IAE1B,OAAO,CACL,CAAC,QAAQ,CACP,IAAI,CAAC,CAAC,UAAU,CAAC,CACjB,mBAAmB,CAAC,CAAC,WAAW,CAAC,CACjC,UAAU,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,EAAG,CAAC,CACzE,mBAAmB,CAAC,CAClB,WAAW,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,eAAe,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,IAC1E,CAAC,CACD,YAAY,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,QAAQ,EAAE,CAAC,CACzC,kBAAkB,CAAC,CAAC,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC,aAAa,IAAI,kBAAkB,CAAC,EAAG,CAAC,CACjF,YAAY,CAAC,CAAC,YAAY,CAAC,EAC3B,CACH,CAAA;AACH,CAAC,CAAA;AAED,MAAM,aAAa,GAAG,CAAC,EAAE,IAAI,EAAoB,EAAE,EAAE;IACnD,MAAM,MAAM,GAAG,SAAS,EAAE,CAAA;IAE1B,OAAO,CACL,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,kBAAkB,CAAC,CACrC;MAAA,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,IAAI,CAC7C;IAAA,EAAE,IAAI,CAAC,CACR,CAAA;AACH,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,OAAO,GAAG,GAAG,EAAE;IAC1B,MAAM,MAAM,GAAG,SAAS,EAAE,CAAA;IAE1B,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,EAAG,CAAA;AACxC,CAAC,CAAA;AAED,MAAM,SAAS,GAAG,GAAG,EAAE;IACrB,MAAM,EAAE,MAAM,EAAE,GAAG,QAAQ,EAAE,CAAA;IAE7B,OAAO,UAAU,CAAC,MAAM,CAAC;QACvB,MAAM,EAAE;YACN,iBAAiB,EAAE,EAAE;YACrB,aAAa,EAAE,EAAE;SAClB;QACD,WAAW,EAAE;YACX,iBAAiB,EAAE,EAAE;YACrB,aAAa,EAAE,EAAE;SAClB;QACD,kBAAkB,EAAE;YAClB,UAAU,EAAE,QAAQ;YACpB,cAAc,EAAE,QAAQ;YACxB,OAAO,EAAE,EAAE;SACZ;QACD,SAAS,EAAE;YACT,SAAS,EAAE,QAAQ;YACnB,KAAK,EAAE,MAAM,CAAC,yBAAyB;SACxC;QACD,OAAO,EAAE;YACP,iBAAiB,EAAE,CAAC;YACpB,iBAAiB,EAAE,MAAM,CAAC,uBAAuB;SAClD;KACF,CAAC,CAAA;AACJ,CAAC,CAAA","sourcesContent":["import React from 'react'\nimport { FlatList, type FlatListProps, StyleSheet, View } from 'react-native'\nimport { Person, Text } from '@/components/display'\nimport { useTheme } from '@/hooks'\nimport { MemberResource } from '@/types'\n\ninterface FormListProps {\n memberData: MemberResource[]\n loadingMore?: boolean\n FormContent?: FlatListProps<MemberResource>['ListHeaderComponent']\n listEmptyText?: string\n onEndReached?: () => void\n}\n\nexport const FormList = ({\n memberData,\n loadingMore,\n FormContent,\n listEmptyText,\n onEndReached,\n}: FormListProps) => {\n const styles = useStyles()\n\n return (\n <FlatList\n data={memberData}\n ListHeaderComponent={FormContent}\n renderItem={({ item }) => <Person person={item} style={styles.person} />}\n ListFooterComponent={\n loadingMore ? <Text style={styles.loadingMore}>Loading more...</Text> : null\n }\n keyExtractor={item => item.id.toString()}\n ListEmptyComponent={<ListEmptyText text={listEmptyText || 'No members found'} />}\n onEndReached={onEndReached}\n />\n )\n}\n\nconst ListEmptyText = ({ text }: { text: string }) => {\n const styles = useStyles()\n\n return (\n <View style={styles.emptyTextContainer}>\n <Text style={styles.emptyText}>{text}</Text>\n </View>\n )\n}\n\nexport const Divider = () => {\n const styles = useStyles()\n\n return <View style={styles.divider} />\n}\n\nconst useStyles = () => {\n const { colors } = useTheme()\n\n return StyleSheet.create({\n person: {\n paddingHorizontal: 16,\n paddingBottom: 12,\n },\n loadingMore: {\n paddingHorizontal: 16,\n paddingBottom: 12,\n },\n emptyTextContainer: {\n alignItems: 'center',\n justifyContent: 'center',\n padding: 32,\n },\n emptyText: {\n textAlign: 'center',\n color: colors.textColorDefaultSecondary,\n },\n divider: {\n borderBottomWidth: 1,\n borderBottomColor: colors.fillColorNeutral050Base,\n },\n })\n}\n"]}
@@ -1,8 +1,8 @@
1
1
  import React from 'react';
2
2
  import { ActivityIndicator, StyleSheet, View } from 'react-native';
3
- import { Heading, Switch, Text } from '../../../components';
4
- import { useTheme } from '../../../hooks';
5
- import { genderDisplayLabel } from '../../../utils/gender_display_label';
3
+ import { Heading, Switch, Text } from '@/components';
4
+ import { useTheme } from '@/hooks';
5
+ import { genderDisplayLabel } from '@/utils/gender_display_label';
6
6
  function FilterableGenderContent({ genderValue, enabled, onToggle }) {
7
7
  const { colors } = useTheme();
8
8
  const styles = useStyles();
@@ -1 +1 @@
1
- {"version":3,"file":"gender_filter_toggle.js","sourceRoot":"","sources":["../../../../src/screens/conversation_new/components/gender_filter_toggle.tsx"],"names":[],"mappings":"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","sourcesContent":["import React from 'react'\nimport { ActivityIndicator, StyleSheet, View } from 'react-native'\nimport { Heading, Switch, Text } from '../../../components'\nimport { useTheme } from '../../../hooks'\nimport { genderDisplayLabel } from '../../../utils/gender_display_label'\n\ninterface FilterableGenderContentProps {\n genderValue: string\n enabled: boolean\n onToggle: (enabled: boolean) => void\n}\n\nfunction FilterableGenderContent({ genderValue, enabled, onToggle }: FilterableGenderContentProps) {\n const { colors } = useTheme()\n const styles = useStyles()\n const displayLabel = genderDisplayLabel(genderValue)\n\n return (\n <>\n <View style={styles.toggleRow}>\n <Text>{displayLabel}</Text>\n <Switch\n value={enabled}\n onValueChange={onToggle}\n accessibilityLabel={`Filter by ${displayLabel}`}\n />\n </View>\n <Text style={{ color: colors.textColorDefaultSecondary }}>\n Filter limited to your profile's set gender\n </Text>\n </>\n )\n}\n\nfunction NoGenderContent({ isFetching }: { isFetching: boolean }) {\n const { colors } = useTheme()\n\n return (\n <>\n <Text>Gender</Text>\n {isFetching ? (\n <ActivityIndicator size=\"small\" />\n ) : (\n <Text style={{ color: colors.textColorDefaultSecondary }}>\n Set a gender in your Church Center profile to enable gender filtering.\n </Text>\n )}\n </>\n )\n}\n\ninterface GenderFilterToggleProps {\n genderValue: string | null\n isFetching: boolean\n enabled: boolean\n onToggle: (enabled: boolean) => void\n}\n\nexport function GenderFilterToggle({\n genderValue,\n isFetching,\n enabled,\n onToggle,\n}: GenderFilterToggleProps) {\n const styles = useStyles()\n const hasFilterableGender = genderValue !== null && genderValue !== 'Prefer not to say'\n\n return (\n <View style={styles.container}>\n <Heading variant=\"h3\">Filter by</Heading>\n {hasFilterableGender ? (\n <FilterableGenderContent genderValue={genderValue} enabled={enabled} onToggle={onToggle} />\n ) : (\n <NoGenderContent isFetching={isFetching} />\n )}\n </View>\n )\n}\n\nconst useStyles = () => {\n return StyleSheet.create({\n container: {\n padding: 16,\n gap: 8,\n },\n toggleRow: {\n flexDirection: 'row',\n justifyContent: 'space-between',\n alignItems: 'center',\n },\n })\n}\n"]}
1
+ {"version":3,"file":"gender_filter_toggle.js","sourceRoot":"","sources":["../../../../src/screens/conversation_new/components/gender_filter_toggle.tsx"],"names":[],"mappings":"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","sourcesContent":["import React from 'react'\nimport { ActivityIndicator, StyleSheet, View } from 'react-native'\nimport { Heading, Switch, Text } from '@/components'\nimport { useTheme } from '@/hooks'\nimport { genderDisplayLabel } from '@/utils/gender_display_label'\n\ninterface FilterableGenderContentProps {\n genderValue: string\n enabled: boolean\n onToggle: (enabled: boolean) => void\n}\n\nfunction FilterableGenderContent({ genderValue, enabled, onToggle }: FilterableGenderContentProps) {\n const { colors } = useTheme()\n const styles = useStyles()\n const displayLabel = genderDisplayLabel(genderValue)\n\n return (\n <>\n <View style={styles.toggleRow}>\n <Text>{displayLabel}</Text>\n <Switch\n value={enabled}\n onValueChange={onToggle}\n accessibilityLabel={`Filter by ${displayLabel}`}\n />\n </View>\n <Text style={{ color: colors.textColorDefaultSecondary }}>\n Filter limited to your profile's set gender\n </Text>\n </>\n )\n}\n\nfunction NoGenderContent({ isFetching }: { isFetching: boolean }) {\n const { colors } = useTheme()\n\n return (\n <>\n <Text>Gender</Text>\n {isFetching ? (\n <ActivityIndicator size=\"small\" />\n ) : (\n <Text style={{ color: colors.textColorDefaultSecondary }}>\n Set a gender in your Church Center profile to enable gender filtering.\n </Text>\n )}\n </>\n )\n}\n\ninterface GenderFilterToggleProps {\n genderValue: string | null\n isFetching: boolean\n enabled: boolean\n onToggle: (enabled: boolean) => void\n}\n\nexport function GenderFilterToggle({\n genderValue,\n isFetching,\n enabled,\n onToggle,\n}: GenderFilterToggleProps) {\n const styles = useStyles()\n const hasFilterableGender = genderValue !== null && genderValue !== 'Prefer not to say'\n\n return (\n <View style={styles.container}>\n <Heading variant=\"h3\">Filter by</Heading>\n {hasFilterableGender ? (\n <FilterableGenderContent genderValue={genderValue} enabled={enabled} onToggle={onToggle} />\n ) : (\n <NoGenderContent isFetching={isFetching} />\n )}\n </View>\n )\n}\n\nconst useStyles = () => {\n return StyleSheet.create({\n container: {\n padding: 16,\n gap: 8,\n },\n toggleRow: {\n flexDirection: 'row',\n justifyContent: 'space-between',\n alignItems: 'center',\n },\n })\n}\n"]}
@@ -1,5 +1,5 @@
1
1
  import React from 'react';
2
- import { GraphId } from '../../../types/resources/group_resource';
2
+ import { GraphId } from '@/types/resources/group_resource';
3
3
  type GroupsFormProps = {
4
4
  groupId: number;
5
5
  chat_group_graph_id?: GraphId;
@@ -1 +1 @@
1
- {"version":3,"file":"groups_form.d.ts","sourceRoot":"","sources":["../../../../src/screens/conversation_new/components/groups_form.tsx"],"names":[],"mappings":"AACA,OAAO,KAAiD,MAAM,OAAO,CAAA;AAarE,OAAO,EAAE,OAAO,EAAE,MAAM,yCAAyC,CAAA;AAOjE,KAAK,eAAe,GAAG;IACrB,OAAO,EAAE,MAAM,CAAA;IACf,mBAAmB,CAAC,EAAE,OAAO,CAAA;CAC9B,CAAA;AAED,eAAO,MAAM,UAAU,qCAAsC,eAAe,sBAwF3E,CAAA"}
1
+ {"version":3,"file":"groups_form.d.ts","sourceRoot":"","sources":["../../../../src/screens/conversation_new/components/groups_form.tsx"],"names":[],"mappings":"AACA,OAAO,KAAiD,MAAM,OAAO,CAAA;AAerE,OAAO,EAAE,OAAO,EAAE,MAAM,kCAAkC,CAAA;AAK1D,KAAK,eAAe,GAAG;IACrB,OAAO,EAAE,MAAM,CAAA;IACf,mBAAmB,CAAC,EAAE,OAAO,CAAA;CAC9B,CAAA;AAED,eAAO,MAAM,UAAU,qCAAsC,eAAe,sBAwF3E,CAAA"}
@@ -1,18 +1,18 @@
1
1
  import { StackActions, useNavigation } from '@react-navigation/native';
2
2
  import React, { useCallback, useMemo, useRef, useState } from 'react';
3
3
  import { Platform, Pressable, StyleSheet, TextInput, View } from 'react-native';
4
- import { Banner, ChildNotice, Heading, Text } from '../../../components';
5
- import { ActionButton } from '../../../components/display/action_button';
6
- import { KeyboardView } from '../../../components/display/keyboard_view';
7
- import { useCurrentPerson, useSuspenseGet, useTheme } from '../../../hooks';
8
- import { useGroupMembersForNewConversation, } from '../../../hooks/groups/use_group_members_for_new_conversation';
9
- import { useGroupsConversationCreate } from '../../../hooks/groups/use_groups_conversation_create';
10
- import { useMyGender } from '../../../hooks/use_my_gender';
11
- import { pluralize } from '../../../utils';
12
- import { genderDisplayLabel } from '../../../utils/gender_display_label';
13
- import { Haptic } from '../../../utils/native_adapters';
14
4
  import { Divider, FormList } from './form_list';
15
5
  import { GenderFilterToggle } from './gender_filter_toggle';
6
+ import { Banner, ChildNotice, Heading, Text } from '@/components';
7
+ import { ActionButton } from '@/components/display/action_button';
8
+ import { KeyboardView } from '@/components/display/keyboard_view';
9
+ import { useCurrentPerson, useSuspenseGet, useTheme } from '@/hooks';
10
+ import { useGroupMembersForNewConversation, } from '@/hooks/groups/use_group_members_for_new_conversation';
11
+ import { useGroupsConversationCreate } from '@/hooks/groups/use_groups_conversation_create';
12
+ import { useMyGender } from '@/hooks/use_my_gender';
13
+ import { pluralize } from '@/utils';
14
+ import { genderDisplayLabel } from '@/utils/gender_display_label';
15
+ import { Haptic } from '@/utils/native_adapters';
16
16
  export const GroupsForm = ({ groupId, chat_group_graph_id }) => {
17
17
  const navigation = useNavigation();
18
18
  const [title, setTitle] = useState('');
@@ -1 +1 @@
1
- {"version":3,"file":"groups_form.js","sourceRoot":"","sources":["../../../../src/screens/conversation_new/components/groups_form.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAA;AACtE,OAAO,KAAK,EAAE,EAAE,WAAW,EAAE,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAA;AACrE,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,UAAU,EAAE,SAAS,EAAE,IAAI,EAAE,MAAM,cAAc,CAAA;AAC/E,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,qBAAqB,CAAA;AACxE,OAAO,EAAE,YAAY,EAAE,MAAM,2CAA2C,CAAA;AACxE,OAAO,EAAE,YAAY,EAAE,MAAM,2CAA2C,CAAA;AACxE,OAAO,EAAE,gBAAgB,EAAE,cAAc,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAA;AAC3E,OAAO,EAEL,iCAAiC,GAClC,MAAM,8DAA8D,CAAA;AACrE,OAAO,EAAE,2BAA2B,EAAE,MAAM,sDAAsD,CAAA;AAClG,OAAO,EAAE,WAAW,EAAE,MAAM,8BAA8B,CAAA;AAG1D,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAA;AAC1C,OAAO,EAAE,kBAAkB,EAAE,MAAM,qCAAqC,CAAA;AACxE,OAAO,EAAE,MAAM,EAAE,MAAM,gCAAgC,CAAA;AACvD,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAA;AAC/C,OAAO,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAA;AAO3D,MAAM,CAAC,MAAM,UAAU,GAAG,CAAC,EAAE,OAAO,EAAE,mBAAmB,EAAmB,EAAE,EAAE;IAC9E,MAAM,UAAU,GAAG,aAAa,EAAE,CAAA;IAClC,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG,QAAQ,CAAC,EAAE,CAAC,CAAA;IACtC,MAAM,CAAC,mBAAmB,EAAE,sBAAsB,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAA;IACrE,MAAM,EACJ,gBAAgB,EAAE,qBAAqB,EACvC,QAAQ,EACR,WAAW,EACX,UAAU,EAAE,cAAc,GAC3B,GAAG,WAAW,EAAE,CAAA;IACjB,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,cAAc,CAAsB;QAC1D,GAAG,EAAE,cAAc,OAAO,EAAE;QAC5B,IAAI,EAAE;YACJ,MAAM,EAAE;gBACN,KAAK,EAAE,EAAE;aACV;SACF;QACD,GAAG,EAAE,QAAQ;KACd,CAAC,CAAA;IAEF,MAAM,gBAAgB,GAAG,iCAAiC,CAAC,EAAE,EAAE,EAAE,OAAO,EAAE,CAAC,CAAA;IAE3E,MAAM,cAAc,GAAG,mBAAmB,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAA;IAE5D,MAAM,kBAAkB,GAAG,CAAC,OAAgB,EAAE,EAAE;QAC9C,MAAM,YAAY,GAAG,WAAW,CAAC,CAAC,CAAC,kBAAkB,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,EAAE,CAAA;QACvE,MAAM,YAAY,GAAG,GAAG,KAAK,CAAC,IAAI,KAAK,YAAY,GAAG,CAAA;QACtD,MAAM,uBAAuB,GAAG,OAAO,IAAI,WAAW,IAAI,KAAK,KAAK,EAAE,CAAA;QACtE,MAAM,6BAA6B,GAAG,CAAC,OAAO,IAAI,KAAK,KAAK,YAAY,CAAA;QAExE,sBAAsB,CAAC,OAAO,CAAC,CAAA;QAE/B,IAAI,uBAAuB,EAAE,CAAC;YAC5B,QAAQ,CAAC,YAAY,CAAC,CAAA;QACxB,CAAC;aAAM,IAAI,6BAA6B,EAAE,CAAC;YACzC,QAAQ,CAAC,EAAE,CAAC,CAAA;QACd,CAAC;IACH,CAAC,CAAA;IAED,MAAM,sBAAsB,GAAG,WAAW,CACxC,CAAC,cAAsB,EAAE,EAAE;QACzB,sCAAsC;QACtC,UAAU,CAAC,QAAQ,CACjB,YAAY,CAAC,KAAK,CAAC,cAAc,EAAE;YACjC,eAAe,EAAE,cAAc;YAC/B,mBAAmB;SACpB,CAAC,CACH,CAAA;QACD,MAAM,CAAC,mBAAmB,EAAE,CAAA;IAC9B,CAAC,EACD,CAAC,mBAAmB,EAAE,UAAU,CAAC,CAClC,CAAA;IAED,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,SAAS,EAAE,GAAG,2BAA2B,CAAC;QACpE,OAAO;QACP,KAAK;QACL,QAAQ,EAAE,cAAc;QACxB,SAAS,EAAE,sBAAsB;KAClC,CAAC,CAAA;IAEF,OAAO,CACL,CAAC,YAAY,CACX;MAAA,CAAC,QAAQ,CACP,UAAU,CAAC,CAAC,gBAAgB,CAAC,YAAY,CAAC,CAC1C,WAAW,CAAC,CAAC,gBAAgB,CAAC,kBAAkB,CAAC,CACjD,YAAY,CAAC,CAAC,gBAAgB,CAAC,aAAa,CAAC,CAC7C,WAAW,CAAC,CACV,CAAC,WAAW,CACV,KAAK,CAAC,CAAC,KAAK,CAAC,CACb,KAAK,CAAC,CAAC,KAAK,CAAC,CACb,QAAQ,CAAC,CAAC,QAAQ,CAAC,CACnB,qBAAqB,CAAC,CAAC,qBAAqB,CAAC,CAC7C,mBAAmB,CAAC,CAAC,mBAAmB,CAAC,CACzC,WAAW,CAAC,CAAC,WAAW,CAAC,CACzB,cAAc,CAAC,CAAC,cAAc,CAAC,CAC/B,cAAc,CAAC,CAAC,kBAAkB,CAAC,CACnC,gBAAgB,CAAC,CAAC,gBAAgB,CAAC,EAEvC,CAAC,EAEH;MAAA,CAAC,YAAY,CACX,QAAQ,CAAC,CAAC,CAAC,KAAK,IAAI,SAAS,CAAC,CAC9B,KAAK,CAAC,oBAAoB,CAC1B,OAAO,CAAC,CAAC,GAAG,EAAE,CAAC,UAAU,EAAE,CAAC,CAC5B,QAAQ,CAAC,iGAAiG,EAE9G;IAAA,EAAE,YAAY,CAAC,CAChB,CAAA;AACH,CAAC,CAAA;AAcD,SAAS,WAAW,CAAC,EACnB,KAAK,EACL,KAAK,EACL,QAAQ,EACR,qBAAqB,EACrB,mBAAmB,EACnB,WAAW,EACX,cAAc,EACd,cAAc,EACd,gBAAgB,GACC;IACjB,MAAM,MAAM,GAAG,SAAS,EAAE,CAAA;IAC1B,MAAM,QAAQ,GAAG,MAAM,CAAY,IAAI,CAAC,CAAA;IACxC,MAAM,aAAa,GAAG,gBAAgB,EAAE,CAAA;IACxC,MAAM,EAAE,IAAI,EAAE,gBAAgB,EAAE,GAAG,KAAK,CAAA;IAExC,MAAM,kBAAkB,GAAG,OAAO,CAChC,GAAG,EAAE,CAAC,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,aAAa,CAAC,EAAE,CAAC,EAChE,CAAC,gBAAgB,CAAC,IAAI,EAAE,aAAa,CAAC,EAAE,CAAC,CAC1C,CAAA;IACD,MAAM,QAAQ,GAAG,kBAAkB,EAAE,IAAI,KAAK,QAAQ,CAAA;IAEtD,MAAM,YAAY,GAAG,gBAAgB,CAAC,YAAY,CAAA;IAClD,MAAM,WAAW,GAAG,YAAY,CAAC,MAAM,GAAG,CAAC,CAAA;IAC3C,MAAM,iBAAiB,GAAG,GAAG,SAAS,CAAC,gBAAgB,EAAE,QAAQ,CAAC,WAAW,CAAA;IAE7E,MAAM,eAAe,GAAG,gBAAgB,CAAC,OAAO,CAAA;IAEhD,MAAM,uBAAuB,GAAG,WAAW,CAAC,GAAG,EAAE;QAC/C,QAAQ,CAAC,OAAO,EAAE,KAAK,EAAE,CAAA;IAC3B,CAAC,EAAE,EAAE,CAAC,CAAA;IAEN,OAAO,CACL,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,WAAW,CAAC,CAC9B;MAAA,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,SAAS,CAAC,CAC5B;QAAA,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,EAAE,OAAO,CAClC;QAAA,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,IAAI,CAC7C;MAAA,EAAE,IAAI,CACN;MAAA,CAAC,OAAO,CAAC,AAAD,EACR;MAAA,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC,OAAO,CAAC,CAAC,uBAAuB,CAAC,CACtE;QAAA,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,EAAE,OAAO,CACpC;QAAA,CAAC,SAAS,CACR,WAAW,CAAC,kCAAkC,CAC9C,KAAK,CAAC,CAAC,KAAK,CAAC,CACb,YAAY,CAAC,CAAC,QAAQ,CAAC,CACvB,KAAK,CAAC,CAAC,MAAM,CAAC,UAAU,CAAC,CACzB,SAAS,CAAC,CAAC,IAAI,CAAC,CAChB,GAAG,CAAC,CAAC,QAAQ,CAAC,EAElB;MAAA,EAAE,SAAS,CACX;MAAA,CAAC,OAAO,CAAC,AAAD,EACR;MAAA,CAAC,qBAAqB,IAAI,CACxB,EACE;UAAA,CAAC,kBAAkB,CACjB,WAAW,CAAC,CAAC,WAAW,CAAC,CACzB,UAAU,CAAC,CAAC,cAAc,CAAC,CAC3B,OAAO,CAAC,CAAC,mBAAmB,CAAC,CAC7B,QAAQ,CAAC,CAAC,cAAc,CAAC,EAE3B;UAAA,CAAC,OAAO,CAAC,AAAD,EACV;QAAA,GAAG,CACJ,CACD;MAAA,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,aAAa,CAAC,CAChC;QAAA,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,iBAAiB,CAAC,EAAE,OAAO,CAClD;QAAA,CAAC,WAAW,IAAI,CACd,CAAC,WAAW,CAAC,YAAY,CAAC,CAAC,YAAY,CAAC,CAAC,WAAW,CAAC,CAAC,QAAQ,CAAC,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,EAAG,CACzF,CACD;QAAA,CAAC,eAAe,IAAI,CAClB,CAAC,MAAM,CACL,UAAU,CAAC,OAAO,CAClB,WAAW,CAAC,yEAAyE,CACrF,KAAK,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,EACrB,CACH,CACH;MAAA,EAAE,IAAI,CACR;IAAA,EAAE,IAAI,CAAC,CACR,CAAA;AACH,CAAC;AAED,MAAM,SAAS,GAAG,GAAG,EAAE;IACrB,MAAM,EAAE,MAAM,EAAE,GAAG,QAAQ,EAAE,CAAA;IAC7B,MAAM,cAAc,GAAG,EAAE,CAAA;IACzB,MAAM,YAAY,GAAG,CAAC,CAAA;IAEtB,OAAO,UAAU,CAAC,MAAM,CAAC;QACvB,WAAW,EAAE;YACX,aAAa,EAAE,cAAc;YAC7B,IAAI,EAAE,CAAC;SACR;QACD,SAAS,EAAE;YACT,OAAO,EAAE,cAAc;YACvB,aAAa,EAAE,KAAK;YACpB,GAAG,EAAE,CAAC;SACP;QACD,SAAS,EAAE;YACT,QAAQ,EAAE,EAAE;YACZ,IAAI,EAAE,CAAC;SACR;QACD,YAAY,EAAE;YACZ,OAAO,EAAE,cAAc;YACvB,aAAa,EAAE,QAAQ,CAAC,MAAM,CAAC;gBAC7B,GAAG,EAAE,cAAc;gBACnB,OAAO,EAAE,cAAc,GAAG,YAAY;aACvC,CAAC;YACF,GAAG,EAAE,QAAQ,CAAC,MAAM,CAAC;gBACnB,GAAG,EAAE,CAAC;gBACN,OAAO,EAAE,CAAC;aACX,CAAC;SACH;QACD,UAAU,EAAE;YACV,QAAQ,EAAE,EAAE;YACZ,KAAK,EAAE,MAAM,CAAC,uBAAuB;SACtC;QACD,aAAa,EAAE;YACb,OAAO,EAAE,cAAc;YACvB,aAAa,EAAE,CAAC;SACjB;QACD,MAAM,EAAE;YACN,SAAS,EAAE,EAAE;SACd;KACF,CAAC,CAAA;AACJ,CAAC,CAAA","sourcesContent":["import { StackActions, useNavigation } from '@react-navigation/native'\nimport React, { useCallback, useMemo, useRef, useState } from 'react'\nimport { Platform, Pressable, StyleSheet, TextInput, View } from 'react-native'\nimport { Banner, ChildNotice, Heading, Text } from '../../../components'\nimport { ActionButton } from '../../../components/display/action_button'\nimport { KeyboardView } from '../../../components/display/keyboard_view'\nimport { useCurrentPerson, useSuspenseGet, useTheme } from '../../../hooks'\nimport {\n GroupMembersForNewConversationResult,\n useGroupMembersForNewConversation,\n} from '../../../hooks/groups/use_group_members_for_new_conversation'\nimport { useGroupsConversationCreate } from '../../../hooks/groups/use_groups_conversation_create'\nimport { useMyGender } from '../../../hooks/use_my_gender'\nimport { GroupsGroupResource } from '../../../types'\nimport { GraphId } from '../../../types/resources/group_resource'\nimport { pluralize } from '../../../utils'\nimport { genderDisplayLabel } from '../../../utils/gender_display_label'\nimport { Haptic } from '../../../utils/native_adapters'\nimport { Divider, FormList } from './form_list'\nimport { GenderFilterToggle } from './gender_filter_toggle'\n\ntype GroupsFormProps = {\n groupId: number\n chat_group_graph_id?: GraphId\n}\n\nexport const GroupsForm = ({ groupId, chat_group_graph_id }: GroupsFormProps) => {\n const navigation = useNavigation()\n const [title, setTitle] = useState('')\n const [genderFilterEnabled, setGenderFilterEnabled] = useState(false)\n const {\n isFeatureEnabled: genderFilterAvailable,\n genderId,\n genderValue,\n isFetching: genderFetching,\n } = useMyGender()\n const { data: group } = useSuspenseGet<GroupsGroupResource>({\n url: `/me/groups/${groupId}`,\n data: {\n fields: {\n Group: [],\n },\n },\n app: 'groups',\n })\n\n const groupMemberships = useGroupMembersForNewConversation({ id: groupId })\n\n const activeGenderId = genderFilterEnabled ? genderId : null\n\n const handleGenderToggle = (enabled: boolean) => {\n const displayLabel = genderValue ? genderDisplayLabel(genderValue) : ''\n const defaultTitle = `${group.name} (${displayLabel})`\n const shouldAutoPopulateTitle = enabled && genderValue && title === ''\n const shouldClearAutoPopulatedTitle = !enabled && title === defaultTitle\n\n setGenderFilterEnabled(enabled)\n\n if (shouldAutoPopulateTitle) {\n setTitle(defaultTitle)\n } else if (shouldClearAutoPopulatedTitle) {\n setTitle('')\n }\n }\n\n const redirectToConversation = useCallback(\n (conversationId: number) => {\n // navigate to the conversation screen\n navigation.dispatch(\n StackActions.popTo('Conversation', {\n conversation_id: conversationId,\n chat_group_graph_id,\n })\n )\n Haptic.notificationSuccess()\n },\n [chat_group_graph_id, navigation]\n )\n\n const { mutate: handleSave, isPending } = useGroupsConversationCreate({\n groupId,\n title,\n genderId: activeGenderId,\n onSuccess: redirectToConversation,\n })\n\n return (\n <KeyboardView>\n <FormList\n memberData={groupMemberships.adultMembers}\n loadingMore={groupMemberships.isFetchingNextPage}\n onEndReached={groupMemberships.fetchNextPage}\n FormContent={\n <FormContent\n group={group}\n title={title}\n setTitle={setTitle}\n genderFilterAvailable={genderFilterAvailable}\n genderFilterEnabled={genderFilterEnabled}\n genderValue={genderValue}\n genderFetching={genderFetching}\n onGenderToggle={handleGenderToggle}\n groupMemberships={groupMemberships}\n />\n }\n />\n <ActionButton\n disabled={!title || isPending}\n title=\"Start Conversation\"\n onPress={() => handleSave()}\n infoText=\"Conversation will be automatically updated if any members are added or removed from this group.\"\n />\n </KeyboardView>\n )\n}\n\ninterface FormContentProps {\n group: GroupsGroupResource\n title: string\n setTitle: (title: string) => void\n genderFilterAvailable: boolean\n genderFilterEnabled: boolean\n genderValue: string | null\n genderFetching: boolean\n onGenderToggle: (enabled: boolean) => void\n groupMemberships: GroupMembersForNewConversationResult\n}\n\nfunction FormContent({\n group,\n title,\n setTitle,\n genderFilterAvailable,\n genderFilterEnabled,\n genderValue,\n genderFetching,\n onGenderToggle,\n groupMemberships,\n}: FormContentProps) {\n const styles = useStyles()\n const inputRef = useRef<TextInput>(null)\n const currentPerson = useCurrentPerson()\n const { name, membershipsCount } = group\n\n const myGroupsMembership = useMemo(\n () => groupMemberships.data.find(m => m.id === currentPerson.id),\n [groupMemberships.data, currentPerson.id]\n )\n const isLeader = myGroupsMembership?.role === 'leader'\n\n const childMembers = groupMemberships.childMembers\n const hasChildren = childMembers.length > 0\n const memberHeaderLabel = `${pluralize(membershipsCount, 'member')} selected`\n\n const showMemberError = groupMemberships.isError\n\n const handleTitleSectionPress = useCallback(() => {\n inputRef.current?.focus()\n }, [])\n\n return (\n <View style={styles.formContent}>\n <View style={styles.toSection}>\n <Heading variant=\"h3\">To:</Heading>\n <Text style={styles.groupName}>{name}</Text>\n </View>\n <Divider />\n <Pressable style={styles.titleSection} onPress={handleTitleSectionPress}>\n <Heading variant=\"h3\">Title</Heading>\n <TextInput\n placeholder=\"Topic of conversation (required)\"\n value={title}\n onChangeText={setTitle}\n style={styles.titleInput}\n autoFocus={true}\n ref={inputRef}\n />\n </Pressable>\n <Divider />\n {genderFilterAvailable && (\n <>\n <GenderFilterToggle\n genderValue={genderValue}\n isFetching={genderFetching}\n enabled={genderFilterEnabled}\n onToggle={onGenderToggle}\n />\n <Divider />\n </>\n )}\n <View style={styles.memberSection}>\n <Heading variant=\"h3\">{memberHeaderLabel}</Heading>\n {hasChildren && (\n <ChildNotice childMembers={childMembers} showMembers={isLeader} style={styles.banner} />\n )}\n {showMemberError && (\n <Banner\n appearance=\"error\"\n description=\"There was an issue loading group members, please refresh and try again.\"\n style={styles.banner}\n />\n )}\n </View>\n </View>\n )\n}\n\nconst useStyles = () => {\n const { colors } = useTheme()\n const sectionPadding = 16\n const inputPadding = 8\n\n return StyleSheet.create({\n formContent: {\n paddingBottom: sectionPadding,\n flex: 1,\n },\n toSection: {\n padding: sectionPadding,\n flexDirection: 'row',\n gap: 8,\n },\n groupName: {\n fontSize: 18,\n flex: 1,\n },\n titleSection: {\n padding: sectionPadding,\n paddingBottom: Platform.select({\n ios: sectionPadding,\n android: sectionPadding - inputPadding,\n }),\n gap: Platform.select({\n ios: 8,\n android: 0,\n }),\n },\n titleInput: {\n fontSize: 18,\n color: colors.textColorDefaultPrimary,\n },\n memberSection: {\n padding: sectionPadding,\n paddingBottom: 0,\n },\n banner: {\n marginTop: 16,\n },\n })\n}\n"]}
1
+ {"version":3,"file":"groups_form.js","sourceRoot":"","sources":["../../../../src/screens/conversation_new/components/groups_form.tsx"],"names":[],"mappings":"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","sourcesContent":["import { StackActions, useNavigation } from '@react-navigation/native'\nimport React, { useCallback, useMemo, useRef, useState } from 'react'\nimport { Platform, Pressable, StyleSheet, TextInput, View } from 'react-native'\nimport { Divider, FormList } from './form_list'\nimport { GenderFilterToggle } from './gender_filter_toggle'\nimport { Banner, ChildNotice, Heading, Text } from '@/components'\nimport { ActionButton } from '@/components/display/action_button'\nimport { KeyboardView } from '@/components/display/keyboard_view'\nimport { useCurrentPerson, useSuspenseGet, useTheme } from '@/hooks'\nimport {\n GroupMembersForNewConversationResult,\n useGroupMembersForNewConversation,\n} from '@/hooks/groups/use_group_members_for_new_conversation'\nimport { useGroupsConversationCreate } from '@/hooks/groups/use_groups_conversation_create'\nimport { useMyGender } from '@/hooks/use_my_gender'\nimport { GroupsGroupResource } from '@/types'\nimport { GraphId } from '@/types/resources/group_resource'\nimport { pluralize } from '@/utils'\nimport { genderDisplayLabel } from '@/utils/gender_display_label'\nimport { Haptic } from '@/utils/native_adapters'\n\ntype GroupsFormProps = {\n groupId: number\n chat_group_graph_id?: GraphId\n}\n\nexport const GroupsForm = ({ groupId, chat_group_graph_id }: GroupsFormProps) => {\n const navigation = useNavigation()\n const [title, setTitle] = useState('')\n const [genderFilterEnabled, setGenderFilterEnabled] = useState(false)\n const {\n isFeatureEnabled: genderFilterAvailable,\n genderId,\n genderValue,\n isFetching: genderFetching,\n } = useMyGender()\n const { data: group } = useSuspenseGet<GroupsGroupResource>({\n url: `/me/groups/${groupId}`,\n data: {\n fields: {\n Group: [],\n },\n },\n app: 'groups',\n })\n\n const groupMemberships = useGroupMembersForNewConversation({ id: groupId })\n\n const activeGenderId = genderFilterEnabled ? genderId : null\n\n const handleGenderToggle = (enabled: boolean) => {\n const displayLabel = genderValue ? genderDisplayLabel(genderValue) : ''\n const defaultTitle = `${group.name} (${displayLabel})`\n const shouldAutoPopulateTitle = enabled && genderValue && title === ''\n const shouldClearAutoPopulatedTitle = !enabled && title === defaultTitle\n\n setGenderFilterEnabled(enabled)\n\n if (shouldAutoPopulateTitle) {\n setTitle(defaultTitle)\n } else if (shouldClearAutoPopulatedTitle) {\n setTitle('')\n }\n }\n\n const redirectToConversation = useCallback(\n (conversationId: number) => {\n // navigate to the conversation screen\n navigation.dispatch(\n StackActions.popTo('Conversation', {\n conversation_id: conversationId,\n chat_group_graph_id,\n })\n )\n Haptic.notificationSuccess()\n },\n [chat_group_graph_id, navigation]\n )\n\n const { mutate: handleSave, isPending } = useGroupsConversationCreate({\n groupId,\n title,\n genderId: activeGenderId,\n onSuccess: redirectToConversation,\n })\n\n return (\n <KeyboardView>\n <FormList\n memberData={groupMemberships.adultMembers}\n loadingMore={groupMemberships.isFetchingNextPage}\n onEndReached={groupMemberships.fetchNextPage}\n FormContent={\n <FormContent\n group={group}\n title={title}\n setTitle={setTitle}\n genderFilterAvailable={genderFilterAvailable}\n genderFilterEnabled={genderFilterEnabled}\n genderValue={genderValue}\n genderFetching={genderFetching}\n onGenderToggle={handleGenderToggle}\n groupMemberships={groupMemberships}\n />\n }\n />\n <ActionButton\n disabled={!title || isPending}\n title=\"Start Conversation\"\n onPress={() => handleSave()}\n infoText=\"Conversation will be automatically updated if any members are added or removed from this group.\"\n />\n </KeyboardView>\n )\n}\n\ninterface FormContentProps {\n group: GroupsGroupResource\n title: string\n setTitle: (title: string) => void\n genderFilterAvailable: boolean\n genderFilterEnabled: boolean\n genderValue: string | null\n genderFetching: boolean\n onGenderToggle: (enabled: boolean) => void\n groupMemberships: GroupMembersForNewConversationResult\n}\n\nfunction FormContent({\n group,\n title,\n setTitle,\n genderFilterAvailable,\n genderFilterEnabled,\n genderValue,\n genderFetching,\n onGenderToggle,\n groupMemberships,\n}: FormContentProps) {\n const styles = useStyles()\n const inputRef = useRef<TextInput>(null)\n const currentPerson = useCurrentPerson()\n const { name, membershipsCount } = group\n\n const myGroupsMembership = useMemo(\n () => groupMemberships.data.find(m => m.id === currentPerson.id),\n [groupMemberships.data, currentPerson.id]\n )\n const isLeader = myGroupsMembership?.role === 'leader'\n\n const childMembers = groupMemberships.childMembers\n const hasChildren = childMembers.length > 0\n const memberHeaderLabel = `${pluralize(membershipsCount, 'member')} selected`\n\n const showMemberError = groupMemberships.isError\n\n const handleTitleSectionPress = useCallback(() => {\n inputRef.current?.focus()\n }, [])\n\n return (\n <View style={styles.formContent}>\n <View style={styles.toSection}>\n <Heading variant=\"h3\">To:</Heading>\n <Text style={styles.groupName}>{name}</Text>\n </View>\n <Divider />\n <Pressable style={styles.titleSection} onPress={handleTitleSectionPress}>\n <Heading variant=\"h3\">Title</Heading>\n <TextInput\n placeholder=\"Topic of conversation (required)\"\n value={title}\n onChangeText={setTitle}\n style={styles.titleInput}\n autoFocus={true}\n ref={inputRef}\n />\n </Pressable>\n <Divider />\n {genderFilterAvailable && (\n <>\n <GenderFilterToggle\n genderValue={genderValue}\n isFetching={genderFetching}\n enabled={genderFilterEnabled}\n onToggle={onGenderToggle}\n />\n <Divider />\n </>\n )}\n <View style={styles.memberSection}>\n <Heading variant=\"h3\">{memberHeaderLabel}</Heading>\n {hasChildren && (\n <ChildNotice childMembers={childMembers} showMembers={isLeader} style={styles.banner} />\n )}\n {showMemberError && (\n <Banner\n appearance=\"error\"\n description=\"There was an issue loading group members, please refresh and try again.\"\n style={styles.banner}\n />\n )}\n </View>\n </View>\n )\n}\n\nconst useStyles = () => {\n const { colors } = useTheme()\n const sectionPadding = 16\n const inputPadding = 8\n\n return StyleSheet.create({\n formContent: {\n paddingBottom: sectionPadding,\n flex: 1,\n },\n toSection: {\n padding: sectionPadding,\n flexDirection: 'row',\n gap: 8,\n },\n groupName: {\n fontSize: 18,\n flex: 1,\n },\n titleSection: {\n padding: sectionPadding,\n paddingBottom: Platform.select({\n ios: sectionPadding,\n android: sectionPadding - inputPadding,\n }),\n gap: Platform.select({\n ios: 8,\n android: 0,\n }),\n },\n titleInput: {\n fontSize: 18,\n color: colors.textColorDefaultPrimary,\n },\n memberSection: {\n padding: sectionPadding,\n paddingBottom: 0,\n },\n banner: {\n marginTop: 16,\n },\n })\n}\n"]}
@@ -1,5 +1,5 @@
1
1
  import React from 'react';
2
- import { TeamFilterTypes } from '../../conversation_filter_recipients/types';
2
+ import { TeamFilterTypes } from '@/screens/conversation_filter_recipients/types';
3
3
  type ServicesFormProps = {
4
4
  initialTeamIds?: number[];
5
5
  initialPlanId?: number;
@@ -1 +1 @@
1
- {"version":3,"file":"services_form.d.ts","sourceRoot":"","sources":["../../../../src/screens/conversation_new/components/services_form.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAoD,MAAM,OAAO,CAAA;AAWxE,OAAO,EAAE,eAAe,EAAE,MAAM,4CAA4C,CAAA;AAI5E,KAAK,iBAAiB,GAAG;IACvB,cAAc,CAAC,EAAE,MAAM,EAAE,CAAA;IACzB,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB,cAAc,CAAC,EAAE,eAAe,CAAA;CACjC,CAAA;AAED,eAAO,MAAM,YAAY,uDAItB,iBAAiB,sBA6EnB,CAAA"}
1
+ {"version":3,"file":"services_form.d.ts","sourceRoot":"","sources":["../../../../src/screens/conversation_new/components/services_form.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAoD,MAAM,OAAO,CAAA;AASxE,OAAO,EAAE,eAAe,EAAE,MAAM,gDAAgD,CAAA;AAMhF,KAAK,iBAAiB,GAAG;IACvB,cAAc,CAAC,EAAE,MAAM,EAAE,CAAA;IACzB,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB,cAAc,CAAC,EAAE,eAAe,CAAA;CACjC,CAAA;AAED,eAAO,MAAM,YAAY,uDAItB,iBAAiB,sBA6EnB,CAAA"}
@@ -2,16 +2,16 @@ import { StackActions, useNavigation } from '@react-navigation/native';
2
2
  import { uniq } from 'lodash';
3
3
  import React, { useCallback, useEffect, useMemo, useState } from 'react';
4
4
  import { StyleSheet, View } from 'react-native';
5
- import { Badge, Banner, ChildNotice, Heading, Switch, TextButton } from '../../../components';
6
- import { ActionButton } from '../../../components/display/action_button';
7
- import { useFindOrCreateServicesConversation } from '../../../hooks/services/use_find_or_create_services_conversation';
8
- import { useServicesTeams } from '../../../hooks/services/use_services_team';
9
- import { useTeamMembersForNewConversation } from '../../../hooks/services/use_team_members_for_new_conversation';
10
- import { pluralize } from '../../../utils';
11
- import { Haptic } from '../../../utils/native_adapters';
12
- import { tokens } from '../../../vendor/tapestry/tokens';
13
5
  import { FilterByPlan } from './filter_by_plan';
14
6
  import { Divider, FormList } from './form_list';
7
+ import { Badge, Banner, ChildNotice, Heading, Switch, TextButton } from '@/components';
8
+ import { ActionButton } from '@/components/display/action_button';
9
+ import { useFindOrCreateServicesConversation } from '@/hooks/services/use_find_or_create_services_conversation';
10
+ import { useServicesTeams } from '@/hooks/services/use_services_team';
11
+ import { useTeamMembersForNewConversation } from '@/hooks/services/use_team_members_for_new_conversation';
12
+ import { pluralize } from '@/utils';
13
+ import { Haptic } from '@/utils/native_adapters';
14
+ import { tokens } from '@/vendor/tapestry/tokens';
15
15
  export const ServicesForm = ({ initialTeamIds, initialPlanId, teamFilterType, }) => {
16
16
  const styles = useStyles();
17
17
  const [selectedPlanId, setSelectedPlanId] = useState(initialPlanId);
@@ -1 +1 @@
1
- {"version":3,"file":"services_form.js","sourceRoot":"","sources":["../../../../src/screens/conversation_new/components/services_form.tsx"],"names":[],"mappings":"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","sourcesContent":["import { StackActions, useNavigation } from '@react-navigation/native'\nimport { uniq } from 'lodash'\nimport React, { useCallback, useEffect, useMemo, useState } from 'react'\nimport { StyleSheet, View } from 'react-native'\nimport { Badge, Banner, ChildNotice, Heading, Switch, TextButton } from '../../../components'\nimport { ActionButton } from '../../../components/display/action_button'\nimport { useFindOrCreateServicesConversation } from '../../../hooks/services/use_find_or_create_services_conversation'\nimport { useServicesTeams } from '../../../hooks/services/use_services_team'\nimport { useTeamMembersForNewConversation } from '../../../hooks/services/use_team_members_for_new_conversation'\nimport { ConversationResource, MemberResource } from '../../../types'\nimport { pluralize } from '../../../utils'\nimport { Haptic } from '../../../utils/native_adapters'\nimport { tokens } from '../../../vendor/tapestry/tokens'\nimport { TeamFilterTypes } from '../../conversation_filter_recipients/types'\nimport { FilterByPlan } from './filter_by_plan'\nimport { Divider, FormList } from './form_list'\n\ntype ServicesFormProps = {\n initialTeamIds?: number[]\n initialPlanId?: number\n teamFilterType?: TeamFilterTypes\n}\n\nexport const ServicesForm = ({\n initialTeamIds,\n initialPlanId,\n teamFilterType,\n}: ServicesFormProps) => {\n const styles = useStyles()\n const [selectedPlanId, setSelectedPlanId] = useState<number | undefined>(initialPlanId)\n const initialState = useMemo(() => uniq(initialTeamIds) || [], [initialTeamIds]) // Uniq here because services can send duplicates in the teams_i_lead response.\n const [selectedTeamIds, setSelectedTeamIds] = useState<number[]>(initialState)\n\n // Sync with fresh props when they change (from navigation)\n useEffect(() => {\n setSelectedTeamIds(initialState)\n setSelectedPlanId(initialPlanId)\n }, [initialState, initialPlanId])\n\n const removeSelection = useCallback(\n (teamId: number) => {\n setSelectedTeamIds(selectedTeamIds.filter(id => id !== teamId))\n },\n [selectedTeamIds]\n )\n\n const [filerByPlan, setFilterByPlan] = useState(false)\n\n const { members, isError: isMemberError } = useTeamMembersForNewConversation({\n teamIds: selectedTeamIds,\n planId: selectedPlanId,\n })\n const adultMembers = useMemo(() => members.filter(member => !member.child), [members])\n\n const navigation = useNavigation()\n const {\n mutate: createConversation,\n isPending,\n selectionHasConversation,\n isLoadingConversationCheck,\n } = useFindOrCreateServicesConversation({\n teamIds: selectedTeamIds,\n planId: filerByPlan ? selectedPlanId : undefined,\n onSuccess: (conversation: ConversationResource) => {\n // exit from the create stack\n navigation.getParent()?.goBack()\n // navigate to the conversation screen\n navigation.dispatch(\n StackActions.push('Conversation', {\n conversation_id: conversation.id,\n })\n )\n // Only trigger success haptic if creating a new conversation\n if (!selectionHasConversation) Haptic.notificationSuccess()\n },\n })\n\n return (\n <View style={styles.formContainer}>\n <FormList\n memberData={adultMembers}\n FormContent={\n <FormContent\n selectedTeamIds={selectedTeamIds}\n removeSelection={removeSelection}\n selectedPlanId={selectedPlanId}\n setSelectedPlanId={setSelectedPlanId}\n filterByPlan={filerByPlan}\n setFilterByPlan={setFilterByPlan}\n members={members}\n isMemberError={isMemberError}\n teamFilterType={teamFilterType}\n />\n }\n />\n <ActionButton\n disabled={!selectedTeamIds.length || isPending || isLoadingConversationCheck}\n title={selectionHasConversation ? 'Open conversation' : 'Start conversation'}\n onPress={createConversation}\n infoText=\"Conversation will be automatically updated if any members are added or removed from included teams.\"\n loading={isLoadingConversationCheck}\n />\n </View>\n )\n}\n\ninterface FormContentProps {\n selectedTeamIds: number[]\n removeSelection: (teamId: number) => void\n selectedPlanId?: number\n setSelectedPlanId: (planId: number | undefined) => void\n filterByPlan: boolean\n setFilterByPlan: (value: boolean) => void\n members: MemberResource[]\n isMemberError: boolean\n teamFilterType?: TeamFilterTypes\n}\n\nfunction FormContent({\n selectedTeamIds,\n removeSelection,\n selectedPlanId,\n setSelectedPlanId,\n filterByPlan,\n setFilterByPlan,\n members,\n isMemberError,\n teamFilterType,\n}: FormContentProps) {\n const navigation = useNavigation()\n const servicesTeams = useServicesTeams()\n const selectedTeams = useMemo(() => {\n return servicesTeams.filter(team => selectedTeamIds.includes(team.value.teamId))\n }, [selectedTeamIds, servicesTeams])\n\n const styles = useStyles()\n const teamCountHeader = pluralize(selectedTeamIds.length, 'team')\n const memberCount = members.length\n const childMembers = useMemo(() => members.filter(member => member.child), [members])\n const hasChildren = childMembers.length > 0\n\n filterByPlan = filterByPlan && !!selectedTeamIds.length\n\n return (\n <View style={styles.formContent}>\n <View style={styles.toSection}>\n <View style={styles.toSectionRow}>\n <Heading variant=\"h3\">To:</Heading>\n <TextButton\n accessibilityLabel=\"Select teams\"\n textStyle={styles.teamCountHeader}\n onPress={() => {\n Haptic.impactLight()\n navigation.navigate('New', {\n screen: 'ConversationFilterRecipients',\n params: {\n source_app_name: 'Services',\n team_ids: selectedTeamIds,\n team_filter_type: teamFilterType,\n },\n })\n }}\n >\n {teamCountHeader}\n </TextButton>\n </View>\n <View style={styles.toSectionRow}>\n {selectedTeams.map(team => {\n const serviceTypeAcronyms = team.serviceTypeAcronyms.join(', ')\n const label = `${team.teamName} | ${serviceTypeAcronyms}`\n\n return (\n <View key={team.value.teamId} style={styles.badgeRow}>\n <Badge\n iconNameRight=\"general.x\"\n label={label}\n onPress={() => removeSelection(team.value.teamId)}\n />\n </View>\n )\n })}\n </View>\n </View>\n <Divider />\n <View style={styles.filterByPlanSection}>\n <View style={styles.filterByPlanSectionLead}>\n <Heading variant=\"h3\">Filter by plan</Heading>\n <Switch\n value={filterByPlan}\n onValueChange={value => {\n setFilterByPlan(value)\n if (!value) {\n setSelectedPlanId(undefined)\n }\n }}\n disabled={!selectedTeamIds.length}\n />\n </View>\n {filterByPlan && (\n <FilterByPlan\n teamIds={selectedTeamIds}\n selectedPlanId={selectedPlanId}\n onPlanSelect={setSelectedPlanId}\n />\n )}\n </View>\n <Divider />\n <View style={styles.memberSection}>\n <Heading variant=\"h3\">{pluralize(memberCount, 'member')} selected</Heading>\n {hasChildren && (\n <ChildNotice childMembers={childMembers} showMembers={true} style={styles.banner} />\n )}\n {isMemberError && (\n <Banner\n appearance=\"error\"\n description=\"There was an issue loading team members, please refresh and try again.\"\n style={styles.banner}\n />\n )}\n </View>\n </View>\n )\n}\n\nconst useStyles = () => {\n const sectionPadding = 16\n\n return StyleSheet.create({\n formContainer: {\n flex: 1,\n },\n formContent: {\n paddingBottom: sectionPadding,\n flex: 1,\n },\n toSection: {\n padding: sectionPadding,\n gap: 8,\n },\n toSectionRow: {\n flexDirection: 'row',\n gap: 8,\n alignItems: 'baseline',\n flexWrap: 'wrap',\n },\n badgeRow: {\n flexDirection: 'row',\n },\n groupName: {\n fontSize: 18,\n },\n filterByPlanSection: {\n padding: sectionPadding,\n gap: 12,\n },\n filterByPlanSectionLead: {\n flexDirection: 'row',\n gap: 8,\n justifyContent: 'space-between',\n alignItems: 'center',\n },\n filterByPlanSectionRow: {\n flexDirection: 'row',\n gap: 8,\n },\n titleInput: {\n fontSize: 18,\n },\n memberSection: {\n padding: sectionPadding,\n paddingBottom: 0,\n },\n banner: {\n marginTop: 16,\n },\n teamCountHeader: {\n fontSize: tokens.fontSizeLg,\n },\n })\n}\n"]}
1
+ {"version":3,"file":"services_form.js","sourceRoot":"","sources":["../../../../src/screens/conversation_new/components/services_form.tsx"],"names":[],"mappings":"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","sourcesContent":["import { StackActions, useNavigation } from '@react-navigation/native'\nimport { uniq } from 'lodash'\nimport React, { useCallback, useEffect, useMemo, useState } from 'react'\nimport { StyleSheet, View } from 'react-native'\nimport { FilterByPlan } from './filter_by_plan'\nimport { Divider, FormList } from './form_list'\nimport { Badge, Banner, ChildNotice, Heading, Switch, TextButton } from '@/components'\nimport { ActionButton } from '@/components/display/action_button'\nimport { useFindOrCreateServicesConversation } from '@/hooks/services/use_find_or_create_services_conversation'\nimport { useServicesTeams } from '@/hooks/services/use_services_team'\nimport { useTeamMembersForNewConversation } from '@/hooks/services/use_team_members_for_new_conversation'\nimport { TeamFilterTypes } from '@/screens/conversation_filter_recipients/types'\nimport { ConversationResource, MemberResource } from '@/types'\nimport { pluralize } from '@/utils'\nimport { Haptic } from '@/utils/native_adapters'\nimport { tokens } from '@/vendor/tapestry/tokens'\n\ntype ServicesFormProps = {\n initialTeamIds?: number[]\n initialPlanId?: number\n teamFilterType?: TeamFilterTypes\n}\n\nexport const ServicesForm = ({\n initialTeamIds,\n initialPlanId,\n teamFilterType,\n}: ServicesFormProps) => {\n const styles = useStyles()\n const [selectedPlanId, setSelectedPlanId] = useState<number | undefined>(initialPlanId)\n const initialState = useMemo(() => uniq(initialTeamIds) || [], [initialTeamIds]) // Uniq here because services can send duplicates in the teams_i_lead response.\n const [selectedTeamIds, setSelectedTeamIds] = useState<number[]>(initialState)\n\n // Sync with fresh props when they change (from navigation)\n useEffect(() => {\n setSelectedTeamIds(initialState)\n setSelectedPlanId(initialPlanId)\n }, [initialState, initialPlanId])\n\n const removeSelection = useCallback(\n (teamId: number) => {\n setSelectedTeamIds(selectedTeamIds.filter(id => id !== teamId))\n },\n [selectedTeamIds]\n )\n\n const [filerByPlan, setFilterByPlan] = useState(false)\n\n const { members, isError: isMemberError } = useTeamMembersForNewConversation({\n teamIds: selectedTeamIds,\n planId: selectedPlanId,\n })\n const adultMembers = useMemo(() => members.filter(member => !member.child), [members])\n\n const navigation = useNavigation()\n const {\n mutate: createConversation,\n isPending,\n selectionHasConversation,\n isLoadingConversationCheck,\n } = useFindOrCreateServicesConversation({\n teamIds: selectedTeamIds,\n planId: filerByPlan ? selectedPlanId : undefined,\n onSuccess: (conversation: ConversationResource) => {\n // exit from the create stack\n navigation.getParent()?.goBack()\n // navigate to the conversation screen\n navigation.dispatch(\n StackActions.push('Conversation', {\n conversation_id: conversation.id,\n })\n )\n // Only trigger success haptic if creating a new conversation\n if (!selectionHasConversation) Haptic.notificationSuccess()\n },\n })\n\n return (\n <View style={styles.formContainer}>\n <FormList\n memberData={adultMembers}\n FormContent={\n <FormContent\n selectedTeamIds={selectedTeamIds}\n removeSelection={removeSelection}\n selectedPlanId={selectedPlanId}\n setSelectedPlanId={setSelectedPlanId}\n filterByPlan={filerByPlan}\n setFilterByPlan={setFilterByPlan}\n members={members}\n isMemberError={isMemberError}\n teamFilterType={teamFilterType}\n />\n }\n />\n <ActionButton\n disabled={!selectedTeamIds.length || isPending || isLoadingConversationCheck}\n title={selectionHasConversation ? 'Open conversation' : 'Start conversation'}\n onPress={createConversation}\n infoText=\"Conversation will be automatically updated if any members are added or removed from included teams.\"\n loading={isLoadingConversationCheck}\n />\n </View>\n )\n}\n\ninterface FormContentProps {\n selectedTeamIds: number[]\n removeSelection: (teamId: number) => void\n selectedPlanId?: number\n setSelectedPlanId: (planId: number | undefined) => void\n filterByPlan: boolean\n setFilterByPlan: (value: boolean) => void\n members: MemberResource[]\n isMemberError: boolean\n teamFilterType?: TeamFilterTypes\n}\n\nfunction FormContent({\n selectedTeamIds,\n removeSelection,\n selectedPlanId,\n setSelectedPlanId,\n filterByPlan,\n setFilterByPlan,\n members,\n isMemberError,\n teamFilterType,\n}: FormContentProps) {\n const navigation = useNavigation()\n const servicesTeams = useServicesTeams()\n const selectedTeams = useMemo(() => {\n return servicesTeams.filter(team => selectedTeamIds.includes(team.value.teamId))\n }, [selectedTeamIds, servicesTeams])\n\n const styles = useStyles()\n const teamCountHeader = pluralize(selectedTeamIds.length, 'team')\n const memberCount = members.length\n const childMembers = useMemo(() => members.filter(member => member.child), [members])\n const hasChildren = childMembers.length > 0\n\n filterByPlan = filterByPlan && !!selectedTeamIds.length\n\n return (\n <View style={styles.formContent}>\n <View style={styles.toSection}>\n <View style={styles.toSectionRow}>\n <Heading variant=\"h3\">To:</Heading>\n <TextButton\n accessibilityLabel=\"Select teams\"\n textStyle={styles.teamCountHeader}\n onPress={() => {\n Haptic.impactLight()\n navigation.navigate('New', {\n screen: 'ConversationFilterRecipients',\n params: {\n source_app_name: 'Services',\n team_ids: selectedTeamIds,\n team_filter_type: teamFilterType,\n },\n })\n }}\n >\n {teamCountHeader}\n </TextButton>\n </View>\n <View style={styles.toSectionRow}>\n {selectedTeams.map(team => {\n const serviceTypeAcronyms = team.serviceTypeAcronyms.join(', ')\n const label = `${team.teamName} | ${serviceTypeAcronyms}`\n\n return (\n <View key={team.value.teamId} style={styles.badgeRow}>\n <Badge\n iconNameRight=\"general.x\"\n label={label}\n onPress={() => removeSelection(team.value.teamId)}\n />\n </View>\n )\n })}\n </View>\n </View>\n <Divider />\n <View style={styles.filterByPlanSection}>\n <View style={styles.filterByPlanSectionLead}>\n <Heading variant=\"h3\">Filter by plan</Heading>\n <Switch\n value={filterByPlan}\n onValueChange={value => {\n setFilterByPlan(value)\n if (!value) {\n setSelectedPlanId(undefined)\n }\n }}\n disabled={!selectedTeamIds.length}\n />\n </View>\n {filterByPlan && (\n <FilterByPlan\n teamIds={selectedTeamIds}\n selectedPlanId={selectedPlanId}\n onPlanSelect={setSelectedPlanId}\n />\n )}\n </View>\n <Divider />\n <View style={styles.memberSection}>\n <Heading variant=\"h3\">{pluralize(memberCount, 'member')} selected</Heading>\n {hasChildren && (\n <ChildNotice childMembers={childMembers} showMembers={true} style={styles.banner} />\n )}\n {isMemberError && (\n <Banner\n appearance=\"error\"\n description=\"There was an issue loading team members, please refresh and try again.\"\n style={styles.banner}\n />\n )}\n </View>\n </View>\n )\n}\n\nconst useStyles = () => {\n const sectionPadding = 16\n\n return StyleSheet.create({\n formContainer: {\n flex: 1,\n },\n formContent: {\n paddingBottom: sectionPadding,\n flex: 1,\n },\n toSection: {\n padding: sectionPadding,\n gap: 8,\n },\n toSectionRow: {\n flexDirection: 'row',\n gap: 8,\n alignItems: 'baseline',\n flexWrap: 'wrap',\n },\n badgeRow: {\n flexDirection: 'row',\n },\n groupName: {\n fontSize: 18,\n },\n filterByPlanSection: {\n padding: sectionPadding,\n gap: 12,\n },\n filterByPlanSectionLead: {\n flexDirection: 'row',\n gap: 8,\n justifyContent: 'space-between',\n alignItems: 'center',\n },\n filterByPlanSectionRow: {\n flexDirection: 'row',\n gap: 8,\n },\n titleInput: {\n fontSize: 18,\n },\n memberSection: {\n padding: sectionPadding,\n paddingBottom: 0,\n },\n banner: {\n marginTop: 16,\n },\n teamCountHeader: {\n fontSize: tokens.fontSizeLg,\n },\n })\n}\n"]}
@@ -1,5 +1,5 @@
1
1
  import { StyleSheet, View } from 'react-native';
2
- import { Banner } from '../../../components';
2
+ import { Banner } from '@/components';
3
3
  export const SourceAppErrorCard = () => {
4
4
  const styles = useStyles();
5
5
  return (<View style={styles.container}>
@@ -1 +1 @@
1
- {"version":3,"file":"source_app_error_card.js","sourceRoot":"","sources":["../../../../src/screens/conversation_new/components/source_app_error_card.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,IAAI,EAAE,MAAM,cAAc,CAAA;AAC/C,OAAO,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAA;AAE5C,MAAM,CAAC,MAAM,kBAAkB,GAAG,GAAG,EAAE;IACrC,MAAM,MAAM,GAAG,SAAS,EAAE,CAAA;IAE1B,OAAO,CACL,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,SAAS,CAAC,CAC5B;MAAA,CAAC,MAAM,CACL,UAAU,CAAC,OAAO,CAClB,OAAO,CAAC,oBAAoB,CAC5B,WAAW,CAAC,yEAAyE,EAEzF;IAAA,EAAE,IAAI,CAAC,CACR,CAAA;AACH,CAAC,CAAA;AAED,MAAM,SAAS,GAAG,GAAG,EAAE;IACrB,OAAO,UAAU,CAAC,MAAM,CAAC;QACvB,SAAS,EAAE;YACT,OAAO,EAAE,EAAE;SACZ;KACF,CAAC,CAAA;AACJ,CAAC,CAAA","sourcesContent":["import { StyleSheet, View } from 'react-native'\nimport { Banner } from '../../../components'\n\nexport const SourceAppErrorCard = () => {\n const styles = useStyles()\n\n return (\n <View style={styles.container}>\n <Banner\n appearance=\"error\"\n heading=\"Invalid Source App\"\n description=\"Something went wrong, try going back and selecting the recipient again.\"\n />\n </View>\n )\n}\n\nconst useStyles = () => {\n return StyleSheet.create({\n container: {\n padding: 16,\n },\n })\n}\n"]}
1
+ {"version":3,"file":"source_app_error_card.js","sourceRoot":"","sources":["../../../../src/screens/conversation_new/components/source_app_error_card.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,IAAI,EAAE,MAAM,cAAc,CAAA;AAC/C,OAAO,EAAE,MAAM,EAAE,MAAM,cAAc,CAAA;AAErC,MAAM,CAAC,MAAM,kBAAkB,GAAG,GAAG,EAAE;IACrC,MAAM,MAAM,GAAG,SAAS,EAAE,CAAA;IAE1B,OAAO,CACL,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,SAAS,CAAC,CAC5B;MAAA,CAAC,MAAM,CACL,UAAU,CAAC,OAAO,CAClB,OAAO,CAAC,oBAAoB,CAC5B,WAAW,CAAC,yEAAyE,EAEzF;IAAA,EAAE,IAAI,CAAC,CACR,CAAA;AACH,CAAC,CAAA;AAED,MAAM,SAAS,GAAG,GAAG,EAAE;IACrB,OAAO,UAAU,CAAC,MAAM,CAAC;QACvB,SAAS,EAAE;YACT,OAAO,EAAE,EAAE;SACZ;KACF,CAAC,CAAA;AACJ,CAAC,CAAA","sourcesContent":["import { StyleSheet, View } from 'react-native'\nimport { Banner } from '@/components'\n\nexport const SourceAppErrorCard = () => {\n const styles = useStyles()\n\n return (\n <View style={styles.container}>\n <Banner\n appearance=\"error\"\n heading=\"Invalid Source App\"\n description=\"Something went wrong, try going back and selecting the recipient again.\"\n />\n </View>\n )\n}\n\nconst useStyles = () => {\n return StyleSheet.create({\n container: {\n padding: 16,\n },\n })\n}\n"]}
@@ -1,8 +1,8 @@
1
1
  import { StaticScreenProps } from '@react-navigation/native';
2
2
  import React from 'react';
3
- import { AppName } from '../../types/resources/app_name';
4
- import { GraphId } from '../../types/resources/group_resource';
5
- import { TeamFilterTypes } from '../conversation_filter_recipients/types';
3
+ import { TeamFilterTypes } from '@/screens/conversation_filter_recipients/types';
4
+ import { AppName } from '@/types/resources/app_name';
5
+ import { GraphId } from '@/types/resources/group_resource';
6
6
  type ConversationNewScreenProps = StaticScreenProps<{
7
7
  group_id?: number;
8
8
  team_ids?: number[];
@@ -1 +1 @@
1
- {"version":3,"file":"conversation_new_screen.d.ts","sourceRoot":"","sources":["../../../src/screens/conversation_new/conversation_new_screen.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAA;AAC5D,OAAO,KAAK,MAAM,OAAO,CAAA;AACzB,OAAO,EAAE,OAAO,EAAE,MAAM,gCAAgC,CAAA;AACxD,OAAO,EAAE,OAAO,EAAE,MAAM,sCAAsC,CAAA;AAC9D,OAAO,EAAE,eAAe,EAAE,MAAM,yCAAyC,CAAA;AAKzE,KAAK,0BAA0B,GAAG,iBAAiB,CAAC;IAClD,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAA;IACnB,gBAAgB,CAAC,EAAE,eAAe,CAAA;IAClC,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,eAAe,EAAE,OAAO,CAAA;IACxB,mBAAmB,CAAC,EAAE,OAAO,CAAA;IAC7B,qBAAqB,CAAC,EAAE,OAAO,CAAA;CAChC,CAAC,CAAA;AAEF,eAAO,MAAM,qBAAqB,cAAe,0BAA0B,sBAsB1E,CAAA"}
1
+ {"version":3,"file":"conversation_new_screen.d.ts","sourceRoot":"","sources":["../../../src/screens/conversation_new/conversation_new_screen.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAA;AAC5D,OAAO,KAAK,MAAM,OAAO,CAAA;AAIzB,OAAO,EAAE,eAAe,EAAE,MAAM,gDAAgD,CAAA;AAChF,OAAO,EAAE,OAAO,EAAE,MAAM,4BAA4B,CAAA;AACpD,OAAO,EAAE,OAAO,EAAE,MAAM,kCAAkC,CAAA;AAE1D,KAAK,0BAA0B,GAAG,iBAAiB,CAAC;IAClD,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAA;IACnB,gBAAgB,CAAC,EAAE,eAAe,CAAA;IAClC,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,eAAe,EAAE,OAAO,CAAA;IACxB,mBAAmB,CAAC,EAAE,OAAO,CAAA;IAC7B,qBAAqB,CAAC,EAAE,OAAO,CAAA;CAChC,CAAC,CAAA;AAEF,eAAO,MAAM,qBAAqB,cAAe,0BAA0B,sBAsB1E,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"conversation_new_screen.js","sourceRoot":"","sources":["../../../src/screens/conversation_new/conversation_new_screen.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,MAAM,OAAO,CAAA;AAIzB,OAAO,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAA;AACrD,OAAO,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAA;AACzD,OAAO,EAAE,kBAAkB,EAAE,MAAM,oCAAoC,CAAA;AAYvE,MAAM,CAAC,MAAM,qBAAqB,GAAG,CAAC,EAAE,KAAK,EAA8B,EAAE,EAAE;IAC7E,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE,eAAe,EAAE,OAAO,EAAE,mBAAmB,EAAE,gBAAgB,EAAE,GAC3F,KAAK,CAAC,MAAM,CAAA;IAEd,QAAQ,eAAe,EAAE,CAAC;QACxB,KAAK,QAAQ;YACX,OAAO,QAAQ,CAAC,CAAC,CAAC,CAChB,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,QAAQ,CAAC,CAAC,mBAAmB,CAAC,CAAC,mBAAmB,CAAC,EAAG,CAC5E,CAAC,CAAC,CAAC,CACF,CAAC,kBAAkB,CAAC,AAAD,EAAG,CACvB,CAAA;QACH,KAAK,UAAU;YACb,OAAO,CACL,CAAC,YAAY,CACX,cAAc,CAAC,CAAC,QAAQ,CAAC,CACzB,aAAa,CAAC,CAAC,OAAO,CAAC,CACvB,cAAc,CAAC,CAAC,gBAAgB,CAAC,EACjC,CACH,CAAA;QACH;YACE,OAAO,CAAC,kBAAkB,CAAC,AAAD,EAAG,CAAA;IACjC,CAAC;AACH,CAAC,CAAA","sourcesContent":["import { StaticScreenProps } from '@react-navigation/native'\nimport React from 'react'\nimport { AppName } from '../../types/resources/app_name'\nimport { GraphId } from '../../types/resources/group_resource'\nimport { TeamFilterTypes } from '../conversation_filter_recipients/types'\nimport { GroupsForm } from './components/groups_form'\nimport { ServicesForm } from './components/services_form'\nimport { SourceAppErrorCard } from './components/source_app_error_card'\n\ntype ConversationNewScreenProps = StaticScreenProps<{\n group_id?: number\n team_ids?: number[]\n team_filter_type?: TeamFilterTypes\n plan_id?: number\n source_app_name: AppName\n chat_group_graph_id?: GraphId\n group_source_app_name?: AppName\n}>\n\nexport const ConversationNewScreen = ({ route }: ConversationNewScreenProps) => {\n const { group_id, team_ids, source_app_name, plan_id, chat_group_graph_id, team_filter_type } =\n route.params\n\n switch (source_app_name) {\n case 'Groups':\n return group_id ? (\n <GroupsForm groupId={group_id} chat_group_graph_id={chat_group_graph_id} />\n ) : (\n <SourceAppErrorCard />\n )\n case 'Services':\n return (\n <ServicesForm\n initialTeamIds={team_ids}\n initialPlanId={plan_id}\n teamFilterType={team_filter_type}\n />\n )\n default:\n return <SourceAppErrorCard />\n }\n}\n"]}
1
+ {"version":3,"file":"conversation_new_screen.js","sourceRoot":"","sources":["../../../src/screens/conversation_new/conversation_new_screen.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,MAAM,OAAO,CAAA;AACzB,OAAO,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAA;AACrD,OAAO,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAA;AACzD,OAAO,EAAE,kBAAkB,EAAE,MAAM,oCAAoC,CAAA;AAevE,MAAM,CAAC,MAAM,qBAAqB,GAAG,CAAC,EAAE,KAAK,EAA8B,EAAE,EAAE;IAC7E,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE,eAAe,EAAE,OAAO,EAAE,mBAAmB,EAAE,gBAAgB,EAAE,GAC3F,KAAK,CAAC,MAAM,CAAA;IAEd,QAAQ,eAAe,EAAE,CAAC;QACxB,KAAK,QAAQ;YACX,OAAO,QAAQ,CAAC,CAAC,CAAC,CAChB,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,QAAQ,CAAC,CAAC,mBAAmB,CAAC,CAAC,mBAAmB,CAAC,EAAG,CAC5E,CAAC,CAAC,CAAC,CACF,CAAC,kBAAkB,CAAC,AAAD,EAAG,CACvB,CAAA;QACH,KAAK,UAAU;YACb,OAAO,CACL,CAAC,YAAY,CACX,cAAc,CAAC,CAAC,QAAQ,CAAC,CACzB,aAAa,CAAC,CAAC,OAAO,CAAC,CACvB,cAAc,CAAC,CAAC,gBAAgB,CAAC,EACjC,CACH,CAAA;QACH;YACE,OAAO,CAAC,kBAAkB,CAAC,AAAD,EAAG,CAAA;IACjC,CAAC;AACH,CAAC,CAAA","sourcesContent":["import { StaticScreenProps } from '@react-navigation/native'\nimport React from 'react'\nimport { GroupsForm } from './components/groups_form'\nimport { ServicesForm } from './components/services_form'\nimport { SourceAppErrorCard } from './components/source_app_error_card'\nimport { TeamFilterTypes } from '@/screens/conversation_filter_recipients/types'\nimport { AppName } from '@/types/resources/app_name'\nimport { GraphId } from '@/types/resources/group_resource'\n\ntype ConversationNewScreenProps = StaticScreenProps<{\n group_id?: number\n team_ids?: number[]\n team_filter_type?: TeamFilterTypes\n plan_id?: number\n source_app_name: AppName\n chat_group_graph_id?: GraphId\n group_source_app_name?: AppName\n}>\n\nexport const ConversationNewScreen = ({ route }: ConversationNewScreenProps) => {\n const { group_id, team_ids, source_app_name, plan_id, chat_group_graph_id, team_filter_type } =\n route.params\n\n switch (source_app_name) {\n case 'Groups':\n return group_id ? (\n <GroupsForm groupId={group_id} chat_group_graph_id={chat_group_graph_id} />\n ) : (\n <SourceAppErrorCard />\n )\n case 'Services':\n return (\n <ServicesForm\n initialTeamIds={team_ids}\n initialPlanId={plan_id}\n teamFilterType={team_filter_type}\n />\n )\n default:\n return <SourceAppErrorCard />\n }\n}\n"]}
@@ -1,11 +1,11 @@
1
1
  import { useNavigation } from '@react-navigation/native';
2
2
  import React from 'react';
3
3
  import { StyleSheet } from 'react-native';
4
- import { PressableRow } from '../components';
5
- import FormSheet, { getFormSheetScreenOptions } from '../components/primitive/form_sheet';
6
- import { useTheme } from '../hooks';
7
- import { useConversation } from '../hooks/use_conversation';
8
- import { useConversationMembershipUpdate } from '../hooks/use_conversation_membership';
4
+ import { PressableRow } from '@/components';
5
+ import FormSheet, { getFormSheetScreenOptions } from '@/components/primitive/form_sheet';
6
+ import { useTheme } from '@/hooks';
7
+ import { useConversation } from '@/hooks/use_conversation';
8
+ import { useConversationMembershipUpdate } from '@/hooks/use_conversation_membership';
9
9
  export const ConversationNotificationLevelSelectScreenOptions = getFormSheetScreenOptions({
10
10
  headerTitle: 'Notification level',
11
11
  sheetAllowedDetents: [0.35],
@@ -1 +1 @@
1
- {"version":3,"file":"conversation_notification_level_select_screen.js","sourceRoot":"","sources":["../../src/screens/conversation_notification_level_select_screen.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAqB,aAAa,EAAE,MAAM,0BAA0B,CAAA;AAC3E,OAAO,KAAK,MAAM,OAAO,CAAA;AACzB,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAA;AACzC,OAAO,EAAE,YAAY,EAAE,MAAM,eAAe,CAAA;AAC5C,OAAO,SAAS,EAAE,EAAE,yBAAyB,EAAE,MAAM,oCAAoC,CAAA;AACzF,OAAO,EAAE,QAAQ,EAAE,MAAM,UAAU,CAAA;AACnC,OAAO,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAA;AAC3D,OAAO,EAAE,+BAA+B,EAAE,MAAM,sCAAsC,CAAA;AAGtF,MAAM,CAAC,MAAM,gDAAgD,GAAG,yBAAyB,CAAC;IACxF,WAAW,EAAE,oBAAoB;IACjC,mBAAmB,EAAE,CAAC,IAAI,CAAC;CAC5B,CAAC,CAAA;AAMF,MAAM,UAAU,yCAAyC,CAAC,EACxD,KAAK,GAC0C;IAC/C,MAAM,EAAE,eAAe,EAAE,GAAG,KAAK,CAAC,MAAM,CAAA;IACxC,MAAM,UAAU,GAAG,aAAa,EAAE,CAAA;IAClC,MAAM,MAAM,GAAG,SAAS,EAAE,CAAA;IAC1B,MAAM,EAAE,MAAM,EAAE,GAAG,QAAQ,EAAE,CAAA;IAC7B,MAAM,EAAE,IAAI,EAAE,YAAY,EAAE,GAAG,eAAe,CAAC,EAAE,eAAe,EAAE,CAAC,CAAA;IACnE,MAAM,EAAE,MAAM,EAAE,uBAAuB,EAAE,GAAG,+BAA+B,CAAC,EAAE,eAAe,EAAE,CAAC,CAAA;IAEhG,MAAM,iBAAiB,GAAG,YAAY,CAAC,sBAAsB,EAAE,iBAAiB,CAAA;IAChF,MAAM,wBAAwB,GAC5B,YAAY,CAAC,sBAAsB,EAAE,wBAAwB,IAAI,EAAE,CAAA;IAErE,MAAM,YAAY,GAAG,CAAC,KAA6B,EAAE,QAAiB,EAAE,EAAE;QACxE,IAAI,CAAC,QAAQ,EAAE,CAAC;YACd,MAAM,KAAK,GAAG,KAAK,KAAK,SAAS,CAAA;YACjC,uBAAuB,CAAC;gBACtB,KAAK;gBACL,iBAAiB,EAAE,KAAiC;aACrD,CAAC,CAAA;QACJ,CAAC;QACD,UAAU,CAAC,MAAM,EAAE,CAAA;IACrB,CAAC,CAAA;IAED,OAAO,CACL,CAAC,SAAS,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAC3C;MAAA,CAAC,wBAAwB,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE;YACrC,MAAM,QAAQ,GAAG,MAAM,CAAC,OAAO,CAAA;YAC/B,OAAO,CACL,CAAC,YAAY,CACX,GAAG,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAClB,IAAI,CAAC,CAAC,MAAM,CAAC,WAAW,CAAC,CACzB,QAAQ,CAAC,CAAC,QAAQ,CAAC,CACnB,OAAO,CAAC,CAAC,GAAG,EAAE,CAAC,YAAY,CAAC,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC,CACpD,SAAS,CAAC,CAAC,MAAM,CAAC,iBAAiB,CAAC,CACpC,KAAK,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,EAClB,CACH,CAAA;QACH,CAAC,CAAC,CACJ;IAAA,EAAE,SAAS,CAAC,IAAI,CAAC,CAClB,CAAA;AACH,CAAC;AAED,MAAM,SAAS,GAAG,GAAG,EAAE;IACrB,OAAO,UAAU,CAAC,MAAM,CAAC;QACvB,OAAO,EAAE;YACP,UAAU,EAAE,EAAE;SACf;QACD,GAAG,EAAE;YACH,iBAAiB,EAAE,CAAC;SACrB;KACF,CAAC,CAAA;AACJ,CAAC,CAAA","sourcesContent":["import { StaticScreenProps, useNavigation } from '@react-navigation/native'\nimport React from 'react'\nimport { StyleSheet } from 'react-native'\nimport { PressableRow } from '../components'\nimport FormSheet, { getFormSheetScreenOptions } from '../components/primitive/form_sheet'\nimport { useTheme } from '../hooks'\nimport { useConversation } from '../hooks/use_conversation'\nimport { useConversationMembershipUpdate } from '../hooks/use_conversation_membership'\nimport { NotificationLevelValue } from '../types'\n\nexport const ConversationNotificationLevelSelectScreenOptions = getFormSheetScreenOptions({\n headerTitle: 'Notification level',\n sheetAllowedDetents: [0.35],\n})\n\nexport type ConversationNotificationLevelSelectScreenProps = StaticScreenProps<{\n conversation_id: number\n}>\n\nexport function ConversationNotificationLevelSelectScreen({\n route,\n}: ConversationNotificationLevelSelectScreenProps) {\n const { conversation_id } = route.params\n const navigation = useNavigation()\n const styles = useStyles()\n const { colors } = useTheme()\n const { data: conversation } = useConversation({ conversation_id })\n const { mutate: updateNotificationLevel } = useConversationMembershipUpdate({ conversation_id })\n\n const notificationLevel = conversation.conversationMembership?.notificationLevel\n const notificationLevelOptions =\n conversation.conversationMembership?.notificationLevelOptions ?? []\n\n const handleSelect = (value: NotificationLevelValue, isActive: boolean) => {\n if (!isActive) {\n const muted = value === 'nothing'\n updateNotificationLevel({\n muted,\n notificationLevel: value as typeof notificationLevel,\n })\n }\n navigation.goBack()\n }\n\n return (\n <FormSheet.Root contentStyle={styles.content}>\n {notificationLevelOptions.map(option => {\n const isActive = option.enabled\n return (\n <PressableRow\n key={option.value}\n text={option.description}\n isActive={isActive}\n onPress={() => handleSelect(option.value, isActive)}\n iconColor={colors.statusSuccessIcon}\n style={styles.row}\n />\n )\n })}\n </FormSheet.Root>\n )\n}\n\nconst useStyles = () => {\n return StyleSheet.create({\n content: {\n paddingTop: 20,\n },\n row: {\n borderBottomWidth: 0,\n },\n })\n}\n"]}
1
+ {"version":3,"file":"conversation_notification_level_select_screen.js","sourceRoot":"","sources":["../../src/screens/conversation_notification_level_select_screen.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAqB,aAAa,EAAE,MAAM,0BAA0B,CAAA;AAC3E,OAAO,KAAK,MAAM,OAAO,CAAA;AACzB,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAA;AACzC,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAA;AAC3C,OAAO,SAAS,EAAE,EAAE,yBAAyB,EAAE,MAAM,mCAAmC,CAAA;AACxF,OAAO,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAA;AAClC,OAAO,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAA;AAC1D,OAAO,EAAE,+BAA+B,EAAE,MAAM,qCAAqC,CAAA;AAGrF,MAAM,CAAC,MAAM,gDAAgD,GAAG,yBAAyB,CAAC;IACxF,WAAW,EAAE,oBAAoB;IACjC,mBAAmB,EAAE,CAAC,IAAI,CAAC;CAC5B,CAAC,CAAA;AAMF,MAAM,UAAU,yCAAyC,CAAC,EACxD,KAAK,GAC0C;IAC/C,MAAM,EAAE,eAAe,EAAE,GAAG,KAAK,CAAC,MAAM,CAAA;IACxC,MAAM,UAAU,GAAG,aAAa,EAAE,CAAA;IAClC,MAAM,MAAM,GAAG,SAAS,EAAE,CAAA;IAC1B,MAAM,EAAE,MAAM,EAAE,GAAG,QAAQ,EAAE,CAAA;IAC7B,MAAM,EAAE,IAAI,EAAE,YAAY,EAAE,GAAG,eAAe,CAAC,EAAE,eAAe,EAAE,CAAC,CAAA;IACnE,MAAM,EAAE,MAAM,EAAE,uBAAuB,EAAE,GAAG,+BAA+B,CAAC,EAAE,eAAe,EAAE,CAAC,CAAA;IAEhG,MAAM,iBAAiB,GAAG,YAAY,CAAC,sBAAsB,EAAE,iBAAiB,CAAA;IAChF,MAAM,wBAAwB,GAC5B,YAAY,CAAC,sBAAsB,EAAE,wBAAwB,IAAI,EAAE,CAAA;IAErE,MAAM,YAAY,GAAG,CAAC,KAA6B,EAAE,QAAiB,EAAE,EAAE;QACxE,IAAI,CAAC,QAAQ,EAAE,CAAC;YACd,MAAM,KAAK,GAAG,KAAK,KAAK,SAAS,CAAA;YACjC,uBAAuB,CAAC;gBACtB,KAAK;gBACL,iBAAiB,EAAE,KAAiC;aACrD,CAAC,CAAA;QACJ,CAAC;QACD,UAAU,CAAC,MAAM,EAAE,CAAA;IACrB,CAAC,CAAA;IAED,OAAO,CACL,CAAC,SAAS,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAC3C;MAAA,CAAC,wBAAwB,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE;YACrC,MAAM,QAAQ,GAAG,MAAM,CAAC,OAAO,CAAA;YAC/B,OAAO,CACL,CAAC,YAAY,CACX,GAAG,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAClB,IAAI,CAAC,CAAC,MAAM,CAAC,WAAW,CAAC,CACzB,QAAQ,CAAC,CAAC,QAAQ,CAAC,CACnB,OAAO,CAAC,CAAC,GAAG,EAAE,CAAC,YAAY,CAAC,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC,CACpD,SAAS,CAAC,CAAC,MAAM,CAAC,iBAAiB,CAAC,CACpC,KAAK,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,EAClB,CACH,CAAA;QACH,CAAC,CAAC,CACJ;IAAA,EAAE,SAAS,CAAC,IAAI,CAAC,CAClB,CAAA;AACH,CAAC;AAED,MAAM,SAAS,GAAG,GAAG,EAAE;IACrB,OAAO,UAAU,CAAC,MAAM,CAAC;QACvB,OAAO,EAAE;YACP,UAAU,EAAE,EAAE;SACf;QACD,GAAG,EAAE;YACH,iBAAiB,EAAE,CAAC;SACrB;KACF,CAAC,CAAA;AACJ,CAAC,CAAA","sourcesContent":["import { StaticScreenProps, useNavigation } from '@react-navigation/native'\nimport React from 'react'\nimport { StyleSheet } from 'react-native'\nimport { PressableRow } from '@/components'\nimport FormSheet, { getFormSheetScreenOptions } from '@/components/primitive/form_sheet'\nimport { useTheme } from '@/hooks'\nimport { useConversation } from '@/hooks/use_conversation'\nimport { useConversationMembershipUpdate } from '@/hooks/use_conversation_membership'\nimport { NotificationLevelValue } from '@/types'\n\nexport const ConversationNotificationLevelSelectScreenOptions = getFormSheetScreenOptions({\n headerTitle: 'Notification level',\n sheetAllowedDetents: [0.35],\n})\n\nexport type ConversationNotificationLevelSelectScreenProps = StaticScreenProps<{\n conversation_id: number\n}>\n\nexport function ConversationNotificationLevelSelectScreen({\n route,\n}: ConversationNotificationLevelSelectScreenProps) {\n const { conversation_id } = route.params\n const navigation = useNavigation()\n const styles = useStyles()\n const { colors } = useTheme()\n const { data: conversation } = useConversation({ conversation_id })\n const { mutate: updateNotificationLevel } = useConversationMembershipUpdate({ conversation_id })\n\n const notificationLevel = conversation.conversationMembership?.notificationLevel\n const notificationLevelOptions =\n conversation.conversationMembership?.notificationLevelOptions ?? []\n\n const handleSelect = (value: NotificationLevelValue, isActive: boolean) => {\n if (!isActive) {\n const muted = value === 'nothing'\n updateNotificationLevel({\n muted,\n notificationLevel: value as typeof notificationLevel,\n })\n }\n navigation.goBack()\n }\n\n return (\n <FormSheet.Root contentStyle={styles.content}>\n {notificationLevelOptions.map(option => {\n const isActive = option.enabled\n return (\n <PressableRow\n key={option.value}\n text={option.description}\n isActive={isActive}\n onPress={() => handleSelect(option.value, isActive)}\n iconColor={colors.statusSuccessIcon}\n style={styles.row}\n />\n )\n })}\n </FormSheet.Root>\n )\n}\n\nconst useStyles = () => {\n return StyleSheet.create({\n content: {\n paddingTop: 20,\n },\n row: {\n borderBottomWidth: 0,\n },\n })\n}\n"]}
@@ -1,9 +1,9 @@
1
1
  import { HeaderTitleProps } from '@react-navigation/elements';
2
2
  import { StaticScreenProps } from '@react-navigation/native';
3
3
  import React from 'react';
4
- import { ReplyShadowMessage } from '../components/conversation/reply_shadow_message';
5
- import { MessageResource } from '../types';
6
- import { ConversationBadgeResource } from '../types/resources/conversation_badge';
4
+ import { ReplyShadowMessage } from '@/components/conversation/reply_shadow_message';
5
+ import { MessageResource } from '@/types';
6
+ import { ConversationBadgeResource } from '@/types/resources/conversation_badge';
7
7
  export type ConversationRouteProps = {
8
8
  conversation_id: number;
9
9
  reply_root_id?: string | null;
@@ -1 +1 @@
1
- {"version":3,"file":"conversation_screen.d.ts","sourceRoot":"","sources":["../../src/screens/conversation_screen.tsx"],"names":[],"mappings":"AACA,OAAO,EAAe,gBAAgB,EAAqB,MAAM,4BAA4B,CAAA;AAC7F,OAAO,EAGL,iBAAiB,EAIlB,MAAM,0BAA0B,CAAA;AACjC,OAAO,KAAmD,MAAM,OAAO,CAAA;AAYvE,OAAO,EAAE,kBAAkB,EAAE,MAAM,iDAAiD,CAAA;AAepF,OAAO,EAAE,eAAe,EAAE,MAAM,UAAU,CAAA;AAC1C,OAAO,EAAE,yBAAyB,EAAE,MAAM,uCAAuC,CAAA;AAKjF,MAAM,MAAM,sBAAsB,GAAG;IACnC,eAAe,EAAE,MAAM,CAAA;IACvB,aAAa,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IAC7B,sBAAsB,CAAC,EAAE,MAAM,CAAA;IAC/B,mBAAmB,CAAC,EAAE,MAAM,CAAA;IAC5B,WAAW,CAAC,EAAE,OAAO,CAAA;IACrB,kBAAkB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IAClC,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,KAAK,CAAC,EAAE,yBAAyB,CAAA;IACjC,OAAO,CAAC,EAAE,OAAO,CAAA;IACjB,KAAK,CAAC,EAAE,OAAO,CAAA;CAChB,CAAA;AAED,MAAM,MAAM,uBAAuB,GAAG,iBAAiB,CAAC,sBAAsB,CAAC,CAAA;AAE/E,wBAAgB,kBAAkB,CAAC,EAAE,KAAK,EAAE,EAAE,uBAAuB,qBAkBpE;AA6JD,MAAM,MAAM,aAAa,GAAG;IAAE,IAAI,EAAE,eAAe,CAAC;IAAC,EAAE,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,CAAA;AAwC/E,KAAK,kBAAkB,GAAG;IACxB,IAAI,EAAE,oBAAoB,CAAA;IAC1B,EAAE,EAAE,MAAM,CAAA;IACV,SAAS,EAAE,MAAM,CAAA;IACjB,oBAAoB,EAAE,OAAO,CAAA;IAC7B,iBAAiB,EAAE,OAAO,CAAA;CAC3B,CAAA;AAED,UAAU,kBAAkB;IAC1B,EAAE,EAAE,eAAe,EAAE,CAAA;IACrB,aAAa,CAAC,EAAE,OAAO,CAAA;CACxB;AAED,eAAO,MAAM,aAAa,0BAA2B,kBAAkB,6DA6FtE,CAAA;AACD,UAAU,4BAA6B,SAAQ,gBAAgB;IAC7D,eAAe,EAAE,MAAM,CAAA;IACvB,KAAK,CAAC,EAAE,yBAAyB,CAAA;IACjC,OAAO,CAAC,EAAE,OAAO,CAAA;IACjB,KAAK,CAAC,EAAE,OAAO,CAAA;CAChB;AAED,eAAO,MAAM,uBAAuB,iEAOjC,4BAA4B,sBAoC9B,CAAA"}
1
+ {"version":3,"file":"conversation_screen.d.ts","sourceRoot":"","sources":["../../src/screens/conversation_screen.tsx"],"names":[],"mappings":"AACA,OAAO,EAAe,gBAAgB,EAAqB,MAAM,4BAA4B,CAAA;AAC7F,OAAO,EAGL,iBAAiB,EAIlB,MAAM,0BAA0B,CAAA;AACjC,OAAO,KAAmD,MAAM,OAAO,CAAA;AAYvE,OAAO,EAAE,kBAAkB,EAAE,MAAM,gDAAgD,CAAA;AAenF,OAAO,EAAE,eAAe,EAAE,MAAM,SAAS,CAAA;AACzC,OAAO,EAAE,yBAAyB,EAAE,MAAM,sCAAsC,CAAA;AAKhF,MAAM,MAAM,sBAAsB,GAAG;IACnC,eAAe,EAAE,MAAM,CAAA;IACvB,aAAa,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IAC7B,sBAAsB,CAAC,EAAE,MAAM,CAAA;IAC/B,mBAAmB,CAAC,EAAE,MAAM,CAAA;IAC5B,WAAW,CAAC,EAAE,OAAO,CAAA;IACrB,kBAAkB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IAClC,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,KAAK,CAAC,EAAE,yBAAyB,CAAA;IACjC,OAAO,CAAC,EAAE,OAAO,CAAA;IACjB,KAAK,CAAC,EAAE,OAAO,CAAA;CAChB,CAAA;AAED,MAAM,MAAM,uBAAuB,GAAG,iBAAiB,CAAC,sBAAsB,CAAC,CAAA;AAE/E,wBAAgB,kBAAkB,CAAC,EAAE,KAAK,EAAE,EAAE,uBAAuB,qBAkBpE;AA6JD,MAAM,MAAM,aAAa,GAAG;IAAE,IAAI,EAAE,eAAe,CAAC;IAAC,EAAE,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,CAAA;AAwC/E,KAAK,kBAAkB,GAAG;IACxB,IAAI,EAAE,oBAAoB,CAAA;IAC1B,EAAE,EAAE,MAAM,CAAA;IACV,SAAS,EAAE,MAAM,CAAA;IACjB,oBAAoB,EAAE,OAAO,CAAA;IAC7B,iBAAiB,EAAE,OAAO,CAAA;CAC3B,CAAA;AAED,UAAU,kBAAkB;IAC1B,EAAE,EAAE,eAAe,EAAE,CAAA;IACrB,aAAa,CAAC,EAAE,OAAO,CAAA;CACxB;AAED,eAAO,MAAM,aAAa,0BAA2B,kBAAkB,6DA6FtE,CAAA;AACD,UAAU,4BAA6B,SAAQ,gBAAgB;IAC7D,eAAe,EAAE,MAAM,CAAA;IACvB,KAAK,CAAC,EAAE,yBAAyB,CAAA;IACjC,OAAO,CAAC,EAAE,OAAO,CAAA;IACjB,KAAK,CAAC,EAAE,OAAO,CAAA;CAChB;AAED,eAAO,MAAM,uBAAuB,iEAOjC,4BAA4B,sBAoC9B,CAAA"}