@planningcenter/chat-react-native 3.30.0-rc.5 → 3.30.0-rc.7

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (44) hide show
  1. package/build/hooks/groups/use_group_members_for_new_conversation.d.ts +2 -1
  2. package/build/hooks/groups/use_group_members_for_new_conversation.d.ts.map +1 -1
  3. package/build/hooks/groups/use_group_members_for_new_conversation.js +4 -2
  4. package/build/hooks/groups/use_group_members_for_new_conversation.js.map +1 -1
  5. package/build/hooks/services/use_team_members_for_new_conversation.d.ts.map +1 -1
  6. package/build/hooks/services/use_team_members_for_new_conversation.js +1 -0
  7. package/build/hooks/services/use_team_members_for_new_conversation.js.map +1 -1
  8. package/build/index.d.ts +1 -1
  9. package/build/index.js +1 -1
  10. package/build/index.js.map +1 -1
  11. package/build/navigation/index.d.ts +5 -0
  12. package/build/navigation/index.d.ts.map +1 -1
  13. package/build/navigation/index.js +5 -0
  14. package/build/navigation/index.js.map +1 -1
  15. package/build/screens/conversation_new/components/groups_form.d.ts.map +1 -1
  16. package/build/screens/conversation_new/components/groups_form.js +9 -4
  17. package/build/screens/conversation_new/components/groups_form.js.map +1 -1
  18. package/build/screens/conversations/components/list_header_component.js +3 -3
  19. package/build/screens/conversations/components/list_header_component.js.map +1 -1
  20. package/build/screens/conversations/conversations_more_actions_screen.d.ts +3 -0
  21. package/build/screens/conversations/conversations_more_actions_screen.d.ts.map +1 -0
  22. package/build/screens/conversations/conversations_more_actions_screen.js +35 -0
  23. package/build/screens/conversations/conversations_more_actions_screen.js.map +1 -0
  24. package/build/screens/design_system_screen.d.ts.map +1 -1
  25. package/build/screens/design_system_screen.js +2 -0
  26. package/build/screens/design_system_screen.js.map +1 -1
  27. package/build/types/resources/groups/groups_member_resource_with_person.d.ts +1 -0
  28. package/build/types/resources/groups/groups_member_resource_with_person.d.ts.map +1 -1
  29. package/build/types/resources/groups/groups_member_resource_with_person.js.map +1 -1
  30. package/build/types/resources/member.d.ts +1 -0
  31. package/build/types/resources/member.d.ts.map +1 -1
  32. package/build/types/resources/member.js.map +1 -1
  33. package/build/utils/upload_uri.d.ts +1 -1
  34. package/package.json +2 -2
  35. package/src/hooks/groups/use_group_members_for_new_conversation.ts +10 -2
  36. package/src/hooks/services/use_team_members_for_new_conversation.ts +1 -0
  37. package/src/index.tsx +1 -1
  38. package/src/navigation/index.tsx +8 -0
  39. package/src/screens/conversation_new/components/groups_form.tsx +11 -3
  40. package/src/screens/conversations/components/list_header_component.tsx +5 -5
  41. package/src/screens/conversations/conversations_more_actions_screen.tsx +51 -0
  42. package/src/screens/design_system_screen.tsx +2 -0
  43. package/src/types/resources/groups/groups_member_resource_with_person.ts +1 -0
  44. package/src/types/resources/member.ts +1 -0
@@ -44,9 +44,13 @@ export const GroupsForm = ({ groupId, chat_group_graph_id }: GroupsFormProps) =>
44
44
  app: 'groups',
45
45
  })
46
46
 
47
- const groupMemberships = useGroupMembersForNewConversation({ id: groupId })
48
-
49
47
  const activeGenderId = genderFilterEnabled ? genderId : null
48
+ const activeGenderValue = genderFilterEnabled ? genderValue : null
49
+
50
+ const groupMemberships = useGroupMembersForNewConversation({
51
+ id: groupId,
52
+ gender: activeGenderValue,
53
+ })
50
54
 
51
55
  const handleGenderToggle = (enabled: boolean) => {
52
56
  const displayLabel = genderValue ? genderDisplayLabel(genderValue) : ''
@@ -101,6 +105,7 @@ export const GroupsForm = ({ groupId, chat_group_graph_id }: GroupsFormProps) =>
101
105
  genderFetching={genderFetching}
102
106
  onGenderToggle={handleGenderToggle}
103
107
  groupMemberships={groupMemberships}
108
+ filteredMemberCount={groupMemberships.adultMembers.length}
104
109
  />
105
110
  }
106
111
  />
@@ -124,6 +129,7 @@ interface FormContentProps {
124
129
  genderFetching: boolean
125
130
  onGenderToggle: (enabled: boolean) => void
126
131
  groupMemberships: GroupMembersForNewConversationResult
132
+ filteredMemberCount: number
127
133
  }
128
134
 
129
135
  function FormContent({
@@ -136,6 +142,7 @@ function FormContent({
136
142
  genderFetching,
137
143
  onGenderToggle,
138
144
  groupMemberships,
145
+ filteredMemberCount,
139
146
  }: FormContentProps) {
140
147
  const styles = useStyles()
141
148
  const inputRef = useRef<TextInput>(null)
@@ -150,7 +157,8 @@ function FormContent({
150
157
 
151
158
  const childMembers = groupMemberships.childMembers
152
159
  const hasChildren = childMembers.length > 0
153
- const memberHeaderLabel = `${pluralize(membershipsCount, 'member')} selected`
160
+ const displayCount = genderFilterEnabled ? filteredMemberCount : membershipsCount
161
+ const memberHeaderLabel = `${pluralize(displayCount, 'member')} selected`
154
162
 
155
163
  const showMemberError = groupMemberships.isError
156
164
 
@@ -67,8 +67,8 @@ export const ListHeaderComponent = () => {
67
67
  }
68
68
  }, [navigation, route.params, entryMode])
69
69
 
70
- const handleGetHelp = useCallback(() => {
71
- navigation.navigate('GetHelp', { type: 'chat' })
70
+ const handleMoreOptions = useCallback(() => {
71
+ navigation.navigate('ConversationsMoreActions')
72
72
  }, [navigation])
73
73
 
74
74
  const handleOpenConversationFilters = useCallback(() => {
@@ -139,9 +139,9 @@ export const ListHeaderComponent = () => {
139
139
  )}
140
140
  {appName !== 'services' && (
141
141
  <ListHeaderActionButton
142
- name="general.outlinedInfoCircle"
143
- onPress={handleGetHelp}
144
- accessibilityLabel="Get help"
142
+ name="general.threeDots"
143
+ onPress={handleMoreOptions}
144
+ accessibilityLabel="More options"
145
145
  maxFontSizeMultiplier={MAX_FONT_SIZE_MULTIPLIER_LANDMARK}
146
146
  />
147
147
  )}
@@ -0,0 +1,51 @@
1
+ import { useNavigation } from '@react-navigation/native'
2
+ import { useCallback } from 'react'
3
+ import { StyleSheet } from 'react-native'
4
+ import FormSheet, { getFormSheetScreenOptions } from '../../components/primitive/form_sheet'
5
+
6
+ export const ConversationsMoreActionsScreenOptions = getFormSheetScreenOptions({
7
+ headerTitle: 'Conversation actions',
8
+ })
9
+
10
+ export function ConversationsMoreActionsScreen() {
11
+ const navigation = useNavigation()
12
+
13
+ const handleGetHelp = useCallback(() => {
14
+ navigation.goBack()
15
+ requestAnimationFrame(() => {
16
+ navigation.navigate('GetHelp', { type: 'chat' })
17
+ })
18
+ }, [navigation])
19
+
20
+ const handleChatNotifications = useCallback(() => {
21
+ navigation.goBack()
22
+ requestAnimationFrame(() => {
23
+ navigation.navigate('NotificationSettings', {})
24
+ })
25
+ }, [navigation])
26
+
27
+ const styles = useStyles()
28
+
29
+ return (
30
+ <FormSheet.Root contentStyle={styles.formSheetContent}>
31
+ <FormSheet.Action
32
+ iconName="general.cog"
33
+ title="Chat notifications"
34
+ onPress={handleChatNotifications}
35
+ />
36
+ <FormSheet.Action
37
+ iconName="general.outlinedInfoCircle"
38
+ title="Get help"
39
+ onPress={handleGetHelp}
40
+ />
41
+ </FormSheet.Root>
42
+ )
43
+ }
44
+
45
+ const useStyles = () => {
46
+ return StyleSheet.create({
47
+ formSheetContent: {
48
+ paddingTop: 16,
49
+ },
50
+ })
51
+ }
@@ -64,6 +64,7 @@ const personAdult = {
64
64
  avatar: URL.avatar,
65
65
  badges: [{ title: 'Conversation owner' }, { title: 'Leader' }],
66
66
  child: false,
67
+ gender: null,
67
68
  }
68
69
 
69
70
  const personChild = {
@@ -73,6 +74,7 @@ const personChild = {
73
74
  avatar: URL.two_avatars[1],
74
75
  badges: [],
75
76
  child: true,
77
+ gender: null,
76
78
  }
77
79
 
78
80
  const buttonPress = () => Alert.alert('Button clicked')
@@ -7,6 +7,7 @@ export interface GroupsGroupMemberResource {
7
7
  lastName: string
8
8
  avatarUrl: string
9
9
  child: boolean
10
+ gender: string | null
10
11
  id: number
11
12
  type: 'Person'
12
13
  }
@@ -5,6 +5,7 @@ export interface MemberResource {
5
5
  avatar: string
6
6
  badges: MemberBadge[]
7
7
  child: boolean
8
+ gender: string | null
8
9
  role?: string
9
10
  }
10
11