@planningcenter/chat-react-native 4.0.1-rc.2 → 4.0.1-rc.3

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.
@@ -1 +1 @@
1
- {"version":3,"file":"chat_group_badge.d.ts","sourceRoot":"","sources":["../../../../src/screens/conversations/components/chat_group_badge.tsx"],"names":[],"mappings":"AAQA,eAAO,MAAM,cAAc,GAAI,0BAA0B;IAAE,oBAAoB,EAAE,MAAM,CAAA;CAAE,mDAwBxF,CAAA"}
1
+ {"version":3,"file":"chat_group_badge.d.ts","sourceRoot":"","sources":["../../../../src/screens/conversations/components/chat_group_badge.tsx"],"names":[],"mappings":"AAQA,eAAO,MAAM,cAAc,GAAI,0BAA0B;IAAE,oBAAoB,EAAE,MAAM,CAAA;CAAE,mDAyBxF,CAAA"}
@@ -76,6 +76,7 @@ export const ChatGroupBadge = t0 => {
76
76
  if ($[9] !== navigation) {
77
77
  t8 = () => {
78
78
  navigation.setParams({
79
+ title: undefined,
79
80
  chat_group_graph_id: undefined,
80
81
  group_source_app_name: undefined
81
82
  });
@@ -1 +1 @@
1
- {"version":3,"file":"chat_group_badge.js","names":["useNavigation","useRoute","React","useCallback","StyleSheet","View","Badge","useApiGet","jsx","_jsx","ChatGroupBadge","t0","$","_c","rowPaddingHorizontal","t1","styles","useStyles","navigation","route","t2","params","chat_group_graph_id","t3","t4","Symbol","for","fields","Group","t5","url","data","app","t6","t7","enabled","group","t8","setParams","undefined","group_source_app_name","handleBadgePress","t9","name","t10","iconNameRight","label","t11","row","style","children","create","flexDirection","paddingHorizontal"],"sources":["../../../../src/screens/conversations/components/chat_group_badge.tsx"],"sourcesContent":["import { RouteProp, useNavigation, useRoute } from '@react-navigation/native'\nimport React, { useCallback } from 'react'\nimport { StyleSheet, View } from 'react-native'\nimport { Badge } from '../../../components'\nimport { useApiGet } from '../../../hooks/use_api'\nimport { GroupResource } from '../../../types/resources/group_resource'\nimport { ConversationsScreenProps } from '../conversations_screen'\n\nexport const ChatGroupBadge = ({ rowPaddingHorizontal }: { rowPaddingHorizontal: number }) => {\n const styles = useStyles({ rowPaddingHorizontal })\n const navigation = useNavigation()\n const route = useRoute<RouteProp<ConversationsScreenProps['route']>>()\n const { chat_group_graph_id } = route.params || {}\n const { data: group } = useApiGet<GroupResource>(\n { url: `/me/groups/${chat_group_graph_id}`, data: { fields: { Group: [] } }, app: 'chat' },\n { enabled: !!chat_group_graph_id }\n )\n\n const handleBadgePress = useCallback(() => {\n navigation.setParams({\n chat_group_graph_id: undefined,\n group_source_app_name: undefined,\n })\n }, [navigation])\n\n if (!group) return null\n\n return (\n <View style={styles.row}>\n <Badge iconNameRight=\"general.x\" label={group?.name || ''} onPress={handleBadgePress} />\n </View>\n )\n}\n\nconst useStyles = ({ rowPaddingHorizontal }: { rowPaddingHorizontal: number }) => {\n return StyleSheet.create({\n row: {\n flexDirection: 'row',\n paddingHorizontal: rowPaddingHorizontal,\n },\n })\n}\n"],"mappings":";AAAA,SAAoBA,aAAa,EAAEC,QAAQ,QAAQ,0BAA0B;AAC7E,OAAOC,KAAK,IAAIC,WAAW,QAAQ,OAAO;AAC1C,SAASC,UAAU,EAAEC,IAAI,QAAQ,cAAc;AAC/C,SAASC,KAAK,QAAQ,qBAAqB;AAC3C,SAASC,SAAS,QAAQ,wBAAwB;AAAA,SAAAC,GAAA,IAAAC,IAAA;AAIlD,OAAO,MAAMC,cAAc,GAAGC,EAAA;EAAA,MAAAC,CAAA,GAAAC,EAAA;EAAC;IAAAC;EAAA,IAAAH,EAA0D;EAAA,IAAAI,EAAA;EAAA,IAAAH,CAAA,QAAAE,oBAAA;IAC9DC,EAAA;MAAAD;IAAuB,CAAC;IAAAF,CAAA,MAAAE,oBAAA;IAAAF,CAAA,MAAAG,EAAA;EAAA;IAAAA,EAAA,GAAAH,CAAA;EAAA;EAAjD,MAAAI,MAAA,GAAeC,SAAS,CAACF,EAAwB,CAAC;EAClD,MAAAG,UAAA,GAAmBlB,aAAa,CAAC,CAAC;EAClC,MAAAmB,KAAA,GAAclB,QAAQ,CAA+C,CAAC;EAAA,IAAAmB,EAAA;EAAA,IAAAR,CAAA,QAAAO,KAAA,CAAAE,MAAA;IACtCD,EAAA,GAAAD,KAAK,CAAAE,MAAa,IAAlB,CAAiB,CAAC;IAAAT,CAAA,MAAAO,KAAA,CAAAE,MAAA;IAAAT,CAAA,MAAAQ,EAAA;EAAA;IAAAA,EAAA,GAAAR,CAAA;EAAA;EAAlD;IAAAU;EAAA,IAAgCF,EAAkB;EAEzC,MAAAG,EAAA,iBAAcD,mBAAmB,EAAE;EAAA,IAAAE,EAAA;EAAA,IAAAZ,CAAA,QAAAa,MAAA,CAAAC,GAAA;IAAQF,EAAA;MAAAG,MAAA,EAAU;QAAAC,KAAA,EAAS;MAAG;IAAE,CAAC;IAAAhB,CAAA,MAAAY,EAAA;EAAA;IAAAA,EAAA,GAAAZ,CAAA;EAAA;EAAA,IAAAiB,EAAA;EAAA,IAAAjB,CAAA,QAAAW,EAAA;IAA3EM,EAAA;MAAAC,GAAA,EAAOP,EAAmC;MAAAQ,IAAA,EAAQP,EAAyB;MAAAQ,GAAA,EAAO;IAAO,CAAC;IAAApB,CAAA,MAAAW,EAAA;IAAAX,CAAA,MAAAiB,EAAA;EAAA;IAAAA,EAAA,GAAAjB,CAAA;EAAA;EAC/E,MAAAqB,EAAA,IAAC,CAACX,mBAAmB;EAAA,IAAAY,EAAA;EAAA,IAAAtB,CAAA,QAAAqB,EAAA;IAAhCC,EAAA;MAAAC,OAAA,EAAWF;IAAsB,CAAC;IAAArB,CAAA,MAAAqB,EAAA;IAAArB,CAAA,MAAAsB,EAAA;EAAA;IAAAA,EAAA,GAAAtB,CAAA;EAAA;EAFpC;IAAAmB,IAAA,EAAAK;EAAA,IAAwB7B,SAAS,CAC/BsB,EAA0F,EAC1FK,EACF,CAAC;EAAA,IAAAG,EAAA;EAAA,IAAAzB,CAAA,QAAAM,UAAA;IAEoCmB,EAAA,GAAAA,CAAA;MACnCnB,UAAU,CAAAoB,SAAU,CAAC;QAAAhB,mBAAA,EACEiB,SAAS;QAAAC,qBAAA,EACPD;MACzB,CAAC,CAAC;IAAA,CACH;IAAA3B,CAAA,MAAAM,UAAA;IAAAN,CAAA,OAAAyB,EAAA;EAAA;IAAAA,EAAA,GAAAzB,CAAA;EAAA;EALD,MAAA6B,gBAAA,GAAyBJ,EAKT;EAEhB,IAAI,CAACD,KAAK;IAAA,OAAS,IAAI;EAAA;EAIqB,MAAAM,EAAA,GAAAN,KAAK,EAAAO,IAAY,IAAjB,EAAiB;EAAA,IAAAC,GAAA;EAAA,IAAAhC,CAAA,SAAA6B,gBAAA,IAAA7B,CAAA,SAAA8B,EAAA;IAAzDE,GAAA,gBAAAnC,IAAA,CAACH,KAAK;MAAeuC,aAAW,EAAX,WAAW;MAAQC,KAAiB,EAAjBJ,EAAiB;MAAWD,OAAgB,EAAhBA;IAAgB,CAAG,CAAC;IAAA7B,CAAA,OAAA6B,gBAAA;IAAA7B,CAAA,OAAA8B,EAAA;IAAA9B,CAAA,OAAAgC,GAAA;EAAA;IAAAA,GAAA,GAAAhC,CAAA;EAAA;EAAA,IAAAmC,GAAA;EAAA,IAAAnC,CAAA,SAAAI,MAAA,CAAAgC,GAAA,IAAApC,CAAA,SAAAgC,GAAA;IAD1FG,GAAA,gBAAAtC,IAAA,CAACJ,IAAI;MAAQ4C,KAAU,EAAVjC,MAAM,CAAAgC,GAAI;MAAAE,QAAA,EACrBN;IAAwF,CACpF,CAAC;IAAAhC,CAAA,OAAAI,MAAA,CAAAgC,GAAA;IAAApC,CAAA,OAAAgC,GAAA;IAAAhC,CAAA,OAAAmC,GAAA;EAAA;IAAAA,GAAA,GAAAnC,CAAA;EAAA;EAAA,OAFPmC,GAEO;AAAA,CAEV;AAED,MAAM9B,SAAS,GAAGA,CAAC;EAAEH;AAAuD,CAAC,KAAK;EAChF,OAAOV,UAAU,CAAC+C,MAAM,CAAC;IACvBH,GAAG,EAAE;MACHI,aAAa,EAAE,KAAK;MACpBC,iBAAiB,EAAEvC;IACrB;EACF,CAAC,CAAC;AACJ,CAAC","ignoreList":[]}
1
+ {"version":3,"file":"chat_group_badge.js","names":["useNavigation","useRoute","React","useCallback","StyleSheet","View","Badge","useApiGet","jsx","_jsx","ChatGroupBadge","t0","$","_c","rowPaddingHorizontal","t1","styles","useStyles","navigation","route","t2","params","chat_group_graph_id","t3","t4","Symbol","for","fields","Group","t5","url","data","app","t6","t7","enabled","group","t8","setParams","title","undefined","group_source_app_name","handleBadgePress","t9","name","t10","iconNameRight","label","t11","row","style","children","create","flexDirection","paddingHorizontal"],"sources":["../../../../src/screens/conversations/components/chat_group_badge.tsx"],"sourcesContent":["import { RouteProp, useNavigation, useRoute } from '@react-navigation/native'\nimport React, { useCallback } from 'react'\nimport { StyleSheet, View } from 'react-native'\nimport { Badge } from '../../../components'\nimport { useApiGet } from '../../../hooks/use_api'\nimport { GroupResource } from '../../../types/resources/group_resource'\nimport { ConversationsScreenProps } from '../conversations_screen'\n\nexport const ChatGroupBadge = ({ rowPaddingHorizontal }: { rowPaddingHorizontal: number }) => {\n const styles = useStyles({ rowPaddingHorizontal })\n const navigation = useNavigation()\n const route = useRoute<RouteProp<ConversationsScreenProps['route']>>()\n const { chat_group_graph_id } = route.params || {}\n const { data: group } = useApiGet<GroupResource>(\n { url: `/me/groups/${chat_group_graph_id}`, data: { fields: { Group: [] } }, app: 'chat' },\n { enabled: !!chat_group_graph_id }\n )\n\n const handleBadgePress = useCallback(() => {\n navigation.setParams({\n title: undefined,\n chat_group_graph_id: undefined,\n group_source_app_name: undefined,\n })\n }, [navigation])\n\n if (!group) return null\n\n return (\n <View style={styles.row}>\n <Badge iconNameRight=\"general.x\" label={group?.name || ''} onPress={handleBadgePress} />\n </View>\n )\n}\n\nconst useStyles = ({ rowPaddingHorizontal }: { rowPaddingHorizontal: number }) => {\n return StyleSheet.create({\n row: {\n flexDirection: 'row',\n paddingHorizontal: rowPaddingHorizontal,\n },\n })\n}\n"],"mappings":"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","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"list_header_component.d.ts","sourceRoot":"","sources":["../../../../src/screens/conversations/components/list_header_component.tsx"],"names":[],"mappings":"AAiCA,eAAO,MAAM,mBAAmB,+CAyN/B,CAAA"}
1
+ {"version":3,"file":"list_header_component.d.ts","sourceRoot":"","sources":["../../../../src/screens/conversations/components/list_header_component.tsx"],"names":[],"mappings":"AAkCA,eAAO,MAAM,mBAAmB,+CA8M/B,CAAA"}
@@ -22,7 +22,7 @@ var FilterTypes = /*#__PURE__*/function (FilterTypes) {
22
22
  return FilterTypes;
23
23
  }(FilterTypes || {});
24
24
  export const ListHeaderComponent = () => {
25
- const $ = _c(67);
25
+ const $ = _c(69);
26
26
  const navigation = useNavigation();
27
27
  let t0;
28
28
  if ($[0] === Symbol.for("react.memo_cache_sentinel")) {
@@ -141,52 +141,69 @@ export const ListHeaderComponent = () => {
141
141
  const handleNewConversationNavigation = t5;
142
142
  let t6;
143
143
  if ($[9] !== navigation) {
144
- t6 = () => {
145
- navigation.navigate("ChatSettings", {});
144
+ t6 = params => {
145
+ navigation.setParams({
146
+ title: undefined,
147
+ chat_group_graph_id: undefined,
148
+ group_source_app_name: undefined,
149
+ show_direct_messages: undefined,
150
+ ...params
151
+ });
146
152
  };
147
153
  $[9] = navigation;
148
154
  $[10] = t6;
149
155
  } else {
150
156
  t6 = $[10];
151
157
  }
152
- const handleChatSettings = t6;
158
+ const handleSetFilter = t6;
153
159
  let t7;
154
- if ($[11] !== chat_group_graph_id || $[12] !== group_source_app_name || $[13] !== navigation || $[14] !== show_direct_messages) {
160
+ if ($[11] !== navigation) {
155
161
  t7 = () => {
162
+ navigation.navigate("ChatSettings", {});
163
+ };
164
+ $[11] = navigation;
165
+ $[12] = t7;
166
+ } else {
167
+ t7 = $[12];
168
+ }
169
+ const handleChatSettings = t7;
170
+ let t8;
171
+ if ($[13] !== chat_group_graph_id || $[14] !== group_source_app_name || $[15] !== navigation || $[16] !== show_direct_messages) {
172
+ t8 = () => {
156
173
  navigation.navigate("ConversationFilters", {
157
174
  chat_group_graph_id,
158
175
  group_source_app_name,
159
176
  show_direct_messages
160
177
  });
161
178
  };
162
- $[11] = chat_group_graph_id;
163
- $[12] = group_source_app_name;
164
- $[13] = navigation;
165
- $[14] = show_direct_messages;
166
- $[15] = t7;
179
+ $[13] = chat_group_graph_id;
180
+ $[14] = group_source_app_name;
181
+ $[15] = navigation;
182
+ $[16] = show_direct_messages;
183
+ $[17] = t8;
167
184
  } else {
168
- t7 = $[15];
185
+ t8 = $[17];
169
186
  }
170
- const handleOpenConversationFilters = t7;
171
- let t8;
172
- if ($[16] !== currentPersonCache || $[17] !== markAllRead) {
173
- t8 = () => {
187
+ const handleOpenConversationFilters = t8;
188
+ let t9;
189
+ if ($[18] !== currentPersonCache || $[19] !== markAllRead) {
190
+ t9 = () => {
174
191
  currentPersonCache.update({
175
192
  unreadCount: 0
176
193
  });
177
194
  Haptic.notificationSuccess();
178
195
  markAllRead();
179
196
  };
180
- $[16] = currentPersonCache;
181
- $[17] = markAllRead;
182
- $[18] = t8;
197
+ $[18] = currentPersonCache;
198
+ $[19] = markAllRead;
199
+ $[20] = t9;
183
200
  } else {
184
- t8 = $[18];
201
+ t9 = $[20];
185
202
  }
186
- const handleMarkAllRead = t8;
187
- let t9;
188
- if ($[19] !== active || $[20] !== handleMarkAllRead) {
189
- t9 = () => {
203
+ const handleMarkAllRead = t9;
204
+ let t10;
205
+ if ($[21] !== active || $[22] !== handleMarkAllRead) {
206
+ t10 = () => {
190
207
  if (active === FilterTypes.All) {
191
208
  return handleMarkAllRead();
192
209
  }
@@ -197,60 +214,60 @@ export const ListHeaderComponent = () => {
197
214
  onPress: () => handleMarkAllRead()
198
215
  }]);
199
216
  };
200
- $[19] = active;
201
- $[20] = handleMarkAllRead;
202
- $[21] = t9;
217
+ $[21] = active;
218
+ $[22] = handleMarkAllRead;
219
+ $[23] = t10;
203
220
  } else {
204
- t9 = $[21];
221
+ t10 = $[23];
205
222
  }
206
- const alertMarkAllRead = t9;
223
+ const alertMarkAllRead = t10;
207
224
  const hasSomeSourceFilterCapability = canFilterByTeams || canFilterByGroups;
208
225
  const hasMultiSourceFilterCapabilities = canFilterByTeams && canFilterByGroups;
209
226
  const showFilterRow = hasMultiSourceFilterCapabilities || canFilterByDMs;
210
227
  const shouldShowHeaderFiltersButton = hasSomeSourceFilterCapability && !showFilterRow;
211
228
  const moreFiltersButtonA11yLabel = shouldShowHeaderFiltersButton ? "View filters" : "View more filters";
212
- const t10 = active === FilterTypes.More;
213
- let t11;
214
- if ($[22] !== handleOpenConversationFilters || $[23] !== moreFiltersButtonA11yLabel || $[24] !== t10) {
215
- t11 = {
229
+ const t11 = active === FilterTypes.More;
230
+ let t12;
231
+ if ($[24] !== handleOpenConversationFilters || $[25] !== moreFiltersButtonA11yLabel || $[26] !== t11) {
232
+ t12 = {
216
233
  onPress: handleOpenConversationFilters,
217
- active: t10,
234
+ active: t11,
218
235
  iconNameRight: "general.threeReducingHorizontalBars",
219
236
  accessibilityLabel: moreFiltersButtonA11yLabel
220
237
  };
221
- $[22] = handleOpenConversationFilters;
222
- $[23] = moreFiltersButtonA11yLabel;
223
- $[24] = t10;
224
- $[25] = t11;
238
+ $[24] = handleOpenConversationFilters;
239
+ $[25] = moreFiltersButtonA11yLabel;
240
+ $[26] = t11;
241
+ $[27] = t12;
225
242
  } else {
226
- t11 = $[25];
243
+ t12 = $[27];
227
244
  }
228
- const moreFiltersButtonProps = t11;
229
- let t12;
230
- if ($[26] !== shouldShowHeaderFiltersButton) {
231
- t12 = {
245
+ const moreFiltersButtonProps = t12;
246
+ let t13;
247
+ if ($[28] !== shouldShowHeaderFiltersButton) {
248
+ t13 = {
232
249
  shouldShowHeaderFiltersButton
233
250
  };
234
- $[26] = shouldShowHeaderFiltersButton;
235
- $[27] = t12;
251
+ $[28] = shouldShowHeaderFiltersButton;
252
+ $[29] = t13;
236
253
  } else {
237
- t12 = $[27];
254
+ t13 = $[29];
238
255
  }
239
- const styles = useStyles(t12);
240
- let t13;
241
- if ($[28] === Symbol.for("react.memo_cache_sentinel")) {
242
- t13 = /*#__PURE__*/_jsx(Heading, {
256
+ const styles = useStyles(t13);
257
+ let t14;
258
+ if ($[30] === Symbol.for("react.memo_cache_sentinel")) {
259
+ t14 = /*#__PURE__*/_jsx(Heading, {
243
260
  numberOfLines: 1,
244
261
  variant: "h2",
245
262
  children: "Conversations"
246
263
  });
247
- $[28] = t13;
264
+ $[30] = t14;
248
265
  } else {
249
- t13 = $[28];
266
+ t14 = $[30];
250
267
  }
251
- let t14;
252
- if ($[29] !== alertMarkAllRead || $[30] !== isPending) {
253
- t14 = /*#__PURE__*/_jsx(TextButton, {
268
+ let t15;
269
+ if ($[31] !== alertMarkAllRead || $[32] !== isPending) {
270
+ t15 = /*#__PURE__*/_jsx(TextButton, {
254
271
  onPress: alertMarkAllRead,
255
272
  disabled: isPending,
256
273
  maxFontSizeMultiplier: MAX_FONT_SIZE_MULTIPLIER_LANDMARK,
@@ -258,94 +275,94 @@ export const ListHeaderComponent = () => {
258
275
  accessibilityLargeContentTitle: "Mark all read",
259
276
  children: "Mark all read"
260
277
  });
261
- $[29] = alertMarkAllRead;
262
- $[30] = isPending;
263
- $[31] = t14;
278
+ $[31] = alertMarkAllRead;
279
+ $[32] = isPending;
280
+ $[33] = t15;
264
281
  } else {
265
- t14 = $[31];
282
+ t15 = $[33];
266
283
  }
267
- let t15;
268
- if ($[32] !== styles.titleContainer || $[33] !== t14) {
269
- t15 = /*#__PURE__*/_jsxs(View, {
284
+ let t16;
285
+ if ($[34] !== styles.titleContainer || $[35] !== t15) {
286
+ t16 = /*#__PURE__*/_jsxs(View, {
270
287
  style: styles.titleContainer,
271
- children: [t13, t14]
288
+ children: [t14, t15]
272
289
  });
273
- $[32] = styles.titleContainer;
274
- $[33] = t14;
275
- $[34] = t15;
290
+ $[34] = styles.titleContainer;
291
+ $[35] = t15;
292
+ $[36] = t16;
276
293
  } else {
277
- t15 = $[34];
294
+ t16 = $[36];
278
295
  }
279
- let t16;
280
- if ($[35] !== handleChatSettings) {
281
- t16 = /*#__PURE__*/_jsx(ListHeaderActionButton, {
296
+ let t17;
297
+ if ($[37] !== handleChatSettings) {
298
+ t17 = /*#__PURE__*/_jsx(ListHeaderActionButton, {
282
299
  name: "general.cog",
283
300
  onPress: handleChatSettings,
284
301
  accessibilityLabel: "Chat settings",
285
302
  testID: "conversations-chat-settings-button",
286
303
  maxFontSizeMultiplier: MAX_FONT_SIZE_MULTIPLIER_LANDMARK
287
304
  });
288
- $[35] = handleChatSettings;
289
- $[36] = t16;
305
+ $[37] = handleChatSettings;
306
+ $[38] = t17;
290
307
  } else {
291
- t16 = $[36];
308
+ t17 = $[38];
292
309
  }
293
- let t17;
294
- if ($[37] !== canCreateConversations || $[38] !== handleNewConversationNavigation) {
295
- t17 = canCreateConversations && /*#__PURE__*/_jsx(ListHeaderActionButton, {
310
+ let t18;
311
+ if ($[39] !== canCreateConversations || $[40] !== handleNewConversationNavigation) {
312
+ t18 = canCreateConversations && /*#__PURE__*/_jsx(ListHeaderActionButton, {
296
313
  name: "churchCenter.signups",
297
314
  onPress: handleNewConversationNavigation,
298
315
  accessibilityLabel: "New conversation",
299
316
  testID: "conversations-new-conversation-button",
300
317
  maxFontSizeMultiplier: MAX_FONT_SIZE_MULTIPLIER_LANDMARK
301
318
  });
302
- $[37] = canCreateConversations;
303
- $[38] = handleNewConversationNavigation;
304
- $[39] = t17;
319
+ $[39] = canCreateConversations;
320
+ $[40] = handleNewConversationNavigation;
321
+ $[41] = t18;
305
322
  } else {
306
- t17 = $[39];
323
+ t18 = $[41];
307
324
  }
308
- let t18;
309
- if ($[40] !== moreFiltersButtonProps || $[41] !== shouldShowHeaderFiltersButton) {
310
- t18 = shouldShowHeaderFiltersButton && /*#__PURE__*/_jsx(ToggleButton, {
325
+ let t19;
326
+ if ($[42] !== moreFiltersButtonProps || $[43] !== shouldShowHeaderFiltersButton) {
327
+ t19 = shouldShowHeaderFiltersButton && /*#__PURE__*/_jsx(ToggleButton, {
311
328
  ...moreFiltersButtonProps
312
329
  });
313
- $[40] = moreFiltersButtonProps;
314
- $[41] = shouldShowHeaderFiltersButton;
315
- $[42] = t18;
330
+ $[42] = moreFiltersButtonProps;
331
+ $[43] = shouldShowHeaderFiltersButton;
332
+ $[44] = t19;
316
333
  } else {
317
- t18 = $[42];
334
+ t19 = $[44];
318
335
  }
319
- let t19;
320
- if ($[43] !== styles.actionsContainer || $[44] !== t16 || $[45] !== t17 || $[46] !== t18) {
321
- t19 = /*#__PURE__*/_jsxs(View, {
336
+ let t20;
337
+ if ($[45] !== styles.actionsContainer || $[46] !== t17 || $[47] !== t18 || $[48] !== t19) {
338
+ t20 = /*#__PURE__*/_jsxs(View, {
322
339
  style: styles.actionsContainer,
323
- children: [t16, t17, t18]
340
+ children: [t17, t18, t19]
324
341
  });
325
- $[43] = styles.actionsContainer;
326
- $[44] = t16;
327
- $[45] = t17;
328
- $[46] = t18;
329
- $[47] = t19;
342
+ $[45] = styles.actionsContainer;
343
+ $[46] = t17;
344
+ $[47] = t18;
345
+ $[48] = t19;
346
+ $[49] = t20;
330
347
  } else {
331
- t19 = $[47];
348
+ t20 = $[49];
332
349
  }
333
- let t20;
334
- if ($[48] !== styles.headingRow || $[49] !== t15 || $[50] !== t19) {
335
- t20 = /*#__PURE__*/_jsxs(View, {
350
+ let t21;
351
+ if ($[50] !== styles.headingRow || $[51] !== t16 || $[52] !== t20) {
352
+ t21 = /*#__PURE__*/_jsxs(View, {
336
353
  style: styles.headingRow,
337
- children: [t15, t19]
354
+ children: [t16, t20]
338
355
  });
339
- $[48] = styles.headingRow;
340
- $[49] = t15;
341
- $[50] = t19;
342
- $[51] = t20;
356
+ $[50] = styles.headingRow;
357
+ $[51] = t16;
358
+ $[52] = t20;
359
+ $[53] = t21;
343
360
  } else {
344
- t20 = $[51];
361
+ t21 = $[53];
345
362
  }
346
- let t21;
347
- if ($[52] !== active || $[53] !== canFilterByDMs || $[54] !== canFilterByGroups || $[55] !== canFilterByTeams || $[56] !== moreFiltersButtonProps || $[57] !== navigation || $[58] !== showFilterRow || $[59] !== styles.filterButton || $[60] !== styles.filterRow) {
348
- t21 = showFilterRow && /*#__PURE__*/_jsxs(ScrollView, {
363
+ let t22;
364
+ if ($[54] !== active || $[55] !== canFilterByDMs || $[56] !== canFilterByGroups || $[57] !== canFilterByTeams || $[58] !== handleSetFilter || $[59] !== moreFiltersButtonProps || $[60] !== showFilterRow || $[61] !== styles.filterButton || $[62] !== styles.filterRow) {
365
+ t22 = showFilterRow && /*#__PURE__*/_jsxs(ScrollView, {
349
366
  horizontal: true,
350
367
  showsHorizontalScrollIndicator: false,
351
368
  contentContainerStyle: styles.filterRow,
@@ -353,39 +370,29 @@ export const ListHeaderComponent = () => {
353
370
  children: [/*#__PURE__*/_jsx(ToggleButton, {
354
371
  title: FilterTypes.All,
355
372
  active: active === FilterTypes.All,
356
- onPress: () => navigation.setParams({
357
- chat_group_graph_id: undefined,
358
- group_source_app_name: undefined,
359
- show_direct_messages: undefined
360
- }),
373
+ onPress: () => handleSetFilter({}),
361
374
  accessibilityLabel: "Show all conversations",
362
375
  style: styles.filterButton
363
376
  }), canFilterByGroups && /*#__PURE__*/_jsx(ToggleButton, {
364
377
  title: FilterTypes.Groups,
365
378
  active: active === FilterTypes.Groups,
366
- onPress: () => navigation.setParams({
367
- chat_group_graph_id: undefined,
368
- group_source_app_name: "Groups",
369
- show_direct_messages: undefined
379
+ onPress: () => handleSetFilter({
380
+ group_source_app_name: "Groups"
370
381
  }),
371
382
  accessibilityLabel: "Filter to group conversations",
372
383
  style: styles.filterButton
373
384
  }), canFilterByTeams && /*#__PURE__*/_jsx(ToggleButton, {
374
385
  title: FilterTypes.Teams,
375
386
  active: active === FilterTypes.Teams,
376
- onPress: () => navigation.setParams({
377
- chat_group_graph_id: undefined,
378
- group_source_app_name: "Services",
379
- show_direct_messages: undefined
387
+ onPress: () => handleSetFilter({
388
+ group_source_app_name: "Services"
380
389
  }),
381
390
  accessibilityLabel: "Filter to team conversations",
382
391
  style: styles.filterButton
383
392
  }), canFilterByDMs && /*#__PURE__*/_jsx(ToggleButton, {
384
393
  title: FilterTypes.DMs,
385
394
  active: active === FilterTypes.DMs,
386
- onPress: () => navigation.setParams({
387
- chat_group_graph_id: undefined,
388
- group_source_app_name: undefined,
395
+ onPress: () => handleSetFilter({
389
396
  show_direct_messages: true
390
397
  }),
391
398
  accessibilityLabel: "Filter to direct message conversations",
@@ -394,42 +401,42 @@ export const ListHeaderComponent = () => {
394
401
  ...moreFiltersButtonProps
395
402
  })]
396
403
  });
397
- $[52] = active;
398
- $[53] = canFilterByDMs;
399
- $[54] = canFilterByGroups;
400
- $[55] = canFilterByTeams;
401
- $[56] = moreFiltersButtonProps;
402
- $[57] = navigation;
403
- $[58] = showFilterRow;
404
- $[59] = styles.filterButton;
405
- $[60] = styles.filterRow;
406
- $[61] = t21;
404
+ $[54] = active;
405
+ $[55] = canFilterByDMs;
406
+ $[56] = canFilterByGroups;
407
+ $[57] = canFilterByTeams;
408
+ $[58] = handleSetFilter;
409
+ $[59] = moreFiltersButtonProps;
410
+ $[60] = showFilterRow;
411
+ $[61] = styles.filterButton;
412
+ $[62] = styles.filterRow;
413
+ $[63] = t22;
407
414
  } else {
408
- t21 = $[61];
415
+ t22 = $[63];
409
416
  }
410
- let t22;
411
- if ($[62] === Symbol.for("react.memo_cache_sentinel")) {
412
- t22 = /*#__PURE__*/_jsx(ChatGroupBadge, {
417
+ let t23;
418
+ if ($[64] === Symbol.for("react.memo_cache_sentinel")) {
419
+ t23 = /*#__PURE__*/_jsx(ChatGroupBadge, {
413
420
  rowPaddingHorizontal: ROW_PADDING_HORIZONTAL
414
421
  });
415
- $[62] = t22;
422
+ $[64] = t23;
416
423
  } else {
417
- t22 = $[62];
424
+ t23 = $[64];
418
425
  }
419
- let t23;
420
- if ($[63] !== styles.listHeader || $[64] !== t20 || $[65] !== t21) {
421
- t23 = /*#__PURE__*/_jsxs(View, {
426
+ let t24;
427
+ if ($[65] !== styles.listHeader || $[66] !== t21 || $[67] !== t22) {
428
+ t24 = /*#__PURE__*/_jsxs(View, {
422
429
  style: styles.listHeader,
423
- children: [t20, t21, t22]
430
+ children: [t21, t22, t23]
424
431
  });
425
- $[63] = styles.listHeader;
426
- $[64] = t20;
427
- $[65] = t21;
428
- $[66] = t23;
432
+ $[65] = styles.listHeader;
433
+ $[66] = t21;
434
+ $[67] = t22;
435
+ $[68] = t24;
429
436
  } else {
430
- t23 = $[66];
437
+ t24 = $[68];
431
438
  }
432
- return t23;
439
+ return t24;
433
440
  };
434
441
  const useStyles = t0 => {
435
442
  const $ = _c(3);
@@ -1 +1 @@
1
- {"version":3,"file":"list_header_component.js","names":["useNavigation","useRoute","React","useCallback","useMemo","Alert","ScrollView","StyleSheet","View","Heading","TextButton","ToggleButton","useAtFontScaleBreakpoint","useCanCreateConversations","useCurrentPersonCache","useDirectMessagesEligible","useHasDirectMessages","useNewConversationEntry","useTheme","useMarkAllRead","useCanDisplayGroups","useNewConversationFromFilter","MAX_FONT_SIZE_MULTIPLIER_LANDMARK","Haptic","ChatGroupBadge","ListHeaderActionButton","jsx","_jsx","jsxs","_jsxs","ROW_PADDING_HORIZONTAL","FilterTypes","ListHeaderComponent","$","_c","navigation","t0","Symbol","for","source_app_name","source_type","canFilterByTeams","t1","canFilterByGroups","directMessagesEligible","hasDirectMessages","canFilterByDMs","route","t2","params","chat_group_graph_id","group_source_app_name","t3","show_direct_messages","undefined","currentPersonCache","markAllRead","isPending","canCreateConversations","entryMode","newConversationFromFilter","t4","bb0","More","test","Groups","Teams","DMs","All","active","t5","navigate","screen","handleNewConversationNavigation","t6","handleChatSettings","t7","handleOpenConversationFilters","t8","update","unreadCount","notificationSuccess","handleMarkAllRead","t9","alert","text","onPress","alertMarkAllRead","hasSomeSourceFilterCapability","hasMultiSourceFilterCapabilities","showFilterRow","shouldShowHeaderFiltersButton","moreFiltersButtonA11yLabel","t10","t11","iconNameRight","accessibilityLabel","moreFiltersButtonProps","t12","styles","useStyles","t13","numberOfLines","variant","children","t14","accessibilityShowsLargeContentViewer","accessibilityLargeContentTitle","t15","titleContainer","style","t16","name","testID","t17","t18","t19","actionsContainer","t20","headingRow","t21","filterButton","filterRow","horizontal","showsHorizontalScrollIndicator","contentContainerStyle","accessibilityRole","title","setParams","t22","t23","listHeader","theme","atFontScaleBreakpoint","colors","fillColorNeutral050Base","create","borderBottomWidth","borderBottomColor","paddingBottom","gap","flexDirection","alignItems","justifyContent","paddingHorizontal","markAllReadRow","flexGrow","flex","minWidth"],"sources":["../../../../src/screens/conversations/components/list_header_component.tsx"],"sourcesContent":["import { RouteProp, useNavigation, useRoute } from '@react-navigation/native'\nimport React, { useCallback, useMemo } from 'react'\nimport { Alert, ScrollView, StyleSheet, View } from 'react-native'\nimport { Heading, TextButton, ToggleButton } from '../../../components'\nimport {\n useAtFontScaleBreakpoint,\n useCanCreateConversations,\n useCurrentPersonCache,\n useDirectMessagesEligible,\n useHasDirectMessages,\n useNewConversationEntry,\n useTheme,\n} from '../../../hooks'\nimport { useMarkAllRead } from '../../../hooks/use_conversations_actions'\nimport { useCanDisplayGroups } from '../../../hooks/use_groups'\nimport { useNewConversationFromFilter } from '../../../hooks/use_new_conversation_from_filter'\nimport { GraphId } from '../../../types/resources/group_resource'\nimport { MAX_FONT_SIZE_MULTIPLIER_LANDMARK } from '../../../utils'\nimport { Haptic } from '../../../utils/native_adapters'\nimport { ConversationsScreenProps } from '../conversations_screen'\nimport { ChatGroupBadge } from './chat_group_badge'\nimport { ListHeaderActionButton } from './list_header_action_button'\n\nconst ROW_PADDING_HORIZONTAL = 16\n\nenum FilterTypes {\n All = 'All',\n Groups = 'Groups',\n Teams = 'Teams',\n DMs = 'DMs',\n More = 'More',\n}\n\nexport const ListHeaderComponent = () => {\n const navigation = useNavigation()\n const canFilterByTeams = useCanDisplayGroups({ source_app_name: 'Services', source_type: 'Team' })\n const canFilterByGroups = useCanDisplayGroups({ source_app_name: 'Groups', source_type: 'Group' })\n const directMessagesEligible = useDirectMessagesEligible()\n const hasDirectMessages = useHasDirectMessages()\n const canFilterByDMs = directMessagesEligible && hasDirectMessages\n const route = useRoute<RouteProp<ConversationsScreenProps['route']>>()\n const {\n chat_group_graph_id,\n group_source_app_name = '',\n show_direct_messages,\n } = route.params || {}\n const currentPersonCache = useCurrentPersonCache()\n const { markAllRead, isPending } = useMarkAllRead()\n const canCreateConversations = useCanCreateConversations()\n const entryMode = useNewConversationEntry()\n const newConversationFromFilter = useNewConversationFromFilter(\n chat_group_graph_id as GraphId | undefined\n )\n\n const active: FilterTypes = useMemo(() => {\n if (chat_group_graph_id) {\n return FilterTypes.More\n } else if (/groups/i.test(group_source_app_name)) {\n return FilterTypes.Groups\n } else if (/services/i.test(group_source_app_name)) {\n return FilterTypes.Teams\n } else if (show_direct_messages) {\n return FilterTypes.DMs\n }\n\n return FilterTypes.All\n }, [chat_group_graph_id, group_source_app_name, show_direct_messages])\n\n const handleNewConversationNavigation = useCallback(() => {\n if (newConversationFromFilter || entryMode === 'select_type') {\n return navigation.navigate('ConversationSelectType', {\n ...route.params,\n newConversationFromFilter,\n })\n }\n\n if (entryMode === 'groups') {\n return navigation.navigate('New', {\n screen: 'ConversationSelectGroupRecipients',\n params: { ...route.params },\n })\n }\n\n if (entryMode === 'teams') {\n return navigation.navigate('New', {\n screen: 'ConversationSelectTeamsILeadRecipients',\n params: { ...route.params },\n })\n }\n\n if (entryMode === 'direct_message') {\n return navigation.navigate('New', {\n screen: 'ConversationSelectDirectMessageRecipients',\n params: { ...route.params },\n })\n }\n }, [navigation, route.params, entryMode, newConversationFromFilter])\n\n const handleChatSettings = useCallback(() => {\n navigation.navigate('ChatSettings', {})\n }, [navigation])\n\n const handleOpenConversationFilters = useCallback(() => {\n navigation.navigate('ConversationFilters', {\n chat_group_graph_id,\n group_source_app_name,\n show_direct_messages,\n })\n }, [navigation, chat_group_graph_id, group_source_app_name, show_direct_messages])\n\n const handleMarkAllRead = useCallback(() => {\n currentPersonCache.update({ unreadCount: 0 })\n Haptic.notificationSuccess()\n markAllRead()\n }, [currentPersonCache, markAllRead])\n\n const alertMarkAllRead = useCallback(() => {\n if (active === FilterTypes.All) return handleMarkAllRead()\n\n Alert.alert('Mark all read', 'This includes conversations not shown by the current filter.', [\n { text: 'Cancel' },\n { text: 'OK', onPress: () => handleMarkAllRead() },\n ])\n }, [active, handleMarkAllRead])\n\n const hasSomeSourceFilterCapability = canFilterByTeams || canFilterByGroups\n const hasMultiSourceFilterCapabilities = canFilterByTeams && canFilterByGroups\n const showFilterRow = hasMultiSourceFilterCapabilities || canFilterByDMs\n const shouldShowHeaderFiltersButton = hasSomeSourceFilterCapability && !showFilterRow\n const moreFiltersButtonA11yLabel = shouldShowHeaderFiltersButton\n ? 'View filters'\n : 'View more filters'\n\n const moreFiltersButtonProps = {\n onPress: handleOpenConversationFilters,\n active: active === FilterTypes.More,\n iconNameRight: 'general.threeReducingHorizontalBars' as const,\n accessibilityLabel: moreFiltersButtonA11yLabel,\n }\n\n const styles = useStyles({ shouldShowHeaderFiltersButton })\n\n return (\n <View style={styles.listHeader}>\n <View style={styles.headingRow}>\n <View style={styles.titleContainer}>\n <Heading numberOfLines={1} variant=\"h2\">\n Conversations\n </Heading>\n <TextButton\n onPress={alertMarkAllRead}\n disabled={isPending}\n maxFontSizeMultiplier={MAX_FONT_SIZE_MULTIPLIER_LANDMARK}\n accessibilityShowsLargeContentViewer\n accessibilityLargeContentTitle=\"Mark all read\"\n >\n Mark all read\n </TextButton>\n </View>\n <View style={styles.actionsContainer}>\n <ListHeaderActionButton\n name=\"general.cog\"\n onPress={handleChatSettings}\n accessibilityLabel=\"Chat settings\"\n testID=\"conversations-chat-settings-button\"\n maxFontSizeMultiplier={MAX_FONT_SIZE_MULTIPLIER_LANDMARK}\n />\n {canCreateConversations && (\n <ListHeaderActionButton\n name=\"churchCenter.signups\"\n onPress={handleNewConversationNavigation}\n accessibilityLabel=\"New conversation\"\n testID=\"conversations-new-conversation-button\"\n maxFontSizeMultiplier={MAX_FONT_SIZE_MULTIPLIER_LANDMARK}\n />\n )}\n {shouldShowHeaderFiltersButton && <ToggleButton {...moreFiltersButtonProps} />}\n </View>\n </View>\n {showFilterRow && (\n <ScrollView\n horizontal\n showsHorizontalScrollIndicator={false}\n contentContainerStyle={styles.filterRow}\n accessibilityRole=\"toolbar\"\n >\n <ToggleButton\n title={FilterTypes.All}\n active={active === FilterTypes.All}\n onPress={() =>\n navigation.setParams({\n chat_group_graph_id: undefined,\n group_source_app_name: undefined,\n show_direct_messages: undefined,\n })\n }\n accessibilityLabel=\"Show all conversations\"\n style={styles.filterButton}\n />\n {canFilterByGroups && (\n <ToggleButton\n title={FilterTypes.Groups}\n active={active === FilterTypes.Groups}\n onPress={() =>\n navigation.setParams({\n chat_group_graph_id: undefined,\n group_source_app_name: 'Groups',\n show_direct_messages: undefined,\n })\n }\n accessibilityLabel=\"Filter to group conversations\"\n style={styles.filterButton}\n />\n )}\n {canFilterByTeams && (\n <ToggleButton\n title={FilterTypes.Teams}\n active={active === FilterTypes.Teams}\n onPress={() =>\n navigation.setParams({\n chat_group_graph_id: undefined,\n group_source_app_name: 'Services',\n show_direct_messages: undefined,\n })\n }\n accessibilityLabel=\"Filter to team conversations\"\n style={styles.filterButton}\n />\n )}\n {canFilterByDMs && (\n <ToggleButton\n title={FilterTypes.DMs}\n active={active === FilterTypes.DMs}\n onPress={() =>\n navigation.setParams({\n chat_group_graph_id: undefined,\n group_source_app_name: undefined,\n show_direct_messages: true,\n })\n }\n accessibilityLabel=\"Filter to direct message conversations\"\n style={styles.filterButton}\n />\n )}\n <ToggleButton {...moreFiltersButtonProps} />\n </ScrollView>\n )}\n <ChatGroupBadge rowPaddingHorizontal={ROW_PADDING_HORIZONTAL} />\n </View>\n )\n}\n\nconst useStyles = ({\n shouldShowHeaderFiltersButton,\n}: {\n shouldShowHeaderFiltersButton: boolean\n}) => {\n const theme = useTheme()\n const atFontScaleBreakpoint = useAtFontScaleBreakpoint(\n shouldShowHeaderFiltersButton ? 1.2 : undefined\n )\n\n return StyleSheet.create({\n listHeader: {\n borderBottomWidth: 1,\n borderBottomColor: theme.colors.fillColorNeutral050Base,\n paddingBottom: 16,\n gap: 16,\n },\n headingRow: {\n gap: 12,\n flexDirection: atFontScaleBreakpoint ? 'column' : 'row',\n alignItems: atFontScaleBreakpoint ? 'flex-start' : 'center',\n justifyContent: 'space-between',\n paddingBottom: atFontScaleBreakpoint ? 4 : 0,\n paddingHorizontal: ROW_PADDING_HORIZONTAL,\n },\n titleContainer: {\n gap: 8,\n },\n actionsContainer: {\n flexDirection: 'row',\n gap: 8,\n alignItems: 'center',\n },\n markAllReadRow: {\n paddingBottom: 4,\n },\n filterRow: {\n flexDirection: 'row',\n justifyContent: 'flex-start',\n gap: 8,\n paddingHorizontal: ROW_PADDING_HORIZONTAL,\n flexGrow: 1,\n },\n filterButton: {\n flex: 1,\n minWidth: 65,\n },\n })\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"list_header_component.js","names":["useNavigation","useRoute","React","useCallback","useMemo","Alert","ScrollView","StyleSheet","View","Heading","TextButton","ToggleButton","useAtFontScaleBreakpoint","useCanCreateConversations","useCurrentPersonCache","useDirectMessagesEligible","useHasDirectMessages","useNewConversationEntry","useTheme","useMarkAllRead","useCanDisplayGroups","useNewConversationFromFilter","MAX_FONT_SIZE_MULTIPLIER_LANDMARK","Haptic","ChatGroupBadge","ListHeaderActionButton","jsx","_jsx","jsxs","_jsxs","ROW_PADDING_HORIZONTAL","FilterTypes","ListHeaderComponent","$","_c","navigation","t0","Symbol","for","source_app_name","source_type","canFilterByTeams","t1","canFilterByGroups","directMessagesEligible","hasDirectMessages","canFilterByDMs","route","t2","params","chat_group_graph_id","group_source_app_name","t3","show_direct_messages","undefined","currentPersonCache","markAllRead","isPending","canCreateConversations","entryMode","newConversationFromFilter","t4","bb0","More","test","Groups","Teams","DMs","All","active","t5","navigate","screen","handleNewConversationNavigation","t6","setParams","title","handleSetFilter","t7","handleChatSettings","t8","handleOpenConversationFilters","t9","update","unreadCount","notificationSuccess","handleMarkAllRead","t10","alert","text","onPress","alertMarkAllRead","hasSomeSourceFilterCapability","hasMultiSourceFilterCapabilities","showFilterRow","shouldShowHeaderFiltersButton","moreFiltersButtonA11yLabel","t11","t12","iconNameRight","accessibilityLabel","moreFiltersButtonProps","t13","styles","useStyles","t14","numberOfLines","variant","children","t15","accessibilityShowsLargeContentViewer","accessibilityLargeContentTitle","t16","titleContainer","style","t17","name","testID","t18","t19","t20","actionsContainer","t21","headingRow","t22","filterButton","filterRow","horizontal","showsHorizontalScrollIndicator","contentContainerStyle","accessibilityRole","t23","t24","listHeader","theme","atFontScaleBreakpoint","colors","fillColorNeutral050Base","create","borderBottomWidth","borderBottomColor","paddingBottom","gap","flexDirection","alignItems","justifyContent","paddingHorizontal","markAllReadRow","flexGrow","flex","minWidth"],"sources":["../../../../src/screens/conversations/components/list_header_component.tsx"],"sourcesContent":["import { RouteProp, useNavigation, useRoute } from '@react-navigation/native'\nimport React, { useCallback, useMemo } from 'react'\nimport { Alert, ScrollView, StyleSheet, View } from 'react-native'\nimport { Heading, TextButton, ToggleButton } from '../../../components'\nimport {\n useAtFontScaleBreakpoint,\n useCanCreateConversations,\n useCurrentPersonCache,\n useDirectMessagesEligible,\n useHasDirectMessages,\n useNewConversationEntry,\n useTheme,\n} from '../../../hooks'\nimport { useMarkAllRead } from '../../../hooks/use_conversations_actions'\nimport { useCanDisplayGroups } from '../../../hooks/use_groups'\nimport { useNewConversationFromFilter } from '../../../hooks/use_new_conversation_from_filter'\nimport { GraphId } from '../../../types/resources/group_resource'\nimport { MAX_FONT_SIZE_MULTIPLIER_LANDMARK } from '../../../utils'\nimport { Haptic } from '../../../utils/native_adapters'\nimport { ConversationFiltersParams } from '../../conversation_filters/screen_props'\nimport { ConversationsScreenProps } from '../conversations_screen'\nimport { ChatGroupBadge } from './chat_group_badge'\nimport { ListHeaderActionButton } from './list_header_action_button'\n\nconst ROW_PADDING_HORIZONTAL = 16\n\nenum FilterTypes {\n All = 'All',\n Groups = 'Groups',\n Teams = 'Teams',\n DMs = 'DMs',\n More = 'More',\n}\n\nexport const ListHeaderComponent = () => {\n const navigation = useNavigation()\n const canFilterByTeams = useCanDisplayGroups({ source_app_name: 'Services', source_type: 'Team' })\n const canFilterByGroups = useCanDisplayGroups({ source_app_name: 'Groups', source_type: 'Group' })\n const directMessagesEligible = useDirectMessagesEligible()\n const hasDirectMessages = useHasDirectMessages()\n const canFilterByDMs = directMessagesEligible && hasDirectMessages\n const route = useRoute<RouteProp<ConversationsScreenProps['route']>>()\n const {\n chat_group_graph_id,\n group_source_app_name = '',\n show_direct_messages,\n } = route.params || {}\n const currentPersonCache = useCurrentPersonCache()\n const { markAllRead, isPending } = useMarkAllRead()\n const canCreateConversations = useCanCreateConversations()\n const entryMode = useNewConversationEntry()\n const newConversationFromFilter = useNewConversationFromFilter(\n chat_group_graph_id as GraphId | undefined\n )\n\n const active: FilterTypes = useMemo(() => {\n if (chat_group_graph_id) {\n return FilterTypes.More\n } else if (/groups/i.test(group_source_app_name)) {\n return FilterTypes.Groups\n } else if (/services/i.test(group_source_app_name)) {\n return FilterTypes.Teams\n } else if (show_direct_messages) {\n return FilterTypes.DMs\n }\n\n return FilterTypes.All\n }, [chat_group_graph_id, group_source_app_name, show_direct_messages])\n\n const handleNewConversationNavigation = useCallback(() => {\n if (newConversationFromFilter || entryMode === 'select_type') {\n return navigation.navigate('ConversationSelectType', {\n ...route.params,\n newConversationFromFilter,\n })\n }\n\n if (entryMode === 'groups') {\n return navigation.navigate('New', {\n screen: 'ConversationSelectGroupRecipients',\n params: { ...route.params },\n })\n }\n\n if (entryMode === 'teams') {\n return navigation.navigate('New', {\n screen: 'ConversationSelectTeamsILeadRecipients',\n params: { ...route.params },\n })\n }\n\n if (entryMode === 'direct_message') {\n return navigation.navigate('New', {\n screen: 'ConversationSelectDirectMessageRecipients',\n params: { ...route.params },\n })\n }\n }, [navigation, route.params, entryMode, newConversationFromFilter])\n\n const handleSetFilter = useCallback(\n (params: ConversationFiltersParams) => {\n navigation.setParams({\n title: undefined,\n chat_group_graph_id: undefined,\n group_source_app_name: undefined,\n show_direct_messages: undefined,\n ...params,\n })\n },\n [navigation]\n )\n\n const handleChatSettings = useCallback(() => {\n navigation.navigate('ChatSettings', {})\n }, [navigation])\n\n const handleOpenConversationFilters = useCallback(() => {\n navigation.navigate('ConversationFilters', {\n chat_group_graph_id,\n group_source_app_name,\n show_direct_messages,\n })\n }, [navigation, chat_group_graph_id, group_source_app_name, show_direct_messages])\n\n const handleMarkAllRead = useCallback(() => {\n currentPersonCache.update({ unreadCount: 0 })\n Haptic.notificationSuccess()\n markAllRead()\n }, [currentPersonCache, markAllRead])\n\n const alertMarkAllRead = useCallback(() => {\n if (active === FilterTypes.All) return handleMarkAllRead()\n\n Alert.alert('Mark all read', 'This includes conversations not shown by the current filter.', [\n { text: 'Cancel' },\n { text: 'OK', onPress: () => handleMarkAllRead() },\n ])\n }, [active, handleMarkAllRead])\n\n const hasSomeSourceFilterCapability = canFilterByTeams || canFilterByGroups\n const hasMultiSourceFilterCapabilities = canFilterByTeams && canFilterByGroups\n const showFilterRow = hasMultiSourceFilterCapabilities || canFilterByDMs\n const shouldShowHeaderFiltersButton = hasSomeSourceFilterCapability && !showFilterRow\n const moreFiltersButtonA11yLabel = shouldShowHeaderFiltersButton\n ? 'View filters'\n : 'View more filters'\n\n const moreFiltersButtonProps = {\n onPress: handleOpenConversationFilters,\n active: active === FilterTypes.More,\n iconNameRight: 'general.threeReducingHorizontalBars' as const,\n accessibilityLabel: moreFiltersButtonA11yLabel,\n }\n\n const styles = useStyles({ shouldShowHeaderFiltersButton })\n\n return (\n <View style={styles.listHeader}>\n <View style={styles.headingRow}>\n <View style={styles.titleContainer}>\n <Heading numberOfLines={1} variant=\"h2\">\n Conversations\n </Heading>\n <TextButton\n onPress={alertMarkAllRead}\n disabled={isPending}\n maxFontSizeMultiplier={MAX_FONT_SIZE_MULTIPLIER_LANDMARK}\n accessibilityShowsLargeContentViewer\n accessibilityLargeContentTitle=\"Mark all read\"\n >\n Mark all read\n </TextButton>\n </View>\n <View style={styles.actionsContainer}>\n <ListHeaderActionButton\n name=\"general.cog\"\n onPress={handleChatSettings}\n accessibilityLabel=\"Chat settings\"\n testID=\"conversations-chat-settings-button\"\n maxFontSizeMultiplier={MAX_FONT_SIZE_MULTIPLIER_LANDMARK}\n />\n {canCreateConversations && (\n <ListHeaderActionButton\n name=\"churchCenter.signups\"\n onPress={handleNewConversationNavigation}\n accessibilityLabel=\"New conversation\"\n testID=\"conversations-new-conversation-button\"\n maxFontSizeMultiplier={MAX_FONT_SIZE_MULTIPLIER_LANDMARK}\n />\n )}\n {shouldShowHeaderFiltersButton && <ToggleButton {...moreFiltersButtonProps} />}\n </View>\n </View>\n {showFilterRow && (\n <ScrollView\n horizontal\n showsHorizontalScrollIndicator={false}\n contentContainerStyle={styles.filterRow}\n accessibilityRole=\"toolbar\"\n >\n <ToggleButton\n title={FilterTypes.All}\n active={active === FilterTypes.All}\n onPress={() => handleSetFilter({})}\n accessibilityLabel=\"Show all conversations\"\n style={styles.filterButton}\n />\n {canFilterByGroups && (\n <ToggleButton\n title={FilterTypes.Groups}\n active={active === FilterTypes.Groups}\n onPress={() => handleSetFilter({ group_source_app_name: 'Groups' })}\n accessibilityLabel=\"Filter to group conversations\"\n style={styles.filterButton}\n />\n )}\n {canFilterByTeams && (\n <ToggleButton\n title={FilterTypes.Teams}\n active={active === FilterTypes.Teams}\n onPress={() => handleSetFilter({ group_source_app_name: 'Services' })}\n accessibilityLabel=\"Filter to team conversations\"\n style={styles.filterButton}\n />\n )}\n {canFilterByDMs && (\n <ToggleButton\n title={FilterTypes.DMs}\n active={active === FilterTypes.DMs}\n onPress={() => handleSetFilter({ show_direct_messages: true })}\n accessibilityLabel=\"Filter to direct message conversations\"\n style={styles.filterButton}\n />\n )}\n <ToggleButton {...moreFiltersButtonProps} />\n </ScrollView>\n )}\n <ChatGroupBadge rowPaddingHorizontal={ROW_PADDING_HORIZONTAL} />\n </View>\n )\n}\n\nconst useStyles = ({\n shouldShowHeaderFiltersButton,\n}: {\n shouldShowHeaderFiltersButton: boolean\n}) => {\n const theme = useTheme()\n const atFontScaleBreakpoint = useAtFontScaleBreakpoint(\n shouldShowHeaderFiltersButton ? 1.2 : undefined\n )\n\n return StyleSheet.create({\n listHeader: {\n borderBottomWidth: 1,\n borderBottomColor: theme.colors.fillColorNeutral050Base,\n paddingBottom: 16,\n gap: 16,\n },\n headingRow: {\n gap: 12,\n flexDirection: atFontScaleBreakpoint ? 'column' : 'row',\n alignItems: atFontScaleBreakpoint ? 'flex-start' : 'center',\n justifyContent: 'space-between',\n paddingBottom: atFontScaleBreakpoint ? 4 : 0,\n paddingHorizontal: ROW_PADDING_HORIZONTAL,\n },\n titleContainer: {\n gap: 8,\n },\n actionsContainer: {\n flexDirection: 'row',\n gap: 8,\n alignItems: 'center',\n },\n markAllReadRow: {\n paddingBottom: 4,\n },\n filterRow: {\n flexDirection: 'row',\n justifyContent: 'flex-start',\n gap: 8,\n paddingHorizontal: ROW_PADDING_HORIZONTAL,\n flexGrow: 1,\n },\n filterButton: {\n flex: 1,\n minWidth: 65,\n },\n })\n}\n"],"mappings":"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","ignoreList":[]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@planningcenter/chat-react-native",
3
- "version": "4.0.1-rc.2",
3
+ "version": "4.0.1-rc.3",
4
4
  "description": "",
5
5
  "repository": {
6
6
  "type": "git",
@@ -84,5 +84,5 @@
84
84
  "sf-symbols-typescript": "^2.2.0",
85
85
  "typescript": "~6.0.3"
86
86
  },
87
- "gitHead": "fdaa7465771a6129932de01247cf157ee3864095"
87
+ "gitHead": "23049d1aecdc6f911765889e4c7fd9296806cdcd"
88
88
  }
@@ -0,0 +1,32 @@
1
+ import { fireEvent, render } from '@testing-library/react-native'
2
+ import React from 'react'
3
+ import { ChatGroupBadge } from '../chat_group_badge'
4
+
5
+ const mockSetParams = jest.fn()
6
+
7
+ jest.mock('@react-navigation/native', () => ({
8
+ ...jest.requireActual('@react-navigation/native'),
9
+ useNavigation: () => ({ setParams: mockSetParams }),
10
+ useRoute: () => ({
11
+ params: { chat_group_graph_id: 'Groups/Group/1', title: 'Waco Family Group' },
12
+ }),
13
+ }))
14
+
15
+ jest.mock('../../../../hooks/use_api', () => ({
16
+ useApiGet: () => ({ data: { name: 'Waco Family Group' } }),
17
+ }))
18
+
19
+ describe('ChatGroupBadge', () => {
20
+ it('clears the group filter and its title when dismissed', () => {
21
+ const view = render(<ChatGroupBadge rowPaddingHorizontal={16} />)
22
+
23
+ fireEvent.press(view.getByText('Waco Family Group'))
24
+
25
+ expect(mockSetParams).toHaveBeenCalledTimes(1)
26
+ expect(mockSetParams.mock.calls[0][0]).toStrictEqual({
27
+ title: undefined,
28
+ chat_group_graph_id: undefined,
29
+ group_source_app_name: undefined,
30
+ })
31
+ })
32
+ })
@@ -0,0 +1,66 @@
1
+ import { fireEvent, render } from '@testing-library/react-native'
2
+ import React from 'react'
3
+ import { ListHeaderComponent } from '../list_header_component'
4
+
5
+ const mockSetParams = jest.fn()
6
+
7
+ jest.mock('@react-navigation/native', () => ({
8
+ ...jest.requireActual('@react-navigation/native'),
9
+ useNavigation: () => ({ setParams: mockSetParams, navigate: jest.fn() }),
10
+ useRoute: () => ({
11
+ params: { chat_group_graph_id: 'Groups/Group/1', title: 'Waco Family Group' },
12
+ }),
13
+ }))
14
+
15
+ jest.mock('../../../../hooks/use_groups', () => ({
16
+ useCanDisplayGroups: () => true,
17
+ }))
18
+ jest.mock('../../../../hooks/use_direct_messages_eligible', () => ({
19
+ useDirectMessagesEligible: () => true,
20
+ }))
21
+ jest.mock('../../../../hooks/use_has_direct_messages', () => ({
22
+ useHasDirectMessages: () => true,
23
+ }))
24
+ jest.mock('../../../../hooks/use_chat_permissions', () => ({
25
+ useCanCreateConversations: () => false,
26
+ }))
27
+ jest.mock('../../../../hooks/use_new_conversation_entry', () => ({
28
+ useNewConversationEntry: () => 'select_type',
29
+ }))
30
+ jest.mock('../../../../hooks/use_current_person', () => ({
31
+ useCurrentPersonCache: () => ({ update: jest.fn() }),
32
+ }))
33
+ jest.mock('../../../../hooks/use_conversations_actions', () => ({
34
+ useMarkAllRead: () => ({ markAllRead: jest.fn(), isPending: false }),
35
+ }))
36
+ jest.mock('../../../../hooks/use_new_conversation_from_filter', () => ({
37
+ useNewConversationFromFilter: () => undefined,
38
+ }))
39
+ jest.mock('../../../../hooks/use_api', () => ({
40
+ useApiGet: () => ({ data: undefined }),
41
+ }))
42
+
43
+ const clearedFilter = {
44
+ title: undefined,
45
+ chat_group_graph_id: undefined,
46
+ group_source_app_name: undefined,
47
+ show_direct_messages: undefined,
48
+ }
49
+
50
+ describe('ListHeaderComponent filter toggles', () => {
51
+ beforeEach(() => mockSetParams.mockClear())
52
+
53
+ it.each([
54
+ ['Show all conversations', clearedFilter],
55
+ ['Filter to group conversations', { ...clearedFilter, group_source_app_name: 'Groups' }],
56
+ ['Filter to team conversations', { ...clearedFilter, group_source_app_name: 'Services' }],
57
+ ['Filter to direct message conversations', { ...clearedFilter, show_direct_messages: true }],
58
+ ])('%s drops the group title along with the group filter', (label, expected) => {
59
+ const view = render(<ListHeaderComponent />)
60
+
61
+ fireEvent.press(view.getByLabelText(label))
62
+
63
+ expect(mockSetParams).toHaveBeenCalledTimes(1)
64
+ expect(mockSetParams.mock.calls[0][0]).toStrictEqual(expected)
65
+ })
66
+ })
@@ -18,6 +18,7 @@ export const ChatGroupBadge = ({ rowPaddingHorizontal }: { rowPaddingHorizontal:
18
18
 
19
19
  const handleBadgePress = useCallback(() => {
20
20
  navigation.setParams({
21
+ title: undefined,
21
22
  chat_group_graph_id: undefined,
22
23
  group_source_app_name: undefined,
23
24
  })
@@ -17,6 +17,7 @@ import { useNewConversationFromFilter } from '../../../hooks/use_new_conversatio
17
17
  import { GraphId } from '../../../types/resources/group_resource'
18
18
  import { MAX_FONT_SIZE_MULTIPLIER_LANDMARK } from '../../../utils'
19
19
  import { Haptic } from '../../../utils/native_adapters'
20
+ import { ConversationFiltersParams } from '../../conversation_filters/screen_props'
20
21
  import { ConversationsScreenProps } from '../conversations_screen'
21
22
  import { ChatGroupBadge } from './chat_group_badge'
22
23
  import { ListHeaderActionButton } from './list_header_action_button'
@@ -96,6 +97,19 @@ export const ListHeaderComponent = () => {
96
97
  }
97
98
  }, [navigation, route.params, entryMode, newConversationFromFilter])
98
99
 
100
+ const handleSetFilter = useCallback(
101
+ (params: ConversationFiltersParams) => {
102
+ navigation.setParams({
103
+ title: undefined,
104
+ chat_group_graph_id: undefined,
105
+ group_source_app_name: undefined,
106
+ show_direct_messages: undefined,
107
+ ...params,
108
+ })
109
+ },
110
+ [navigation]
111
+ )
112
+
99
113
  const handleChatSettings = useCallback(() => {
100
114
  navigation.navigate('ChatSettings', {})
101
115
  }, [navigation])
@@ -187,13 +201,7 @@ export const ListHeaderComponent = () => {
187
201
  <ToggleButton
188
202
  title={FilterTypes.All}
189
203
  active={active === FilterTypes.All}
190
- onPress={() =>
191
- navigation.setParams({
192
- chat_group_graph_id: undefined,
193
- group_source_app_name: undefined,
194
- show_direct_messages: undefined,
195
- })
196
- }
204
+ onPress={() => handleSetFilter({})}
197
205
  accessibilityLabel="Show all conversations"
198
206
  style={styles.filterButton}
199
207
  />
@@ -201,13 +209,7 @@ export const ListHeaderComponent = () => {
201
209
  <ToggleButton
202
210
  title={FilterTypes.Groups}
203
211
  active={active === FilterTypes.Groups}
204
- onPress={() =>
205
- navigation.setParams({
206
- chat_group_graph_id: undefined,
207
- group_source_app_name: 'Groups',
208
- show_direct_messages: undefined,
209
- })
210
- }
212
+ onPress={() => handleSetFilter({ group_source_app_name: 'Groups' })}
211
213
  accessibilityLabel="Filter to group conversations"
212
214
  style={styles.filterButton}
213
215
  />
@@ -216,13 +218,7 @@ export const ListHeaderComponent = () => {
216
218
  <ToggleButton
217
219
  title={FilterTypes.Teams}
218
220
  active={active === FilterTypes.Teams}
219
- onPress={() =>
220
- navigation.setParams({
221
- chat_group_graph_id: undefined,
222
- group_source_app_name: 'Services',
223
- show_direct_messages: undefined,
224
- })
225
- }
221
+ onPress={() => handleSetFilter({ group_source_app_name: 'Services' })}
226
222
  accessibilityLabel="Filter to team conversations"
227
223
  style={styles.filterButton}
228
224
  />
@@ -231,13 +227,7 @@ export const ListHeaderComponent = () => {
231
227
  <ToggleButton
232
228
  title={FilterTypes.DMs}
233
229
  active={active === FilterTypes.DMs}
234
- onPress={() =>
235
- navigation.setParams({
236
- chat_group_graph_id: undefined,
237
- group_source_app_name: undefined,
238
- show_direct_messages: true,
239
- })
240
- }
230
+ onPress={() => handleSetFilter({ show_direct_messages: true })}
241
231
  accessibilityLabel="Filter to direct message conversations"
242
232
  style={styles.filterButton}
243
233
  />