@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.
Files changed (38) hide show
  1. package/build/components/conversation/reply_shadow_message.js +120 -104
  2. package/build/components/conversation/reply_shadow_message.js.map +1 -1
  3. package/build/components/conversations/conversations.d.ts.map +1 -1
  4. package/build/components/conversations/conversations.js +55 -39
  5. package/build/components/conversations/conversations.js.map +1 -1
  6. package/build/components/conversations/conversations_blank_state.d.ts.map +1 -1
  7. package/build/components/conversations/conversations_blank_state.js +55 -12
  8. package/build/components/conversations/conversations_blank_state.js.map +1 -1
  9. package/build/components/conversations/filtered_results_footer.d.ts +2 -0
  10. package/build/components/conversations/filtered_results_footer.d.ts.map +1 -0
  11. package/build/components/conversations/filtered_results_footer.js +77 -0
  12. package/build/components/conversations/filtered_results_footer.js.map +1 -0
  13. package/build/hooks/use_clear_conversation_filters.d.ts +2 -0
  14. package/build/hooks/use_clear_conversation_filters.d.ts.map +1 -0
  15. package/build/hooks/use_clear_conversation_filters.js +24 -0
  16. package/build/hooks/use_clear_conversation_filters.js.map +1 -0
  17. package/build/hooks/use_reduce_motion.d.ts.map +1 -1
  18. package/build/hooks/use_reduce_motion.js +2 -1
  19. package/build/hooks/use_reduce_motion.js.map +1 -1
  20. package/build/screens/conversation_filters/components/conversation_filters.d.ts.map +1 -1
  21. package/build/screens/conversation_filters/components/conversation_filters.js +8 -5
  22. package/build/screens/conversation_filters/components/conversation_filters.js.map +1 -1
  23. package/build/screens/conversation_filters_screen.d.ts.map +1 -1
  24. package/build/screens/conversation_filters_screen.js +47 -42
  25. package/build/screens/conversation_filters_screen.js.map +1 -1
  26. package/package.json +3 -3
  27. package/src/__tests__/screens/conversation_filters/components/conversation_filters.test.tsx +129 -0
  28. package/src/__tests__/screens/conversation_new/components/services_form.test.tsx +1 -0
  29. package/src/components/conversation/reply_shadow_message.tsx +1 -2
  30. package/src/components/conversations/__tests__/conversations_blank_state.test.tsx +72 -0
  31. package/src/components/conversations/conversations.tsx +13 -2
  32. package/src/components/conversations/conversations_blank_state.tsx +21 -0
  33. package/src/components/conversations/filtered_results_footer.tsx +38 -0
  34. package/src/hooks/__tests__/use_reduce_motion.test.tsx +13 -1
  35. package/src/hooks/use_clear_conversation_filters.ts +15 -0
  36. package/src/hooks/use_reduce_motion.ts +2 -1
  37. package/src/screens/conversation_filters/components/conversation_filters.tsx +8 -5
  38. 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 hideAppFilters = groupItems.length < 1 || teamItems.length < 1
105
- const showGeneralFilters = !hideAppFilters || canFilterByDMs
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: hideAppFilters ? SectionTypes.hidden : SectionTypes.filter,
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: hideAppFilters ? SectionTypes.hidden : SectionTypes.filter,
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: canFilterByDMs ? SectionTypes.filter : SectionTypes.hidden,
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>Filters</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)} />