@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.
- package/build/hooks/groups/use_group_members_for_new_conversation.d.ts +2 -1
- package/build/hooks/groups/use_group_members_for_new_conversation.d.ts.map +1 -1
- package/build/hooks/groups/use_group_members_for_new_conversation.js +4 -2
- package/build/hooks/groups/use_group_members_for_new_conversation.js.map +1 -1
- package/build/hooks/services/use_team_members_for_new_conversation.d.ts.map +1 -1
- package/build/hooks/services/use_team_members_for_new_conversation.js +1 -0
- package/build/hooks/services/use_team_members_for_new_conversation.js.map +1 -1
- package/build/index.d.ts +1 -1
- package/build/index.js +1 -1
- package/build/index.js.map +1 -1
- package/build/navigation/index.d.ts +5 -0
- package/build/navigation/index.d.ts.map +1 -1
- package/build/navigation/index.js +5 -0
- package/build/navigation/index.js.map +1 -1
- package/build/screens/conversation_new/components/groups_form.d.ts.map +1 -1
- package/build/screens/conversation_new/components/groups_form.js +9 -4
- package/build/screens/conversation_new/components/groups_form.js.map +1 -1
- package/build/screens/conversations/components/list_header_component.js +3 -3
- package/build/screens/conversations/components/list_header_component.js.map +1 -1
- package/build/screens/conversations/conversations_more_actions_screen.d.ts +3 -0
- package/build/screens/conversations/conversations_more_actions_screen.d.ts.map +1 -0
- package/build/screens/conversations/conversations_more_actions_screen.js +35 -0
- package/build/screens/conversations/conversations_more_actions_screen.js.map +1 -0
- package/build/screens/design_system_screen.d.ts.map +1 -1
- package/build/screens/design_system_screen.js +2 -0
- package/build/screens/design_system_screen.js.map +1 -1
- package/build/types/resources/groups/groups_member_resource_with_person.d.ts +1 -0
- package/build/types/resources/groups/groups_member_resource_with_person.d.ts.map +1 -1
- package/build/types/resources/groups/groups_member_resource_with_person.js.map +1 -1
- package/build/types/resources/member.d.ts +1 -0
- package/build/types/resources/member.d.ts.map +1 -1
- package/build/types/resources/member.js.map +1 -1
- package/build/utils/upload_uri.d.ts +1 -1
- package/package.json +2 -2
- package/src/hooks/groups/use_group_members_for_new_conversation.ts +10 -2
- package/src/hooks/services/use_team_members_for_new_conversation.ts +1 -0
- package/src/index.tsx +1 -1
- package/src/navigation/index.tsx +8 -0
- package/src/screens/conversation_new/components/groups_form.tsx +11 -3
- package/src/screens/conversations/components/list_header_component.tsx +5 -5
- package/src/screens/conversations/conversations_more_actions_screen.tsx +51 -0
- package/src/screens/design_system_screen.tsx +2 -0
- package/src/types/resources/groups/groups_member_resource_with_person.ts +1 -0
- 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
|
|
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
|
|
71
|
-
navigation.navigate('
|
|
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.
|
|
143
|
-
onPress={
|
|
144
|
-
accessibilityLabel="
|
|
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')
|