@planningcenter/chat-react-native 4.4.0-rc.6 → 4.4.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (350) hide show
  1. package/build/components/conversation/jump_to_bottom_button.d.ts.map +1 -1
  2. package/build/components/conversation/jump_to_bottom_button.js +42 -40
  3. package/build/components/conversation/jump_to_bottom_button.js.map +1 -1
  4. package/build/components/conversation/message.d.ts +2 -1
  5. package/build/components/conversation/message.d.ts.map +1 -1
  6. package/build/components/conversation/message.js +3 -1
  7. package/build/components/conversation/message.js.map +1 -1
  8. package/build/components/conversation/message_form.d.ts.map +1 -1
  9. package/build/components/conversation/message_form.js +3 -1
  10. package/build/components/conversation/message_form.js.map +1 -1
  11. package/build/components/conversation/message_list.d.ts.map +1 -1
  12. package/build/components/conversation/message_list.js +35 -31
  13. package/build/components/conversation/message_list.js.map +1 -1
  14. package/build/components/conversation/message_reaction.d.ts +2 -1
  15. package/build/components/conversation/message_reaction.d.ts.map +1 -1
  16. package/build/components/conversation/message_reaction.js +67 -60
  17. package/build/components/conversation/message_reaction.js.map +1 -1
  18. package/build/components/conversation/messages_disabled_banners.d.ts +7 -5
  19. package/build/components/conversation/messages_disabled_banners.d.ts.map +1 -1
  20. package/build/components/conversation/messages_disabled_banners.js +15 -14
  21. package/build/components/conversation/messages_disabled_banners.js.map +1 -1
  22. package/build/components/conversation/system_message.d.ts +2 -1
  23. package/build/components/conversation/system_message.d.ts.map +1 -1
  24. package/build/components/conversation/system_message.js +133 -100
  25. package/build/components/conversation/system_message.js.map +1 -1
  26. package/build/components/conversations/archived_results_footer.d.ts +6 -0
  27. package/build/components/conversations/archived_results_footer.d.ts.map +1 -0
  28. package/build/components/conversations/archived_results_footer.js +51 -0
  29. package/build/components/conversations/archived_results_footer.js.map +1 -0
  30. package/build/components/conversations/conversation_actions.d.ts.map +1 -1
  31. package/build/components/conversations/conversation_actions.js +241 -206
  32. package/build/components/conversations/conversation_actions.js.map +1 -1
  33. package/build/components/conversations/conversation_preview.d.ts.map +1 -1
  34. package/build/components/conversations/conversation_preview.js +102 -93
  35. package/build/components/conversations/conversation_preview.js.map +1 -1
  36. package/build/components/conversations/conversations.d.ts.map +1 -1
  37. package/build/components/conversations/conversations.js +66 -41
  38. package/build/components/conversations/conversations.js.map +1 -1
  39. package/build/components/conversations/conversations_blank_state.d.ts.map +1 -1
  40. package/build/components/conversations/conversations_blank_state.js +55 -12
  41. package/build/components/conversations/conversations_blank_state.js.map +1 -1
  42. package/build/components/conversations/filtered_results_footer.d.ts +2 -0
  43. package/build/components/conversations/filtered_results_footer.d.ts.map +1 -0
  44. package/build/components/conversations/filtered_results_footer.js +77 -0
  45. package/build/components/conversations/filtered_results_footer.js.map +1 -0
  46. package/build/components/display/action_button.d.ts.map +1 -1
  47. package/build/components/display/action_button.js +18 -16
  48. package/build/components/display/action_button.js.map +1 -1
  49. package/build/components/display/filter_dropdown.d.ts +14 -0
  50. package/build/components/display/filter_dropdown.d.ts.map +1 -0
  51. package/build/components/display/filter_dropdown.js +193 -0
  52. package/build/components/display/filter_dropdown.js.map +1 -0
  53. package/build/components/display/icon_tile.d.ts +13 -0
  54. package/build/components/display/icon_tile.d.ts.map +1 -0
  55. package/build/components/display/icon_tile.js +149 -0
  56. package/build/components/display/icon_tile.js.map +1 -0
  57. package/build/components/display/index.d.ts +2 -0
  58. package/build/components/display/index.d.ts.map +1 -1
  59. package/build/components/display/index.js +2 -0
  60. package/build/components/display/index.js.map +1 -1
  61. package/build/contexts/api_provider.d.ts.map +1 -1
  62. package/build/contexts/api_provider.js +21 -9
  63. package/build/contexts/api_provider.js.map +1 -1
  64. package/build/contexts/conversations_context.d.ts.map +1 -1
  65. package/build/contexts/conversations_context.js +21 -18
  66. package/build/contexts/conversations_context.js.map +1 -1
  67. package/build/hooks/groups/use_group_members_for_new_conversation.d.ts +196 -16
  68. package/build/hooks/groups/use_group_members_for_new_conversation.d.ts.map +1 -1
  69. package/build/hooks/groups/use_group_members_for_new_conversation.js +72 -58
  70. package/build/hooks/groups/use_group_members_for_new_conversation.js.map +1 -1
  71. package/build/hooks/index.d.ts +3 -0
  72. package/build/hooks/index.d.ts.map +1 -1
  73. package/build/hooks/index.js +3 -0
  74. package/build/hooks/index.js.map +1 -1
  75. package/build/hooks/use_animated_message_background_color.d.ts.map +1 -1
  76. package/build/hooks/use_animated_message_background_color.js +5 -3
  77. package/build/hooks/use_animated_message_background_color.js.map +1 -1
  78. package/build/hooks/use_api.d.ts +3 -2
  79. package/build/hooks/use_api.d.ts.map +1 -1
  80. package/build/hooks/use_api.js.map +1 -1
  81. package/build/hooks/use_can_browse_archived_conversations.d.ts +2 -0
  82. package/build/hooks/use_can_browse_archived_conversations.d.ts.map +1 -0
  83. package/build/hooks/use_can_browse_archived_conversations.js +29 -0
  84. package/build/hooks/use_can_browse_archived_conversations.js.map +1 -0
  85. package/build/hooks/use_clear_conversation_filters.d.ts +2 -0
  86. package/build/hooks/use_clear_conversation_filters.d.ts.map +1 -0
  87. package/build/hooks/use_clear_conversation_filters.js +25 -0
  88. package/build/hooks/use_clear_conversation_filters.js.map +1 -0
  89. package/build/hooks/use_conversation.d.ts +73 -1
  90. package/build/hooks/use_conversation.d.ts.map +1 -1
  91. package/build/hooks/use_conversation.js +130 -3
  92. package/build/hooks/use_conversation.js.map +1 -1
  93. package/build/hooks/use_conversation_messages.d.ts.map +1 -1
  94. package/build/hooks/use_conversation_messages.js +29 -26
  95. package/build/hooks/use_conversation_messages.js.map +1 -1
  96. package/build/hooks/use_current_person.d.ts.map +1 -1
  97. package/build/hooks/use_current_person.js +1 -1
  98. package/build/hooks/use_current_person.js.map +1 -1
  99. package/build/hooks/use_features.d.ts +2 -0
  100. package/build/hooks/use_features.d.ts.map +1 -1
  101. package/build/hooks/use_features.js +2 -0
  102. package/build/hooks/use_features.js.map +1 -1
  103. package/build/hooks/use_filter_dropdown_enabled.d.ts +2 -0
  104. package/build/hooks/use_filter_dropdown_enabled.d.ts.map +1 -0
  105. package/build/hooks/use_filter_dropdown_enabled.js +18 -0
  106. package/build/hooks/use_filter_dropdown_enabled.js.map +1 -0
  107. package/build/hooks/use_jolt.d.ts +1 -0
  108. package/build/hooks/use_jolt.d.ts.map +1 -1
  109. package/build/hooks/use_jolt.js +59 -0
  110. package/build/hooks/use_jolt.js.map +1 -1
  111. package/build/hooks/use_manual_archiving_enabled.d.ts +2 -0
  112. package/build/hooks/use_manual_archiving_enabled.d.ts.map +1 -0
  113. package/build/hooks/use_manual_archiving_enabled.js +18 -0
  114. package/build/hooks/use_manual_archiving_enabled.js.map +1 -0
  115. package/build/hooks/use_mark_latest_message_read.d.ts.map +1 -1
  116. package/build/hooks/use_mark_latest_message_read.js +3 -3
  117. package/build/hooks/use_mark_latest_message_read.js.map +1 -1
  118. package/build/hooks/use_reduce_motion.d.ts +2 -0
  119. package/build/hooks/use_reduce_motion.d.ts.map +1 -0
  120. package/build/hooks/use_reduce_motion.js +28 -0
  121. package/build/hooks/use_reduce_motion.js.map +1 -0
  122. package/build/hooks/use_unarchive_conversation_action.d.ts +7 -0
  123. package/build/hooks/use_unarchive_conversation_action.d.ts.map +1 -0
  124. package/build/hooks/use_unarchive_conversation_action.js +52 -0
  125. package/build/hooks/use_unarchive_conversation_action.js.map +1 -0
  126. package/build/screens/attachment_actions/attachment_actions_screen.d.ts.map +1 -1
  127. package/build/screens/attachment_actions/attachment_actions_screen.js +84 -61
  128. package/build/screens/attachment_actions/attachment_actions_screen.js.map +1 -1
  129. package/build/screens/conversation_details_screen.d.ts.map +1 -1
  130. package/build/screens/conversation_details_screen.js +490 -395
  131. package/build/screens/conversation_details_screen.js.map +1 -1
  132. package/build/screens/conversation_filters/components/conversation_filters.d.ts.map +1 -1
  133. package/build/screens/conversation_filters/components/conversation_filters.js +88 -18
  134. package/build/screens/conversation_filters/components/conversation_filters.js.map +1 -1
  135. package/build/screens/conversation_filters/components/rows.d.ts +9 -0
  136. package/build/screens/conversation_filters/components/rows.d.ts.map +1 -1
  137. package/build/screens/conversation_filters/components/rows.js +93 -1
  138. package/build/screens/conversation_filters/components/rows.js.map +1 -1
  139. package/build/screens/conversation_filters/context/conversation_filter_context.d.ts.map +1 -1
  140. package/build/screens/conversation_filters/context/conversation_filter_context.js +8 -4
  141. package/build/screens/conversation_filters/context/conversation_filter_context.js.map +1 -1
  142. package/build/screens/conversation_filters/filter_types.d.ts +1 -0
  143. package/build/screens/conversation_filters/filter_types.d.ts.map +1 -1
  144. package/build/screens/conversation_filters/filter_types.js +1 -0
  145. package/build/screens/conversation_filters/filter_types.js.map +1 -1
  146. package/build/screens/conversation_filters/screen_props.d.ts +1 -0
  147. package/build/screens/conversation_filters/screen_props.d.ts.map +1 -1
  148. package/build/screens/conversation_filters/screen_props.js.map +1 -1
  149. package/build/screens/conversation_filters_screen.d.ts +1 -0
  150. package/build/screens/conversation_filters_screen.d.ts.map +1 -1
  151. package/build/screens/conversation_filters_screen.js +79 -48
  152. package/build/screens/conversation_filters_screen.js.map +1 -1
  153. package/build/screens/conversation_new/components/groups_form.d.ts.map +1 -1
  154. package/build/screens/conversation_new/components/groups_form.js +37 -34
  155. package/build/screens/conversation_new/components/groups_form.js.map +1 -1
  156. package/build/screens/conversation_screen.d.ts.map +1 -1
  157. package/build/screens/conversation_screen.js +13 -10
  158. package/build/screens/conversation_screen.js.map +1 -1
  159. package/build/screens/conversations/components/filter_dropdown_list_header_component.d.ts +2 -0
  160. package/build/screens/conversations/components/filter_dropdown_list_header_component.d.ts.map +1 -0
  161. package/build/screens/conversations/components/filter_dropdown_list_header_component.js +580 -0
  162. package/build/screens/conversations/components/filter_dropdown_list_header_component.js.map +1 -0
  163. package/build/screens/conversations/components/list_header_component.d.ts.map +1 -1
  164. package/build/screens/conversations/components/list_header_component.js +95 -90
  165. package/build/screens/conversations/components/list_header_component.js.map +1 -1
  166. package/build/screens/conversations/components/search_list_header_component.d.ts.map +1 -1
  167. package/build/screens/conversations/components/search_list_header_component.js +100 -95
  168. package/build/screens/conversations/components/search_list_header_component.js.map +1 -1
  169. package/build/screens/conversations/conversations_screen.d.ts +1 -0
  170. package/build/screens/conversations/conversations_screen.d.ts.map +1 -1
  171. package/build/screens/conversations/conversations_screen.js +15 -2
  172. package/build/screens/conversations/conversations_screen.js.map +1 -1
  173. package/build/screens/design_system_screen.d.ts.map +1 -1
  174. package/build/screens/design_system_screen.js +275 -215
  175. package/build/screens/design_system_screen.js.map +1 -1
  176. package/build/screens/message_actions_screen.d.ts.map +1 -1
  177. package/build/screens/message_actions_screen.js +112 -92
  178. package/build/screens/message_actions_screen.js.map +1 -1
  179. package/build/screens/search/search_screen.d.ts.map +1 -1
  180. package/build/screens/search/search_screen.js +10 -2
  181. package/build/screens/search/search_screen.js.map +1 -1
  182. package/build/screens/send_giphy_screen.d.ts +1 -0
  183. package/build/screens/send_giphy_screen.d.ts.map +1 -1
  184. package/build/screens/send_giphy_screen.js +108 -106
  185. package/build/screens/send_giphy_screen.js.map +1 -1
  186. package/build/screens/team_conversation_screen.js +1 -1
  187. package/build/screens/team_conversation_screen.js.map +1 -1
  188. package/build/types/jolt_events/message_events.d.ts +2 -0
  189. package/build/types/jolt_events/message_events.d.ts.map +1 -1
  190. package/build/types/jolt_events/message_events.js.map +1 -1
  191. package/build/types/resources/conversation.d.ts +2 -2
  192. package/build/types/resources/conversation.d.ts.map +1 -1
  193. package/build/types/resources/conversation.js.map +1 -1
  194. package/build/types/resources/member_ability.d.ts +2 -0
  195. package/build/types/resources/member_ability.d.ts.map +1 -1
  196. package/build/types/resources/member_ability.js.map +1 -1
  197. package/build/types/resources/message.d.ts +2 -0
  198. package/build/types/resources/message.d.ts.map +1 -1
  199. package/build/types/resources/message.js.map +1 -1
  200. package/build/types/resources/person.d.ts +1 -0
  201. package/build/types/resources/person.d.ts.map +1 -1
  202. package/build/types/resources/person.js.map +1 -1
  203. package/build/utils/archived_conversation.d.ts +5 -0
  204. package/build/utils/archived_conversation.d.ts.map +1 -0
  205. package/build/utils/archived_conversation.js +5 -0
  206. package/build/utils/archived_conversation.js.map +1 -0
  207. package/build/utils/date.d.ts +1 -0
  208. package/build/utils/date.d.ts.map +1 -1
  209. package/build/utils/date.js +9 -0
  210. package/build/utils/date.js.map +1 -1
  211. package/build/utils/index.d.ts +1 -0
  212. package/build/utils/index.d.ts.map +1 -1
  213. package/build/utils/index.js +1 -0
  214. package/build/utils/index.js.map +1 -1
  215. package/build/utils/jolt/transform_message_event_data_to_message_resource.d.ts.map +1 -1
  216. package/build/utils/jolt/transform_message_event_data_to_message_resource.js +2 -1
  217. package/build/utils/jolt/transform_message_event_data_to_message_resource.js.map +1 -1
  218. package/build/utils/native_adapters/configuration.d.ts +3 -0
  219. package/build/utils/native_adapters/configuration.d.ts.map +1 -1
  220. package/build/utils/native_adapters/configuration.js +3 -0
  221. package/build/utils/native_adapters/configuration.js.map +1 -1
  222. package/build/utils/native_adapters/index.d.ts +1 -0
  223. package/build/utils/native_adapters/index.d.ts.map +1 -1
  224. package/build/utils/native_adapters/index.js +1 -0
  225. package/build/utils/native_adapters/index.js.map +1 -1
  226. package/build/utils/native_adapters/menu.d.ts +41 -0
  227. package/build/utils/native_adapters/menu.d.ts.map +1 -0
  228. package/build/utils/native_adapters/menu.js +56 -0
  229. package/build/utils/native_adapters/menu.js.map +1 -0
  230. package/build/utils/request/conversation.d.ts +2 -1
  231. package/build/utils/request/conversation.d.ts.map +1 -1
  232. package/build/utils/request/conversation.js +4 -1
  233. package/build/utils/request/conversation.js.map +1 -1
  234. package/build/utils/request/messages_data_options.d.ts.map +1 -1
  235. package/build/utils/request/messages_data_options.js +1 -1
  236. package/build/utils/request/messages_data_options.js.map +1 -1
  237. package/build/utils/system_messages.d.ts +7 -5
  238. package/build/utils/system_messages.d.ts.map +1 -1
  239. package/build/utils/system_messages.js +10 -2
  240. package/build/utils/system_messages.js.map +1 -1
  241. package/build/vendor/font_awesome_pro_solid_icons.d.ts +1 -0
  242. package/build/vendor/font_awesome_pro_solid_icons.d.ts.map +1 -1
  243. package/build/vendor/font_awesome_pro_solid_icons.js +5 -0
  244. package/build/vendor/font_awesome_pro_solid_icons.js.map +1 -1
  245. package/package.json +3 -3
  246. package/src/__tests__/hooks/use_can_browse_archived_conversations.test.tsx +98 -0
  247. package/src/__tests__/hooks/use_filter_dropdown_enabled.test.tsx +42 -0
  248. package/src/__tests__/screens/conversation_filters/components/conversation_filters.test.tsx +132 -0
  249. package/src/__tests__/screens/conversation_filters_screen.test.tsx +76 -0
  250. package/src/__tests__/screens/conversation_new/components/services_form.test.tsx +1 -0
  251. package/src/__tests__/screens/message_actions_screen.test.tsx +65 -2
  252. package/src/__tests__/screens/send_giphy_screen.test.tsx +102 -0
  253. package/src/__tests__/utils/system_messages.ts +19 -32
  254. package/src/components/conversation/__tests__/message_list.test.tsx +68 -2
  255. package/src/components/conversation/__tests__/system_message.test.tsx +106 -0
  256. package/src/components/conversation/jump_to_bottom_button.tsx +4 -3
  257. package/src/components/conversation/message.tsx +3 -0
  258. package/src/components/conversation/message_form.tsx +3 -1
  259. package/src/components/conversation/message_list.tsx +9 -1
  260. package/src/components/conversation/message_reaction.tsx +7 -2
  261. package/src/components/conversation/messages_disabled_banners.tsx +17 -18
  262. package/src/components/conversation/system_message.tsx +44 -16
  263. package/src/components/conversations/__tests__/conversation_actions.test.tsx +67 -0
  264. package/src/components/conversations/__tests__/conversation_preview.test.tsx +105 -0
  265. package/src/components/conversations/__tests__/conversations.test.tsx +93 -0
  266. package/src/components/conversations/__tests__/conversations_blank_state.test.tsx +73 -0
  267. package/src/components/conversations/archived_results_footer.tsx +36 -0
  268. package/src/components/conversations/conversation_actions.tsx +27 -19
  269. package/src/components/conversations/conversation_preview.tsx +39 -10
  270. package/src/components/conversations/conversations.tsx +26 -3
  271. package/src/components/conversations/conversations_blank_state.tsx +21 -0
  272. package/src/components/conversations/filtered_results_footer.tsx +38 -0
  273. package/src/components/display/__tests__/filter_dropdown.test.tsx +114 -0
  274. package/src/components/display/__tests__/icon_tile.test.tsx +16 -0
  275. package/src/components/display/action_button.tsx +4 -3
  276. package/src/components/display/filter_dropdown.tsx +124 -0
  277. package/src/components/display/icon_tile.tsx +67 -0
  278. package/src/components/display/index.ts +2 -0
  279. package/src/contexts/api_provider.tsx +8 -0
  280. package/src/contexts/conversations_context.tsx +2 -1
  281. package/src/hooks/__tests__/use_conversation_archive.test.tsx +152 -0
  282. package/src/hooks/__tests__/use_conversation_jolt_events.test.tsx +74 -0
  283. package/src/hooks/__tests__/use_conversation_messages.test.tsx +10 -2
  284. package/src/hooks/__tests__/use_jolt.test.tsx +100 -1
  285. package/src/hooks/__tests__/use_mark_latest_message_read.test.tsx +21 -7
  286. package/src/hooks/__tests__/use_reduce_motion.test.tsx +61 -0
  287. package/src/hooks/__tests__/use_unarchive_conversation_action.test.tsx +67 -0
  288. package/src/hooks/groups/use_group_members_for_new_conversation.ts +21 -16
  289. package/src/hooks/index.ts +3 -0
  290. package/src/hooks/use_animated_message_background_color.ts +6 -3
  291. package/src/hooks/use_api.ts +9 -2
  292. package/src/hooks/use_can_browse_archived_conversations.ts +17 -0
  293. package/src/hooks/use_clear_conversation_filters.ts +16 -0
  294. package/src/hooks/use_conversation.ts +44 -3
  295. package/src/hooks/use_conversation_messages.ts +7 -5
  296. package/src/hooks/use_current_person.ts +1 -0
  297. package/src/hooks/use_features.ts +2 -0
  298. package/src/hooks/use_filter_dropdown_enabled.ts +10 -0
  299. package/src/hooks/use_jolt.ts +57 -1
  300. package/src/hooks/use_manual_archiving_enabled.ts +10 -0
  301. package/src/hooks/use_mark_latest_message_read.ts +4 -3
  302. package/src/hooks/use_reduce_motion.ts +19 -0
  303. package/src/hooks/use_unarchive_conversation_action.ts +24 -0
  304. package/src/screens/__tests__/conversation_details_screen.test.tsx +305 -0
  305. package/src/screens/attachment_actions/__tests__/attachment_actions_screen.test.tsx +72 -0
  306. package/src/screens/attachment_actions/attachment_actions_screen.tsx +3 -1
  307. package/src/screens/conversation_details_screen.tsx +80 -16
  308. package/src/screens/conversation_filters/__tests__/conversation_filters.test.tsx +101 -0
  309. package/src/screens/conversation_filters/components/conversation_filters.tsx +40 -7
  310. package/src/screens/conversation_filters/components/rows.tsx +29 -1
  311. package/src/screens/conversation_filters/context/conversation_filter_context.tsx +4 -0
  312. package/src/screens/conversation_filters/filter_types.ts +1 -0
  313. package/src/screens/conversation_filters/screen_props.ts +1 -0
  314. package/src/screens/conversation_filters_screen.tsx +25 -5
  315. package/src/screens/conversation_new/components/groups_form.tsx +1 -0
  316. package/src/screens/conversation_screen.tsx +4 -2
  317. package/src/screens/conversations/__tests__/conversations_screen.test.tsx +52 -0
  318. package/src/screens/conversations/components/__tests__/filter_dropdown_list_header_component.test.tsx +259 -0
  319. package/src/screens/conversations/components/__tests__/list_header_component.test.tsx +21 -4
  320. package/src/screens/conversations/components/filter_dropdown_list_header_component.tsx +286 -0
  321. package/src/screens/conversations/components/list_header_component.tsx +17 -12
  322. package/src/screens/conversations/components/search_list_header_component.tsx +17 -12
  323. package/src/screens/conversations/conversations_screen.tsx +15 -2
  324. package/src/screens/design_system_screen.tsx +26 -0
  325. package/src/screens/message_actions_screen.tsx +29 -20
  326. package/src/screens/search/__tests__/search_screen.test.tsx +13 -1
  327. package/src/screens/search/search_screen.tsx +8 -2
  328. package/src/screens/send_giphy_screen.tsx +6 -3
  329. package/src/screens/team_conversation_screen.tsx +1 -1
  330. package/src/types/jolt_events/message_events.ts +2 -0
  331. package/src/types/resources/conversation.ts +2 -2
  332. package/src/types/resources/member_ability.ts +2 -0
  333. package/src/types/resources/message.ts +3 -0
  334. package/src/types/resources/person.ts +1 -0
  335. package/src/utils/__tests__/conversation.test.ts +1 -0
  336. package/src/utils/__tests__/date.test.ts +23 -0
  337. package/src/utils/__tests__/group_messages.test.ts +1 -0
  338. package/src/utils/archived_conversation.ts +13 -0
  339. package/src/utils/date.ts +8 -0
  340. package/src/utils/index.ts +1 -0
  341. package/src/utils/jolt/__tests__/transform_message_event_data_to_message_resource.test.ts +35 -0
  342. package/src/utils/jolt/transform_message_event_data_to_message_resource.ts +1 -0
  343. package/src/utils/native_adapters/__tests__/menu.test.tsx +46 -0
  344. package/src/utils/native_adapters/configuration.ts +5 -0
  345. package/src/utils/native_adapters/index.ts +1 -0
  346. package/src/utils/native_adapters/menu.tsx +70 -0
  347. package/src/utils/request/conversation.ts +4 -0
  348. package/src/utils/request/messages_data_options.ts +1 -0
  349. package/src/utils/system_messages.ts +19 -10
  350. package/src/vendor/font_awesome_pro_solid_icons.ts +12 -0
@@ -1,12 +1,14 @@
1
1
  import { c as _c } from "react/compiler-runtime";
2
- import { useHeaderHeight } from '@react-navigation/elements';
2
+ import { HeaderBackButton, useHeaderHeight } from '@react-navigation/elements';
3
3
  import * as ReactNavigationNative from '@react-navigation/native';
4
- import { useRoute } from '@react-navigation/native';
4
+ import { useNavigation, useRoute } from '@react-navigation/native';
5
5
  import { createNativeStackNavigator } from '@react-navigation/native-stack';
6
6
  import React, { useCallback } from 'react';
7
7
  import { Platform, StyleSheet, useWindowDimensions, View } from 'react-native';
8
8
  import { useSafeAreaInsets } from 'react-native-safe-area-context';
9
9
  import FormSheet, { getFormSheetScreenOptions } from '../components/primitive/form_sheet';
10
+ import { useTheme } from '../hooks';
11
+ import { useFilterDropdownEnabled } from '../hooks/use_filter_dropdown_enabled';
10
12
  import { ConversationFilters } from './conversation_filters/components/conversation_filters';
11
13
  import { FilterProvider, useFilterContext } from './conversation_filters/context/conversation_filter_context';
12
14
  import { GroupFilters } from './conversation_filters/group_filters';
@@ -75,7 +77,7 @@ export const ConversationFiltersScreen = _props => {
75
77
  let t0;
76
78
  let t1;
77
79
  if ($[0] === Symbol.for("react.memo_cache_sentinel")) {
78
- t0 = /*#__PURE__*/_jsx(FormSheetHeaderWithContext, {});
80
+ t0 = /*#__PURE__*/_jsx(ConversationFiltersHeader, {});
79
81
  t1 = /*#__PURE__*/_jsx(Filters, {});
80
82
  $[0] = t0;
81
83
  $[1] = t1;
@@ -99,14 +101,19 @@ export const ConversationFiltersScreen = _props => {
99
101
  }
100
102
  return t2;
101
103
  };
102
- const FormSheetHeaderWithContext = () => {
103
- const $ = _c(17);
104
+ export const ConversationFiltersHeader = () => {
105
+ const $ = _c(24);
104
106
  const {
105
107
  resetFilter,
106
108
  applyFilters,
107
109
  setFormSheetHeaderHeight
108
110
  } = useFilterContext();
111
+ const navigation = useNavigation();
109
112
  const route = useRoute();
113
+ const filterDropdownEnabled = useFilterDropdownEnabled();
114
+ const {
115
+ colors
116
+ } = useTheme();
110
117
  const styles = useStyles();
111
118
  let t0;
112
119
  if ($[0] !== setFormSheetHeaderHeight) {
@@ -120,73 +127,93 @@ const FormSheetHeaderWithContext = () => {
120
127
  }
121
128
  const handleFormSheetHeaderLayout = t0;
122
129
  let t1;
123
- if ($[2] === Symbol.for("react.memo_cache_sentinel")) {
124
- t1 = /*#__PURE__*/_jsx(FormSheet.HeaderTitle, {
125
- children: "Filters"
130
+ if ($[2] !== colors || $[3] !== navigation || $[4] !== styles.backButton) {
131
+ t1 = Platform.OS === "android" && /*#__PURE__*/_jsx(HeaderBackButton, {
132
+ displayMode: "minimal",
133
+ accessibilityLabel: "Back",
134
+ tintColor: colors.iconColorDefaultPrimary,
135
+ onPress: navigation.goBack,
136
+ style: styles.backButton
126
137
  });
127
- $[2] = t1;
138
+ $[2] = colors;
139
+ $[3] = navigation;
140
+ $[4] = styles.backButton;
141
+ $[5] = t1;
128
142
  } else {
129
- t1 = $[2];
143
+ t1 = $[5];
130
144
  }
131
- let t2;
132
- if ($[3] !== resetFilter) {
133
- t2 = /*#__PURE__*/_jsx(FormSheet.HeaderTextButton, {
145
+ const t2 = filterDropdownEnabled ? "More filters" : "Filters";
146
+ let t3;
147
+ if ($[6] !== t2) {
148
+ t3 = /*#__PURE__*/_jsx(FormSheet.HeaderTitle, {
149
+ children: t2
150
+ });
151
+ $[6] = t2;
152
+ $[7] = t3;
153
+ } else {
154
+ t3 = $[7];
155
+ }
156
+ let t4;
157
+ if ($[8] !== resetFilter) {
158
+ t4 = /*#__PURE__*/_jsx(FormSheet.HeaderTextButton, {
134
159
  onPress: resetFilter,
135
160
  children: "Reset"
136
161
  });
137
- $[3] = resetFilter;
138
- $[4] = t2;
162
+ $[8] = resetFilter;
163
+ $[9] = t4;
139
164
  } else {
140
- t2 = $[4];
165
+ t4 = $[9];
141
166
  }
142
- let t3;
143
- if ($[5] !== applyFilters || $[6] !== route.params) {
144
- t3 = /*#__PURE__*/_jsx(FormSheet.HeaderButton, {
167
+ let t5;
168
+ if ($[10] !== applyFilters || $[11] !== route.params) {
169
+ t5 = /*#__PURE__*/_jsx(FormSheet.HeaderButton, {
145
170
  title: "Apply",
146
171
  onPress: () => applyFilters(route.params)
147
172
  });
148
- $[5] = applyFilters;
149
- $[6] = route.params;
150
- $[7] = t3;
173
+ $[10] = applyFilters;
174
+ $[11] = route.params;
175
+ $[12] = t5;
151
176
  } else {
152
- t3 = $[7];
177
+ t5 = $[12];
153
178
  }
154
- let t4;
155
- if ($[8] !== t2 || $[9] !== t3) {
156
- t4 = /*#__PURE__*/_jsxs(FormSheet.HeaderActions, {
157
- children: [t2, t3]
179
+ let t6;
180
+ if ($[13] !== t4 || $[14] !== t5) {
181
+ t6 = /*#__PURE__*/_jsxs(FormSheet.HeaderActions, {
182
+ children: [t4, t5]
158
183
  });
159
- $[8] = t2;
160
- $[9] = t3;
161
- $[10] = t4;
184
+ $[13] = t4;
185
+ $[14] = t5;
186
+ $[15] = t6;
162
187
  } else {
163
- t4 = $[10];
188
+ t6 = $[15];
164
189
  }
165
- let t5;
166
- if ($[11] !== styles.header || $[12] !== t4) {
167
- t5 = /*#__PURE__*/_jsxs(FormSheet.Header, {
190
+ let t7;
191
+ if ($[16] !== styles.header || $[17] !== t1 || $[18] !== t3 || $[19] !== t6) {
192
+ t7 = /*#__PURE__*/_jsxs(FormSheet.Header, {
168
193
  style: styles.header,
169
- children: [t1, t4]
194
+ children: [t1, t3, t6]
170
195
  });
171
- $[11] = styles.header;
172
- $[12] = t4;
173
- $[13] = t5;
196
+ $[16] = styles.header;
197
+ $[17] = t1;
198
+ $[18] = t3;
199
+ $[19] = t6;
200
+ $[20] = t7;
174
201
  } else {
175
- t5 = $[13];
202
+ t7 = $[20];
176
203
  }
177
- let t6;
178
- if ($[14] !== handleFormSheetHeaderLayout || $[15] !== t5) {
179
- t6 = /*#__PURE__*/_jsx(View, {
204
+ let t8;
205
+ if ($[21] !== handleFormSheetHeaderLayout || $[22] !== t7) {
206
+ t8 = /*#__PURE__*/_jsx(View, {
180
207
  onLayout: handleFormSheetHeaderLayout,
181
- children: t5
208
+ children: t7
182
209
  });
183
- $[14] = handleFormSheetHeaderLayout;
184
- $[15] = t5;
185
- $[16] = t6;
210
+ $[21] = handleFormSheetHeaderLayout;
211
+ $[22] = t7;
212
+ $[23] = t8;
186
213
  } else {
187
- t6 = $[16];
214
+ t8 = $[23];
188
215
  }
189
- return t6;
216
+ return t8;
190
217
  };
191
218
  const useStyles = () => {
192
219
  const $ = _c(4);
@@ -213,6 +240,10 @@ const useStyles = () => {
213
240
  android: 20 + top
214
241
  }),
215
242
  borderBottomWidth: 0
243
+ },
244
+ backButton: {
245
+ marginLeft: -3,
246
+ marginRight: 8
216
247
  }
217
248
  });
218
249
  $[0] = headerHeight;
@@ -1 +1 @@
1
- {"version":3,"file":"conversation_filters_screen.js","names":["useHeaderHeight","ReactNavigationNative","useRoute","createNativeStackNavigator","React","useCallback","Platform","StyleSheet","useWindowDimensions","View","useSafeAreaInsets","FormSheet","getFormSheetScreenOptions","ConversationFilters","FilterProvider","useFilterContext","GroupFilters","TeamFilters","jsx","_jsx","jsxs","_jsxs","ConversationFiltersScreenOptions","presentation","select","android","ios","sheetAllowedDetents","default","headerTitle","FilterNavigator","initialRouteName","screens","Filters","screen","options","headerShown","headerBackTitle","createStaticNavigationComponent","tree","name","getComponent","createComponentForStaticNavigation","ConversationFiltersScreen","_props","$","_c","styles","useStyles","t0","t1","Symbol","for","FormSheetHeaderWithContext","t2","contentContainer","children","Root","contentStyle","showAndroidSheetGrabber","resetFilter","applyFilters","setFormSheetHeaderHeight","route","event","nativeEvent","layout","height","handleFormSheetHeaderLayout","HeaderTitle","HeaderTextButton","t3","params","HeaderButton","title","onPress","t4","HeaderActions","t5","header","Header","style","t6","top","headerHeight","containerHeight","create","paddingTop","borderBottomWidth"],"sources":["../../src/screens/conversation_filters_screen.tsx"],"sourcesContent":["import { useHeaderHeight } from '@react-navigation/elements'\nimport * as ReactNavigationNative from '@react-navigation/native'\nimport { RouteProp, useRoute } from '@react-navigation/native'\nimport { createNativeStackNavigator } from '@react-navigation/native-stack'\nimport React, { useCallback } from 'react'\nimport { LayoutChangeEvent, Platform, StyleSheet, useWindowDimensions, View } from 'react-native'\nimport { useSafeAreaInsets } from 'react-native-safe-area-context'\nimport FormSheet, { getFormSheetScreenOptions } from '../components/primitive/form_sheet'\nimport { ConversationFilters } from './conversation_filters/components/conversation_filters'\nimport {\n FilterProvider,\n useFilterContext,\n} from './conversation_filters/context/conversation_filter_context'\nimport { GroupFilters } from './conversation_filters/group_filters'\nimport {\n ConversationFiltersScreenProps,\n ConversationFilterStackParamList,\n} from './conversation_filters/screen_props'\nimport { TeamFilters } from './conversation_filters/team_filters'\n\nexport const ConversationFiltersScreenOptions = getFormSheetScreenOptions({\n presentation: Platform.select({ android: 'modal', ios: 'formSheet' }),\n sheetAllowedDetents: Platform.select({\n ios: [0.75, 1],\n default: [1],\n }),\n headerTitle: 'Filters',\n})\n\nconst FilterNavigator = createNativeStackNavigator<ConversationFilterStackParamList>({\n initialRouteName: 'Filters',\n screens: {\n Filters: {\n screen: ConversationFilters,\n options: {\n headerShown: false,\n },\n },\n GroupFilters: {\n screen: GroupFilters,\n options: {\n headerTitle: Platform.select({\n android: 'Groups',\n ios: '',\n }),\n headerBackTitle: 'Groups',\n },\n },\n TeamFilters: {\n screen: TeamFilters,\n options: {\n headerTitle: Platform.select({\n android: 'Teams',\n ios: '',\n }),\n headerBackTitle: 'Teams',\n },\n },\n },\n})\n\n// tree.getComponent() doesn't exist on every host's installed\n// react-navigation/core — hosts on an older version would throw here.\n// Where it does exist, it's the real implementation (the \"deprecated\"\n// createComponentForStaticNavigation is just a console.warn wrapper around\n// the same call on current versions), so prefer it and only reach for the\n// old function on cores where getComponent() genuinely isn't there yet.\nfunction createStaticNavigationComponent<P extends object>(\n tree: { getComponent?: () => React.ComponentType<P> },\n name: string\n): React.ComponentType<P> {\n if (typeof tree.getComponent === 'function') return tree.getComponent()\n\n const { createComponentForStaticNavigation } = ReactNavigationNative as {\n createComponentForStaticNavigation: (tree: unknown, name: string) => React.ComponentType<P>\n }\n\n return createComponentForStaticNavigation(tree, name)\n}\n\nconst Filters = createStaticNavigationComponent(FilterNavigator, 'Filters')\n\nexport const ConversationFiltersScreen = (_props: ConversationFiltersScreenProps) => {\n const styles = useStyles()\n\n return (\n <FilterProvider>\n <FormSheet.Root contentStyle={styles.contentContainer} showAndroidSheetGrabber={false}>\n <FormSheetHeaderWithContext />\n <Filters />\n </FormSheet.Root>\n </FilterProvider>\n )\n}\n\nconst FormSheetHeaderWithContext = () => {\n const { resetFilter, applyFilters, setFormSheetHeaderHeight } = useFilterContext()\n const route = useRoute<RouteProp<ConversationFiltersScreenProps['route']>>()\n const styles = useStyles()\n\n const handleFormSheetHeaderLayout = useCallback(\n (event: LayoutChangeEvent) => {\n setFormSheetHeaderHeight(event.nativeEvent.layout.height)\n },\n [setFormSheetHeaderHeight]\n )\n\n return (\n <View onLayout={handleFormSheetHeaderLayout}>\n <FormSheet.Header style={styles.header}>\n <FormSheet.HeaderTitle>Filters</FormSheet.HeaderTitle>\n <FormSheet.HeaderActions>\n <FormSheet.HeaderTextButton onPress={resetFilter}>Reset</FormSheet.HeaderTextButton>\n <FormSheet.HeaderButton title=\"Apply\" onPress={() => applyFilters(route.params)} />\n </FormSheet.HeaderActions>\n </FormSheet.Header>\n </View>\n )\n}\n\nconst useStyles = () => {\n const { top } = useSafeAreaInsets()\n const { height } = useWindowDimensions()\n const headerHeight = useHeaderHeight()\n\n const containerHeight = Platform.select({\n android: height,\n ios: height - top - headerHeight,\n })\n\n return StyleSheet.create({\n contentContainer: {\n height: containerHeight,\n },\n header: {\n paddingTop: Platform.select({\n ios: 20,\n android: 20 + top,\n }),\n // The filter list scrolls under it, so the sheet header doesn't need a\n // separator the way the non-scrolling reaction sheet does.\n borderBottomWidth: 0,\n },\n })\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"conversation_filters_screen.js","names":["HeaderBackButton","useHeaderHeight","ReactNavigationNative","useNavigation","useRoute","createNativeStackNavigator","React","useCallback","Platform","StyleSheet","useWindowDimensions","View","useSafeAreaInsets","FormSheet","getFormSheetScreenOptions","useTheme","useFilterDropdownEnabled","ConversationFilters","FilterProvider","useFilterContext","GroupFilters","TeamFilters","jsx","_jsx","jsxs","_jsxs","ConversationFiltersScreenOptions","presentation","select","android","ios","sheetAllowedDetents","default","headerTitle","FilterNavigator","initialRouteName","screens","Filters","screen","options","headerShown","headerBackTitle","createStaticNavigationComponent","tree","name","getComponent","createComponentForStaticNavigation","ConversationFiltersScreen","_props","$","_c","styles","useStyles","t0","t1","Symbol","for","ConversationFiltersHeader","t2","contentContainer","children","Root","contentStyle","showAndroidSheetGrabber","resetFilter","applyFilters","setFormSheetHeaderHeight","navigation","route","filterDropdownEnabled","colors","event","nativeEvent","layout","height","handleFormSheetHeaderLayout","backButton","OS","displayMode","accessibilityLabel","tintColor","iconColorDefaultPrimary","onPress","goBack","style","t3","HeaderTitle","t4","HeaderTextButton","t5","params","HeaderButton","title","t6","HeaderActions","t7","header","Header","t8","top","headerHeight","containerHeight","create","paddingTop","borderBottomWidth","marginLeft","marginRight"],"sources":["../../src/screens/conversation_filters_screen.tsx"],"sourcesContent":["import { HeaderBackButton, useHeaderHeight } from '@react-navigation/elements'\nimport * as ReactNavigationNative from '@react-navigation/native'\nimport { RouteProp, useNavigation, useRoute } from '@react-navigation/native'\nimport { createNativeStackNavigator } from '@react-navigation/native-stack'\nimport React, { useCallback } from 'react'\nimport { LayoutChangeEvent, Platform, StyleSheet, useWindowDimensions, View } from 'react-native'\nimport { useSafeAreaInsets } from 'react-native-safe-area-context'\nimport FormSheet, { getFormSheetScreenOptions } from '../components/primitive/form_sheet'\nimport { useTheme } from '../hooks'\nimport { useFilterDropdownEnabled } from '../hooks/use_filter_dropdown_enabled'\nimport { ConversationFilters } from './conversation_filters/components/conversation_filters'\nimport {\n FilterProvider,\n useFilterContext,\n} from './conversation_filters/context/conversation_filter_context'\nimport { GroupFilters } from './conversation_filters/group_filters'\nimport {\n ConversationFiltersScreenProps,\n ConversationFilterStackParamList,\n} from './conversation_filters/screen_props'\nimport { TeamFilters } from './conversation_filters/team_filters'\n\nexport const ConversationFiltersScreenOptions = getFormSheetScreenOptions({\n presentation: Platform.select({ android: 'modal', ios: 'formSheet' }),\n sheetAllowedDetents: Platform.select({\n ios: [0.75, 1],\n default: [1],\n }),\n headerTitle: 'Filters',\n})\n\nconst FilterNavigator = createNativeStackNavigator<ConversationFilterStackParamList>({\n initialRouteName: 'Filters',\n screens: {\n Filters: {\n screen: ConversationFilters,\n options: {\n headerShown: false,\n },\n },\n GroupFilters: {\n screen: GroupFilters,\n options: {\n headerTitle: Platform.select({\n android: 'Groups',\n ios: '',\n }),\n headerBackTitle: 'Groups',\n },\n },\n TeamFilters: {\n screen: TeamFilters,\n options: {\n headerTitle: Platform.select({\n android: 'Teams',\n ios: '',\n }),\n headerBackTitle: 'Teams',\n },\n },\n },\n})\n\n// tree.getComponent() doesn't exist on every host's installed\n// react-navigation/core — hosts on an older version would throw here.\n// Where it does exist, it's the real implementation (the \"deprecated\"\n// createComponentForStaticNavigation is just a console.warn wrapper around\n// the same call on current versions), so prefer it and only reach for the\n// old function on cores where getComponent() genuinely isn't there yet.\nfunction createStaticNavigationComponent<P extends object>(\n tree: { getComponent?: () => React.ComponentType<P> },\n name: string\n): React.ComponentType<P> {\n if (typeof tree.getComponent === 'function') return tree.getComponent()\n\n const { createComponentForStaticNavigation } = ReactNavigationNative as {\n createComponentForStaticNavigation: (tree: unknown, name: string) => React.ComponentType<P>\n }\n\n return createComponentForStaticNavigation(tree, name)\n}\n\nconst Filters = createStaticNavigationComponent(FilterNavigator, 'Filters')\n\nexport const ConversationFiltersScreen = (_props: ConversationFiltersScreenProps) => {\n const styles = useStyles()\n\n return (\n <FilterProvider>\n <FormSheet.Root contentStyle={styles.contentContainer} showAndroidSheetGrabber={false}>\n <ConversationFiltersHeader />\n <Filters />\n </FormSheet.Root>\n </FilterProvider>\n )\n}\n\nexport const ConversationFiltersHeader = () => {\n const { resetFilter, applyFilters, setFormSheetHeaderHeight } = useFilterContext()\n const navigation = useNavigation()\n const route = useRoute<RouteProp<ConversationFiltersScreenProps['route']>>()\n const filterDropdownEnabled = useFilterDropdownEnabled()\n const { colors } = useTheme()\n const styles = useStyles()\n\n const handleFormSheetHeaderLayout = useCallback(\n (event: LayoutChangeEvent) => {\n setFormSheetHeaderHeight(event.nativeEvent.layout.height)\n },\n [setFormSheetHeaderHeight]\n )\n\n return (\n <View onLayout={handleFormSheetHeaderLayout}>\n <FormSheet.Header style={styles.header}>\n {Platform.OS === 'android' && (\n <HeaderBackButton\n displayMode=\"minimal\"\n accessibilityLabel=\"Back\"\n tintColor={colors.iconColorDefaultPrimary}\n onPress={navigation.goBack}\n style={styles.backButton}\n />\n )}\n <FormSheet.HeaderTitle>\n {filterDropdownEnabled ? 'More filters' : 'Filters'}\n </FormSheet.HeaderTitle>\n <FormSheet.HeaderActions>\n <FormSheet.HeaderTextButton onPress={resetFilter}>Reset</FormSheet.HeaderTextButton>\n <FormSheet.HeaderButton title=\"Apply\" onPress={() => applyFilters(route.params)} />\n </FormSheet.HeaderActions>\n </FormSheet.Header>\n </View>\n )\n}\n\nconst useStyles = () => {\n const { top } = useSafeAreaInsets()\n const { height } = useWindowDimensions()\n const headerHeight = useHeaderHeight()\n\n const containerHeight = Platform.select({\n android: height,\n ios: height - top - headerHeight,\n })\n\n return StyleSheet.create({\n contentContainer: {\n height: containerHeight,\n },\n header: {\n paddingTop: Platform.select({\n ios: 20,\n android: 20 + top,\n }),\n // The filter list scrolls under it, so the sheet header doesn't need a\n // separator the way the non-scrolling reaction sheet does.\n borderBottomWidth: 0,\n },\n backButton: {\n marginLeft: -3,\n marginRight: 8,\n },\n })\n}\n"],"mappings":"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","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"groups_form.d.ts","sourceRoot":"","sources":["../../../../src/screens/conversation_new/components/groups_form.tsx"],"names":[],"mappings":"AAcA,OAAO,EACL,KAAK,mBAAmB,EAEzB,MAAM,+CAA+C,CAAA;AAMtD,OAAO,EAAE,OAAO,EAAE,MAAM,yCAAyC,CAAA;AAQjE,KAAK,eAAe,GAAG;IACrB,OAAO,EAAE,MAAM,CAAA;IACf,mBAAmB,CAAC,EAAE,OAAO,CAAA;IAC7B,eAAe,CAAC,EAAE,mBAAmB,CAAA;CACtC,CAAA;AAED,eAAO,MAAM,UAAU,GAAI,mDAAmD,eAAe,4CAoH5F,CAAA"}
1
+ {"version":3,"file":"groups_form.d.ts","sourceRoot":"","sources":["../../../../src/screens/conversation_new/components/groups_form.tsx"],"names":[],"mappings":"AAcA,OAAO,EACL,KAAK,mBAAmB,EAEzB,MAAM,+CAA+C,CAAA;AAMtD,OAAO,EAAE,OAAO,EAAE,MAAM,yCAAyC,CAAA;AAQjE,KAAK,eAAe,GAAG;IACrB,OAAO,EAAE,MAAM,CAAA;IACf,mBAAmB,CAAC,EAAE,OAAO,CAAA;IAC7B,eAAe,CAAC,EAAE,mBAAmB,CAAA;CACtC,CAAA;AAED,eAAO,MAAM,UAAU,GAAI,mDAAmD,eAAe,4CAqH5F,CAAA"}
@@ -23,7 +23,7 @@ import { Divider, FormList } from './form_list';
23
23
  import { GenderFilterToggle } from './gender_filter_toggle';
24
24
  import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
25
25
  export const GroupsForm = t0 => {
26
- const $ = _c(58);
26
+ const $ = _c(59);
27
27
  const {
28
28
  groupId,
29
29
  chat_group_graph_id,
@@ -205,9 +205,10 @@ export const GroupsForm = t0 => {
205
205
  mutate: handleSave,
206
206
  isPending
207
207
  } = useGroupsConversationCreate(t11);
208
- let t12;
208
+ const t12 = groupMemberships.isLoading ? "Loading members..." : undefined;
209
+ let t13;
209
210
  if ($[33] !== avatarSelection || $[34] !== customAvatarsEnabled || $[35] !== genderFetching || $[36] !== genderFilterAvailable || $[37] !== genderFilterEnabled || $[38] !== genderValue || $[39] !== group || $[40] !== groupMemberships || $[41] !== handleGenderToggle || $[42] !== title) {
210
- t12 = /*#__PURE__*/_jsx(FormContent, {
211
+ t13 = /*#__PURE__*/_jsx(FormContent, {
211
212
  group: group,
212
213
  title: title,
213
214
  setTitle: setTitle,
@@ -231,63 +232,65 @@ export const GroupsForm = t0 => {
231
232
  $[40] = groupMemberships;
232
233
  $[41] = handleGenderToggle;
233
234
  $[42] = title;
234
- $[43] = t12;
235
+ $[43] = t13;
235
236
  } else {
236
- t12 = $[43];
237
+ t13 = $[43];
237
238
  }
238
- let t13;
239
- if ($[44] !== groupMemberships.adultMembers || $[45] !== groupMemberships.fetchNextPage || $[46] !== groupMemberships.isFetchingNextPage || $[47] !== t12) {
240
- t13 = /*#__PURE__*/_jsx(FormList, {
239
+ let t14;
240
+ if ($[44] !== groupMemberships.adultMembers || $[45] !== groupMemberships.fetchNextPage || $[46] !== groupMemberships.isFetchingNextPage || $[47] !== t12 || $[48] !== t13) {
241
+ t14 = /*#__PURE__*/_jsx(FormList, {
241
242
  memberData: groupMemberships.adultMembers,
242
243
  loadingMore: groupMemberships.isFetchingNextPage,
243
244
  onEndReached: groupMemberships.fetchNextPage,
244
- FormContent: t12
245
+ listEmptyText: t12,
246
+ FormContent: t13
245
247
  });
246
248
  $[44] = groupMemberships.adultMembers;
247
249
  $[45] = groupMemberships.fetchNextPage;
248
250
  $[46] = groupMemberships.isFetchingNextPage;
249
251
  $[47] = t12;
250
252
  $[48] = t13;
253
+ $[49] = t14;
251
254
  } else {
252
- t13 = $[48];
255
+ t14 = $[49];
253
256
  }
254
- const t14 = !title || isPending || validationPending || warnings.length > 0;
255
- let t15;
256
- if ($[49] !== handleSave) {
257
- t15 = () => handleSave();
258
- $[49] = handleSave;
259
- $[50] = t15;
257
+ const t15 = !title || isPending || validationPending || warnings.length > 0;
258
+ let t16;
259
+ if ($[50] !== handleSave) {
260
+ t16 = () => handleSave();
261
+ $[50] = handleSave;
262
+ $[51] = t16;
260
263
  } else {
261
- t15 = $[50];
264
+ t16 = $[51];
262
265
  }
263
- let t16;
264
- if ($[51] !== t14 || $[52] !== t15 || $[53] !== warnings) {
265
- t16 = /*#__PURE__*/_jsx(ActionButton, {
266
- disabled: t14,
266
+ let t17;
267
+ if ($[52] !== t15 || $[53] !== t16 || $[54] !== warnings) {
268
+ t17 = /*#__PURE__*/_jsx(ActionButton, {
269
+ disabled: t15,
267
270
  title: "Start Conversation",
268
- onPress: t15,
271
+ onPress: t16,
269
272
  infoText: "Conversation will be automatically updated if any members are added or removed from this group.",
270
273
  warnings: warnings
271
274
  });
272
- $[51] = t14;
273
275
  $[52] = t15;
274
- $[53] = warnings;
275
- $[54] = t16;
276
+ $[53] = t16;
277
+ $[54] = warnings;
278
+ $[55] = t17;
276
279
  } else {
277
- t16 = $[54];
280
+ t17 = $[55];
278
281
  }
279
- let t17;
280
- if ($[55] !== t13 || $[56] !== t16) {
281
- t17 = /*#__PURE__*/_jsxs(KeyboardView, {
282
- children: [t13, t16]
282
+ let t18;
283
+ if ($[56] !== t14 || $[57] !== t17) {
284
+ t18 = /*#__PURE__*/_jsxs(KeyboardView, {
285
+ children: [t14, t17]
283
286
  });
284
- $[55] = t13;
285
- $[56] = t16;
287
+ $[56] = t14;
286
288
  $[57] = t17;
289
+ $[58] = t18;
287
290
  } else {
288
- t17 = $[57];
291
+ t18 = $[58];
289
292
  }
290
- return t17;
293
+ return t18;
291
294
  };
292
295
  function FormContent(t0) {
293
296
  const $ = _c(58);
@@ -1 +1 @@
1
- {"version":3,"file":"groups_form.js","names":["StackActions","useNavigation","React","useCallback","useMemo","useRef","useState","Platform","Pressable","StyleSheet","View","Banner","ChildNotice","Heading","Text","ActionButton","KeyboardView","AutoFocusAwareTextInput","useApiClient","useCurrentPerson","useSuspenseGet","useTheme","useGroupChatConversationPayload","useGroupMembersForNewConversation","useGroupsConversationCreate","patchConversationAvatar","useConversationValidate","availableFeatures","useFeatures","useMyGender","useUploadClient","pluralize","genderDisplayLabel","Haptic","AvatarSelectionRow","Divider","FormList","GenderFilterToggle","jsx","_jsx","jsxs","_jsxs","Fragment","_Fragment","GroupsForm","t0","$","_c","groupId","chat_group_graph_id","avatarSelection","navigation","apiClient","uploadClient","title","setTitle","genderFilterEnabled","setGenderFilterEnabled","featureEnabled","t1","custom_conversation_avatars","customAvatarsEnabled","t2","conversation_safety_lock","safetyLockEnabled","isFeatureEnabled","genderFilterAvailable","genderId","genderValue","isFetching","genderFetching","t3","t4","Symbol","for","fields","Group","t5","url","data","app","group","activeGenderId","activeGenderValue","t6","enabled","payload","isLoading","isLoadingPayload","t7","warnings","validationPending","t8","id","gender","groupMemberships","t9","name","displayLabel","defaultTitle","shouldAutoPopulateTitle","shouldClearAutoPopulatedTitle","handleGenderToggle","t10","conversationId","dispatch","popTo","conversation_id","notificationSuccess","kind","handleCreateSuccess","t11","onSuccess","mutate","handleSave","isPending","t12","FormContent","filteredMemberCount","adultMembers","length","t13","fetchNextPage","isFetchingNextPage","memberData","loadingMore","onEndReached","t14","t15","t16","disabled","onPress","infoText","t17","children","onGenderToggle","styles","useStyles","inputRef","currentPerson","membershipsCount","m","find","myGroupsMembership","isLeader","role","childMembers","hasChildren","displayCount","memberHeaderLabel","showMemberError","isError","current","focus","handleTitleSectionPress","variant","groupName","style","toSection","required","titleInput","placeholder","autoFocus","titleSection","banner","appearance","description","memberSection","t18","formContent","colors","statusErrorText","textColorDefaultPrimary","create","paddingBottom","flex","padding","flexDirection","gap","fontSize","select","ios","android","color","marginTop"],"sources":["../../../../src/screens/conversation_new/components/groups_form.tsx"],"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 { AutoFocusAwareTextInput } from '../../../components/display/text_input'\nimport { useApiClient, useCurrentPerson, useSuspenseGet, useTheme } from '../../../hooks'\nimport { useGroupChatConversationPayload } from '../../../hooks/groups/use_group_chat_conversation_payload'\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 {\n type AvatarUpdatePayload,\n patchConversationAvatar,\n} from '../../../hooks/use_conversation_avatar_update'\nimport { useConversationValidate } from '../../../hooks/use_conversation_validate'\nimport { availableFeatures, useFeatures } from '../../../hooks/use_features'\nimport { useMyGender } from '../../../hooks/use_my_gender'\nimport { useUploadClient } from '../../../hooks/use_upload_client'\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 { AvatarSelectionRow } from './avatar_selection_row'\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 avatarSelection?: AvatarUpdatePayload\n}\n\nexport const GroupsForm = ({ groupId, chat_group_graph_id, avatarSelection }: GroupsFormProps) => {\n const navigation = useNavigation()\n const apiClient = useApiClient()\n const uploadClient = useUploadClient()\n const [title, setTitle] = useState('')\n const [genderFilterEnabled, setGenderFilterEnabled] = useState(false)\n const { featureEnabled } = useFeatures()\n const customAvatarsEnabled = featureEnabled(availableFeatures.custom_conversation_avatars)\n const safetyLockEnabled = featureEnabled(availableFeatures.conversation_safety_lock)\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 activeGenderId = genderFilterEnabled ? genderId : null\n const activeGenderValue = genderFilterEnabled ? genderValue : null\n\n const { payload, isLoading: isLoadingPayload } = useGroupChatConversationPayload({\n groupId,\n enabled: safetyLockEnabled,\n })\n\n const { warnings, validationPending } = useConversationValidate({\n payload,\n isLoadingPayload,\n genderId: activeGenderId,\n enabled: safetyLockEnabled,\n })\n\n const groupMemberships = useGroupMembersForNewConversation({\n id: groupId,\n gender: activeGenderValue,\n })\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 handleCreateSuccess = useCallback(\n (conversationId: number) => {\n navigation.dispatch(\n StackActions.popTo('Conversation', {\n conversation_id: conversationId,\n chat_group_graph_id,\n })\n )\n Haptic.notificationSuccess()\n\n if (avatarSelection && avatarSelection.kind !== 'clear') {\n patchConversationAvatar(apiClient, uploadClient, conversationId, avatarSelection)\n }\n },\n [apiClient, avatarSelection, chat_group_graph_id, navigation, uploadClient]\n )\n\n const { mutate: handleSave, isPending } = useGroupsConversationCreate({\n groupId,\n title,\n genderId: activeGenderId,\n onSuccess: handleCreateSuccess,\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 filteredMemberCount={groupMemberships.adultMembers.length}\n avatarSelection={avatarSelection}\n customAvatarsEnabled={customAvatarsEnabled}\n />\n }\n />\n <ActionButton\n disabled={!title || isPending || validationPending || warnings.length > 0}\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 warnings={warnings}\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 filteredMemberCount: number\n avatarSelection?: AvatarUpdatePayload\n customAvatarsEnabled: boolean\n}\n\nfunction FormContent({\n group,\n title,\n setTitle,\n genderFilterAvailable,\n genderFilterEnabled,\n genderValue,\n genderFetching,\n onGenderToggle,\n groupMemberships,\n filteredMemberCount,\n avatarSelection,\n customAvatarsEnabled,\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 displayCount = genderFilterEnabled ? filteredMemberCount : membershipsCount\n const memberHeaderLabel = `${pluralize(displayCount, '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\">\n Title <Text style={styles.required}>*</Text>\n </Heading>\n <AutoFocusAwareTextInput\n placeholder=\"Topic of conversation\"\n value={title}\n onChangeText={setTitle}\n style={styles.titleInput}\n autoFocus={true}\n inputRef={inputRef}\n />\n </Pressable>\n <Divider />\n {customAvatarsEnabled && (\n <>\n <AvatarSelectionRow avatarSelection={avatarSelection} />\n <Divider />\n </>\n )}\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 required: {\n color: colors.statusErrorText,\n },\n memberSection: {\n padding: sectionPadding,\n paddingBottom: 0,\n },\n banner: {\n marginTop: 16,\n },\n })\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"groups_form.js","names":["StackActions","useNavigation","React","useCallback","useMemo","useRef","useState","Platform","Pressable","StyleSheet","View","Banner","ChildNotice","Heading","Text","ActionButton","KeyboardView","AutoFocusAwareTextInput","useApiClient","useCurrentPerson","useSuspenseGet","useTheme","useGroupChatConversationPayload","useGroupMembersForNewConversation","useGroupsConversationCreate","patchConversationAvatar","useConversationValidate","availableFeatures","useFeatures","useMyGender","useUploadClient","pluralize","genderDisplayLabel","Haptic","AvatarSelectionRow","Divider","FormList","GenderFilterToggle","jsx","_jsx","jsxs","_jsxs","Fragment","_Fragment","GroupsForm","t0","$","_c","groupId","chat_group_graph_id","avatarSelection","navigation","apiClient","uploadClient","title","setTitle","genderFilterEnabled","setGenderFilterEnabled","featureEnabled","t1","custom_conversation_avatars","customAvatarsEnabled","t2","conversation_safety_lock","safetyLockEnabled","isFeatureEnabled","genderFilterAvailable","genderId","genderValue","isFetching","genderFetching","t3","t4","Symbol","for","fields","Group","t5","url","data","app","group","activeGenderId","activeGenderValue","t6","enabled","payload","isLoading","isLoadingPayload","t7","warnings","validationPending","t8","id","gender","groupMemberships","t9","name","displayLabel","defaultTitle","shouldAutoPopulateTitle","shouldClearAutoPopulatedTitle","handleGenderToggle","t10","conversationId","dispatch","popTo","conversation_id","notificationSuccess","kind","handleCreateSuccess","t11","onSuccess","mutate","handleSave","isPending","t12","undefined","t13","FormContent","filteredMemberCount","adultMembers","length","t14","fetchNextPage","isFetchingNextPage","memberData","loadingMore","onEndReached","listEmptyText","t15","t16","t17","disabled","onPress","infoText","t18","children","onGenderToggle","styles","useStyles","inputRef","currentPerson","membershipsCount","m","find","myGroupsMembership","isLeader","role","childMembers","hasChildren","displayCount","memberHeaderLabel","showMemberError","isError","current","focus","handleTitleSectionPress","variant","groupName","style","toSection","required","titleInput","placeholder","autoFocus","titleSection","banner","appearance","description","memberSection","formContent","colors","statusErrorText","textColorDefaultPrimary","create","paddingBottom","flex","padding","flexDirection","gap","fontSize","select","ios","android","color","marginTop"],"sources":["../../../../src/screens/conversation_new/components/groups_form.tsx"],"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 { AutoFocusAwareTextInput } from '../../../components/display/text_input'\nimport { useApiClient, useCurrentPerson, useSuspenseGet, useTheme } from '../../../hooks'\nimport { useGroupChatConversationPayload } from '../../../hooks/groups/use_group_chat_conversation_payload'\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 {\n type AvatarUpdatePayload,\n patchConversationAvatar,\n} from '../../../hooks/use_conversation_avatar_update'\nimport { useConversationValidate } from '../../../hooks/use_conversation_validate'\nimport { availableFeatures, useFeatures } from '../../../hooks/use_features'\nimport { useMyGender } from '../../../hooks/use_my_gender'\nimport { useUploadClient } from '../../../hooks/use_upload_client'\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 { AvatarSelectionRow } from './avatar_selection_row'\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 avatarSelection?: AvatarUpdatePayload\n}\n\nexport const GroupsForm = ({ groupId, chat_group_graph_id, avatarSelection }: GroupsFormProps) => {\n const navigation = useNavigation()\n const apiClient = useApiClient()\n const uploadClient = useUploadClient()\n const [title, setTitle] = useState('')\n const [genderFilterEnabled, setGenderFilterEnabled] = useState(false)\n const { featureEnabled } = useFeatures()\n const customAvatarsEnabled = featureEnabled(availableFeatures.custom_conversation_avatars)\n const safetyLockEnabled = featureEnabled(availableFeatures.conversation_safety_lock)\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 activeGenderId = genderFilterEnabled ? genderId : null\n const activeGenderValue = genderFilterEnabled ? genderValue : null\n\n const { payload, isLoading: isLoadingPayload } = useGroupChatConversationPayload({\n groupId,\n enabled: safetyLockEnabled,\n })\n\n const { warnings, validationPending } = useConversationValidate({\n payload,\n isLoadingPayload,\n genderId: activeGenderId,\n enabled: safetyLockEnabled,\n })\n\n const groupMemberships = useGroupMembersForNewConversation({\n id: groupId,\n gender: activeGenderValue,\n })\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 handleCreateSuccess = useCallback(\n (conversationId: number) => {\n navigation.dispatch(\n StackActions.popTo('Conversation', {\n conversation_id: conversationId,\n chat_group_graph_id,\n })\n )\n Haptic.notificationSuccess()\n\n if (avatarSelection && avatarSelection.kind !== 'clear') {\n patchConversationAvatar(apiClient, uploadClient, conversationId, avatarSelection)\n }\n },\n [apiClient, avatarSelection, chat_group_graph_id, navigation, uploadClient]\n )\n\n const { mutate: handleSave, isPending } = useGroupsConversationCreate({\n groupId,\n title,\n genderId: activeGenderId,\n onSuccess: handleCreateSuccess,\n })\n\n return (\n <KeyboardView>\n <FormList\n memberData={groupMemberships.adultMembers}\n loadingMore={groupMemberships.isFetchingNextPage}\n onEndReached={groupMemberships.fetchNextPage}\n listEmptyText={groupMemberships.isLoading ? 'Loading members...' : undefined}\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 filteredMemberCount={groupMemberships.adultMembers.length}\n avatarSelection={avatarSelection}\n customAvatarsEnabled={customAvatarsEnabled}\n />\n }\n />\n <ActionButton\n disabled={!title || isPending || validationPending || warnings.length > 0}\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 warnings={warnings}\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 filteredMemberCount: number\n avatarSelection?: AvatarUpdatePayload\n customAvatarsEnabled: boolean\n}\n\nfunction FormContent({\n group,\n title,\n setTitle,\n genderFilterAvailable,\n genderFilterEnabled,\n genderValue,\n genderFetching,\n onGenderToggle,\n groupMemberships,\n filteredMemberCount,\n avatarSelection,\n customAvatarsEnabled,\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 displayCount = genderFilterEnabled ? filteredMemberCount : membershipsCount\n const memberHeaderLabel = `${pluralize(displayCount, '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\">\n Title <Text style={styles.required}>*</Text>\n </Heading>\n <AutoFocusAwareTextInput\n placeholder=\"Topic of conversation\"\n value={title}\n onChangeText={setTitle}\n style={styles.titleInput}\n autoFocus={true}\n inputRef={inputRef}\n />\n </Pressable>\n <Divider />\n {customAvatarsEnabled && (\n <>\n <AvatarSelectionRow avatarSelection={avatarSelection} />\n <Divider />\n </>\n )}\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 required: {\n color: colors.statusErrorText,\n },\n memberSection: {\n padding: sectionPadding,\n paddingBottom: 0,\n },\n banner: {\n marginTop: 16,\n },\n })\n}\n"],"mappings":";AAAA,SAASA,YAAY,EAAEC,aAAa,QAAQ,0BAA0B;AACtE,OAAOC,KAAK,IAAIC,WAAW,EAAEC,OAAO,EAAEC,MAAM,EAAEC,QAAQ,QAAQ,OAAO;AACrE,SAASC,QAAQ,EAAEC,SAAS,EAAEC,UAAU,EAAaC,IAAI,QAAQ,cAAc;AAC/E,SAASC,MAAM,EAAEC,WAAW,EAAEC,OAAO,EAAEC,IAAI,QAAQ,qBAAqB;AACxE,SAASC,YAAY,QAAQ,2CAA2C;AACxE,SAASC,YAAY,QAAQ,2CAA2C;AACxE,SAASC,uBAAuB,QAAQ,wCAAwC;AAChF,SAASC,YAAY,EAAEC,gBAAgB,EAAEC,cAAc,EAAEC,QAAQ,QAAQ,gBAAgB;AACzF,SAASC,+BAA+B,QAAQ,2DAA2D;AAC3G,SAEEC,iCAAiC,QAC5B,8DAA8D;AACrE,SAASC,2BAA2B,QAAQ,sDAAsD;AAClG,SAEEC,uBAAuB,QAClB,+CAA+C;AACtD,SAASC,uBAAuB,QAAQ,0CAA0C;AAClF,SAASC,iBAAiB,EAAEC,WAAW,QAAQ,6BAA6B;AAC5E,SAASC,WAAW,QAAQ,8BAA8B;AAC1D,SAASC,eAAe,QAAQ,kCAAkC;AAGlE,SAASC,SAAS,QAAQ,gBAAgB;AAC1C,SAASC,kBAAkB,QAAQ,qCAAqC;AACxE,SAASC,MAAM,QAAQ,gCAAgC;AACvD,SAASC,kBAAkB,QAAQ,wBAAwB;AAC3D,SAASC,OAAO,EAAEC,QAAQ,QAAQ,aAAa;AAC/C,SAASC,kBAAkB,QAAQ,wBAAwB;AAAA,SAAAC,GAAA,IAAAC,IAAA,EAAAC,IAAA,IAAAC,KAAA,EAAAC,QAAA,IAAAC,SAAA;AAQ3D,OAAO,MAAMC,UAAU,GAAGC,EAAA;EAAA,MAAAC,CAAA,GAAAC,EAAA;EAAC;IAAAC,OAAA;IAAAC,mBAAA;IAAAC;EAAA,IAAAL,EAAkE;EAC3F,MAAAM,UAAA,GAAmBlD,aAAa,CAAC,CAAC;EAClC,MAAAmD,SAAA,GAAkBlC,YAAY,CAAC,CAAC;EAChC,MAAAmC,YAAA,GAAqBvB,eAAe,CAAC,CAAC;EACtC,OAAAwB,KAAA,EAAAC,QAAA,IAA0BjD,QAAQ,CAAC,EAAE,CAAC;EACtC,OAAAkD,mBAAA,EAAAC,sBAAA,IAAsDnD,QAAQ,CAAC,KAAK,CAAC;EACrE;IAAAoD;EAAA,IAA2B9B,WAAW,CAAC,CAAC;EAAA,IAAA+B,EAAA;EAAA,IAAAb,CAAA,QAAAY,cAAA;IACXC,EAAA,GAAAD,cAAc,CAAC/B,iBAAiB,CAAAiC,2BAA4B,CAAC;IAAAd,CAAA,MAAAY,cAAA;IAAAZ,CAAA,MAAAa,EAAA;EAAA;IAAAA,EAAA,GAAAb,CAAA;EAAA;EAA1F,MAAAe,oBAAA,GAA6BF,EAA6D;EAAA,IAAAG,EAAA;EAAA,IAAAhB,CAAA,QAAAY,cAAA;IAChEI,EAAA,GAAAJ,cAAc,CAAC/B,iBAAiB,CAAAoC,wBAAyB,CAAC;IAAAjB,CAAA,MAAAY,cAAA;IAAAZ,CAAA,MAAAgB,EAAA;EAAA;IAAAA,EAAA,GAAAhB,CAAA;EAAA;EAApF,MAAAkB,iBAAA,GAA0BF,EAA0D;EACpF;IAAAG,gBAAA,EAAAC,qBAAA;IAAAC,QAAA;IAAAC,WAAA;IAAAC,UAAA,EAAAC;EAAA,IAKIzC,WAAW,CAAC,CAAC;EAEV,MAAA0C,EAAA,iBAAcvB,OAAO,EAAE;EAAA,IAAAwB,EAAA;EAAA,IAAA1B,CAAA,QAAA2B,MAAA,CAAAC,GAAA;IACtBF,EAAA;MAAAG,MAAA,EACI;QAAAC,KAAA,EACC;MACT;IACF,CAAC;IAAA9B,CAAA,MAAA0B,EAAA;EAAA;IAAAA,EAAA,GAAA1B,CAAA;EAAA;EAAA,IAAA+B,EAAA;EAAA,IAAA/B,CAAA,QAAAyB,EAAA;IANyDM,EAAA;MAAAC,GAAA,EACrDP,EAAuB;MAAAQ,IAAA,EACtBP,EAIL;MAAAQ,GAAA,EACI;IACP,CAAC;IAAAlC,CAAA,MAAAyB,EAAA;IAAAzB,CAAA,MAAA+B,EAAA;EAAA;IAAAA,EAAA,GAAA/B,CAAA;EAAA;EARD;IAAAiC,IAAA,EAAAE;EAAA,IAAwB7D,cAAc,CAAsByD,EAQ3D,CAAC;EAEF,MAAAK,cAAA,GAAuB1B,mBAAmB,GAAnBW,QAAqC,GAArC,IAAqC;EAC5D,MAAAgB,iBAAA,GAA0B3B,mBAAmB,GAAnBY,WAAwC,GAAxC,IAAwC;EAAA,IAAAgB,EAAA;EAAA,IAAAtC,CAAA,QAAAE,OAAA,IAAAF,CAAA,QAAAkB,iBAAA;IAEeoB,EAAA;MAAApC,OAAA;MAAAqC,OAAA,EAEtErB;IACX,CAAC;IAAAlB,CAAA,MAAAE,OAAA;IAAAF,CAAA,MAAAkB,iBAAA;IAAAlB,CAAA,MAAAsC,EAAA;EAAA;IAAAA,EAAA,GAAAtC,CAAA;EAAA;EAHD;IAAAwC,OAAA;IAAAC,SAAA,EAAAC;EAAA,IAAiDlE,+BAA+B,CAAC8D,EAGhF,CAAC;EAAA,IAAAK,EAAA;EAAA,IAAA3C,CAAA,SAAAoC,cAAA,IAAApC,CAAA,SAAA0C,gBAAA,IAAA1C,CAAA,SAAAwC,OAAA,IAAAxC,CAAA,SAAAkB,iBAAA;IAE8DyB,EAAA;MAAAH,OAAA;MAAAE,gBAAA;MAAArB,QAAA,EAGpDe,cAAc;MAAAG,OAAA,EACfrB;IACX,CAAC;IAAAlB,CAAA,OAAAoC,cAAA;IAAApC,CAAA,OAAA0C,gBAAA;IAAA1C,CAAA,OAAAwC,OAAA;IAAAxC,CAAA,OAAAkB,iBAAA;IAAAlB,CAAA,OAAA2C,EAAA;EAAA;IAAAA,EAAA,GAAA3C,CAAA;EAAA;EALD;IAAA4C,QAAA;IAAAC;EAAA,IAAwCjE,uBAAuB,CAAC+D,EAK/D,CAAC;EAAA,IAAAG,EAAA;EAAA,IAAA9C,CAAA,SAAAqC,iBAAA,IAAArC,CAAA,SAAAE,OAAA;IAEyD4C,EAAA;MAAAC,EAAA,EACrD7C,OAAO;MAAA8C,MAAA,EACHX;IACV,CAAC;IAAArC,CAAA,OAAAqC,iBAAA;IAAArC,CAAA,OAAAE,OAAA;IAAAF,CAAA,OAAA8C,EAAA;EAAA;IAAAA,EAAA,GAAA9C,CAAA;EAAA;EAHD,MAAAiD,gBAAA,GAAyBxE,iCAAiC,CAACqE,EAG1D,CAAC;EAAA,IAAAI,EAAA;EAAA,IAAAlD,CAAA,SAAAsB,WAAA,IAAAtB,CAAA,SAAAmC,KAAA,CAAAgB,IAAA,IAAAnD,CAAA,SAAAQ,KAAA;IAEyB0C,EAAA,GAAAX,OAAA;MACzB,MAAAa,YAAA,GAAqB9B,WAAW,GAAGpC,kBAAkB,CAACoC,WAAgB,CAAC,GAAlD,EAAkD;MACvE,MAAA+B,YAAA,GAAqB,GAAGlB,KAAK,CAAAgB,IAAK,KAAKC,YAAY,GAAG;MACtD,MAAAE,uBAAA,GAAgCf,OAAsB,IAAtBjB,WAAsC,IAAZd,KAAK,KAAK,EAAE;MACtE,MAAA+C,6BAAA,GAAsC,CAAChB,OAAiC,IAAtB/B,KAAK,KAAK6C,YAAY;MAExE1C,sBAAsB,CAAC4B,OAAO,CAAC;MAE/B,IAAIe,uBAAuB;QACzB7C,QAAQ,CAAC4C,YAAY,CAAC;MAAA;QACjB,IAAIE,6BAA6B;UACtC9C,QAAQ,CAAC,EAAE,CAAC;QAAA;MACb;IAAA,CACF;IAAAT,CAAA,OAAAsB,WAAA;IAAAtB,CAAA,OAAAmC,KAAA,CAAAgB,IAAA;IAAAnD,CAAA,OAAAQ,KAAA;IAAAR,CAAA,OAAAkD,EAAA;EAAA;IAAAA,EAAA,GAAAlD,CAAA;EAAA;EAbD,MAAAwD,kBAAA,GAA2BN,EAa1B;EAAA,IAAAO,GAAA;EAAA,IAAAzD,CAAA,SAAAM,SAAA,IAAAN,CAAA,SAAAI,eAAA,IAAAJ,CAAA,SAAAG,mBAAA,IAAAH,CAAA,SAAAK,UAAA,IAAAL,CAAA,SAAAO,YAAA;IAGCkD,GAAA,GAAAC,cAAA;MACErD,UAAU,CAAAsD,QAAS,CACjBzG,YAAY,CAAA0G,KAAM,CAAC,cAAc,EAAE;QAAAC,eAAA,EAChBH,cAAc;QAAAvD;MAEjC,CAAC,CACH,CAAC;MACDhB,MAAM,CAAA2E,mBAAoB,CAAC,CAAC;MAE5B,IAAI1D,eAAmD,IAAhCA,eAAe,CAAA2D,IAAK,KAAK,OAAO;QACrDpF,uBAAuB,CAAC2B,SAAS,EAAEC,YAAY,EAAEmD,cAAc,EAAEtD,eAAe,CAAC;MAAA;IAClF,CACF;IAAAJ,CAAA,OAAAM,SAAA;IAAAN,CAAA,OAAAI,eAAA;IAAAJ,CAAA,OAAAG,mBAAA;IAAAH,CAAA,OAAAK,UAAA;IAAAL,CAAA,OAAAO,YAAA;IAAAP,CAAA,OAAAyD,GAAA;EAAA;IAAAA,GAAA,GAAAzD,CAAA;EAAA;EAbH,MAAAgE,mBAAA,GAA4BP,GAe3B;EAAA,IAAAQ,GAAA;EAAA,IAAAjE,CAAA,SAAAoC,cAAA,IAAApC,CAAA,SAAAE,OAAA,IAAAF,CAAA,SAAAgE,mBAAA,IAAAhE,CAAA,SAAAQ,KAAA;IAEqEyD,GAAA;MAAA/D,OAAA;MAAAM,KAAA;MAAAa,QAAA,EAG1De,cAAc;MAAA8B,SAAA,EACbF;IACb,CAAC;IAAAhE,CAAA,OAAAoC,cAAA;IAAApC,CAAA,OAAAE,OAAA;IAAAF,CAAA,OAAAgE,mBAAA;IAAAhE,CAAA,OAAAQ,KAAA;IAAAR,CAAA,OAAAiE,GAAA;EAAA;IAAAA,GAAA,GAAAjE,CAAA;EAAA;EALD;IAAAmE,MAAA,EAAAC,UAAA;IAAAC;EAAA,IAA0C3F,2BAA2B,CAACuF,GAKrE,CAAC;EAQmB,MAAAK,GAAA,GAAArB,gBAAgB,CAAAR,SAA6C,GAA7D,oBAA6D,GAA7D8B,SAA6D;EAAA,IAAAC,GAAA;EAAA,IAAAxE,CAAA,SAAAI,eAAA,IAAAJ,CAAA,SAAAe,oBAAA,IAAAf,CAAA,SAAAwB,cAAA,IAAAxB,CAAA,SAAAoB,qBAAA,IAAApB,CAAA,SAAAU,mBAAA,IAAAV,CAAA,SAAAsB,WAAA,IAAAtB,CAAA,SAAAmC,KAAA,IAAAnC,CAAA,SAAAiD,gBAAA,IAAAjD,CAAA,SAAAwD,kBAAA,IAAAxD,CAAA,SAAAQ,KAAA;IAE1EgE,GAAA,gBAAA/E,IAAA,CAACgF,WAAW;MACHtC,KAAK,EAALA,KAAK;MACL3B,KAAK,EAALA,KAAK;MACFC,QAAQ,EAARA,QAAQ;MACKW,qBAAqB,EAArBA,qBAAqB;MACvBV,mBAAmB,EAAnBA,mBAAmB;MAC3BY,WAAW,EAAXA,WAAW;MACRE,cAAc,EAAdA,cAAc;MACdgC,cAAkB,EAAlBA,kBAAkB;MAChBP,gBAAgB,EAAhBA,gBAAgB;MACbyB,mBAAoC,EAApCzB,gBAAgB,CAAA0B,YAAa,CAAAC,MAAO;MACxCxE,eAAe,EAAfA,eAAe;MACVW,oBAAoB,EAApBA;IAAoB,CAC3C,CAAC;IAAAf,CAAA,OAAAI,eAAA;IAAAJ,CAAA,OAAAe,oBAAA;IAAAf,CAAA,OAAAwB,cAAA;IAAAxB,CAAA,OAAAoB,qBAAA;IAAApB,CAAA,OAAAU,mBAAA;IAAAV,CAAA,OAAAsB,WAAA;IAAAtB,CAAA,OAAAmC,KAAA;IAAAnC,CAAA,OAAAiD,gBAAA;IAAAjD,CAAA,OAAAwD,kBAAA;IAAAxD,CAAA,OAAAQ,KAAA;IAAAR,CAAA,OAAAwE,GAAA;EAAA;IAAAA,GAAA,GAAAxE,CAAA;EAAA;EAAA,IAAA6E,GAAA;EAAA,IAAA7E,CAAA,SAAAiD,gBAAA,CAAA0B,YAAA,IAAA3E,CAAA,SAAAiD,gBAAA,CAAA6B,aAAA,IAAA9E,CAAA,SAAAiD,gBAAA,CAAA8B,kBAAA,IAAA/E,CAAA,SAAAsE,GAAA,IAAAtE,CAAA,SAAAwE,GAAA;IAnBNK,GAAA,gBAAApF,IAAA,CAACH,QAAQ;MACK0F,UAA6B,EAA7B/B,gBAAgB,CAAA0B,YAAa;MAC5BM,WAAmC,EAAnChC,gBAAgB,CAAA8B,kBAAmB;MAClCG,YAA8B,EAA9BjC,gBAAgB,CAAA6B,aAAc;MAC7BK,aAA6D,EAA7Db,GAA6D;MAE1EG,WAaE,EAbFD;IAaE,CAEL,CAAC;IAAAxE,CAAA,OAAAiD,gBAAA,CAAA0B,YAAA;IAAA3E,CAAA,OAAAiD,gBAAA,CAAA6B,aAAA;IAAA9E,CAAA,OAAAiD,gBAAA,CAAA8B,kBAAA;IAAA/E,CAAA,OAAAsE,GAAA;IAAAtE,CAAA,OAAAwE,GAAA;IAAAxE,CAAA,OAAA6E,GAAA;EAAA;IAAAA,GAAA,GAAA7E,CAAA;EAAA;EAEU,MAAAoF,GAAA,IAAC5E,KAAkB,IAAnB6D,SAAwC,IAAxCxB,iBAA+D,IAAnBD,QAAQ,CAAAgC,MAAO,GAAG,CAAC;EAAA,IAAAS,GAAA;EAAA,IAAArF,CAAA,SAAAoE,UAAA;IAEhEiB,GAAA,GAAAA,CAAA,KAAMjB,UAAU,CAAC,CAAC;IAAApE,CAAA,OAAAoE,UAAA;IAAApE,CAAA,OAAAqF,GAAA;EAAA;IAAAA,GAAA,GAAArF,CAAA;EAAA;EAAA,IAAAsF,GAAA;EAAA,IAAAtF,CAAA,SAAAoF,GAAA,IAAApF,CAAA,SAAAqF,GAAA,IAAArF,CAAA,SAAA4C,QAAA;IAH7B0C,GAAA,gBAAA7F,IAAA,CAACxB,YAAY;MACDsH,QAA+D,EAA/DH,GAA+D;MACnE5E,KAAoB,EAApB,oBAAoB;MACjBgF,OAAkB,EAAlBH,GAAkB;MAClBI,QAAiG,EAAjG,iGAAiG;MAChG7C,QAAQ,EAARA;IAAQ,CACnB,CAAC;IAAA5C,CAAA,OAAAoF,GAAA;IAAApF,CAAA,OAAAqF,GAAA;IAAArF,CAAA,OAAA4C,QAAA;IAAA5C,CAAA,OAAAsF,GAAA;EAAA;IAAAA,GAAA,GAAAtF,CAAA;EAAA;EAAA,IAAA0F,GAAA;EAAA,IAAA1F,CAAA,SAAA6E,GAAA,IAAA7E,CAAA,SAAAsF,GAAA;IA7BJI,GAAA,gBAAA/F,KAAA,CAACzB,YAAY;MAAAyH,QAAA,GACXd,GAqBE,EACFS,GAME;IAAA,CACU,CAAC;IAAAtF,CAAA,OAAA6E,GAAA;IAAA7E,CAAA,OAAAsF,GAAA;IAAAtF,CAAA,OAAA0F,GAAA;EAAA;IAAAA,GAAA,GAAA1F,CAAA;EAAA;EAAA,OA9Bf0F,GA8Be;AAAA,CAElB;AAiBD,SAAAjB,YAAA1E,EAAA;EAAA,MAAAC,CAAA,GAAAC,EAAA;EAAqB;IAAAkC,KAAA;IAAA3B,KAAA;IAAAC,QAAA;IAAAW,qBAAA;IAAAV,mBAAA;IAAAY,WAAA;IAAAE,cAAA;IAAAoE,cAAA;IAAA3C,gBAAA;IAAAyB,mBAAA;IAAAtE,eAAA;IAAAW;EAAA,IAAAhB,EAaF;EACjB,MAAA8F,MAAA,GAAeC,SAAS,CAAC,CAAC;EAC1B,MAAAC,QAAA,GAAiBxI,MAAM,CAAY,IAAI,CAAC;EACxC,MAAAyI,aAAA,GAAsB3H,gBAAgB,CAAC,CAAC;EACxC;IAAA8E,IAAA;IAAA8C;EAAA,IAAmC9D,KAAK;EAAA,IAAAtB,EAAA;EAAA,IAAAb,CAAA,QAAAgG,aAAA,CAAAjD,EAAA,IAAA/C,CAAA,QAAAiD,gBAAA,CAAAhB,IAAA;IAAA,IAAAjB,EAAA;IAAA,IAAAhB,CAAA,QAAAgG,aAAA,CAAAjD,EAAA;MAGL/B,EAAA,GAAAkF,CAAA,IAAKA,CAAC,CAAAnD,EAAG,KAAKiD,aAAa,CAAAjD,EAAG;MAAA/C,CAAA,MAAAgG,aAAA,CAAAjD,EAAA;MAAA/C,CAAA,MAAAgB,EAAA;IAAA;MAAAA,EAAA,GAAAhB,CAAA;IAAA;IAAzDa,EAAA,GAAAoC,gBAAgB,CAAAhB,IAAK,CAAAkE,IAAK,CAACnF,EAA8B,CAAC;IAAAhB,CAAA,MAAAgG,aAAA,CAAAjD,EAAA;IAAA/C,CAAA,MAAAiD,gBAAA,CAAAhB,IAAA;IAAAjC,CAAA,MAAAa,EAAA;EAAA;IAAAA,EAAA,GAAAb,CAAA;EAAA;EADlE,MAAAoG,kBAAA,GACQvF,EAA0D;EAGlE,MAAAwF,QAAA,GAAiBD,kBAAkB,EAAAE,IAAM,KAAK,QAAQ;EAEtD,MAAAC,YAAA,GAAqBtD,gBAAgB,CAAAsD,YAAa;EAClD,MAAAC,WAAA,GAAoBD,YAAY,CAAA3B,MAAO,GAAG,CAAC;EAC3C,MAAA6B,YAAA,GAAqB/F,mBAAmB,GAAnBgE,mBAA4D,GAA5DuB,gBAA4D;EAAA,IAAAjF,EAAA;EAAA,IAAAhB,CAAA,QAAAyG,YAAA;IACpDzF,EAAA,GAAA/B,SAAS,CAACwH,YAAY,EAAE,QAAQ,CAAC;IAAAzG,CAAA,MAAAyG,YAAA;IAAAzG,CAAA,MAAAgB,EAAA;EAAA;IAAAA,EAAA,GAAAhB,CAAA;EAAA;EAA9D,MAAA0G,iBAAA,GAA0B,GAAG1F,EAAiC,WAAW;EAEzE,MAAA2F,eAAA,GAAwB1D,gBAAgB,CAAA2D,OAAQ;EAAA,IAAAnF,EAAA;EAAA,IAAAzB,CAAA,QAAA2B,MAAA,CAAAC,GAAA;IAEJH,EAAA,GAAAA,CAAA;MAC1CsE,QAAQ,CAAAc,OAAe,EAAAC,KAAE,CAAD,CAAC;IAAA,CAC1B;IAAA9G,CAAA,MAAAyB,EAAA;EAAA;IAAAA,EAAA,GAAAzB,CAAA;EAAA;EAFD,MAAA+G,uBAAA,GAAgCtF,EAE1B;EAAA,IAAAC,EAAA;EAAA,IAAA1B,CAAA,QAAA2B,MAAA,CAAAC,GAAA;IAKAF,EAAA,gBAAAjC,IAAA,CAAC1B,OAAO;MAASiJ,OAAI,EAAJ,IAAI;MAAArB,QAAA,EAAC;IAAG,CAAS,CAAC;IAAA3F,CAAA,MAAA0B,EAAA;EAAA;IAAAA,EAAA,GAAA1B,CAAA;EAAA;EAAA,IAAA+B,EAAA;EAAA,IAAA/B,CAAA,QAAAmD,IAAA,IAAAnD,CAAA,SAAA6F,MAAA,CAAAoB,SAAA;IACnClF,EAAA,gBAAAtC,IAAA,CAACzB,IAAI;MAAQkJ,KAAgB,EAAhBrB,MAAM,CAAAoB,SAAU;MAAAtB,QAAA,EAAGxC;IAAI,CAAO,CAAC;IAAAnD,CAAA,MAAAmD,IAAA;IAAAnD,CAAA,OAAA6F,MAAA,CAAAoB,SAAA;IAAAjH,CAAA,OAAA+B,EAAA;EAAA;IAAAA,EAAA,GAAA/B,CAAA;EAAA;EAAA,IAAAsC,EAAA;EAAA,IAAAtC,CAAA,SAAA6F,MAAA,CAAAsB,SAAA,IAAAnH,CAAA,SAAA+B,EAAA;IAF9CO,EAAA,gBAAA3C,KAAA,CAAC/B,IAAI;MAAQsJ,KAAgB,EAAhBrB,MAAM,CAAAsB,SAAU;MAAAxB,QAAA,GAC3BjE,EAAmC,EACnCK,EAA4C;IAAA,CACxC,CAAC;IAAA/B,CAAA,OAAA6F,MAAA,CAAAsB,SAAA;IAAAnH,CAAA,OAAA+B,EAAA;IAAA/B,CAAA,OAAAsC,EAAA;EAAA;IAAAA,EAAA,GAAAtC,CAAA;EAAA;EAAA,IAAA2C,EAAA;EAAA,IAAA3C,CAAA,SAAA2B,MAAA,CAAAC,GAAA;IACPe,EAAA,gBAAAlD,IAAA,CAACJ,OAAO,IAAE,CAAC;IAAAW,CAAA,OAAA2C,EAAA;EAAA;IAAAA,EAAA,GAAA3C,CAAA;EAAA;EAAA,IAAA8C,EAAA;EAAA,IAAA9C,CAAA,SAAA6F,MAAA,CAAAuB,QAAA;IAETtE,EAAA,gBAAAnD,KAAA,CAAC5B,OAAO;MAASiJ,OAAI,EAAJ,IAAI;MAAArB,QAAA,GAAC,QACd,eAAAlG,IAAA,CAACzB,IAAI;QAAQkJ,KAAe,EAAfrB,MAAM,CAAAuB,QAAS;QAAAzB,QAAA,EAAE;MAAC,CAAM,CAAC;IAAA,CACrC,CAAC;IAAA3F,CAAA,OAAA6F,MAAA,CAAAuB,QAAA;IAAApH,CAAA,OAAA8C,EAAA;EAAA;IAAAA,EAAA,GAAA9C,CAAA;EAAA;EAAA,IAAAkD,EAAA;EAAA,IAAAlD,CAAA,SAAAS,QAAA,IAAAT,CAAA,SAAA6F,MAAA,CAAAwB,UAAA,IAAArH,CAAA,SAAAQ,KAAA;IACV0C,EAAA,gBAAAzD,IAAA,CAACtB,uBAAuB;MACVmJ,WAAuB,EAAvB,uBAAuB;MAC5B9G,KAAK,EAALA,KAAK;MACEC,YAAQ,EAARA,QAAQ;MACfyG,KAAiB,EAAjBrB,MAAM,CAAAwB,UAAW;MACbE,SAAI,EAAJ,IAAI;MACLxB,QAAQ,EAARA;IAAQ,CACnB,CAAC;IAAA/F,CAAA,OAAAS,QAAA;IAAAT,CAAA,OAAA6F,MAAA,CAAAwB,UAAA;IAAArH,CAAA,OAAAQ,KAAA;IAAAR,CAAA,OAAAkD,EAAA;EAAA;IAAAA,EAAA,GAAAlD,CAAA;EAAA;EAAA,IAAAyD,GAAA;EAAA,IAAAzD,CAAA,SAAA6F,MAAA,CAAA2B,YAAA,IAAAxH,CAAA,SAAA8C,EAAA,IAAA9C,CAAA,SAAAkD,EAAA;IAXJO,GAAA,gBAAA9D,KAAA,CAACjC,SAAS;MAAQwJ,KAAmB,EAAnBrB,MAAM,CAAA2B,YAAa;MAAWT,OAAuB,EAAvBA,uBAAuB;MAAApB,QAAA,GACrE7C,EAEU,EACVI,EAOE;IAAA,CACO,CAAC;IAAAlD,CAAA,OAAA6F,MAAA,CAAA2B,YAAA;IAAAxH,CAAA,OAAA8C,EAAA;IAAA9C,CAAA,OAAAkD,EAAA;IAAAlD,CAAA,OAAAyD,GAAA;EAAA;IAAAA,GAAA,GAAAzD,CAAA;EAAA;EAAA,IAAAiE,GAAA;EAAA,IAAAjE,CAAA,SAAA2B,MAAA,CAAAC,GAAA;IACZqC,GAAA,gBAAAxE,IAAA,CAACJ,OAAO,IAAE,CAAC;IAAAW,CAAA,OAAAiE,GAAA;EAAA;IAAAA,GAAA,GAAAjE,CAAA;EAAA;EAAA,IAAAsE,GAAA;EAAA,IAAAtE,CAAA,SAAAI,eAAA,IAAAJ,CAAA,SAAAe,oBAAA;IACVuD,GAAA,GAAAvD,oBAKA,iBALApB,KAAA,CAAAE,SAAA;MAAA8F,QAAA,gBAEGlG,IAAA,CAACL,kBAAkB;QAAkBgB,eAAe,EAAfA;MAAe,CAAG,CAAC,eACxDX,IAAA,CAACJ,OAAO,IAAE,CAAC;IAAA,CAEf,CAAC;IAAAW,CAAA,OAAAI,eAAA;IAAAJ,CAAA,OAAAe,oBAAA;IAAAf,CAAA,OAAAsE,GAAA;EAAA;IAAAA,GAAA,GAAAtE,CAAA;EAAA;EAAA,IAAAwE,GAAA;EAAA,IAAAxE,CAAA,SAAAwB,cAAA,IAAAxB,CAAA,SAAAoB,qBAAA,IAAApB,CAAA,SAAAU,mBAAA,IAAAV,CAAA,SAAAsB,WAAA,IAAAtB,CAAA,SAAA4F,cAAA;IACApB,GAAA,GAAApD,qBAUA,iBAVAzB,KAAA,CAAAE,SAAA;MAAA8F,QAAA,gBAEGlG,IAAA,CAACF,kBAAkB;QACJ+B,WAAW,EAAXA,WAAW;QACZE,UAAc,EAAdA,cAAc;QACjBd,OAAmB,EAAnBA,mBAAmB;QAClBkF,QAAc,EAAdA;MAAc,CACzB,CAAC,eACFnG,IAAA,CAACJ,OAAO,IAAE,CAAC;IAAA,CAEf,CAAC;IAAAW,CAAA,OAAAwB,cAAA;IAAAxB,CAAA,OAAAoB,qBAAA;IAAApB,CAAA,OAAAU,mBAAA;IAAAV,CAAA,OAAAsB,WAAA;IAAAtB,CAAA,OAAA4F,cAAA;IAAA5F,CAAA,OAAAwE,GAAA;EAAA;IAAAA,GAAA,GAAAxE,CAAA;EAAA;EAAA,IAAA6E,GAAA;EAAA,IAAA7E,CAAA,SAAA0G,iBAAA;IAEC7B,GAAA,gBAAApF,IAAA,CAAC1B,OAAO;MAASiJ,OAAI,EAAJ,IAAI;MAAArB,QAAA,EAAEe;IAAiB,CAAU,CAAC;IAAA1G,CAAA,OAAA0G,iBAAA;IAAA1G,CAAA,OAAA6E,GAAA;EAAA;IAAAA,GAAA,GAAA7E,CAAA;EAAA;EAAA,IAAAoF,GAAA;EAAA,IAAApF,CAAA,SAAAuG,YAAA,IAAAvG,CAAA,SAAAwG,WAAA,IAAAxG,CAAA,SAAAqG,QAAA,IAAArG,CAAA,SAAA6F,MAAA,CAAA4B,MAAA;IAClDrC,GAAA,GAAAoB,WAEA,iBAFA/G,IAAA,CACE3B,WAAW;MAAeyI,YAAY,EAAZA,YAAY;MAAeF,WAAQ,EAARA,QAAQ;MAASa,KAAa,EAAbrB,MAAM,CAAA4B;IAAO,CACtF,CAAC;IAAAzH,CAAA,OAAAuG,YAAA;IAAAvG,CAAA,OAAAwG,WAAA;IAAAxG,CAAA,OAAAqG,QAAA;IAAArG,CAAA,OAAA6F,MAAA,CAAA4B,MAAA;IAAAzH,CAAA,OAAAoF,GAAA;EAAA;IAAAA,GAAA,GAAApF,CAAA;EAAA;EAAA,IAAAqF,GAAA;EAAA,IAAArF,CAAA,SAAA2G,eAAA,IAAA3G,CAAA,SAAA6F,MAAA,CAAA4B,MAAA;IACApC,GAAA,GAAAsB,eAMA,iBANAlH,IAAA,CACE5B,MAAM;MACM6J,UAAO,EAAP,OAAO;MACNC,WAAyE,EAAzE,yEAAyE;MAC9ET,KAAa,EAAbrB,MAAM,CAAA4B;IAAO,CAExB,CAAC;IAAAzH,CAAA,OAAA2G,eAAA;IAAA3G,CAAA,OAAA6F,MAAA,CAAA4B,MAAA;IAAAzH,CAAA,OAAAqF,GAAA;EAAA;IAAAA,GAAA,GAAArF,CAAA;EAAA;EAAA,IAAAsF,GAAA;EAAA,IAAAtF,CAAA,SAAA6F,MAAA,CAAA+B,aAAA,IAAA5H,CAAA,SAAA6E,GAAA,IAAA7E,CAAA,SAAAoF,GAAA,IAAApF,CAAA,SAAAqF,GAAA;IAXHC,GAAA,gBAAA3F,KAAA,CAAC/B,IAAI;MAAQsJ,KAAoB,EAApBrB,MAAM,CAAA+B,aAAc;MAAAjC,QAAA,GAC/Bd,GAAmD,EAClDO,GAEA,EACAC,GAMA;IAAA,CACG,CAAC;IAAArF,CAAA,OAAA6F,MAAA,CAAA+B,aAAA;IAAA5H,CAAA,OAAA6E,GAAA;IAAA7E,CAAA,OAAAoF,GAAA;IAAApF,CAAA,OAAAqF,GAAA;IAAArF,CAAA,OAAAsF,GAAA;EAAA;IAAAA,GAAA,GAAAtF,CAAA;EAAA;EAAA,IAAA0F,GAAA;EAAA,IAAA1F,CAAA,SAAA6F,MAAA,CAAAgC,WAAA,IAAA7H,CAAA,SAAAyD,GAAA,IAAAzD,CAAA,SAAAsE,GAAA,IAAAtE,CAAA,SAAAwE,GAAA,IAAAxE,CAAA,SAAAsF,GAAA,IAAAtF,CAAA,SAAAsC,EAAA;IAjDToD,GAAA,gBAAA/F,KAAA,CAAC/B,IAAI;MAAQsJ,KAAkB,EAAlBrB,MAAM,CAAAgC,WAAY;MAAAlC,QAAA,GAC7BrD,EAGO,EACPK,EAAW,EACXc,GAYY,EACZQ,GAAW,EACVK,GAKA,EACAE,GAUA,EACDc,GAYO;IAAA,CACH,CAAC;IAAAtF,CAAA,OAAA6F,MAAA,CAAAgC,WAAA;IAAA7H,CAAA,OAAAyD,GAAA;IAAAzD,CAAA,OAAAsE,GAAA;IAAAtE,CAAA,OAAAwE,GAAA;IAAAxE,CAAA,OAAAsF,GAAA;IAAAtF,CAAA,OAAAsC,EAAA;IAAAtC,CAAA,OAAA0F,GAAA;EAAA;IAAAA,GAAA,GAAA1F,CAAA;EAAA;EAAA,OAlDP0F,GAkDO;AAAA;AAIX,MAAMI,SAAS,GAAGA,CAAA;EAAA,MAAA9F,CAAA,GAAAC,EAAA;EAChB;IAAA6H;EAAA,IAAmBvJ,QAAQ,CAAC,CAAC;EAAA,IAAAwB,EAAA;EAAA,IAAAC,CAAA,QAAA8H,MAAA,CAAAC,eAAA,IAAA/H,CAAA,QAAA8H,MAAA,CAAAE,uBAAA;IAItBjI,EAAA,GAAApC,UAAU,CAAAsK,MAAO,CAAC;MAAAJ,WAAA,EACV;QAAAK,aAAA,EAJQ,EAAE;QAAAC,IAAA,EAMf;MACR,CAAC;MAAAhB,SAAA,EACU;QAAAiB,OAAA,EARU,EAAE;QAAAC,aAAA,EAUN,KAAK;QAAAC,GAAA,EACf;MACP,CAAC;MAAArB,SAAA,EACU;QAAAsB,QAAA,EACC,EAAE;QAAAJ,IAAA,EACN;MACR,CAAC;MAAAX,YAAA,EACa;QAAAY,OAAA,EAjBO,EAAE;QAAAF,aAAA,EAmBNzK,QAAQ,CAAA+K,MAAO,CAAC;UAAAC,GAAA,EAnBZ,EAAE;UAAAC,OAAA,EAqBV;QACX,CAAC,CAAC;QAAAJ,GAAA,EACG7K,QAAQ,CAAA+K,MAAO,CAAC;UAAAC,GAAA,EACd,CAAC;UAAAC,OAAA,EACG;QACX,CAAC;MACH,CAAC;MAAArB,UAAA,EACW;QAAAkB,QAAA,EACA,EAAE;QAAAI,KAAA,EACLb,MAAM,CAAAE;MACf,CAAC;MAAAZ,QAAA,EACS;QAAAuB,KAAA,EACDb,MAAM,CAAAC;MACf,CAAC;MAAAH,aAAA,EACc;QAAAQ,OAAA,EAnCM,EAAE;QAAAF,aAAA,EAqCN;MACjB,CAAC;MAAAT,MAAA,EACO;QAAAmB,SAAA,EACK;MACb;IACF,CAAC,CAAC;IAAA5I,CAAA,MAAA8H,MAAA,CAAAC,eAAA;IAAA/H,CAAA,MAAA8H,MAAA,CAAAE,uBAAA;IAAAhI,CAAA,MAAAD,EAAA;EAAA;IAAAA,EAAA,GAAAC,CAAA;EAAA;EAAA,OAvCKD,EAuCL;AAAA,CACH","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"conversation_screen.d.ts","sourceRoot":"","sources":["../../src/screens/conversation_screen.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAe,gBAAgB,EAAqB,MAAM,4BAA4B,CAAA;AAC7F,OAAO,EAGL,iBAAiB,EAIlB,MAAM,0BAA0B,CAAA;AAoCjC,OAAO,EAAE,yBAAyB,EAAE,MAAM,uCAAuC,CAAA;AAIjF,MAAM,MAAM,sBAAsB,GAAG;IACnC,eAAe,EAAE,MAAM,CAAA;IACvB,aAAa,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IAC7B,kBAAkB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IAClC,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,2CAkBpE;AAuND,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,GAAI,8DAOrC,4BAA4B,4CAqC9B,CAAA"}
1
+ {"version":3,"file":"conversation_screen.d.ts","sourceRoot":"","sources":["../../src/screens/conversation_screen.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAe,gBAAgB,EAAqB,MAAM,4BAA4B,CAAA;AAC7F,OAAO,EAGL,iBAAiB,EAIlB,MAAM,0BAA0B,CAAA;AAqCjC,OAAO,EAAE,yBAAyB,EAAE,MAAM,uCAAuC,CAAA;AAIjF,MAAM,MAAM,sBAAsB,GAAG;IACnC,eAAe,EAAE,MAAM,CAAA;IACvB,aAAa,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IAC7B,kBAAkB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IAClC,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,2CAkBpE;AAwND,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,GAAI,8DAOrC,4BAA4B,4CAqC9B,CAAA"}
@@ -23,6 +23,7 @@ import { useConversationMessagesJoltEvents } from '../hooks/use_conversation_mes
23
23
  import { useMarkLatestMessageRead } from '../hooks/use_mark_latest_message_read';
24
24
  import { analyticsEvents, normalizeAnalyticsMetadata, usePublishProductAnalyticsEvent } from '../hooks/use_product_analytics';
25
25
  import { useRestAwayFromDismissEdge } from '../hooks/use_rest_away_from_dismiss_edge';
26
+ import { useUnarchiveConversationAction } from '../hooks/use_unarchive_conversation_action';
26
27
  import { useVideoModerationJoltEvents } from '../hooks/use_video_moderation_jolt_events';
27
28
  import { Log } from '../utils';
28
29
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
@@ -296,7 +297,7 @@ function ConversationScreenContent(t0) {
296
297
  });
297
298
  } else {
298
299
  navigation.setParams({
299
- title,
300
+ title: title ?? undefined,
300
301
  badge: badges?.[0],
301
302
  deleted: conversation?.deleted,
302
303
  muted
@@ -566,21 +567,23 @@ function ConversationBottomBar(t0) {
566
567
  onBeforeSubmit
567
568
  } = t0;
568
569
  const messageLink = useMessageAvailableMembersAction(conversation);
570
+ const unarchiveAction = useUnarchiveConversationAction(conversation);
569
571
  if (conversation.disabled) {
570
572
  const t1 = conversation.disabledMessage ?? null;
571
- let t2;
572
- if ($[0] !== messageLink || $[1] !== t1) {
573
- t2 = /*#__PURE__*/_jsx(ConversationDisabledBanner, {
573
+ const t2 = unarchiveAction ?? messageLink;
574
+ let t3;
575
+ if ($[0] !== t1 || $[1] !== t2) {
576
+ t3 = /*#__PURE__*/_jsx(ConversationDisabledBanner, {
574
577
  message: t1,
575
- messageLink: messageLink
578
+ action: t2
576
579
  });
577
- $[0] = messageLink;
578
- $[1] = t1;
579
- $[2] = t2;
580
+ $[0] = t1;
581
+ $[1] = t2;
582
+ $[2] = t3;
580
583
  } else {
581
- t2 = $[2];
584
+ t3 = $[2];
582
585
  }
583
- return t2;
586
+ return t3;
584
587
  }
585
588
  if (!canReply) {
586
589
  let t1;