@planningcenter/chat-react-native 3.42.2-qa-staging.1 → 3.42.2-qa-821.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/build/components/conversation/attachments/attachment_card.d.ts +3 -3
- package/build/components/conversation/attachments/attachment_card.d.ts.map +1 -1
- package/build/components/conversation/attachments/attachment_card.js +3 -7
- package/build/components/conversation/attachments/attachment_card.js.map +1 -1
- package/build/components/conversation/attachments/attachment_deleting_overlay.d.ts +1 -2
- package/build/components/conversation/attachments/attachment_deleting_overlay.d.ts.map +1 -1
- package/build/components/conversation/attachments/attachment_deleting_overlay.js +12 -7
- package/build/components/conversation/attachments/attachment_deleting_overlay.js.map +1 -1
- package/build/components/conversation/attachments/audio_attachment.d.ts +1 -2
- package/build/components/conversation/attachments/audio_attachment.d.ts.map +1 -1
- package/build/components/conversation/attachments/audio_attachment.js +6 -23
- package/build/components/conversation/attachments/audio_attachment.js.map +1 -1
- package/build/components/conversation/attachments/expanded_link.d.ts +1 -2
- package/build/components/conversation/attachments/expanded_link.d.ts.map +1 -1
- package/build/components/conversation/attachments/expanded_link.js +2 -8
- package/build/components/conversation/attachments/expanded_link.js.map +1 -1
- package/build/components/conversation/attachments/generic_file_attachment.d.ts +1 -2
- package/build/components/conversation/attachments/generic_file_attachment.d.ts.map +1 -1
- package/build/components/conversation/attachments/generic_file_attachment.js +2 -12
- package/build/components/conversation/attachments/generic_file_attachment.js.map +1 -1
- package/build/components/conversation/attachments/giphy_attachment.d.ts +1 -2
- package/build/components/conversation/attachments/giphy_attachment.d.ts.map +1 -1
- package/build/components/conversation/attachments/giphy_attachment.js +2 -7
- package/build/components/conversation/attachments/giphy_attachment.js.map +1 -1
- package/build/components/conversation/attachments/image_attachment.d.ts +1 -2
- package/build/components/conversation/attachments/image_attachment.d.ts.map +1 -1
- package/build/components/conversation/attachments/image_attachment.js +16 -53
- package/build/components/conversation/attachments/image_attachment.js.map +1 -1
- package/build/components/conversation/attachments/video_attachment.d.ts +1 -2
- package/build/components/conversation/attachments/video_attachment.d.ts.map +1 -1
- package/build/components/conversation/attachments/video_attachment.js +3 -13
- package/build/components/conversation/attachments/video_attachment.js.map +1 -1
- package/build/components/conversation/conversation_start_banner.d.ts +1 -2
- package/build/components/conversation/conversation_start_banner.d.ts.map +1 -1
- package/build/components/conversation/conversation_start_banner.js +2 -14
- package/build/components/conversation/conversation_start_banner.js.map +1 -1
- package/build/components/conversation/empty_conversation_blank_state.d.ts +1 -1
- package/build/components/conversation/empty_conversation_blank_state.d.ts.map +1 -1
- package/build/components/conversation/empty_conversation_blank_state.js +2 -9
- package/build/components/conversation/empty_conversation_blank_state.js.map +1 -1
- package/build/components/conversation/jump_to_bottom_button.d.ts +1 -1
- package/build/components/conversation/jump_to_bottom_button.d.ts.map +1 -1
- package/build/components/conversation/jump_to_bottom_button.js +2 -10
- package/build/components/conversation/jump_to_bottom_button.js.map +1 -1
- package/build/components/conversation/message.d.ts +1 -2
- package/build/components/conversation/message.d.ts.map +1 -1
- package/build/components/conversation/message.js +2 -53
- package/build/components/conversation/message.js.map +1 -1
- package/build/components/conversation/message_attachments.d.ts +1 -2
- package/build/components/conversation/message_attachments.d.ts.map +1 -1
- package/build/components/conversation/message_attachments.js +17 -21
- package/build/components/conversation/message_attachments.js.map +1 -1
- package/build/components/conversation/message_form/message_form_attachment_file.d.ts +1 -2
- package/build/components/conversation/message_form/message_form_attachment_file.d.ts.map +1 -1
- package/build/components/conversation/message_form/message_form_attachment_file.js +2 -2
- package/build/components/conversation/message_form/message_form_attachment_file.js.map +1 -1
- package/build/components/conversation/message_form/message_form_attachment_image.d.ts +1 -2
- package/build/components/conversation/message_form/message_form_attachment_image.d.ts.map +1 -1
- package/build/components/conversation/message_form/message_form_attachment_image.js +2 -2
- package/build/components/conversation/message_form/message_form_attachment_image.js.map +1 -1
- package/build/components/conversation/message_form/message_form_attachment_video.d.ts +1 -2
- package/build/components/conversation/message_form/message_form_attachment_video.d.ts.map +1 -1
- package/build/components/conversation/message_form/message_form_attachment_video.js +2 -2
- package/build/components/conversation/message_form/message_form_attachment_video.js.map +1 -1
- package/build/components/conversation/message_form.d.ts +5 -6
- package/build/components/conversation/message_form.d.ts.map +1 -1
- package/build/components/conversation/message_form.js +20 -82
- package/build/components/conversation/message_form.js.map +1 -1
- package/build/components/conversation/message_markdown.d.ts +1 -2
- package/build/components/conversation/message_markdown.d.ts.map +1 -1
- package/build/components/conversation/message_markdown.js +8 -16
- package/build/components/conversation/message_markdown.js.map +1 -1
- package/build/components/conversation/message_reaction.d.ts +1 -2
- package/build/components/conversation/message_reaction.d.ts.map +1 -1
- package/build/components/conversation/message_reaction.js +3 -5
- package/build/components/conversation/message_reaction.js.map +1 -1
- package/build/components/conversation/message_read_receipts.d.ts +1 -2
- package/build/components/conversation/message_read_receipts.d.ts.map +1 -1
- package/build/components/conversation/message_read_receipts.js +3 -13
- package/build/components/conversation/message_read_receipts.js.map +1 -1
- package/build/components/conversation/messages_disabled_banners.d.ts +3 -3
- package/build/components/conversation/messages_disabled_banners.d.ts.map +1 -1
- package/build/components/conversation/messages_disabled_banners.js +5 -8
- package/build/components/conversation/messages_disabled_banners.js.map +1 -1
- package/build/components/conversation/reply_connectors.d.ts +2 -2
- package/build/components/conversation/reply_connectors.d.ts.map +1 -1
- package/build/components/conversation/reply_connectors.js +18 -50
- package/build/components/conversation/reply_connectors.js.map +1 -1
- package/build/components/conversation/reply_shadow_message.d.ts +1 -2
- package/build/components/conversation/reply_shadow_message.d.ts.map +1 -1
- package/build/components/conversation/reply_shadow_message.js +16 -46
- package/build/components/conversation/reply_shadow_message.js.map +1 -1
- package/build/components/conversation/system_message.d.ts +1 -2
- package/build/components/conversation/system_message.d.ts.map +1 -1
- package/build/components/conversation/system_message.js +3 -12
- package/build/components/conversation/system_message.js.map +1 -1
- package/build/components/conversation/typing_indicator.d.ts +1 -2
- package/build/components/conversation/typing_indicator.d.ts.map +1 -1
- package/build/components/conversation/typing_indicator.js +3 -13
- package/build/components/conversation/typing_indicator.js.map +1 -1
- package/build/components/conversations/conversation_actions.d.ts +2 -2
- package/build/components/conversations/conversation_actions.d.ts.map +1 -1
- package/build/components/conversations/conversation_actions.js +4 -10
- package/build/components/conversations/conversation_actions.js.map +1 -1
- package/build/components/conversations/conversation_preview.d.ts +2 -3
- package/build/components/conversations/conversation_preview.d.ts.map +1 -1
- package/build/components/conversations/conversation_preview.js +12 -76
- package/build/components/conversations/conversation_preview.js.map +1 -1
- package/build/components/conversations/conversations.d.ts +1 -1
- package/build/components/conversations/conversations.d.ts.map +1 -1
- package/build/components/conversations/conversations.js +16 -17
- package/build/components/conversations/conversations.js.map +1 -1
- package/build/components/conversations/conversations_blank_state.d.ts +1 -2
- package/build/components/conversations/conversations_blank_state.d.ts.map +1 -1
- package/build/components/conversations/conversations_blank_state.js +2 -12
- package/build/components/conversations/conversations_blank_state.js.map +1 -1
- package/build/components/conversations/mute_indicator.d.ts +1 -2
- package/build/components/conversations/mute_indicator.d.ts.map +1 -1
- package/build/components/conversations/mute_indicator.js +2 -2
- package/build/components/conversations/mute_indicator.js.map +1 -1
- package/build/components/conversations/swipeable_toggle_button.d.ts +1 -2
- package/build/components/conversations/swipeable_toggle_button.d.ts.map +1 -1
- package/build/components/conversations/swipeable_toggle_button.js +3 -10
- package/build/components/conversations/swipeable_toggle_button.js.map +1 -1
- package/build/components/conversations/unread_count_badge.d.ts +2 -4
- package/build/components/conversations/unread_count_badge.d.ts.map +1 -1
- package/build/components/conversations/unread_count_badge.js +7 -12
- package/build/components/conversations/unread_count_badge.js.map +1 -1
- package/build/components/display/action_button.d.ts +1 -1
- package/build/components/display/action_button.d.ts.map +1 -1
- package/build/components/display/action_button.js +3 -13
- package/build/components/display/action_button.js.map +1 -1
- package/build/components/display/adult_requirement_notice.d.ts +1 -2
- package/build/components/display/adult_requirement_notice.d.ts.map +1 -1
- package/build/components/display/adult_requirement_notice.js +2 -4
- package/build/components/display/adult_requirement_notice.js.map +1 -1
- package/build/components/display/avatar.d.ts +1 -2
- package/build/components/display/avatar.d.ts.map +1 -1
- package/build/components/display/avatar.js +2 -7
- package/build/components/display/avatar.js.map +1 -1
- package/build/components/display/avatar_group.d.ts +1 -2
- package/build/components/display/avatar_group.d.ts.map +1 -1
- package/build/components/display/avatar_group.js +2 -9
- package/build/components/display/avatar_group.js.map +1 -1
- package/build/components/display/badge.d.ts +1 -2
- package/build/components/display/badge.d.ts.map +1 -1
- package/build/components/display/badge.js +6 -37
- package/build/components/display/badge.js.map +1 -1
- package/build/components/display/banner.d.ts +3 -3
- package/build/components/display/banner.d.ts.map +1 -1
- package/build/components/display/banner.js +4 -11
- package/build/components/display/banner.js.map +1 -1
- package/build/components/display/banner_collapsible.d.ts +2 -2
- package/build/components/display/banner_collapsible.d.ts.map +1 -1
- package/build/components/display/banner_collapsible.js +2 -10
- package/build/components/display/banner_collapsible.js.map +1 -1
- package/build/components/display/button.d.ts +1 -2
- package/build/components/display/button.d.ts.map +1 -1
- package/build/components/display/button.js +3 -14
- package/build/components/display/button.js.map +1 -1
- package/build/components/display/child_notice.d.ts +1 -2
- package/build/components/display/child_notice.d.ts.map +1 -1
- package/build/components/display/child_notice.js +3 -15
- package/build/components/display/child_notice.js.map +1 -1
- package/build/components/display/conversation_avatar.d.ts +1 -2
- package/build/components/display/conversation_avatar.d.ts.map +1 -1
- package/build/components/display/conversation_avatar.js +5 -9
- package/build/components/display/conversation_avatar.js.map +1 -1
- package/build/components/display/emoji_avatar.d.ts +1 -2
- package/build/components/display/emoji_avatar.d.ts.map +1 -1
- package/build/components/display/emoji_avatar.js +2 -12
- package/build/components/display/emoji_avatar.js.map +1 -1
- package/build/components/display/file_attachment_preview.d.ts +1 -1
- package/build/components/display/file_attachment_preview.d.ts.map +1 -1
- package/build/components/display/file_attachment_preview.js +3 -17
- package/build/components/display/file_attachment_preview.js.map +1 -1
- package/build/components/display/heading.d.ts +1 -2
- package/build/components/display/heading.d.ts.map +1 -1
- package/build/components/display/heading.js +2 -4
- package/build/components/display/heading.js.map +1 -1
- package/build/components/display/icon.d.ts +1 -2
- package/build/components/display/icon.d.ts.map +1 -1
- package/build/components/display/icon.js +4 -4
- package/build/components/display/icon.js.map +1 -1
- package/build/components/display/icon_avatar.d.ts +1 -2
- package/build/components/display/icon_avatar.d.ts.map +1 -1
- package/build/components/display/icon_avatar.js +2 -12
- package/build/components/display/icon_avatar.js.map +1 -1
- package/build/components/display/icon_button.d.ts +1 -2
- package/build/components/display/icon_button.d.ts.map +1 -1
- package/build/components/display/icon_button.js +3 -5
- package/build/components/display/icon_button.js.map +1 -1
- package/build/components/display/image.d.ts +1 -2
- package/build/components/display/image.d.ts.map +1 -1
- package/build/components/display/image.js +3 -7
- package/build/components/display/image.js.map +1 -1
- package/build/components/display/image_attachment_preview.d.ts +1 -1
- package/build/components/display/image_attachment_preview.d.ts.map +1 -1
- package/build/components/display/image_attachment_preview.js +2 -7
- package/build/components/display/image_attachment_preview.js.map +1 -1
- package/build/components/display/keyboard_view.d.ts +1 -2
- package/build/components/display/keyboard_view.d.ts.map +1 -1
- package/build/components/display/keyboard_view.js +4 -9
- package/build/components/display/keyboard_view.js.map +1 -1
- package/build/components/display/person.d.ts +1 -2
- package/build/components/display/person.d.ts.map +1 -1
- package/build/components/display/person.js +2 -12
- package/build/components/display/person.js.map +1 -1
- package/build/components/display/platform_modal_header_buttons.d.ts +3 -3
- package/build/components/display/platform_modal_header_buttons.d.ts.map +1 -1
- package/build/components/display/platform_modal_header_buttons.js +5 -10
- package/build/components/display/platform_modal_header_buttons.js.map +1 -1
- package/build/components/display/pressable_row.d.ts +1 -1
- package/build/components/display/pressable_row.d.ts.map +1 -1
- package/build/components/display/pressable_row.js +2 -7
- package/build/components/display/pressable_row.js.map +1 -1
- package/build/components/display/spinner.d.ts +1 -2
- package/build/components/display/spinner.d.ts.map +1 -1
- package/build/components/display/spinner.js +3 -9
- package/build/components/display/spinner.js.map +1 -1
- package/build/components/display/switch.d.ts +1 -2
- package/build/components/display/switch.d.ts.map +1 -1
- package/build/components/display/switch.js +2 -2
- package/build/components/display/switch.js.map +1 -1
- package/build/components/display/tabs.d.ts +1 -1
- package/build/components/display/tabs.d.ts.map +1 -1
- package/build/components/display/tabs.js +21 -31
- package/build/components/display/tabs.js.map +1 -1
- package/build/components/display/text.d.ts +1 -2
- package/build/components/display/text.d.ts.map +1 -1
- package/build/components/display/text.js +2 -4
- package/build/components/display/text.js.map +1 -1
- package/build/components/display/text_button.d.ts +1 -2
- package/build/components/display/text_button.d.ts.map +1 -1
- package/build/components/display/text_button.js +3 -8
- package/build/components/display/text_button.js.map +1 -1
- package/build/components/display/text_inline_button.d.ts +1 -2
- package/build/components/display/text_inline_button.d.ts.map +1 -1
- package/build/components/display/text_inline_button.js +4 -5
- package/build/components/display/text_inline_button.js.map +1 -1
- package/build/components/display/text_input.d.ts +1 -1
- package/build/components/display/text_input.d.ts.map +1 -1
- package/build/components/display/text_input.js +2 -1
- package/build/components/display/text_input.js.map +1 -1
- package/build/components/display/toggle_button.d.ts +1 -2
- package/build/components/display/toggle_button.d.ts.map +1 -1
- package/build/components/display/toggle_button.js +3 -9
- package/build/components/display/toggle_button.js.map +1 -1
- package/build/components/display/video_attachment_preview.d.ts +1 -1
- package/build/components/display/video_attachment_preview.d.ts.map +1 -1
- package/build/components/display/video_attachment_preview.js +3 -20
- package/build/components/display/video_attachment_preview.js.map +1 -1
- package/build/components/group_conversation_list.d.ts +1 -1
- package/build/components/group_conversation_list.d.ts.map +1 -1
- package/build/components/group_conversation_list.js +4 -14
- package/build/components/group_conversation_list.js.map +1 -1
- package/build/components/page/component_error_boundary.d.ts +2 -2
- package/build/components/page/component_error_boundary.d.ts.map +1 -1
- package/build/components/page/component_error_boundary.js +2 -4
- package/build/components/page/component_error_boundary.js.map +1 -1
- package/build/components/page/loading.d.ts +1 -2
- package/build/components/page/loading.d.ts.map +1 -1
- package/build/components/page/loading.js +2 -4
- package/build/components/page/loading.js.map +1 -1
- package/build/components/page/page_error_boundary.d.ts +2 -2
- package/build/components/page/page_error_boundary.d.ts.map +1 -1
- package/build/components/page/page_error_boundary.js +11 -32
- package/build/components/page/page_error_boundary.js.map +1 -1
- package/build/components/primitive/avatar_primitive.js +14 -41
- package/build/components/primitive/avatar_primitive.js.map +1 -1
- package/build/components/primitive/banner_primitive.js +10 -18
- package/build/components/primitive/banner_primitive.js.map +1 -1
- package/build/components/primitive/blank_state_primitive.js +8 -12
- package/build/components/primitive/blank_state_primitive.js.map +1 -1
- package/build/components/primitive/form_sheet.d.ts +1 -1
- package/build/components/primitive/form_sheet.d.ts.map +1 -1
- package/build/components/primitive/form_sheet.js +9 -22
- package/build/components/primitive/form_sheet.js.map +1 -1
- package/build/components/safe_area_modal.d.ts +1 -1
- package/build/components/safe_area_modal.d.ts.map +1 -1
- package/build/components/safe_area_modal.js +2 -3
- package/build/components/safe_area_modal.js.map +1 -1
- package/build/contexts/api_provider.d.ts +1 -2
- package/build/contexts/api_provider.d.ts.map +1 -1
- package/build/contexts/api_provider.js +3 -5
- package/build/contexts/api_provider.js.map +1 -1
- package/build/contexts/chat_context.d.ts +1 -1
- package/build/contexts/chat_context.d.ts.map +1 -1
- package/build/contexts/chat_context.js +2 -1
- package/build/contexts/chat_context.js.map +1 -1
- package/build/contexts/conversation_context.d.ts +2 -2
- package/build/contexts/conversation_context.d.ts.map +1 -1
- package/build/contexts/conversation_context.js +3 -2
- package/build/contexts/conversation_context.js.map +1 -1
- package/build/contexts/conversations_context.d.ts +2 -2
- package/build/contexts/conversations_context.d.ts.map +1 -1
- package/build/contexts/conversations_context.js +3 -2
- package/build/contexts/conversations_context.js.map +1 -1
- package/build/contexts/session_context.d.ts +1 -1
- package/build/contexts/session_context.d.ts.map +1 -1
- package/build/contexts/session_context.js +3 -2
- package/build/contexts/session_context.js.map +1 -1
- package/build/hooks/use_animated_message_background_color.d.ts +2 -2
- package/build/hooks/use_conversation.d.ts +1 -1
- package/build/hooks/use_conversation.d.ts.map +1 -1
- package/build/hooks/use_conversation.js +0 -2
- package/build/hooks/use_conversation.js.map +1 -1
- package/build/hooks/use_conversation_jolt_events.d.ts.map +1 -1
- package/build/hooks/use_conversation_jolt_events.js +19 -4
- package/build/hooks/use_conversation_jolt_events.js.map +1 -1
- package/build/hooks/use_conversation_membership.d.ts +1 -1
- package/build/hooks/use_conversation_membership.d.ts.map +1 -1
- package/build/hooks/use_conversation_messages.d.ts +1 -0
- package/build/hooks/use_conversation_messages.d.ts.map +1 -1
- package/build/hooks/use_conversation_messages.js +2 -2
- package/build/hooks/use_conversation_messages.js.map +1 -1
- package/build/hooks/use_conversations_actions.d.ts +36 -36
- package/build/hooks/use_conversations_actions.d.ts.map +1 -1
- package/build/hooks/use_conversations_actions.js +1 -3
- package/build/hooks/use_conversations_actions.js.map +1 -1
- package/build/hooks/use_mark_latest_message_read.d.ts.map +1 -1
- package/build/hooks/use_mark_latest_message_read.js +4 -3
- package/build/hooks/use_mark_latest_message_read.js.map +1 -1
- package/build/hooks/use_person_settings.d.ts +1 -1
- package/build/index.d.ts +2 -1
- package/build/index.d.ts.map +1 -1
- package/build/index.js.map +1 -1
- package/build/navigation/chat_access_gate.d.ts +2 -2
- package/build/navigation/chat_access_gate.d.ts.map +1 -1
- package/build/navigation/chat_access_gate.js +6 -5
- package/build/navigation/chat_access_gate.js.map +1 -1
- package/build/navigation/index.d.ts +35 -36
- package/build/navigation/index.d.ts.map +1 -1
- package/build/navigation/index.js +19 -21
- package/build/navigation/index.js.map +1 -1
- package/build/navigation/screenLayout.d.ts +2 -2
- package/build/navigation/screenLayout.d.ts.map +1 -1
- package/build/navigation/screenLayout.js +3 -9
- package/build/navigation/screenLayout.js.map +1 -1
- package/build/polyfills/events/EventTarget.d.ts +1 -1
- package/build/polyfills/events/EventTarget.d.ts.map +1 -1
- package/build/polyfills/events/EventTarget.js.map +1 -1
- package/build/screens/age_check/age_check_required_screen.d.ts +1 -2
- package/build/screens/age_check/age_check_required_screen.d.ts.map +1 -1
- package/build/screens/age_check/age_check_required_screen.js +3 -46
- package/build/screens/age_check/age_check_required_screen.js.map +1 -1
- package/build/screens/age_check/age_check_underage_screen.d.ts +1 -2
- package/build/screens/age_check/age_check_underage_screen.d.ts.map +1 -1
- package/build/screens/age_check/age_check_underage_screen.js +2 -25
- package/build/screens/age_check/age_check_underage_screen.js.map +1 -1
- package/build/screens/age_check/components/age_check_select_birthdate_modal.d.ts +1 -2
- package/build/screens/age_check/components/age_check_select_birthdate_modal.d.ts.map +1 -1
- package/build/screens/age_check/components/age_check_select_birthdate_modal.js +6 -25
- package/build/screens/age_check/components/age_check_select_birthdate_modal.js.map +1 -1
- package/build/screens/attachment_actions/attachment_actions_screen.d.ts +1 -2
- package/build/screens/attachment_actions/attachment_actions_screen.d.ts.map +1 -1
- package/build/screens/attachment_actions/attachment_actions_screen.js +3 -5
- package/build/screens/attachment_actions/attachment_actions_screen.js.map +1 -1
- package/build/screens/avatar_picker/avatar_picker_screen.d.ts +1 -2
- package/build/screens/avatar_picker/avatar_picker_screen.d.ts.map +1 -1
- package/build/screens/avatar_picker/avatar_picker_screen.js +9 -36
- package/build/screens/avatar_picker/avatar_picker_screen.js.map +1 -1
- package/build/screens/avatar_picker/avatar_preview.d.ts +1 -1
- package/build/screens/avatar_picker/avatar_preview.d.ts.map +1 -1
- package/build/screens/avatar_picker/avatar_preview.js +5 -9
- package/build/screens/avatar_picker/avatar_preview.js.map +1 -1
- package/build/screens/avatar_picker/color_picker.d.ts +1 -2
- package/build/screens/avatar_picker/color_picker.d.ts.map +1 -1
- package/build/screens/avatar_picker/color_picker.js +4 -5
- package/build/screens/avatar_picker/color_picker.js.map +1 -1
- package/build/screens/avatar_picker/emoji_tab.d.ts +1 -2
- package/build/screens/avatar_picker/emoji_tab.d.ts.map +1 -1
- package/build/screens/avatar_picker/emoji_tab.js +12 -13
- package/build/screens/avatar_picker/emoji_tab.js.map +1 -1
- package/build/screens/avatar_picker/icon_grid.d.ts +1 -2
- package/build/screens/avatar_picker/icon_grid.d.ts.map +1 -1
- package/build/screens/avatar_picker/icon_grid.js +4 -5
- package/build/screens/avatar_picker/icon_grid.js.map +1 -1
- package/build/screens/avatar_picker/upload_tab.d.ts +1 -2
- package/build/screens/avatar_picker/upload_tab.d.ts.map +1 -1
- package/build/screens/avatar_picker/upload_tab.js +3 -4
- package/build/screens/avatar_picker/upload_tab.js.map +1 -1
- package/build/screens/bug_report_screen.d.ts +1 -2
- package/build/screens/bug_report_screen.d.ts.map +1 -1
- package/build/screens/bug_report_screen.js +11 -117
- package/build/screens/bug_report_screen.js.map +1 -1
- package/build/screens/conversation/message_read_receipts_screen.d.ts +1 -2
- package/build/screens/conversation/message_read_receipts_screen.d.ts.map +1 -1
- package/build/screens/conversation/message_read_receipts_screen.js +4 -20
- package/build/screens/conversation/message_read_receipts_screen.js.map +1 -1
- package/build/screens/conversation_details_screen.d.ts +1 -2
- package/build/screens/conversation_details_screen.d.ts.map +1 -1
- package/build/screens/conversation_details_screen.js +43 -106
- package/build/screens/conversation_details_screen.js.map +1 -1
- package/build/screens/conversation_filter_recipients/components/checkbox_row.d.ts +1 -1
- package/build/screens/conversation_filter_recipients/components/checkbox_row.d.ts.map +1 -1
- package/build/screens/conversation_filter_recipients/components/checkbox_row.js +3 -9
- package/build/screens/conversation_filter_recipients/components/checkbox_row.js.map +1 -1
- package/build/screens/conversation_filter_recipients/components/header_row.d.ts +1 -1
- package/build/screens/conversation_filter_recipients/components/header_row.d.ts.map +1 -1
- package/build/screens/conversation_filter_recipients/components/header_row.js +2 -12
- package/build/screens/conversation_filter_recipients/components/header_row.js.map +1 -1
- package/build/screens/conversation_filter_recipients/conversation_filter_recipients_screen.d.ts +1 -2
- package/build/screens/conversation_filter_recipients/conversation_filter_recipients_screen.d.ts.map +1 -1
- package/build/screens/conversation_filter_recipients/conversation_filter_recipients_screen.js +20 -44
- package/build/screens/conversation_filter_recipients/conversation_filter_recipients_screen.js.map +1 -1
- package/build/screens/conversation_filters/components/conversation_filters.d.ts +1 -2
- package/build/screens/conversation_filters/components/conversation_filters.d.ts.map +1 -1
- package/build/screens/conversation_filters/components/conversation_filters.js +10 -11
- package/build/screens/conversation_filters/components/conversation_filters.js.map +1 -1
- package/build/screens/conversation_filters/components/rows.d.ts +6 -6
- package/build/screens/conversation_filters/components/rows.d.ts.map +1 -1
- package/build/screens/conversation_filters/components/rows.js +7 -34
- package/build/screens/conversation_filters/components/rows.js.map +1 -1
- package/build/screens/conversation_filters/context/conversation_filter_context.d.ts +1 -1
- package/build/screens/conversation_filters/context/conversation_filter_context.d.ts.map +1 -1
- package/build/screens/conversation_filters/context/conversation_filter_context.js +2 -1
- package/build/screens/conversation_filters/context/conversation_filter_context.js.map +1 -1
- package/build/screens/conversation_filters/group_filters.d.ts +1 -2
- package/build/screens/conversation_filters/group_filters.d.ts.map +1 -1
- package/build/screens/conversation_filters/group_filters.js +2 -2
- package/build/screens/conversation_filters/group_filters.js.map +1 -1
- package/build/screens/conversation_filters/team_filters.d.ts +1 -2
- package/build/screens/conversation_filters/team_filters.d.ts.map +1 -1
- package/build/screens/conversation_filters/team_filters.js +2 -2
- package/build/screens/conversation_filters/team_filters.js.map +1 -1
- package/build/screens/conversation_filters_screen.d.ts +1 -2
- package/build/screens/conversation_filters_screen.d.ts.map +1 -1
- package/build/screens/conversation_filters_screen.js +4 -16
- package/build/screens/conversation_filters_screen.js.map +1 -1
- package/build/screens/conversation_new/components/avatar_selection_row.d.ts +2 -3
- package/build/screens/conversation_new/components/avatar_selection_row.d.ts.map +1 -1
- package/build/screens/conversation_new/components/avatar_selection_row.js +6 -16
- package/build/screens/conversation_new/components/avatar_selection_row.js.map +1 -1
- package/build/screens/conversation_new/components/filter_by_plan.d.ts +3 -4
- package/build/screens/conversation_new/components/filter_by_plan.d.ts.map +1 -1
- package/build/screens/conversation_new/components/filter_by_plan.js +22 -46
- package/build/screens/conversation_new/components/filter_by_plan.js.map +1 -1
- package/build/screens/conversation_new/components/form_list.d.ts +2 -3
- package/build/screens/conversation_new/components/form_list.d.ts.map +1 -1
- package/build/screens/conversation_new/components/form_list.js +4 -6
- package/build/screens/conversation_new/components/form_list.js.map +1 -1
- package/build/screens/conversation_new/components/gender_filter_toggle.d.ts +1 -2
- package/build/screens/conversation_new/components/gender_filter_toggle.d.ts.map +1 -1
- package/build/screens/conversation_new/components/gender_filter_toggle.js +4 -20
- package/build/screens/conversation_new/components/gender_filter_toggle.js.map +1 -1
- package/build/screens/conversation_new/components/groups_form.d.ts +1 -2
- package/build/screens/conversation_new/components/groups_form.d.ts.map +1 -1
- package/build/screens/conversation_new/components/groups_form.js +4 -30
- package/build/screens/conversation_new/components/groups_form.js.map +1 -1
- package/build/screens/conversation_new/components/services_form.d.ts +1 -2
- package/build/screens/conversation_new/components/services_form.d.ts.map +1 -1
- package/build/screens/conversation_new/components/services_form.js +27 -61
- package/build/screens/conversation_new/components/services_form.js.map +1 -1
- package/build/screens/conversation_new/components/source_app_error_card.d.ts +1 -1
- package/build/screens/conversation_new/components/source_app_error_card.d.ts.map +1 -1
- package/build/screens/conversation_new/components/source_app_error_card.js +2 -3
- package/build/screens/conversation_new/components/source_app_error_card.js.map +1 -1
- package/build/screens/conversation_new/conversation_new_screen.d.ts +1 -2
- package/build/screens/conversation_new/conversation_new_screen.d.ts.map +1 -1
- package/build/screens/conversation_new/conversation_new_screen.js +4 -4
- package/build/screens/conversation_new/conversation_new_screen.js.map +1 -1
- package/build/screens/conversation_notification_level_select_screen.d.ts +1 -2
- package/build/screens/conversation_notification_level_select_screen.d.ts.map +1 -1
- package/build/screens/conversation_notification_level_select_screen.js +4 -6
- package/build/screens/conversation_notification_level_select_screen.js.map +1 -1
- package/build/screens/conversation_screen.d.ts +2 -3
- package/build/screens/conversation_screen.d.ts.map +1 -1
- package/build/screens/conversation_screen.js +25 -66
- package/build/screens/conversation_screen.js.map +1 -1
- package/build/screens/conversation_select_recipients/components/groups_recipient_row.d.ts +1 -1
- package/build/screens/conversation_select_recipients/components/groups_recipient_row.d.ts.map +1 -1
- package/build/screens/conversation_select_recipients/components/groups_recipient_row.js +2 -1
- package/build/screens/conversation_select_recipients/components/groups_recipient_row.js.map +1 -1
- package/build/screens/conversation_select_recipients/components/recipient_link_row.d.ts +1 -2
- package/build/screens/conversation_select_recipients/components/recipient_link_row.d.ts.map +1 -1
- package/build/screens/conversation_select_recipients/components/recipient_link_row.js +2 -15
- package/build/screens/conversation_select_recipients/components/recipient_link_row.js.map +1 -1
- package/build/screens/conversation_select_recipients/components/restricted_group_row.d.ts +1 -2
- package/build/screens/conversation_select_recipients/components/restricted_group_row.d.ts.map +1 -1
- package/build/screens/conversation_select_recipients/components/restricted_group_row.js +2 -14
- package/build/screens/conversation_select_recipients/components/restricted_group_row.js.map +1 -1
- package/build/screens/conversation_select_recipients/components/team_recipient_row.d.ts +1 -1
- package/build/screens/conversation_select_recipients/components/team_recipient_row.d.ts.map +1 -1
- package/build/screens/conversation_select_recipients/components/team_recipient_row.js +2 -1
- package/build/screens/conversation_select_recipients/components/team_recipient_row.js.map +1 -1
- package/build/screens/conversation_select_recipients/components/view_more_link_row.d.ts +1 -1
- package/build/screens/conversation_select_recipients/components/view_more_link_row.d.ts.map +1 -1
- package/build/screens/conversation_select_recipients/components/view_more_link_row.js +2 -5
- package/build/screens/conversation_select_recipients/components/view_more_link_row.js.map +1 -1
- package/build/screens/conversation_select_recipients/conversation_new_entry_screen.d.ts +1 -2
- package/build/screens/conversation_select_recipients/conversation_new_entry_screen.d.ts.map +1 -1
- package/build/screens/conversation_select_recipients/conversation_new_entry_screen.js +4 -11
- package/build/screens/conversation_select_recipients/conversation_new_entry_screen.js.map +1 -1
- package/build/screens/conversation_select_recipients/conversation_select_direct_message_recipients_screen.d.ts +1 -1
- package/build/screens/conversation_select_recipients/conversation_select_direct_message_recipients_screen.d.ts.map +1 -1
- package/build/screens/conversation_select_recipients/conversation_select_direct_message_recipients_screen.js +11 -83
- package/build/screens/conversation_select_recipients/conversation_select_direct_message_recipients_screen.js.map +1 -1
- package/build/screens/conversation_select_recipients/conversation_select_group_recipients_screen.d.ts +1 -2
- package/build/screens/conversation_select_recipients/conversation_select_group_recipients_screen.d.ts.map +1 -1
- package/build/screens/conversation_select_recipients/conversation_select_group_recipients_screen.js +7 -14
- package/build/screens/conversation_select_recipients/conversation_select_group_recipients_screen.js.map +1 -1
- package/build/screens/conversation_select_recipients/conversation_select_teams_i_lead_recipients_screen.d.ts +1 -2
- package/build/screens/conversation_select_recipients/conversation_select_teams_i_lead_recipients_screen.d.ts.map +1 -1
- package/build/screens/conversation_select_recipients/conversation_select_teams_i_lead_recipients_screen.js +15 -18
- package/build/screens/conversation_select_recipients/conversation_select_teams_i_lead_recipients_screen.js.map +1 -1
- package/build/screens/conversation_select_type_screen.d.ts +1 -2
- package/build/screens/conversation_select_type_screen.d.ts.map +1 -1
- package/build/screens/conversation_select_type_screen.js +3 -10
- package/build/screens/conversation_select_type_screen.js.map +1 -1
- package/build/screens/conversations/components/chat_group_badge.d.ts +1 -2
- package/build/screens/conversations/components/chat_group_badge.d.ts.map +1 -1
- package/build/screens/conversations/components/chat_group_badge.js +3 -4
- package/build/screens/conversations/components/chat_group_badge.js.map +1 -1
- package/build/screens/conversations/components/list_header_action_button.d.ts +1 -2
- package/build/screens/conversations/components/list_header_action_button.d.ts.map +1 -1
- package/build/screens/conversations/components/list_header_action_button.js +3 -5
- package/build/screens/conversations/components/list_header_action_button.js.map +1 -1
- package/build/screens/conversations/components/list_header_component.d.ts +1 -2
- package/build/screens/conversations/components/list_header_component.d.ts.map +1 -1
- package/build/screens/conversations/components/list_header_component.js +19 -42
- package/build/screens/conversations/components/list_header_component.js.map +1 -1
- package/build/screens/conversations/conversations_screen.d.ts +1 -2
- package/build/screens/conversations/conversations_screen.d.ts.map +1 -1
- package/build/screens/conversations/conversations_screen.js +2 -6
- package/build/screens/conversations/conversations_screen.js.map +1 -1
- package/build/screens/design_system_screen.d.ts +1 -2
- package/build/screens/design_system_screen.d.ts.map +1 -1
- package/build/screens/design_system_screen.js +35 -558
- package/build/screens/design_system_screen.js.map +1 -1
- package/build/screens/get_help_screen.d.ts +1 -1
- package/build/screens/get_help_screen.d.ts.map +1 -1
- package/build/screens/get_help_screen.js +4 -25
- package/build/screens/get_help_screen.js.map +1 -1
- package/build/screens/group_notification_level_select_screen.d.ts +1 -2
- package/build/screens/group_notification_level_select_screen.d.ts.map +1 -1
- package/build/screens/group_notification_level_select_screen.js +2 -4
- package/build/screens/group_notification_level_select_screen.js.map +1 -1
- package/build/screens/group_notification_settings_screen.d.ts +1 -2
- package/build/screens/group_notification_settings_screen.d.ts.map +1 -1
- package/build/screens/group_notification_settings_screen.js +3 -25
- package/build/screens/group_notification_settings_screen.js.map +1 -1
- package/build/screens/message_actions_screen.d.ts +1 -2
- package/build/screens/message_actions_screen.d.ts.map +1 -1
- package/build/screens/message_actions_screen.js +12 -28
- package/build/screens/message_actions_screen.js.map +1 -1
- package/build/screens/message_report/components/message_preview.d.ts +1 -2
- package/build/screens/message_report/components/message_preview.d.ts.map +1 -1
- package/build/screens/message_report/components/message_preview.js +2 -22
- package/build/screens/message_report/components/message_preview.js.map +1 -1
- package/build/screens/message_report/components/report_reason_list.d.ts +1 -2
- package/build/screens/message_report/components/report_reason_list.d.ts.map +1 -1
- package/build/screens/message_report/components/report_reason_list.js +4 -13
- package/build/screens/message_report/components/report_reason_list.js.map +1 -1
- package/build/screens/message_report_screen.d.ts +1 -2
- package/build/screens/message_report_screen.d.ts.map +1 -1
- package/build/screens/message_report_screen.js +9 -61
- package/build/screens/message_report_screen.js.map +1 -1
- package/build/screens/not_found.d.ts +1 -2
- package/build/screens/not_found.d.ts.map +1 -1
- package/build/screens/not_found.js +2 -5
- package/build/screens/not_found.js.map +1 -1
- package/build/screens/notification_settings/hooks/groups.d.ts +1 -1
- package/build/screens/notification_settings/hooks/groups.d.ts.map +1 -1
- package/build/screens/notification_settings_screen.d.ts +1 -2
- package/build/screens/notification_settings_screen.d.ts.map +1 -1
- package/build/screens/notification_settings_screen.js +28 -66
- package/build/screens/notification_settings_screen.js.map +1 -1
- package/build/screens/preferred_app_selection_screen.d.ts +1 -2
- package/build/screens/preferred_app_selection_screen.d.ts.map +1 -1
- package/build/screens/preferred_app_selection_screen.js +3 -21
- package/build/screens/preferred_app_selection_screen.js.map +1 -1
- package/build/screens/reactions_screen.d.ts +1 -2
- package/build/screens/reactions_screen.d.ts.map +1 -1
- package/build/screens/reactions_screen.js +7 -19
- package/build/screens/reactions_screen.js.map +1 -1
- package/build/screens/send_giphy_screen.d.ts +1 -2
- package/build/screens/send_giphy_screen.d.ts.map +1 -1
- package/build/screens/send_giphy_screen.js +5 -31
- package/build/screens/send_giphy_screen.js.map +1 -1
- package/build/screens/settings_screen.d.ts +1 -2
- package/build/screens/settings_screen.d.ts.map +1 -1
- package/build/screens/settings_screen.js +4 -26
- package/build/screens/settings_screen.js.map +1 -1
- package/build/screens/system_message_people_screen.d.ts +1 -2
- package/build/screens/system_message_people_screen.d.ts.map +1 -1
- package/build/screens/system_message_people_screen.js +4 -10
- package/build/screens/system_message_people_screen.js.map +1 -1
- package/build/screens/team_conversation_screen.d.ts +1 -1
- package/build/screens/team_conversation_screen.d.ts.map +1 -1
- package/build/screens/team_conversation_screen.js +4 -12
- package/build/screens/team_conversation_screen.js.map +1 -1
- package/build/types/resources/conversation.d.ts +1 -10
- package/build/types/resources/conversation.d.ts.map +1 -1
- package/build/types/resources/conversation.js.map +1 -1
- package/build/utils/request/conversation.d.ts.map +1 -1
- package/build/utils/request/conversation.js +0 -2
- package/build/utils/request/conversation.js.map +1 -1
- package/build/utils/sha_256.js.map +1 -1
- package/build/utils/system_messages.d.ts +1 -1
- package/build/utils/system_messages.d.ts.map +1 -1
- package/build/utils/system_messages.js.map +1 -1
- package/build/utils/theme.d.ts +2 -2
- package/build/utils/theme.d.ts.map +1 -1
- package/build/utils/theme.js.map +1 -1
- package/package.json +12 -12
- package/src/__tests__/hooks/use_attachment_uploader.test.tsx +1 -0
- package/src/__tests__/hooks/use_font_scale.test.ts +7 -3
- package/src/__tests__/utils/native_adapters/configuration.ts +1 -1
- package/src/__tests__/utils/system_messages.ts +1 -1
- package/src/__tests__/utils/uri.ts +8 -50
- package/src/__utils__/handlers.ts +5 -6
- package/src/components/conversation/attachments/attachment_deleting_overlay.tsx +10 -3
- package/src/components/conversations/conversation_preview.tsx +23 -58
- package/src/components/conversations/unread_count_badge.tsx +4 -13
- package/src/components/page/__tests__/component_error_boundary.test.tsx +1 -1
- package/src/components/page/__tests__/error_boundary.test.tsx +6 -2
- package/src/components/page/__tests__/page_error_boundary.test.tsx +1 -1
- package/src/hooks/use_conversation.ts +0 -2
- package/src/hooks/use_conversation_jolt_events.ts +19 -3
- package/src/hooks/use_conversation_messages.ts +6 -5
- package/src/hooks/use_conversations_actions.ts +1 -3
- package/src/hooks/use_mark_latest_message_read.ts +4 -3
- package/src/index.tsx +2 -1
- package/src/polyfills/events/EventTarget.ts +1 -1
- package/src/screens/conversation_screen.tsx +4 -2
- package/src/screens/conversations/components/list_header_component.tsx +6 -6
- package/src/types/resources/conversation.ts +1 -11
- package/src/utils/request/conversation.ts +0 -2
- package/src/utils/sha_256.ts +24 -24
- package/src/utils/system_messages.ts +1 -1
- package/src/utils/theme.ts +3 -2
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"form_list.js","sourceRoot":"","sources":["../../../../src/screens/conversation_new/components/form_list.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"form_list.js","sourceRoot":"","sources":["../../../../src/screens/conversation_new/components/form_list.tsx"],"names":[],"mappings":";AACA,OAAO,EAAE,QAAQ,EAAsB,UAAU,EAAE,IAAI,EAAE,MAAM,cAAc,CAAA;AAC7E,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,6BAA6B,CAAA;AAC1D,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAA;AAWzC,MAAM,CAAC,MAAM,QAAQ,GAAG,CAAC,EACvB,UAAU,EACV,WAAW,EACX,WAAW,EACX,aAAa,EACb,YAAY,GACE,EAAE,EAAE;IAClB,MAAM,MAAM,GAAG,SAAS,EAAE,CAAA;IAE1B,OAAO,CACL,KAAC,QAAQ,IACP,IAAI,EAAE,UAAU,EAChB,mBAAmB,EAAE,WAAW,EAChC,UAAU,EAAE,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC,KAAC,MAAM,IAAC,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,CAAC,MAAM,GAAI,EACxE,mBAAmB,EACjB,WAAW,CAAC,CAAC,CAAC,KAAC,IAAI,IAAC,KAAK,EAAE,MAAM,CAAC,WAAW,gCAAwB,CAAC,CAAC,CAAC,IAAI,EAE9E,YAAY,EAAE,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,QAAQ,EAAE,EACxC,kBAAkB,EAAE,KAAC,aAAa,IAAC,IAAI,EAAE,aAAa,IAAI,kBAAkB,GAAI,EAChF,YAAY,EAAE,YAAY,GAC1B,CACH,CAAA;AACH,CAAC,CAAA;AAED,MAAM,aAAa,GAAG,CAAC,EAAE,IAAI,EAAoB,EAAE,EAAE;IACnD,MAAM,MAAM,GAAG,SAAS,EAAE,CAAA;IAE1B,OAAO,CACL,KAAC,IAAI,IAAC,KAAK,EAAE,MAAM,CAAC,kBAAkB,YACpC,KAAC,IAAI,IAAC,KAAK,EAAE,MAAM,CAAC,SAAS,YAAG,IAAI,GAAQ,GACvC,CACR,CAAA;AACH,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,OAAO,GAAG,GAAG,EAAE;IAC1B,MAAM,MAAM,GAAG,SAAS,EAAE,CAAA;IAE1B,OAAO,KAAC,IAAI,IAAC,KAAK,EAAE,MAAM,CAAC,OAAO,GAAI,CAAA;AACxC,CAAC,CAAA;AAED,MAAM,SAAS,GAAG,GAAG,EAAE;IACrB,MAAM,EAAE,MAAM,EAAE,GAAG,QAAQ,EAAE,CAAA;IAE7B,OAAO,UAAU,CAAC,MAAM,CAAC;QACvB,MAAM,EAAE;YACN,iBAAiB,EAAE,EAAE;YACrB,aAAa,EAAE,EAAE;SAClB;QACD,WAAW,EAAE;YACX,iBAAiB,EAAE,EAAE;YACrB,aAAa,EAAE,EAAE;SAClB;QACD,kBAAkB,EAAE;YAClB,UAAU,EAAE,QAAQ;YACpB,cAAc,EAAE,QAAQ;YACxB,OAAO,EAAE,EAAE;SACZ;QACD,SAAS,EAAE;YACT,SAAS,EAAE,QAAQ;YACnB,KAAK,EAAE,MAAM,CAAC,yBAAyB;SACxC;QACD,OAAO,EAAE;YACP,iBAAiB,EAAE,CAAC;YACpB,iBAAiB,EAAE,MAAM,CAAC,uBAAuB;SAClD;KACF,CAAC,CAAA;AACJ,CAAC,CAAA","sourcesContent":["import React from 'react'\nimport { FlatList, type FlatListProps, StyleSheet, View } from 'react-native'\nimport { Person, Text } from '../../../components/display'\nimport { useTheme } from '../../../hooks'\nimport { MemberResource } from '../../../types'\n\ninterface FormListProps {\n memberData: MemberResource[]\n loadingMore?: boolean\n FormContent?: FlatListProps<MemberResource>['ListHeaderComponent']\n listEmptyText?: string\n onEndReached?: () => void\n}\n\nexport const FormList = ({\n memberData,\n loadingMore,\n FormContent,\n listEmptyText,\n onEndReached,\n}: FormListProps) => {\n const styles = useStyles()\n\n return (\n <FlatList\n data={memberData}\n ListHeaderComponent={FormContent}\n renderItem={({ item }) => <Person person={item} style={styles.person} />}\n ListFooterComponent={\n loadingMore ? <Text style={styles.loadingMore}>Loading more...</Text> : null\n }\n keyExtractor={item => item.id.toString()}\n ListEmptyComponent={<ListEmptyText text={listEmptyText || 'No members found'} />}\n onEndReached={onEndReached}\n />\n )\n}\n\nconst ListEmptyText = ({ text }: { text: string }) => {\n const styles = useStyles()\n\n return (\n <View style={styles.emptyTextContainer}>\n <Text style={styles.emptyText}>{text}</Text>\n </View>\n )\n}\n\nexport const Divider = () => {\n const styles = useStyles()\n\n return <View style={styles.divider} />\n}\n\nconst useStyles = () => {\n const { colors } = useTheme()\n\n return StyleSheet.create({\n person: {\n paddingHorizontal: 16,\n paddingBottom: 12,\n },\n loadingMore: {\n paddingHorizontal: 16,\n paddingBottom: 12,\n },\n emptyTextContainer: {\n alignItems: 'center',\n justifyContent: 'center',\n padding: 32,\n },\n emptyText: {\n textAlign: 'center',\n color: colors.textColorDefaultSecondary,\n },\n divider: {\n borderBottomWidth: 1,\n borderBottomColor: colors.fillColorNeutral050Base,\n },\n })\n}\n"]}
|
|
@@ -1,10 +1,9 @@
|
|
|
1
|
-
import React from 'react';
|
|
2
1
|
interface GenderFilterToggleProps {
|
|
3
2
|
genderValue: string | null;
|
|
4
3
|
isFetching: boolean;
|
|
5
4
|
enabled: boolean;
|
|
6
5
|
onToggle: (enabled: boolean) => void;
|
|
7
6
|
}
|
|
8
|
-
export declare function GenderFilterToggle({ genderValue, isFetching, enabled, onToggle, }: GenderFilterToggleProps):
|
|
7
|
+
export declare function GenderFilterToggle({ genderValue, isFetching, enabled, onToggle, }: GenderFilterToggleProps): import("react/jsx-runtime").JSX.Element;
|
|
9
8
|
export {};
|
|
10
9
|
//# sourceMappingURL=gender_filter_toggle.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"gender_filter_toggle.d.ts","sourceRoot":"","sources":["../../../../src/screens/conversation_new/components/gender_filter_toggle.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"gender_filter_toggle.d.ts","sourceRoot":"","sources":["../../../../src/screens/conversation_new/components/gender_filter_toggle.tsx"],"names":[],"mappings":"AAmDA,UAAU,uBAAuB;IAC/B,WAAW,EAAE,MAAM,GAAG,IAAI,CAAA;IAC1B,UAAU,EAAE,OAAO,CAAA;IACnB,OAAO,EAAE,OAAO,CAAA;IAChB,QAAQ,EAAE,CAAC,OAAO,EAAE,OAAO,KAAK,IAAI,CAAA;CACrC;AAED,wBAAgB,kBAAkB,CAAC,EACjC,WAAW,EACX,UAAU,EACV,OAAO,EACP,QAAQ,GACT,EAAE,uBAAuB,2CAczB"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
|
|
2
2
|
import { ActivityIndicator, StyleSheet, View } from 'react-native';
|
|
3
3
|
import { Heading, Switch, Text } from '../../../components';
|
|
4
4
|
import { useTheme } from '../../../hooks';
|
|
@@ -7,32 +7,16 @@ function FilterableGenderContent({ genderValue, enabled, onToggle }) {
|
|
|
7
7
|
const { colors } = useTheme();
|
|
8
8
|
const styles = useStyles();
|
|
9
9
|
const displayLabel = genderDisplayLabel(genderValue);
|
|
10
|
-
return (
|
|
11
|
-
<View style={styles.toggleRow}>
|
|
12
|
-
<Text>{displayLabel}</Text>
|
|
13
|
-
<Switch value={enabled} onValueChange={onToggle} accessibilityLabel={`Filter by ${displayLabel}`}/>
|
|
14
|
-
</View>
|
|
15
|
-
<Text style={{ color: colors.textColorDefaultSecondary }}>
|
|
16
|
-
Filter limited to your profile's set gender.
|
|
17
|
-
</Text>
|
|
18
|
-
</>);
|
|
10
|
+
return (_jsxs(_Fragment, { children: [_jsxs(View, { style: styles.toggleRow, children: [_jsx(Text, { children: displayLabel }), _jsx(Switch, { value: enabled, onValueChange: onToggle, accessibilityLabel: `Filter by ${displayLabel}` })] }), _jsx(Text, { style: { color: colors.textColorDefaultSecondary }, children: "Filter limited to your profile's set gender." })] }));
|
|
19
11
|
}
|
|
20
12
|
function NoGenderContent({ isFetching }) {
|
|
21
13
|
const { colors } = useTheme();
|
|
22
|
-
return (
|
|
23
|
-
<Text>Gender</Text>
|
|
24
|
-
{isFetching ? (<ActivityIndicator size="small"/>) : (<Text style={{ color: colors.textColorDefaultSecondary }}>
|
|
25
|
-
Set a gender in your Church Center profile to enable gender filtering.
|
|
26
|
-
</Text>)}
|
|
27
|
-
</>);
|
|
14
|
+
return (_jsxs(_Fragment, { children: [_jsx(Text, { children: "Gender" }), isFetching ? (_jsx(ActivityIndicator, { size: "small" })) : (_jsx(Text, { style: { color: colors.textColorDefaultSecondary }, children: "Set a gender in your Church Center profile to enable gender filtering." }))] }));
|
|
28
15
|
}
|
|
29
16
|
export function GenderFilterToggle({ genderValue, isFetching, enabled, onToggle, }) {
|
|
30
17
|
const styles = useStyles();
|
|
31
18
|
const hasFilterableGender = genderValue !== null && genderValue !== 'Prefer not to say';
|
|
32
|
-
return (
|
|
33
|
-
<Heading variant="h3">Filter by</Heading>
|
|
34
|
-
{hasFilterableGender ? (<FilterableGenderContent genderValue={genderValue} enabled={enabled} onToggle={onToggle}/>) : (<NoGenderContent isFetching={isFetching}/>)}
|
|
35
|
-
</View>);
|
|
19
|
+
return (_jsxs(View, { style: styles.container, children: [_jsx(Heading, { variant: "h3", children: "Filter by" }), hasFilterableGender ? (_jsx(FilterableGenderContent, { genderValue: genderValue, enabled: enabled, onToggle: onToggle })) : (_jsx(NoGenderContent, { isFetching: isFetching }))] }));
|
|
36
20
|
}
|
|
37
21
|
const useStyles = () => {
|
|
38
22
|
return StyleSheet.create({
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"gender_filter_toggle.js","sourceRoot":"","sources":["../../../../src/screens/conversation_new/components/gender_filter_toggle.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"gender_filter_toggle.js","sourceRoot":"","sources":["../../../../src/screens/conversation_new/components/gender_filter_toggle.tsx"],"names":[],"mappings":";AACA,OAAO,EAAE,iBAAiB,EAAE,UAAU,EAAE,IAAI,EAAE,MAAM,cAAc,CAAA;AAClE,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,qBAAqB,CAAA;AAC3D,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAA;AACzC,OAAO,EAAE,kBAAkB,EAAE,MAAM,qCAAqC,CAAA;AAQxE,SAAS,uBAAuB,CAAC,EAAE,WAAW,EAAE,OAAO,EAAE,QAAQ,EAAgC;IAC/F,MAAM,EAAE,MAAM,EAAE,GAAG,QAAQ,EAAE,CAAA;IAC7B,MAAM,MAAM,GAAG,SAAS,EAAE,CAAA;IAC1B,MAAM,YAAY,GAAG,kBAAkB,CAAC,WAAW,CAAC,CAAA;IAEpD,OAAO,CACL,8BACE,MAAC,IAAI,IAAC,KAAK,EAAE,MAAM,CAAC,SAAS,aAC3B,KAAC,IAAI,cAAE,YAAY,GAAQ,EAC3B,KAAC,MAAM,IACL,KAAK,EAAE,OAAO,EACd,aAAa,EAAE,QAAQ,EACvB,kBAAkB,EAAE,aAAa,YAAY,EAAE,GAC/C,IACG,EACP,KAAC,IAAI,IAAC,KAAK,EAAE,EAAE,KAAK,EAAE,MAAM,CAAC,yBAAyB,EAAE,6DAEjD,IACN,CACJ,CAAA;AACH,CAAC;AAED,SAAS,eAAe,CAAC,EAAE,UAAU,EAA2B;IAC9D,MAAM,EAAE,MAAM,EAAE,GAAG,QAAQ,EAAE,CAAA;IAE7B,OAAO,CACL,8BACE,KAAC,IAAI,yBAAc,EAClB,UAAU,CAAC,CAAC,CAAC,CACZ,KAAC,iBAAiB,IAAC,IAAI,EAAC,OAAO,GAAG,CACnC,CAAC,CAAC,CAAC,CACF,KAAC,IAAI,IAAC,KAAK,EAAE,EAAE,KAAK,EAAE,MAAM,CAAC,yBAAyB,EAAE,uFAEjD,CACR,IACA,CACJ,CAAA;AACH,CAAC;AASD,MAAM,UAAU,kBAAkB,CAAC,EACjC,WAAW,EACX,UAAU,EACV,OAAO,EACP,QAAQ,GACgB;IACxB,MAAM,MAAM,GAAG,SAAS,EAAE,CAAA;IAC1B,MAAM,mBAAmB,GAAG,WAAW,KAAK,IAAI,IAAI,WAAW,KAAK,mBAAmB,CAAA;IAEvF,OAAO,CACL,MAAC,IAAI,IAAC,KAAK,EAAE,MAAM,CAAC,SAAS,aAC3B,KAAC,OAAO,IAAC,OAAO,EAAC,IAAI,0BAAoB,EACxC,mBAAmB,CAAC,CAAC,CAAC,CACrB,KAAC,uBAAuB,IAAC,WAAW,EAAE,WAAW,EAAE,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,GAAI,CAC5F,CAAC,CAAC,CAAC,CACF,KAAC,eAAe,IAAC,UAAU,EAAE,UAAU,GAAI,CAC5C,IACI,CACR,CAAA;AACH,CAAC;AAED,MAAM,SAAS,GAAG,GAAG,EAAE;IACrB,OAAO,UAAU,CAAC,MAAM,CAAC;QACvB,SAAS,EAAE;YACT,OAAO,EAAE,EAAE;YACX,GAAG,EAAE,CAAC;SACP;QACD,SAAS,EAAE;YACT,aAAa,EAAE,KAAK;YACpB,cAAc,EAAE,eAAe;YAC/B,UAAU,EAAE,QAAQ;SACrB;KACF,CAAC,CAAA;AACJ,CAAC,CAAA","sourcesContent":["import React from 'react'\nimport { ActivityIndicator, StyleSheet, View } from 'react-native'\nimport { Heading, Switch, Text } from '../../../components'\nimport { useTheme } from '../../../hooks'\nimport { genderDisplayLabel } from '../../../utils/gender_display_label'\n\ninterface FilterableGenderContentProps {\n genderValue: string\n enabled: boolean\n onToggle: (enabled: boolean) => void\n}\n\nfunction FilterableGenderContent({ genderValue, enabled, onToggle }: FilterableGenderContentProps) {\n const { colors } = useTheme()\n const styles = useStyles()\n const displayLabel = genderDisplayLabel(genderValue)\n\n return (\n <>\n <View style={styles.toggleRow}>\n <Text>{displayLabel}</Text>\n <Switch\n value={enabled}\n onValueChange={onToggle}\n accessibilityLabel={`Filter by ${displayLabel}`}\n />\n </View>\n <Text style={{ color: colors.textColorDefaultSecondary }}>\n Filter limited to your profile's set gender.\n </Text>\n </>\n )\n}\n\nfunction NoGenderContent({ isFetching }: { isFetching: boolean }) {\n const { colors } = useTheme()\n\n return (\n <>\n <Text>Gender</Text>\n {isFetching ? (\n <ActivityIndicator size=\"small\" />\n ) : (\n <Text style={{ color: colors.textColorDefaultSecondary }}>\n Set a gender in your Church Center profile to enable gender filtering.\n </Text>\n )}\n </>\n )\n}\n\ninterface GenderFilterToggleProps {\n genderValue: string | null\n isFetching: boolean\n enabled: boolean\n onToggle: (enabled: boolean) => void\n}\n\nexport function GenderFilterToggle({\n genderValue,\n isFetching,\n enabled,\n onToggle,\n}: GenderFilterToggleProps) {\n const styles = useStyles()\n const hasFilterableGender = genderValue !== null && genderValue !== 'Prefer not to say'\n\n return (\n <View style={styles.container}>\n <Heading variant=\"h3\">Filter by</Heading>\n {hasFilterableGender ? (\n <FilterableGenderContent genderValue={genderValue} enabled={enabled} onToggle={onToggle} />\n ) : (\n <NoGenderContent isFetching={isFetching} />\n )}\n </View>\n )\n}\n\nconst useStyles = () => {\n return StyleSheet.create({\n container: {\n padding: 16,\n gap: 8,\n },\n toggleRow: {\n flexDirection: 'row',\n justifyContent: 'space-between',\n alignItems: 'center',\n },\n })\n}\n"]}
|
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
import React from 'react';
|
|
2
1
|
import { type AvatarUpdatePayload } from '../../../hooks/use_conversation_avatar_update';
|
|
3
2
|
import { GraphId } from '../../../types/resources/group_resource';
|
|
4
3
|
type GroupsFormProps = {
|
|
@@ -6,6 +5,6 @@ type GroupsFormProps = {
|
|
|
6
5
|
chat_group_graph_id?: GraphId;
|
|
7
6
|
avatarSelection?: AvatarUpdatePayload;
|
|
8
7
|
};
|
|
9
|
-
export declare const GroupsForm: ({ groupId, chat_group_graph_id, avatarSelection }: GroupsFormProps) =>
|
|
8
|
+
export declare const GroupsForm: ({ groupId, chat_group_graph_id, avatarSelection }: GroupsFormProps) => import("react/jsx-runtime").JSX.Element;
|
|
10
9
|
export {};
|
|
11
10
|
//# sourceMappingURL=groups_form.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"groups_form.d.ts","sourceRoot":"","sources":["../../../../src/screens/conversation_new/components/groups_form.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"groups_form.d.ts","sourceRoot":"","sources":["../../../../src/screens/conversation_new/components/groups_form.tsx"],"names":[],"mappings":"AAaA,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,5 +1,6 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
|
|
1
2
|
import { StackActions, useNavigation } from '@react-navigation/native';
|
|
2
|
-
import
|
|
3
|
+
import { useCallback, useMemo, useRef, useState } from 'react';
|
|
3
4
|
import { Platform, Pressable, StyleSheet, TextInput, View } from 'react-native';
|
|
4
5
|
import { Banner, ChildNotice, Heading, Text } from '../../../components';
|
|
5
6
|
import { ActionButton } from '../../../components/display/action_button';
|
|
@@ -83,10 +84,7 @@ export const GroupsForm = ({ groupId, chat_group_graph_id, avatarSelection }) =>
|
|
|
83
84
|
genderId: activeGenderId,
|
|
84
85
|
onSuccess: handleCreateSuccess,
|
|
85
86
|
});
|
|
86
|
-
return (
|
|
87
|
-
<FormList memberData={groupMemberships.adultMembers} loadingMore={groupMemberships.isFetchingNextPage} onEndReached={groupMemberships.fetchNextPage} FormContent={<FormContent group={group} title={title} setTitle={setTitle} genderFilterAvailable={genderFilterAvailable} genderFilterEnabled={genderFilterEnabled} genderValue={genderValue} genderFetching={genderFetching} onGenderToggle={handleGenderToggle} groupMemberships={groupMemberships} filteredMemberCount={groupMemberships.adultMembers.length} avatarSelection={avatarSelection} customAvatarsEnabled={customAvatarsEnabled}/>}/>
|
|
88
|
-
<ActionButton disabled={!title || isPending || validationPending || warnings.length > 0} title="Start Conversation" onPress={() => handleSave()} infoText="Conversation will be automatically updated if any members are added or removed from this group." warnings={warnings}/>
|
|
89
|
-
</KeyboardView>);
|
|
87
|
+
return (_jsxs(KeyboardView, { children: [_jsx(FormList, { memberData: groupMemberships.adultMembers, loadingMore: groupMemberships.isFetchingNextPage, onEndReached: groupMemberships.fetchNextPage, FormContent: _jsx(FormContent, { group: group, title: title, setTitle: setTitle, genderFilterAvailable: genderFilterAvailable, genderFilterEnabled: genderFilterEnabled, genderValue: genderValue, genderFetching: genderFetching, onGenderToggle: handleGenderToggle, groupMemberships: groupMemberships, filteredMemberCount: groupMemberships.adultMembers.length, avatarSelection: avatarSelection, customAvatarsEnabled: customAvatarsEnabled }) }), _jsx(ActionButton, { disabled: !title || isPending || validationPending || warnings.length > 0, title: "Start Conversation", onPress: () => handleSave(), infoText: "Conversation will be automatically updated if any members are added or removed from this group.", warnings: warnings })] }));
|
|
90
88
|
};
|
|
91
89
|
function FormContent({ group, title, setTitle, genderFilterAvailable, genderFilterEnabled, genderValue, genderFetching, onGenderToggle, groupMemberships, filteredMemberCount, avatarSelection, customAvatarsEnabled, }) {
|
|
92
90
|
const styles = useStyles();
|
|
@@ -103,31 +101,7 @@ function FormContent({ group, title, setTitle, genderFilterAvailable, genderFilt
|
|
|
103
101
|
const handleTitleSectionPress = useCallback(() => {
|
|
104
102
|
inputRef.current?.focus();
|
|
105
103
|
}, []);
|
|
106
|
-
return (
|
|
107
|
-
<View style={styles.toSection}>
|
|
108
|
-
<Heading variant="h3">To:</Heading>
|
|
109
|
-
<Text style={styles.groupName}>{name}</Text>
|
|
110
|
-
</View>
|
|
111
|
-
<Divider />
|
|
112
|
-
<Pressable style={styles.titleSection} onPress={handleTitleSectionPress}>
|
|
113
|
-
<Heading variant="h3">Title</Heading>
|
|
114
|
-
<TextInput placeholder="Topic of conversation (required)" value={title} onChangeText={setTitle} style={styles.titleInput} autoFocus={true} ref={inputRef}/>
|
|
115
|
-
</Pressable>
|
|
116
|
-
<Divider />
|
|
117
|
-
{customAvatarsEnabled && (<>
|
|
118
|
-
<AvatarSelectionRow avatarSelection={avatarSelection}/>
|
|
119
|
-
<Divider />
|
|
120
|
-
</>)}
|
|
121
|
-
{genderFilterAvailable && (<>
|
|
122
|
-
<GenderFilterToggle genderValue={genderValue} isFetching={genderFetching} enabled={genderFilterEnabled} onToggle={onGenderToggle}/>
|
|
123
|
-
<Divider />
|
|
124
|
-
</>)}
|
|
125
|
-
<View style={styles.memberSection}>
|
|
126
|
-
<Heading variant="h3">{memberHeaderLabel}</Heading>
|
|
127
|
-
{hasChildren && (<ChildNotice childMembers={childMembers} showMembers={isLeader} style={styles.banner}/>)}
|
|
128
|
-
{showMemberError && (<Banner appearance="error" description="There was an issue loading group members, please refresh and try again." style={styles.banner}/>)}
|
|
129
|
-
</View>
|
|
130
|
-
</View>);
|
|
104
|
+
return (_jsxs(View, { style: styles.formContent, children: [_jsxs(View, { style: styles.toSection, children: [_jsx(Heading, { variant: "h3", children: "To:" }), _jsx(Text, { style: styles.groupName, children: name })] }), _jsx(Divider, {}), _jsxs(Pressable, { style: styles.titleSection, onPress: handleTitleSectionPress, children: [_jsx(Heading, { variant: "h3", children: "Title" }), _jsx(TextInput, { placeholder: "Topic of conversation (required)", value: title, onChangeText: setTitle, style: styles.titleInput, autoFocus: true, ref: inputRef })] }), _jsx(Divider, {}), customAvatarsEnabled && (_jsxs(_Fragment, { children: [_jsx(AvatarSelectionRow, { avatarSelection: avatarSelection }), _jsx(Divider, {})] })), genderFilterAvailable && (_jsxs(_Fragment, { children: [_jsx(GenderFilterToggle, { genderValue: genderValue, isFetching: genderFetching, enabled: genderFilterEnabled, onToggle: onGenderToggle }), _jsx(Divider, {})] })), _jsxs(View, { style: styles.memberSection, children: [_jsx(Heading, { variant: "h3", children: memberHeaderLabel }), hasChildren && (_jsx(ChildNotice, { childMembers: childMembers, showMembers: isLeader, style: styles.banner })), showMemberError && (_jsx(Banner, { appearance: "error", description: "There was an issue loading group members, please refresh and try again.", style: styles.banner }))] })] }));
|
|
131
105
|
}
|
|
132
106
|
const useStyles = () => {
|
|
133
107
|
const { colors } = useTheme();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"groups_form.js","sourceRoot":"","sources":["../../../../src/screens/conversation_new/components/groups_form.tsx"],"names":[],"mappings":"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","sourcesContent":["import { StackActions, useNavigation } from '@react-navigation/native'\nimport React, { useCallback, useMemo, useRef, useState } from 'react'\nimport { Platform, Pressable, StyleSheet, TextInput, View } from 'react-native'\nimport { Banner, ChildNotice, Heading, Text } from '../../../components'\nimport { ActionButton } from '../../../components/display/action_button'\nimport { KeyboardView } from '../../../components/display/keyboard_view'\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\">Title</Heading>\n <TextInput\n placeholder=\"Topic of conversation (required)\"\n value={title}\n onChangeText={setTitle}\n style={styles.titleInput}\n autoFocus={true}\n ref={inputRef}\n />\n </Pressable>\n <Divider />\n {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 memberSection: {\n padding: sectionPadding,\n paddingBottom: 0,\n },\n banner: {\n marginTop: 16,\n },\n })\n}\n"]}
|
|
1
|
+
{"version":3,"file":"groups_form.js","sourceRoot":"","sources":["../../../../src/screens/conversation_new/components/groups_form.tsx"],"names":[],"mappings":"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","sourcesContent":["import { StackActions, useNavigation } from '@react-navigation/native'\nimport React, { useCallback, useMemo, useRef, useState } from 'react'\nimport { Platform, Pressable, StyleSheet, TextInput, View } from 'react-native'\nimport { Banner, ChildNotice, Heading, Text } from '../../../components'\nimport { ActionButton } from '../../../components/display/action_button'\nimport { KeyboardView } from '../../../components/display/keyboard_view'\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\">Title</Heading>\n <TextInput\n placeholder=\"Topic of conversation (required)\"\n value={title}\n onChangeText={setTitle}\n style={styles.titleInput}\n autoFocus={true}\n ref={inputRef}\n />\n </Pressable>\n <Divider />\n {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 memberSection: {\n padding: sectionPadding,\n paddingBottom: 0,\n },\n banner: {\n marginTop: 16,\n },\n })\n}\n"]}
|
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
import React from 'react';
|
|
2
1
|
import { type AvatarUpdatePayload } from '../../../hooks/use_conversation_avatar_update';
|
|
3
2
|
import { TeamFilterTypes } from '../../conversation_filter_recipients/types';
|
|
4
3
|
type ServicesFormProps = {
|
|
@@ -7,6 +6,6 @@ type ServicesFormProps = {
|
|
|
7
6
|
teamFilterType?: TeamFilterTypes;
|
|
8
7
|
avatarSelection?: AvatarUpdatePayload;
|
|
9
8
|
};
|
|
10
|
-
export declare const ServicesForm: ({ initialTeamIds, initialPlanId, teamFilterType, avatarSelection, }: ServicesFormProps) =>
|
|
9
|
+
export declare const ServicesForm: ({ initialTeamIds, initialPlanId, teamFilterType, avatarSelection, }: ServicesFormProps) => import("react/jsx-runtime").JSX.Element;
|
|
11
10
|
export {};
|
|
12
11
|
//# sourceMappingURL=services_form.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"services_form.d.ts","sourceRoot":"","sources":["../../../../src/screens/conversation_new/components/services_form.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"services_form.d.ts","sourceRoot":"","sources":["../../../../src/screens/conversation_new/components/services_form.tsx"],"names":[],"mappings":"AAWA,OAAO,EACL,KAAK,mBAAmB,EAEzB,MAAM,+CAA+C,CAAA;AAQtD,OAAO,EAAE,eAAe,EAAE,MAAM,4CAA4C,CAAA;AAK5E,KAAK,iBAAiB,GAAG;IACvB,cAAc,CAAC,EAAE,MAAM,EAAE,CAAA;IACzB,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB,cAAc,CAAC,EAAE,eAAe,CAAA;IAChC,eAAe,CAAC,EAAE,mBAAmB,CAAA;CACtC,CAAA;AAED,eAAO,MAAM,YAAY,GAAI,qEAK1B,iBAAiB,4CA4GnB,CAAA"}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
|
|
1
2
|
import { StackActions, useNavigation } from '@react-navigation/native';
|
|
2
3
|
import { uniq } from 'lodash';
|
|
3
|
-
import
|
|
4
|
+
import { useCallback, useEffect, useMemo, useState } from 'react';
|
|
4
5
|
import { StyleSheet, View } from 'react-native';
|
|
5
6
|
import { Badge, Banner, ChildNotice, Heading, Switch, TextButton } from '../../../components';
|
|
6
7
|
import { ActionButton } from '../../../components/display/action_button';
|
|
@@ -71,14 +72,11 @@ export const ServicesForm = ({ initialTeamIds, initialPlanId, teamFilterType, av
|
|
|
71
72
|
}
|
|
72
73
|
},
|
|
73
74
|
});
|
|
74
|
-
return (
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
validationPending ||
|
|
80
|
-
warnings.length > 0} title={selectionHasConversation ? 'Open conversation' : 'Start conversation'} onPress={createConversation} infoText="Conversation will be automatically updated if any members are added or removed from included teams." loading={isLoadingConversationCheck} warnings={warnings}/>
|
|
81
|
-
</View>);
|
|
75
|
+
return (_jsxs(View, { style: styles.formContainer, children: [_jsx(FormList, { memberData: adultMembers, FormContent: _jsx(FormContent, { selectedTeamIds: selectedTeamIds, removeSelection: removeSelection, selectedPlanId: selectedPlanId, setSelectedPlanId: setSelectedPlanId, filterByPlan: filerByPlan, setFilterByPlan: setFilterByPlan, members: members, isMemberError: isMemberError, teamFilterType: teamFilterType, avatarSelection: avatarSelection, selectionHasConversation: selectionHasConversation, customAvatarsEnabled: customAvatarsEnabled }) }), _jsx(ActionButton, { disabled: !selectedTeamIds.length ||
|
|
76
|
+
isPending ||
|
|
77
|
+
isLoadingConversationCheck ||
|
|
78
|
+
validationPending ||
|
|
79
|
+
warnings.length > 0, title: selectionHasConversation ? 'Open conversation' : 'Start conversation', onPress: createConversation, infoText: "Conversation will be automatically updated if any members are added or removed from included teams.", loading: isLoadingConversationCheck, warnings: warnings })] }));
|
|
82
80
|
};
|
|
83
81
|
function FormContent({ selectedTeamIds, removeSelection, selectedPlanId, setSelectedPlanId, filterByPlan, setFilterByPlan, members, isMemberError, teamFilterType, avatarSelection, selectionHasConversation, customAvatarsEnabled, }) {
|
|
84
82
|
const navigation = useNavigation();
|
|
@@ -92,58 +90,26 @@ function FormContent({ selectedTeamIds, removeSelection, selectedPlanId, setSele
|
|
|
92
90
|
const childMembers = useMemo(() => members.filter(member => member.child), [members]);
|
|
93
91
|
const hasChildren = childMembers.length > 0;
|
|
94
92
|
filterByPlan = filterByPlan && !!selectedTeamIds.length;
|
|
95
|
-
return (
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
const serviceTypeAcronyms = team.serviceTypeAcronyms.join(', ');
|
|
116
|
-
const label = `${team.teamName} | ${serviceTypeAcronyms}`;
|
|
117
|
-
return (<View key={team.value.teamId} style={styles.badgeRow}>
|
|
118
|
-
<Badge iconNameRight="general.x" label={label} onPress={() => removeSelection(team.value.teamId)}/>
|
|
119
|
-
</View>);
|
|
120
|
-
})}
|
|
121
|
-
</View>
|
|
122
|
-
</View>
|
|
123
|
-
<Divider />
|
|
124
|
-
<View style={styles.filterByPlanSection}>
|
|
125
|
-
<View style={styles.filterByPlanSectionLead}>
|
|
126
|
-
<Heading variant="h3">Filter by plan</Heading>
|
|
127
|
-
<Switch value={filterByPlan} onValueChange={value => {
|
|
128
|
-
setFilterByPlan(value);
|
|
129
|
-
if (!value) {
|
|
130
|
-
setSelectedPlanId(undefined);
|
|
131
|
-
}
|
|
132
|
-
}} disabled={!selectedTeamIds.length}/>
|
|
133
|
-
</View>
|
|
134
|
-
{filterByPlan && (<FilterByPlan teamIds={selectedTeamIds} selectedPlanId={selectedPlanId} onPlanSelect={setSelectedPlanId}/>)}
|
|
135
|
-
</View>
|
|
136
|
-
<Divider />
|
|
137
|
-
{!selectionHasConversation && customAvatarsEnabled && (<>
|
|
138
|
-
<AvatarSelectionRow avatarSelection={avatarSelection}/>
|
|
139
|
-
<Divider />
|
|
140
|
-
</>)}
|
|
141
|
-
<View style={styles.memberSection}>
|
|
142
|
-
<Heading variant="h3">{pluralize(memberCount, 'member')} selected</Heading>
|
|
143
|
-
{hasChildren && (<ChildNotice childMembers={childMembers} showMembers={true} style={styles.banner}/>)}
|
|
144
|
-
{isMemberError && (<Banner appearance="error" description="There was an issue loading team members, please refresh and try again." style={styles.banner}/>)}
|
|
145
|
-
</View>
|
|
146
|
-
</View>);
|
|
93
|
+
return (_jsxs(View, { style: styles.formContent, children: [_jsxs(View, { style: styles.toSection, children: [_jsxs(View, { style: styles.toSectionRow, children: [_jsx(Heading, { variant: "h3", children: "To:" }), _jsx(TextButton, { accessibilityLabel: "Select teams", textStyle: styles.teamCountHeader, onPress: () => {
|
|
94
|
+
Haptic.impactLight();
|
|
95
|
+
navigation.navigate('New', {
|
|
96
|
+
screen: 'ConversationFilterRecipients',
|
|
97
|
+
params: {
|
|
98
|
+
source_app_name: 'Services',
|
|
99
|
+
team_ids: selectedTeamIds,
|
|
100
|
+
team_filter_type: teamFilterType,
|
|
101
|
+
},
|
|
102
|
+
});
|
|
103
|
+
}, children: teamCountHeader })] }), _jsx(View, { style: styles.toSectionRow, children: selectedTeams.map(team => {
|
|
104
|
+
const serviceTypeAcronyms = team.serviceTypeAcronyms.join(', ');
|
|
105
|
+
const label = `${team.teamName} | ${serviceTypeAcronyms}`;
|
|
106
|
+
return (_jsx(View, { style: styles.badgeRow, children: _jsx(Badge, { iconNameRight: "general.x", label: label, onPress: () => removeSelection(team.value.teamId) }) }, team.value.teamId));
|
|
107
|
+
}) })] }), _jsx(Divider, {}), _jsxs(View, { style: styles.filterByPlanSection, children: [_jsxs(View, { style: styles.filterByPlanSectionLead, children: [_jsx(Heading, { variant: "h3", children: "Filter by plan" }), _jsx(Switch, { value: filterByPlan, onValueChange: value => {
|
|
108
|
+
setFilterByPlan(value);
|
|
109
|
+
if (!value) {
|
|
110
|
+
setSelectedPlanId(undefined);
|
|
111
|
+
}
|
|
112
|
+
}, disabled: !selectedTeamIds.length })] }), filterByPlan && (_jsx(FilterByPlan, { teamIds: selectedTeamIds, selectedPlanId: selectedPlanId, onPlanSelect: setSelectedPlanId }))] }), _jsx(Divider, {}), !selectionHasConversation && customAvatarsEnabled && (_jsxs(_Fragment, { children: [_jsx(AvatarSelectionRow, { avatarSelection: avatarSelection }), _jsx(Divider, {})] })), _jsxs(View, { style: styles.memberSection, children: [_jsxs(Heading, { variant: "h3", children: [pluralize(memberCount, 'member'), " selected"] }), hasChildren && (_jsx(ChildNotice, { childMembers: childMembers, showMembers: true, style: styles.banner })), isMemberError && (_jsx(Banner, { appearance: "error", description: "There was an issue loading team members, please refresh and try again.", style: styles.banner }))] })] }));
|
|
147
113
|
}
|
|
148
114
|
const useStyles = () => {
|
|
149
115
|
const sectionPadding = 16;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"services_form.js","sourceRoot":"","sources":["../../../../src/screens/conversation_new/components/services_form.tsx"],"names":[],"mappings":"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","sourcesContent":["import { StackActions, useNavigation } from '@react-navigation/native'\nimport { uniq } from 'lodash'\nimport React, { useCallback, useEffect, useMemo, useState } from 'react'\nimport { StyleSheet, View } from 'react-native'\nimport { Badge, Banner, ChildNotice, Heading, Switch, TextButton } from '../../../components'\nimport { ActionButton } from '../../../components/display/action_button'\nimport { useApiClient } from '../../../hooks'\nimport { useFindOrCreateServicesConversation } from '../../../hooks/services/use_find_or_create_services_conversation'\nimport { useServicesChatConversationPayload } from '../../../hooks/services/use_services_chat_conversation_payload'\nimport { useServicesTeams } from '../../../hooks/services/use_services_team'\nimport { useTeamMembersForNewConversation } from '../../../hooks/services/use_team_members_for_new_conversation'\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 { useUploadClient } from '../../../hooks/use_upload_client'\nimport { MemberResource } from '../../../types'\nimport { pluralize } from '../../../utils'\nimport { Haptic } from '../../../utils/native_adapters'\nimport { tokens } from '../../../vendor/tapestry/tokens'\nimport { TeamFilterTypes } from '../../conversation_filter_recipients/types'\nimport { AvatarSelectionRow } from './avatar_selection_row'\nimport { FilterByPlan } from './filter_by_plan'\nimport { Divider, FormList } from './form_list'\n\ntype ServicesFormProps = {\n initialTeamIds?: number[]\n initialPlanId?: number\n teamFilterType?: TeamFilterTypes\n avatarSelection?: AvatarUpdatePayload\n}\n\nexport const ServicesForm = ({\n initialTeamIds,\n initialPlanId,\n teamFilterType,\n avatarSelection,\n}: ServicesFormProps) => {\n const styles = useStyles()\n const apiClient = useApiClient()\n const uploadClient = useUploadClient()\n const { featureEnabled } = useFeatures()\n const customAvatarsEnabled = featureEnabled(availableFeatures.custom_conversation_avatars)\n const safetyLockEnabled = featureEnabled(availableFeatures.conversation_safety_lock)\n const [selectedPlanId, setSelectedPlanId] = useState<number | undefined>(initialPlanId)\n const initialState = useMemo(() => uniq(initialTeamIds) || [], [initialTeamIds]) // Uniq here because services can send duplicates in the teams_i_lead response.\n const [selectedTeamIds, setSelectedTeamIds] = useState<number[]>(initialState)\n\n // Sync with fresh props when they change (from navigation)\n useEffect(() => {\n setSelectedTeamIds(initialState)\n setSelectedPlanId(initialPlanId)\n }, [initialState, initialPlanId])\n\n const removeSelection = useCallback(\n (teamId: number) => {\n setSelectedTeamIds(selectedTeamIds.filter(id => id !== teamId))\n },\n [selectedTeamIds]\n )\n\n const [filerByPlan, setFilterByPlan] = useState(false)\n\n const activePlanId = filerByPlan ? selectedPlanId : undefined\n\n const { payload, isLoading: isLoadingPayload } = useServicesChatConversationPayload({\n teamIds: selectedTeamIds,\n planId: activePlanId,\n enabled: safetyLockEnabled,\n })\n\n const { warnings, validationPending } = useConversationValidate({\n payload,\n isLoadingPayload,\n enabled: safetyLockEnabled,\n })\n\n const { members, isError: isMemberError } = useTeamMembersForNewConversation({\n teamIds: selectedTeamIds,\n planId: selectedPlanId,\n })\n const adultMembers = useMemo(() => members.filter(member => !member.child), [members])\n\n const navigation = useNavigation()\n const {\n mutate: createConversation,\n isPending,\n selectionHasConversation,\n isLoadingConversationCheck,\n } = useFindOrCreateServicesConversation({\n teamIds: selectedTeamIds,\n planId: activePlanId,\n onSuccess: (conversation, { created }) => {\n navigation.getParent()?.goBack()\n navigation.dispatch(\n StackActions.push('Conversation', {\n conversation_id: conversation.id,\n })\n )\n if (created) {\n Haptic.notificationSuccess()\n if (avatarSelection && avatarSelection.kind !== 'clear') {\n patchConversationAvatar(apiClient, uploadClient, conversation.id, avatarSelection)\n }\n }\n },\n })\n\n return (\n <View style={styles.formContainer}>\n <FormList\n memberData={adultMembers}\n FormContent={\n <FormContent\n selectedTeamIds={selectedTeamIds}\n removeSelection={removeSelection}\n selectedPlanId={selectedPlanId}\n setSelectedPlanId={setSelectedPlanId}\n filterByPlan={filerByPlan}\n setFilterByPlan={setFilterByPlan}\n members={members}\n isMemberError={isMemberError}\n teamFilterType={teamFilterType}\n avatarSelection={avatarSelection}\n selectionHasConversation={selectionHasConversation}\n customAvatarsEnabled={customAvatarsEnabled}\n />\n }\n />\n <ActionButton\n disabled={\n !selectedTeamIds.length ||\n isPending ||\n isLoadingConversationCheck ||\n validationPending ||\n warnings.length > 0\n }\n title={selectionHasConversation ? 'Open conversation' : 'Start conversation'}\n onPress={createConversation}\n infoText=\"Conversation will be automatically updated if any members are added or removed from included teams.\"\n loading={isLoadingConversationCheck}\n warnings={warnings}\n />\n </View>\n )\n}\n\ninterface FormContentProps {\n selectedTeamIds: number[]\n removeSelection: (teamId: number) => void\n selectedPlanId?: number\n setSelectedPlanId: (planId: number | undefined) => void\n filterByPlan: boolean\n setFilterByPlan: (value: boolean) => void\n members: MemberResource[]\n isMemberError: boolean\n teamFilterType?: TeamFilterTypes\n avatarSelection?: AvatarUpdatePayload\n selectionHasConversation: boolean\n customAvatarsEnabled: boolean\n}\n\nfunction FormContent({\n selectedTeamIds,\n removeSelection,\n selectedPlanId,\n setSelectedPlanId,\n filterByPlan,\n setFilterByPlan,\n members,\n isMemberError,\n teamFilterType,\n avatarSelection,\n selectionHasConversation,\n customAvatarsEnabled,\n}: FormContentProps) {\n const navigation = useNavigation()\n const servicesTeams = useServicesTeams()\n const selectedTeams = useMemo(() => {\n return servicesTeams.filter(team => selectedTeamIds.includes(team.value.teamId))\n }, [selectedTeamIds, servicesTeams])\n\n const styles = useStyles()\n const teamCountHeader = pluralize(selectedTeamIds.length, 'team')\n const memberCount = members.length\n const childMembers = useMemo(() => members.filter(member => member.child), [members])\n const hasChildren = childMembers.length > 0\n\n filterByPlan = filterByPlan && !!selectedTeamIds.length\n\n return (\n <View style={styles.formContent}>\n <View style={styles.toSection}>\n <View style={styles.toSectionRow}>\n <Heading variant=\"h3\">To:</Heading>\n <TextButton\n accessibilityLabel=\"Select teams\"\n textStyle={styles.teamCountHeader}\n onPress={() => {\n Haptic.impactLight()\n navigation.navigate('New', {\n screen: 'ConversationFilterRecipients',\n params: {\n source_app_name: 'Services',\n team_ids: selectedTeamIds,\n team_filter_type: teamFilterType,\n },\n })\n }}\n >\n {teamCountHeader}\n </TextButton>\n </View>\n <View style={styles.toSectionRow}>\n {selectedTeams.map(team => {\n const serviceTypeAcronyms = team.serviceTypeAcronyms.join(', ')\n const label = `${team.teamName} | ${serviceTypeAcronyms}`\n\n return (\n <View key={team.value.teamId} style={styles.badgeRow}>\n <Badge\n iconNameRight=\"general.x\"\n label={label}\n onPress={() => removeSelection(team.value.teamId)}\n />\n </View>\n )\n })}\n </View>\n </View>\n <Divider />\n <View style={styles.filterByPlanSection}>\n <View style={styles.filterByPlanSectionLead}>\n <Heading variant=\"h3\">Filter by plan</Heading>\n <Switch\n value={filterByPlan}\n onValueChange={value => {\n setFilterByPlan(value)\n if (!value) {\n setSelectedPlanId(undefined)\n }\n }}\n disabled={!selectedTeamIds.length}\n />\n </View>\n {filterByPlan && (\n <FilterByPlan\n teamIds={selectedTeamIds}\n selectedPlanId={selectedPlanId}\n onPlanSelect={setSelectedPlanId}\n />\n )}\n </View>\n <Divider />\n {!selectionHasConversation && customAvatarsEnabled && (\n <>\n <AvatarSelectionRow avatarSelection={avatarSelection} />\n <Divider />\n </>\n )}\n <View style={styles.memberSection}>\n <Heading variant=\"h3\">{pluralize(memberCount, 'member')} selected</Heading>\n {hasChildren && (\n <ChildNotice childMembers={childMembers} showMembers={true} style={styles.banner} />\n )}\n {isMemberError && (\n <Banner\n appearance=\"error\"\n description=\"There was an issue loading team members, please refresh and try again.\"\n style={styles.banner}\n />\n )}\n </View>\n </View>\n )\n}\n\nconst useStyles = () => {\n const sectionPadding = 16\n\n return StyleSheet.create({\n formContainer: {\n flex: 1,\n },\n formContent: {\n paddingBottom: sectionPadding,\n flex: 1,\n },\n toSection: {\n padding: sectionPadding,\n gap: 8,\n },\n toSectionRow: {\n flexDirection: 'row',\n gap: 8,\n alignItems: 'baseline',\n flexWrap: 'wrap',\n },\n badgeRow: {\n flexDirection: 'row',\n },\n groupName: {\n fontSize: 18,\n },\n filterByPlanSection: {\n padding: sectionPadding,\n gap: 12,\n },\n filterByPlanSectionLead: {\n flexDirection: 'row',\n gap: 8,\n justifyContent: 'space-between',\n alignItems: 'center',\n },\n filterByPlanSectionRow: {\n flexDirection: 'row',\n gap: 8,\n },\n titleInput: {\n fontSize: 18,\n },\n memberSection: {\n padding: sectionPadding,\n paddingBottom: 0,\n },\n banner: {\n marginTop: 16,\n },\n teamCountHeader: {\n fontSize: tokens.fontSizeLg,\n },\n })\n}\n"]}
|
|
1
|
+
{"version":3,"file":"services_form.js","sourceRoot":"","sources":["../../../../src/screens/conversation_new/components/services_form.tsx"],"names":[],"mappings":"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","sourcesContent":["import { StackActions, useNavigation } from '@react-navigation/native'\nimport { uniq } from 'lodash'\nimport React, { useCallback, useEffect, useMemo, useState } from 'react'\nimport { StyleSheet, View } from 'react-native'\nimport { Badge, Banner, ChildNotice, Heading, Switch, TextButton } from '../../../components'\nimport { ActionButton } from '../../../components/display/action_button'\nimport { useApiClient } from '../../../hooks'\nimport { useFindOrCreateServicesConversation } from '../../../hooks/services/use_find_or_create_services_conversation'\nimport { useServicesChatConversationPayload } from '../../../hooks/services/use_services_chat_conversation_payload'\nimport { useServicesTeams } from '../../../hooks/services/use_services_team'\nimport { useTeamMembersForNewConversation } from '../../../hooks/services/use_team_members_for_new_conversation'\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 { useUploadClient } from '../../../hooks/use_upload_client'\nimport { MemberResource } from '../../../types'\nimport { pluralize } from '../../../utils'\nimport { Haptic } from '../../../utils/native_adapters'\nimport { tokens } from '../../../vendor/tapestry/tokens'\nimport { TeamFilterTypes } from '../../conversation_filter_recipients/types'\nimport { AvatarSelectionRow } from './avatar_selection_row'\nimport { FilterByPlan } from './filter_by_plan'\nimport { Divider, FormList } from './form_list'\n\ntype ServicesFormProps = {\n initialTeamIds?: number[]\n initialPlanId?: number\n teamFilterType?: TeamFilterTypes\n avatarSelection?: AvatarUpdatePayload\n}\n\nexport const ServicesForm = ({\n initialTeamIds,\n initialPlanId,\n teamFilterType,\n avatarSelection,\n}: ServicesFormProps) => {\n const styles = useStyles()\n const apiClient = useApiClient()\n const uploadClient = useUploadClient()\n const { featureEnabled } = useFeatures()\n const customAvatarsEnabled = featureEnabled(availableFeatures.custom_conversation_avatars)\n const safetyLockEnabled = featureEnabled(availableFeatures.conversation_safety_lock)\n const [selectedPlanId, setSelectedPlanId] = useState<number | undefined>(initialPlanId)\n const initialState = useMemo(() => uniq(initialTeamIds) || [], [initialTeamIds]) // Uniq here because services can send duplicates in the teams_i_lead response.\n const [selectedTeamIds, setSelectedTeamIds] = useState<number[]>(initialState)\n\n // Sync with fresh props when they change (from navigation)\n useEffect(() => {\n setSelectedTeamIds(initialState)\n setSelectedPlanId(initialPlanId)\n }, [initialState, initialPlanId])\n\n const removeSelection = useCallback(\n (teamId: number) => {\n setSelectedTeamIds(selectedTeamIds.filter(id => id !== teamId))\n },\n [selectedTeamIds]\n )\n\n const [filerByPlan, setFilterByPlan] = useState(false)\n\n const activePlanId = filerByPlan ? selectedPlanId : undefined\n\n const { payload, isLoading: isLoadingPayload } = useServicesChatConversationPayload({\n teamIds: selectedTeamIds,\n planId: activePlanId,\n enabled: safetyLockEnabled,\n })\n\n const { warnings, validationPending } = useConversationValidate({\n payload,\n isLoadingPayload,\n enabled: safetyLockEnabled,\n })\n\n const { members, isError: isMemberError } = useTeamMembersForNewConversation({\n teamIds: selectedTeamIds,\n planId: selectedPlanId,\n })\n const adultMembers = useMemo(() => members.filter(member => !member.child), [members])\n\n const navigation = useNavigation()\n const {\n mutate: createConversation,\n isPending,\n selectionHasConversation,\n isLoadingConversationCheck,\n } = useFindOrCreateServicesConversation({\n teamIds: selectedTeamIds,\n planId: activePlanId,\n onSuccess: (conversation, { created }) => {\n navigation.getParent()?.goBack()\n navigation.dispatch(\n StackActions.push('Conversation', {\n conversation_id: conversation.id,\n })\n )\n if (created) {\n Haptic.notificationSuccess()\n if (avatarSelection && avatarSelection.kind !== 'clear') {\n patchConversationAvatar(apiClient, uploadClient, conversation.id, avatarSelection)\n }\n }\n },\n })\n\n return (\n <View style={styles.formContainer}>\n <FormList\n memberData={adultMembers}\n FormContent={\n <FormContent\n selectedTeamIds={selectedTeamIds}\n removeSelection={removeSelection}\n selectedPlanId={selectedPlanId}\n setSelectedPlanId={setSelectedPlanId}\n filterByPlan={filerByPlan}\n setFilterByPlan={setFilterByPlan}\n members={members}\n isMemberError={isMemberError}\n teamFilterType={teamFilterType}\n avatarSelection={avatarSelection}\n selectionHasConversation={selectionHasConversation}\n customAvatarsEnabled={customAvatarsEnabled}\n />\n }\n />\n <ActionButton\n disabled={\n !selectedTeamIds.length ||\n isPending ||\n isLoadingConversationCheck ||\n validationPending ||\n warnings.length > 0\n }\n title={selectionHasConversation ? 'Open conversation' : 'Start conversation'}\n onPress={createConversation}\n infoText=\"Conversation will be automatically updated if any members are added or removed from included teams.\"\n loading={isLoadingConversationCheck}\n warnings={warnings}\n />\n </View>\n )\n}\n\ninterface FormContentProps {\n selectedTeamIds: number[]\n removeSelection: (teamId: number) => void\n selectedPlanId?: number\n setSelectedPlanId: (planId: number | undefined) => void\n filterByPlan: boolean\n setFilterByPlan: (value: boolean) => void\n members: MemberResource[]\n isMemberError: boolean\n teamFilterType?: TeamFilterTypes\n avatarSelection?: AvatarUpdatePayload\n selectionHasConversation: boolean\n customAvatarsEnabled: boolean\n}\n\nfunction FormContent({\n selectedTeamIds,\n removeSelection,\n selectedPlanId,\n setSelectedPlanId,\n filterByPlan,\n setFilterByPlan,\n members,\n isMemberError,\n teamFilterType,\n avatarSelection,\n selectionHasConversation,\n customAvatarsEnabled,\n}: FormContentProps) {\n const navigation = useNavigation()\n const servicesTeams = useServicesTeams()\n const selectedTeams = useMemo(() => {\n return servicesTeams.filter(team => selectedTeamIds.includes(team.value.teamId))\n }, [selectedTeamIds, servicesTeams])\n\n const styles = useStyles()\n const teamCountHeader = pluralize(selectedTeamIds.length, 'team')\n const memberCount = members.length\n const childMembers = useMemo(() => members.filter(member => member.child), [members])\n const hasChildren = childMembers.length > 0\n\n filterByPlan = filterByPlan && !!selectedTeamIds.length\n\n return (\n <View style={styles.formContent}>\n <View style={styles.toSection}>\n <View style={styles.toSectionRow}>\n <Heading variant=\"h3\">To:</Heading>\n <TextButton\n accessibilityLabel=\"Select teams\"\n textStyle={styles.teamCountHeader}\n onPress={() => {\n Haptic.impactLight()\n navigation.navigate('New', {\n screen: 'ConversationFilterRecipients',\n params: {\n source_app_name: 'Services',\n team_ids: selectedTeamIds,\n team_filter_type: teamFilterType,\n },\n })\n }}\n >\n {teamCountHeader}\n </TextButton>\n </View>\n <View style={styles.toSectionRow}>\n {selectedTeams.map(team => {\n const serviceTypeAcronyms = team.serviceTypeAcronyms.join(', ')\n const label = `${team.teamName} | ${serviceTypeAcronyms}`\n\n return (\n <View key={team.value.teamId} style={styles.badgeRow}>\n <Badge\n iconNameRight=\"general.x\"\n label={label}\n onPress={() => removeSelection(team.value.teamId)}\n />\n </View>\n )\n })}\n </View>\n </View>\n <Divider />\n <View style={styles.filterByPlanSection}>\n <View style={styles.filterByPlanSectionLead}>\n <Heading variant=\"h3\">Filter by plan</Heading>\n <Switch\n value={filterByPlan}\n onValueChange={value => {\n setFilterByPlan(value)\n if (!value) {\n setSelectedPlanId(undefined)\n }\n }}\n disabled={!selectedTeamIds.length}\n />\n </View>\n {filterByPlan && (\n <FilterByPlan\n teamIds={selectedTeamIds}\n selectedPlanId={selectedPlanId}\n onPlanSelect={setSelectedPlanId}\n />\n )}\n </View>\n <Divider />\n {!selectionHasConversation && customAvatarsEnabled && (\n <>\n <AvatarSelectionRow avatarSelection={avatarSelection} />\n <Divider />\n </>\n )}\n <View style={styles.memberSection}>\n <Heading variant=\"h3\">{pluralize(memberCount, 'member')} selected</Heading>\n {hasChildren && (\n <ChildNotice childMembers={childMembers} showMembers={true} style={styles.banner} />\n )}\n {isMemberError && (\n <Banner\n appearance=\"error\"\n description=\"There was an issue loading team members, please refresh and try again.\"\n style={styles.banner}\n />\n )}\n </View>\n </View>\n )\n}\n\nconst useStyles = () => {\n const sectionPadding = 16\n\n return StyleSheet.create({\n formContainer: {\n flex: 1,\n },\n formContent: {\n paddingBottom: sectionPadding,\n flex: 1,\n },\n toSection: {\n padding: sectionPadding,\n gap: 8,\n },\n toSectionRow: {\n flexDirection: 'row',\n gap: 8,\n alignItems: 'baseline',\n flexWrap: 'wrap',\n },\n badgeRow: {\n flexDirection: 'row',\n },\n groupName: {\n fontSize: 18,\n },\n filterByPlanSection: {\n padding: sectionPadding,\n gap: 12,\n },\n filterByPlanSectionLead: {\n flexDirection: 'row',\n gap: 8,\n justifyContent: 'space-between',\n alignItems: 'center',\n },\n filterByPlanSectionRow: {\n flexDirection: 'row',\n gap: 8,\n },\n titleInput: {\n fontSize: 18,\n },\n memberSection: {\n padding: sectionPadding,\n paddingBottom: 0,\n },\n banner: {\n marginTop: 16,\n },\n teamCountHeader: {\n fontSize: tokens.fontSizeLg,\n },\n })\n}\n"]}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export declare const SourceAppErrorCard: () => import("react").JSX.Element;
|
|
1
|
+
export declare const SourceAppErrorCard: () => import("react/jsx-runtime").JSX.Element;
|
|
2
2
|
//# sourceMappingURL=source_app_error_card.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"source_app_error_card.d.ts","sourceRoot":"","sources":["../../../../src/screens/conversation_new/components/source_app_error_card.tsx"],"names":[],"mappings":"AAGA,eAAO,MAAM,kBAAkB,
|
|
1
|
+
{"version":3,"file":"source_app_error_card.d.ts","sourceRoot":"","sources":["../../../../src/screens/conversation_new/components/source_app_error_card.tsx"],"names":[],"mappings":"AAGA,eAAO,MAAM,kBAAkB,+CAY9B,CAAA"}
|
|
@@ -1,10 +1,9 @@
|
|
|
1
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
1
2
|
import { StyleSheet, View } from 'react-native';
|
|
2
3
|
import { Banner } from '../../../components';
|
|
3
4
|
export const SourceAppErrorCard = () => {
|
|
4
5
|
const styles = useStyles();
|
|
5
|
-
return (
|
|
6
|
-
<Banner appearance="error" heading="Invalid Source App" description="Something went wrong, try going back and selecting the recipient again."/>
|
|
7
|
-
</View>);
|
|
6
|
+
return (_jsx(View, { style: styles.container, children: _jsx(Banner, { appearance: "error", heading: "Invalid Source App", description: "Something went wrong, try going back and selecting the recipient again." }) }));
|
|
8
7
|
};
|
|
9
8
|
const useStyles = () => {
|
|
10
9
|
return StyleSheet.create({
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"source_app_error_card.js","sourceRoot":"","sources":["../../../../src/screens/conversation_new/components/source_app_error_card.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,IAAI,EAAE,MAAM,cAAc,CAAA;AAC/C,OAAO,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAA;AAE5C,MAAM,CAAC,MAAM,kBAAkB,GAAG,GAAG,EAAE;IACrC,MAAM,MAAM,GAAG,SAAS,EAAE,CAAA;IAE1B,OAAO,CACL,
|
|
1
|
+
{"version":3,"file":"source_app_error_card.js","sourceRoot":"","sources":["../../../../src/screens/conversation_new/components/source_app_error_card.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,UAAU,EAAE,IAAI,EAAE,MAAM,cAAc,CAAA;AAC/C,OAAO,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAA;AAE5C,MAAM,CAAC,MAAM,kBAAkB,GAAG,GAAG,EAAE;IACrC,MAAM,MAAM,GAAG,SAAS,EAAE,CAAA;IAE1B,OAAO,CACL,KAAC,IAAI,IAAC,KAAK,EAAE,MAAM,CAAC,SAAS,YAC3B,KAAC,MAAM,IACL,UAAU,EAAC,OAAO,EAClB,OAAO,EAAC,oBAAoB,EAC5B,WAAW,EAAC,yEAAyE,GACrF,GACG,CACR,CAAA;AACH,CAAC,CAAA;AAED,MAAM,SAAS,GAAG,GAAG,EAAE;IACrB,OAAO,UAAU,CAAC,MAAM,CAAC;QACvB,SAAS,EAAE;YACT,OAAO,EAAE,EAAE;SACZ;KACF,CAAC,CAAA;AACJ,CAAC,CAAA","sourcesContent":["import { StyleSheet, View } from 'react-native'\nimport { Banner } from '../../../components'\n\nexport const SourceAppErrorCard = () => {\n const styles = useStyles()\n\n return (\n <View style={styles.container}>\n <Banner\n appearance=\"error\"\n heading=\"Invalid Source App\"\n description=\"Something went wrong, try going back and selecting the recipient again.\"\n />\n </View>\n )\n}\n\nconst useStyles = () => {\n return StyleSheet.create({\n container: {\n padding: 16,\n },\n })\n}\n"]}
|
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
import { StaticScreenProps } from '@react-navigation/native';
|
|
2
|
-
import React from 'react';
|
|
3
2
|
import type { AvatarUpdatePayload } from '../../hooks/use_conversation_avatar_update';
|
|
4
3
|
import { AppName } from '../../types/resources/app_name';
|
|
5
4
|
import { GraphId } from '../../types/resources/group_resource';
|
|
@@ -14,6 +13,6 @@ type ConversationNewScreenProps = StaticScreenProps<{
|
|
|
14
13
|
group_source_app_name?: AppName;
|
|
15
14
|
avatar_selection?: AvatarUpdatePayload;
|
|
16
15
|
}>;
|
|
17
|
-
export declare const ConversationNewScreen: ({ route }: ConversationNewScreenProps) =>
|
|
16
|
+
export declare const ConversationNewScreen: ({ route }: ConversationNewScreenProps) => import("react/jsx-runtime").JSX.Element;
|
|
18
17
|
export {};
|
|
19
18
|
//# sourceMappingURL=conversation_new_screen.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"conversation_new_screen.d.ts","sourceRoot":"","sources":["../../../src/screens/conversation_new/conversation_new_screen.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAA;
|
|
1
|
+
{"version":3,"file":"conversation_new_screen.d.ts","sourceRoot":"","sources":["../../../src/screens/conversation_new/conversation_new_screen.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAA;AAE5D,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,4CAA4C,CAAA;AACrF,OAAO,EAAE,OAAO,EAAE,MAAM,gCAAgC,CAAA;AACxD,OAAO,EAAE,OAAO,EAAE,MAAM,sCAAsC,CAAA;AAC9D,OAAO,EAAE,eAAe,EAAE,MAAM,yCAAyC,CAAA;AAKzE,KAAK,0BAA0B,GAAG,iBAAiB,CAAC;IAClD,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAA;IACnB,gBAAgB,CAAC,EAAE,eAAe,CAAA;IAClC,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,eAAe,EAAE,OAAO,CAAA;IACxB,mBAAmB,CAAC,EAAE,OAAO,CAAA;IAC7B,qBAAqB,CAAC,EAAE,OAAO,CAAA;IAC/B,gBAAgB,CAAC,EAAE,mBAAmB,CAAA;CACvC,CAAC,CAAA;AAEF,eAAO,MAAM,qBAAqB,GAAI,WAAW,0BAA0B,4CAkC1E,CAAA"}
|