@planningcenter/chat-react-native 4.4.1-qa-staging.15 → 4.4.1-qa-staging.17
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/reply_shadow_message.js +120 -104
- package/build/components/conversation/reply_shadow_message.js.map +1 -1
- package/build/components/conversations/conversations.d.ts.map +1 -1
- package/build/components/conversations/conversations.js +55 -39
- package/build/components/conversations/conversations.js.map +1 -1
- package/build/components/conversations/conversations_blank_state.d.ts.map +1 -1
- package/build/components/conversations/conversations_blank_state.js +55 -12
- package/build/components/conversations/conversations_blank_state.js.map +1 -1
- package/build/components/conversations/filtered_results_footer.d.ts +2 -0
- package/build/components/conversations/filtered_results_footer.d.ts.map +1 -0
- package/build/components/conversations/filtered_results_footer.js +77 -0
- package/build/components/conversations/filtered_results_footer.js.map +1 -0
- package/build/hooks/use_clear_conversation_filters.d.ts +2 -0
- package/build/hooks/use_clear_conversation_filters.d.ts.map +1 -0
- package/build/hooks/use_clear_conversation_filters.js +24 -0
- package/build/hooks/use_clear_conversation_filters.js.map +1 -0
- package/build/hooks/use_reduce_motion.d.ts.map +1 -1
- package/build/hooks/use_reduce_motion.js +2 -1
- package/build/hooks/use_reduce_motion.js.map +1 -1
- package/build/screens/conversation_filters/components/conversation_filters.d.ts.map +1 -1
- package/build/screens/conversation_filters/components/conversation_filters.js +8 -5
- package/build/screens/conversation_filters/components/conversation_filters.js.map +1 -1
- package/build/screens/conversation_filters_screen.d.ts.map +1 -1
- package/build/screens/conversation_filters_screen.js +47 -42
- package/build/screens/conversation_filters_screen.js.map +1 -1
- package/package.json +3 -3
- package/src/__tests__/screens/conversation_filters/components/conversation_filters.test.tsx +129 -0
- package/src/__tests__/screens/conversation_new/components/services_form.test.tsx +1 -0
- package/src/components/conversation/reply_shadow_message.tsx +1 -2
- package/src/components/conversations/__tests__/conversations_blank_state.test.tsx +72 -0
- package/src/components/conversations/conversations.tsx +13 -2
- package/src/components/conversations/conversations_blank_state.tsx +21 -0
- package/src/components/conversations/filtered_results_footer.tsx +38 -0
- package/src/hooks/__tests__/use_reduce_motion.test.tsx +13 -1
- package/src/hooks/use_clear_conversation_filters.ts +15 -0
- package/src/hooks/use_reduce_motion.ts +2 -1
- package/src/screens/conversation_filters/components/conversation_filters.tsx +8 -5
- package/src/screens/conversation_filters_screen.tsx +5 -1
|
@@ -8,6 +8,7 @@ import {
|
|
|
8
8
|
useHasDirectMessages,
|
|
9
9
|
useTheme,
|
|
10
10
|
} from '../../../hooks'
|
|
11
|
+
import { useFilterDropdownEnabled } from '../../../hooks/use_filter_dropdown_enabled'
|
|
11
12
|
import { FilterContext, useFilterContext } from '../context/conversation_filter_context'
|
|
12
13
|
import { FilterTypes } from '../filter_types'
|
|
13
14
|
import { useGroupsToFilter, useTeamsToFilter } from '../hooks/filters'
|
|
@@ -59,6 +60,7 @@ export const ConversationFilters = () => {
|
|
|
59
60
|
const { setScrollOffset, params } = useContext(FilterContext)
|
|
60
61
|
const { chat_group_graph_id, group_source_app_name = '', show_direct_messages } = params
|
|
61
62
|
|
|
63
|
+
const filterDropdownEnabled = useFilterDropdownEnabled()
|
|
62
64
|
const directMessagesEligible = useDirectMessagesEligible()
|
|
63
65
|
const hasDirectMessages = useHasDirectMessages()
|
|
64
66
|
const canFilterByDMs = directMessagesEligible && hasDirectMessages
|
|
@@ -101,8 +103,9 @@ export const ConversationFilters = () => {
|
|
|
101
103
|
const groupItemData = selectActiveWithFirst(5)(groupItems)
|
|
102
104
|
const teamItemData = selectActiveWithFirst(5)(teamItems)
|
|
103
105
|
|
|
104
|
-
const
|
|
105
|
-
const
|
|
106
|
+
const showAppFilters = !filterDropdownEnabled && groupItems.length > 0 && teamItems.length > 0
|
|
107
|
+
const showDMFilter = !filterDropdownEnabled && canFilterByDMs
|
|
108
|
+
const showGeneralFilters = showAppFilters || showDMFilter
|
|
106
109
|
|
|
107
110
|
const listData: SectionListData = [
|
|
108
111
|
{
|
|
@@ -114,7 +117,7 @@ export const ConversationFilters = () => {
|
|
|
114
117
|
data: { filter: FilterTypes.All, isActive: activeFilter === FilterTypes.All },
|
|
115
118
|
},
|
|
116
119
|
{
|
|
117
|
-
type:
|
|
120
|
+
type: showAppFilters ? SectionTypes.filter : SectionTypes.hidden,
|
|
118
121
|
data: {
|
|
119
122
|
filter: FilterTypes.Groups,
|
|
120
123
|
group_source_app_name: 'groups',
|
|
@@ -122,7 +125,7 @@ export const ConversationFilters = () => {
|
|
|
122
125
|
},
|
|
123
126
|
},
|
|
124
127
|
{
|
|
125
|
-
type:
|
|
128
|
+
type: showAppFilters ? SectionTypes.filter : SectionTypes.hidden,
|
|
126
129
|
data: {
|
|
127
130
|
filter: FilterTypes.Teams,
|
|
128
131
|
group_source_app_name: 'services',
|
|
@@ -130,7 +133,7 @@ export const ConversationFilters = () => {
|
|
|
130
133
|
},
|
|
131
134
|
},
|
|
132
135
|
{
|
|
133
|
-
type:
|
|
136
|
+
type: showDMFilter ? SectionTypes.filter : SectionTypes.hidden,
|
|
134
137
|
data: {
|
|
135
138
|
filter: FilterTypes.DirectMessages,
|
|
136
139
|
show_direct_messages: true,
|
|
@@ -6,6 +6,7 @@ import React, { useCallback } from 'react'
|
|
|
6
6
|
import { LayoutChangeEvent, Platform, StyleSheet, useWindowDimensions, View } from 'react-native'
|
|
7
7
|
import { useSafeAreaInsets } from 'react-native-safe-area-context'
|
|
8
8
|
import FormSheet, { getFormSheetScreenOptions } from '../components/primitive/form_sheet'
|
|
9
|
+
import { useFilterDropdownEnabled } from '../hooks/use_filter_dropdown_enabled'
|
|
9
10
|
import { ConversationFilters } from './conversation_filters/components/conversation_filters'
|
|
10
11
|
import {
|
|
11
12
|
FilterProvider,
|
|
@@ -96,6 +97,7 @@ export const ConversationFiltersScreen = (_props: ConversationFiltersScreenProps
|
|
|
96
97
|
const FormSheetHeaderWithContext = () => {
|
|
97
98
|
const { resetFilter, applyFilters, setFormSheetHeaderHeight } = useFilterContext()
|
|
98
99
|
const route = useRoute<RouteProp<ConversationFiltersScreenProps['route']>>()
|
|
100
|
+
const filterDropdownEnabled = useFilterDropdownEnabled()
|
|
99
101
|
const styles = useStyles()
|
|
100
102
|
|
|
101
103
|
const handleFormSheetHeaderLayout = useCallback(
|
|
@@ -108,7 +110,9 @@ const FormSheetHeaderWithContext = () => {
|
|
|
108
110
|
return (
|
|
109
111
|
<View onLayout={handleFormSheetHeaderLayout}>
|
|
110
112
|
<FormSheet.Header style={styles.header}>
|
|
111
|
-
<FormSheet.HeaderTitle>
|
|
113
|
+
<FormSheet.HeaderTitle>
|
|
114
|
+
{filterDropdownEnabled ? 'More filters' : 'Filters'}
|
|
115
|
+
</FormSheet.HeaderTitle>
|
|
112
116
|
<FormSheet.HeaderActions>
|
|
113
117
|
<FormSheet.HeaderTextButton onPress={resetFilter}>Reset</FormSheet.HeaderTextButton>
|
|
114
118
|
<FormSheet.HeaderButton title="Apply" onPress={() => applyFilters(route.params)} />
|