@planningcenter/chat-react-native 4.2.0-rc.0 → 4.2.0-rc.2

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 (90) hide show
  1. package/build/components/conversation/message.d.ts +3 -2
  2. package/build/components/conversation/message.d.ts.map +1 -1
  3. package/build/components/conversation/message.js +23 -22
  4. package/build/components/conversation/message.js.map +1 -1
  5. package/build/components/conversation/message_list.d.ts +21 -0
  6. package/build/components/conversation/message_list.d.ts.map +1 -0
  7. package/build/components/conversation/message_list.js +273 -0
  8. package/build/components/conversation/message_list.js.map +1 -0
  9. package/build/components/conversation/message_read_receipts.d.ts +2 -4
  10. package/build/components/conversation/message_read_receipts.d.ts.map +1 -1
  11. package/build/components/conversation/message_read_receipts.js +2 -3
  12. package/build/components/conversation/message_read_receipts.js.map +1 -1
  13. package/build/components/conversation/reply_shadow_message.d.ts +2 -1
  14. package/build/components/conversation/reply_shadow_message.d.ts.map +1 -1
  15. package/build/components/conversation/reply_shadow_message.js +47 -46
  16. package/build/components/conversation/reply_shadow_message.js.map +1 -1
  17. package/build/contexts/api_provider.d.ts.map +1 -1
  18. package/build/contexts/api_provider.js +12 -1
  19. package/build/contexts/api_provider.js.map +1 -1
  20. package/build/hooks/use_conversation_messages.d.ts.map +1 -1
  21. package/build/hooks/use_conversation_messages.js +40 -28
  22. package/build/hooks/use_conversation_messages.js.map +1 -1
  23. package/build/hooks/use_conversation_messages_jolt_events.d.ts.map +1 -1
  24. package/build/hooks/use_conversation_messages_jolt_events.js +6 -1
  25. package/build/hooks/use_conversation_messages_jolt_events.js.map +1 -1
  26. package/build/hooks/use_features.d.ts +16 -0
  27. package/build/hooks/use_features.d.ts.map +1 -1
  28. package/build/hooks/use_features.js +43 -47
  29. package/build/hooks/use_features.js.map +1 -1
  30. package/build/screens/conversation_screen.d.ts.map +1 -1
  31. package/build/screens/conversation_screen.js +184 -365
  32. package/build/screens/conversation_screen.js.map +1 -1
  33. package/build/screens/conversations/components/search_list_header_component.d.ts +2 -0
  34. package/build/screens/conversations/components/search_list_header_component.d.ts.map +1 -0
  35. package/build/screens/conversations/components/search_list_header_component.js +496 -0
  36. package/build/screens/conversations/components/search_list_header_component.js.map +1 -0
  37. package/build/screens/conversations/conversations_screen.d.ts.map +1 -1
  38. package/build/screens/conversations/conversations_screen.js +28 -16
  39. package/build/screens/conversations/conversations_screen.js.map +1 -1
  40. package/build/types/resources/message.d.ts +1 -0
  41. package/build/types/resources/message.d.ts.map +1 -1
  42. package/build/types/resources/message.js.map +1 -1
  43. package/build/utils/cache/messages_cache.d.ts +1 -0
  44. package/build/utils/cache/messages_cache.d.ts.map +1 -1
  45. package/build/utils/cache/messages_cache.js +10 -1
  46. package/build/utils/cache/messages_cache.js.map +1 -1
  47. package/build/utils/client/transform_response.d.ts.map +1 -1
  48. package/build/utils/client/transform_response.js +9 -5
  49. package/build/utils/client/transform_response.js.map +1 -1
  50. package/build/utils/group_messages.d.ts +1 -0
  51. package/build/utils/group_messages.d.ts.map +1 -1
  52. package/build/utils/group_messages.js +10 -1
  53. package/build/utils/group_messages.js.map +1 -1
  54. package/build/utils/replace_equal_by_id.d.ts +6 -0
  55. package/build/utils/replace_equal_by_id.d.ts.map +1 -0
  56. package/build/utils/replace_equal_by_id.js +41 -0
  57. package/build/utils/replace_equal_by_id.js.map +1 -0
  58. package/build/utils/request/messages_data_options.d.ts.map +1 -1
  59. package/build/utils/request/messages_data_options.js +1 -1
  60. package/build/utils/request/messages_data_options.js.map +1 -1
  61. package/build/utils/time.d.ts +1 -0
  62. package/build/utils/time.d.ts.map +1 -1
  63. package/build/utils/time.js +1 -0
  64. package/build/utils/time.js.map +1 -1
  65. package/package.json +2 -2
  66. package/src/__tests__/hooks/use_features.test.ts +61 -0
  67. package/src/components/conversation/__tests__/message_list.test.tsx +277 -0
  68. package/src/components/conversation/__tests__/reply_shadow_message.test.tsx +119 -0
  69. package/src/components/conversation/message.tsx +15 -18
  70. package/src/components/conversation/message_list.tsx +157 -0
  71. package/src/components/conversation/message_read_receipts.tsx +3 -5
  72. package/src/components/conversation/reply_shadow_message.tsx +9 -7
  73. package/src/contexts/api_provider.tsx +4 -0
  74. package/src/hooks/use_conversation_messages.ts +5 -1
  75. package/src/hooks/use_conversation_messages_jolt_events.ts +7 -0
  76. package/src/hooks/use_features.ts +26 -14
  77. package/src/screens/conversation_screen.tsx +11 -104
  78. package/src/screens/conversations/components/search_list_header_component.tsx +291 -0
  79. package/src/screens/conversations/conversations_screen.tsx +6 -1
  80. package/src/types/resources/message.ts +1 -0
  81. package/src/utils/__tests__/group_messages.test.ts +48 -0
  82. package/src/utils/__tests__/replace_equal_by_id.test.ts +73 -0
  83. package/src/utils/cache/__tests__/messages_cache_reply_roots.test.ts +70 -0
  84. package/src/utils/cache/messages_cache.ts +21 -1
  85. package/src/utils/client/__tests__/transform_response.test.ts +62 -0
  86. package/src/utils/client/transform_response.ts +7 -5
  87. package/src/utils/group_messages.ts +18 -1
  88. package/src/utils/replace_equal_by_id.ts +42 -0
  89. package/src/utils/request/messages_data_options.ts +1 -1
  90. package/src/utils/time.ts +1 -0
@@ -0,0 +1,496 @@
1
+ import { c as _c } from "react/compiler-runtime";
2
+ import { useNavigation, useRoute } from '@react-navigation/native';
3
+ import React, { useCallback, useMemo } from 'react';
4
+ import { Alert, ScrollView, StyleSheet, View } from 'react-native';
5
+ import { Heading, TextButton, ToggleButton } from '../../../components';
6
+ import { useAtFontScaleBreakpoint, useCanCreateConversations, useCurrentPersonCache, useDirectMessagesEligible, useHasDirectMessages, useNewConversationEntry, useTheme } from '../../../hooks';
7
+ import { useMarkAllRead } from '../../../hooks/use_conversations_actions';
8
+ import { useCanDisplayGroups } from '../../../hooks/use_groups';
9
+ import { useNewConversationFromFilter } from '../../../hooks/use_new_conversation_from_filter';
10
+ import { MAX_FONT_SIZE_MULTIPLIER_LANDMARK } from '../../../utils';
11
+ import { Haptic } from '../../../utils/native_adapters';
12
+ import { ChatGroupBadge } from './chat_group_badge';
13
+ import { ListHeaderActionButton } from './list_header_action_button';
14
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
15
+ const ROW_PADDING_HORIZONTAL = 16;
16
+ var FilterTypes = /*#__PURE__*/function (FilterTypes) {
17
+ FilterTypes["All"] = "All";
18
+ FilterTypes["Groups"] = "Groups";
19
+ FilterTypes["Teams"] = "Teams";
20
+ FilterTypes["DMs"] = "DMs";
21
+ FilterTypes["More"] = "More";
22
+ return FilterTypes;
23
+ }(FilterTypes || {});
24
+ export const SearchListHeaderComponent = () => {
25
+ const $ = _c(69);
26
+ const navigation = useNavigation();
27
+ let t0;
28
+ if ($[0] === Symbol.for("react.memo_cache_sentinel")) {
29
+ t0 = {
30
+ source_app_name: "Services",
31
+ source_type: "Team"
32
+ };
33
+ $[0] = t0;
34
+ } else {
35
+ t0 = $[0];
36
+ }
37
+ const canFilterByTeams = useCanDisplayGroups(t0);
38
+ let t1;
39
+ if ($[1] === Symbol.for("react.memo_cache_sentinel")) {
40
+ t1 = {
41
+ source_app_name: "Groups",
42
+ source_type: "Group"
43
+ };
44
+ $[1] = t1;
45
+ } else {
46
+ t1 = $[1];
47
+ }
48
+ const canFilterByGroups = useCanDisplayGroups(t1);
49
+ const directMessagesEligible = useDirectMessagesEligible();
50
+ const hasDirectMessages = useHasDirectMessages();
51
+ const canFilterByDMs = directMessagesEligible && hasDirectMessages;
52
+ const route = useRoute();
53
+ let t2;
54
+ if ($[2] !== route.params) {
55
+ t2 = route.params || {};
56
+ $[2] = route.params;
57
+ $[3] = t2;
58
+ } else {
59
+ t2 = $[3];
60
+ }
61
+ const {
62
+ chat_group_graph_id,
63
+ group_source_app_name: t3,
64
+ show_direct_messages
65
+ } = t2;
66
+ const group_source_app_name = t3 === undefined ? "" : t3;
67
+ const currentPersonCache = useCurrentPersonCache();
68
+ const {
69
+ markAllRead,
70
+ isPending
71
+ } = useMarkAllRead();
72
+ const canCreateConversations = useCanCreateConversations();
73
+ const entryMode = useNewConversationEntry();
74
+ const newConversationFromFilter = useNewConversationFromFilter(chat_group_graph_id);
75
+ let t4;
76
+ bb0: {
77
+ if (chat_group_graph_id) {
78
+ t4 = FilterTypes.More;
79
+ break bb0;
80
+ } else {
81
+ if (/groups/i.test(group_source_app_name)) {
82
+ t4 = FilterTypes.Groups;
83
+ break bb0;
84
+ } else {
85
+ if (/services/i.test(group_source_app_name)) {
86
+ t4 = FilterTypes.Teams;
87
+ break bb0;
88
+ } else {
89
+ if (show_direct_messages) {
90
+ t4 = FilterTypes.DMs;
91
+ break bb0;
92
+ }
93
+ }
94
+ }
95
+ }
96
+ t4 = FilterTypes.All;
97
+ }
98
+ const active = t4;
99
+ let t5;
100
+ if ($[4] !== entryMode || $[5] !== navigation || $[6] !== newConversationFromFilter || $[7] !== route.params) {
101
+ t5 = () => {
102
+ if (newConversationFromFilter || entryMode === "select_type") {
103
+ return navigation.navigate("ConversationSelectType", {
104
+ ...route.params,
105
+ newConversationFromFilter
106
+ });
107
+ }
108
+ if (entryMode === "groups") {
109
+ return navigation.navigate("New", {
110
+ screen: "ConversationSelectGroupRecipients",
111
+ params: {
112
+ ...route.params
113
+ }
114
+ });
115
+ }
116
+ if (entryMode === "teams") {
117
+ return navigation.navigate("New", {
118
+ screen: "ConversationSelectTeamsILeadRecipients",
119
+ params: {
120
+ ...route.params
121
+ }
122
+ });
123
+ }
124
+ if (entryMode === "direct_message") {
125
+ return navigation.navigate("New", {
126
+ screen: "ConversationSelectDirectMessageRecipients",
127
+ params: {
128
+ ...route.params
129
+ }
130
+ });
131
+ }
132
+ };
133
+ $[4] = entryMode;
134
+ $[5] = navigation;
135
+ $[6] = newConversationFromFilter;
136
+ $[7] = route.params;
137
+ $[8] = t5;
138
+ } else {
139
+ t5 = $[8];
140
+ }
141
+ const handleNewConversationNavigation = t5;
142
+ let t6;
143
+ if ($[9] !== navigation) {
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
+ });
152
+ };
153
+ $[9] = navigation;
154
+ $[10] = t6;
155
+ } else {
156
+ t6 = $[10];
157
+ }
158
+ const handleSetFilter = t6;
159
+ let t7;
160
+ if ($[11] !== navigation) {
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 = () => {
173
+ navigation.navigate("ConversationFilters", {
174
+ chat_group_graph_id,
175
+ group_source_app_name,
176
+ show_direct_messages
177
+ });
178
+ };
179
+ $[13] = chat_group_graph_id;
180
+ $[14] = group_source_app_name;
181
+ $[15] = navigation;
182
+ $[16] = show_direct_messages;
183
+ $[17] = t8;
184
+ } else {
185
+ t8 = $[17];
186
+ }
187
+ const handleOpenConversationFilters = t8;
188
+ let t9;
189
+ if ($[18] !== currentPersonCache || $[19] !== markAllRead) {
190
+ t9 = () => {
191
+ currentPersonCache.update({
192
+ unreadCount: 0
193
+ });
194
+ Haptic.notificationSuccess();
195
+ markAllRead();
196
+ };
197
+ $[18] = currentPersonCache;
198
+ $[19] = markAllRead;
199
+ $[20] = t9;
200
+ } else {
201
+ t9 = $[20];
202
+ }
203
+ const handleMarkAllRead = t9;
204
+ let t10;
205
+ if ($[21] !== active || $[22] !== handleMarkAllRead) {
206
+ t10 = () => {
207
+ if (active === FilterTypes.All) {
208
+ return handleMarkAllRead();
209
+ }
210
+ Alert.alert("Mark all read", "This includes conversations not shown by the current filter.", [{
211
+ text: "Cancel"
212
+ }, {
213
+ text: "OK",
214
+ onPress: () => handleMarkAllRead()
215
+ }]);
216
+ };
217
+ $[21] = active;
218
+ $[22] = handleMarkAllRead;
219
+ $[23] = t10;
220
+ } else {
221
+ t10 = $[23];
222
+ }
223
+ const alertMarkAllRead = t10;
224
+ const hasSomeSourceFilterCapability = canFilterByTeams || canFilterByGroups;
225
+ const hasMultiSourceFilterCapabilities = canFilterByTeams && canFilterByGroups;
226
+ const showFilterRow = hasMultiSourceFilterCapabilities || canFilterByDMs;
227
+ const shouldShowHeaderFiltersButton = hasSomeSourceFilterCapability && !showFilterRow;
228
+ const moreFiltersButtonA11yLabel = shouldShowHeaderFiltersButton ? "View filters" : "View more filters";
229
+ const t11 = active === FilterTypes.More;
230
+ let t12;
231
+ if ($[24] !== handleOpenConversationFilters || $[25] !== moreFiltersButtonA11yLabel || $[26] !== t11) {
232
+ t12 = {
233
+ onPress: handleOpenConversationFilters,
234
+ active: t11,
235
+ iconNameRight: "general.threeReducingHorizontalBars",
236
+ accessibilityLabel: moreFiltersButtonA11yLabel
237
+ };
238
+ $[24] = handleOpenConversationFilters;
239
+ $[25] = moreFiltersButtonA11yLabel;
240
+ $[26] = t11;
241
+ $[27] = t12;
242
+ } else {
243
+ t12 = $[27];
244
+ }
245
+ const moreFiltersButtonProps = t12;
246
+ let t13;
247
+ if ($[28] !== shouldShowHeaderFiltersButton) {
248
+ t13 = {
249
+ shouldShowHeaderFiltersButton
250
+ };
251
+ $[28] = shouldShowHeaderFiltersButton;
252
+ $[29] = t13;
253
+ } else {
254
+ t13 = $[29];
255
+ }
256
+ const styles = useStyles(t13);
257
+ let t14;
258
+ if ($[30] === Symbol.for("react.memo_cache_sentinel")) {
259
+ t14 = /*#__PURE__*/_jsx(Heading, {
260
+ numberOfLines: 1,
261
+ variant: "h2",
262
+ children: "Conversations"
263
+ });
264
+ $[30] = t14;
265
+ } else {
266
+ t14 = $[30];
267
+ }
268
+ let t15;
269
+ if ($[31] !== alertMarkAllRead || $[32] !== isPending) {
270
+ t15 = /*#__PURE__*/_jsx(TextButton, {
271
+ onPress: alertMarkAllRead,
272
+ disabled: isPending,
273
+ maxFontSizeMultiplier: MAX_FONT_SIZE_MULTIPLIER_LANDMARK,
274
+ accessibilityShowsLargeContentViewer: true,
275
+ accessibilityLargeContentTitle: "Mark all read",
276
+ children: "Mark all read"
277
+ });
278
+ $[31] = alertMarkAllRead;
279
+ $[32] = isPending;
280
+ $[33] = t15;
281
+ } else {
282
+ t15 = $[33];
283
+ }
284
+ let t16;
285
+ if ($[34] !== styles.titleContainer || $[35] !== t15) {
286
+ t16 = /*#__PURE__*/_jsxs(View, {
287
+ style: styles.titleContainer,
288
+ children: [t14, t15]
289
+ });
290
+ $[34] = styles.titleContainer;
291
+ $[35] = t15;
292
+ $[36] = t16;
293
+ } else {
294
+ t16 = $[36];
295
+ }
296
+ let t17;
297
+ if ($[37] !== handleChatSettings) {
298
+ t17 = /*#__PURE__*/_jsx(ListHeaderActionButton, {
299
+ name: "general.cog",
300
+ onPress: handleChatSettings,
301
+ accessibilityLabel: "Chat settings",
302
+ testID: "conversations-chat-settings-button",
303
+ maxFontSizeMultiplier: MAX_FONT_SIZE_MULTIPLIER_LANDMARK
304
+ });
305
+ $[37] = handleChatSettings;
306
+ $[38] = t17;
307
+ } else {
308
+ t17 = $[38];
309
+ }
310
+ let t18;
311
+ if ($[39] !== canCreateConversations || $[40] !== handleNewConversationNavigation) {
312
+ t18 = canCreateConversations && /*#__PURE__*/_jsx(ListHeaderActionButton, {
313
+ name: "churchCenter.signups",
314
+ onPress: handleNewConversationNavigation,
315
+ accessibilityLabel: "New conversation",
316
+ testID: "conversations-new-conversation-button",
317
+ maxFontSizeMultiplier: MAX_FONT_SIZE_MULTIPLIER_LANDMARK
318
+ });
319
+ $[39] = canCreateConversations;
320
+ $[40] = handleNewConversationNavigation;
321
+ $[41] = t18;
322
+ } else {
323
+ t18 = $[41];
324
+ }
325
+ let t19;
326
+ if ($[42] !== moreFiltersButtonProps || $[43] !== shouldShowHeaderFiltersButton) {
327
+ t19 = shouldShowHeaderFiltersButton && /*#__PURE__*/_jsx(ToggleButton, {
328
+ ...moreFiltersButtonProps
329
+ });
330
+ $[42] = moreFiltersButtonProps;
331
+ $[43] = shouldShowHeaderFiltersButton;
332
+ $[44] = t19;
333
+ } else {
334
+ t19 = $[44];
335
+ }
336
+ let t20;
337
+ if ($[45] !== styles.actionsContainer || $[46] !== t17 || $[47] !== t18 || $[48] !== t19) {
338
+ t20 = /*#__PURE__*/_jsxs(View, {
339
+ style: styles.actionsContainer,
340
+ children: [t17, t18, t19]
341
+ });
342
+ $[45] = styles.actionsContainer;
343
+ $[46] = t17;
344
+ $[47] = t18;
345
+ $[48] = t19;
346
+ $[49] = t20;
347
+ } else {
348
+ t20 = $[49];
349
+ }
350
+ let t21;
351
+ if ($[50] !== styles.headingRow || $[51] !== t16 || $[52] !== t20) {
352
+ t21 = /*#__PURE__*/_jsxs(View, {
353
+ style: styles.headingRow,
354
+ children: [t16, t20]
355
+ });
356
+ $[50] = styles.headingRow;
357
+ $[51] = t16;
358
+ $[52] = t20;
359
+ $[53] = t21;
360
+ } else {
361
+ t21 = $[53];
362
+ }
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, {
366
+ horizontal: true,
367
+ showsHorizontalScrollIndicator: false,
368
+ contentContainerStyle: styles.filterRow,
369
+ accessibilityRole: "toolbar",
370
+ children: [/*#__PURE__*/_jsx(ToggleButton, {
371
+ title: FilterTypes.All,
372
+ active: active === FilterTypes.All,
373
+ onPress: () => handleSetFilter({}),
374
+ accessibilityLabel: "Show all conversations",
375
+ style: styles.filterButton
376
+ }), canFilterByGroups && /*#__PURE__*/_jsx(ToggleButton, {
377
+ title: FilterTypes.Groups,
378
+ active: active === FilterTypes.Groups,
379
+ onPress: () => handleSetFilter({
380
+ group_source_app_name: "Groups"
381
+ }),
382
+ accessibilityLabel: "Filter to group conversations",
383
+ style: styles.filterButton
384
+ }), canFilterByTeams && /*#__PURE__*/_jsx(ToggleButton, {
385
+ title: FilterTypes.Teams,
386
+ active: active === FilterTypes.Teams,
387
+ onPress: () => handleSetFilter({
388
+ group_source_app_name: "Services"
389
+ }),
390
+ accessibilityLabel: "Filter to team conversations",
391
+ style: styles.filterButton
392
+ }), canFilterByDMs && /*#__PURE__*/_jsx(ToggleButton, {
393
+ title: FilterTypes.DMs,
394
+ active: active === FilterTypes.DMs,
395
+ onPress: () => handleSetFilter({
396
+ show_direct_messages: true
397
+ }),
398
+ accessibilityLabel: "Filter to direct message conversations",
399
+ style: styles.filterButton
400
+ }), /*#__PURE__*/_jsx(ToggleButton, {
401
+ ...moreFiltersButtonProps
402
+ })]
403
+ });
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;
414
+ } else {
415
+ t22 = $[63];
416
+ }
417
+ let t23;
418
+ if ($[64] === Symbol.for("react.memo_cache_sentinel")) {
419
+ t23 = /*#__PURE__*/_jsx(ChatGroupBadge, {
420
+ rowPaddingHorizontal: ROW_PADDING_HORIZONTAL
421
+ });
422
+ $[64] = t23;
423
+ } else {
424
+ t23 = $[64];
425
+ }
426
+ let t24;
427
+ if ($[65] !== styles.listHeader || $[66] !== t21 || $[67] !== t22) {
428
+ t24 = /*#__PURE__*/_jsxs(View, {
429
+ style: styles.listHeader,
430
+ children: [t21, t22, t23]
431
+ });
432
+ $[65] = styles.listHeader;
433
+ $[66] = t21;
434
+ $[67] = t22;
435
+ $[68] = t24;
436
+ } else {
437
+ t24 = $[68];
438
+ }
439
+ return t24;
440
+ };
441
+ const useStyles = t0 => {
442
+ const $ = _c(3);
443
+ const {
444
+ shouldShowHeaderFiltersButton
445
+ } = t0;
446
+ const theme = useTheme();
447
+ const atFontScaleBreakpoint = useAtFontScaleBreakpoint(shouldShowHeaderFiltersButton ? 1.2 : undefined);
448
+ let t1;
449
+ if ($[0] !== atFontScaleBreakpoint || $[1] !== theme.colors.statusErrorBorder) {
450
+ t1 = StyleSheet.create({
451
+ listHeader: {
452
+ borderBottomWidth: 1,
453
+ borderBottomColor: theme.colors.statusErrorBorder,
454
+ paddingBottom: 16,
455
+ gap: 16
456
+ },
457
+ headingRow: {
458
+ gap: 12,
459
+ flexDirection: atFontScaleBreakpoint ? "column" : "row",
460
+ alignItems: atFontScaleBreakpoint ? "flex-start" : "center",
461
+ justifyContent: "space-between",
462
+ paddingBottom: atFontScaleBreakpoint ? 4 : 0,
463
+ paddingHorizontal: ROW_PADDING_HORIZONTAL
464
+ },
465
+ titleContainer: {
466
+ gap: 8
467
+ },
468
+ actionsContainer: {
469
+ flexDirection: "row",
470
+ gap: 8,
471
+ alignItems: "center"
472
+ },
473
+ markAllReadRow: {
474
+ paddingBottom: 4
475
+ },
476
+ filterRow: {
477
+ flexDirection: "row",
478
+ justifyContent: "flex-start",
479
+ gap: 8,
480
+ paddingHorizontal: ROW_PADDING_HORIZONTAL,
481
+ flexGrow: 1
482
+ },
483
+ filterButton: {
484
+ flex: 1,
485
+ minWidth: 65
486
+ }
487
+ });
488
+ $[0] = atFontScaleBreakpoint;
489
+ $[1] = theme.colors.statusErrorBorder;
490
+ $[2] = t1;
491
+ } else {
492
+ t1 = $[2];
493
+ }
494
+ return t1;
495
+ };
496
+ //# sourceMappingURL=search_list_header_component.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"search_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","SearchListHeaderComponent","$","_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","statusErrorBorder","create","borderBottomWidth","borderBottomColor","paddingBottom","gap","flexDirection","alignItems","justifyContent","paddingHorizontal","markAllReadRow","flexGrow","flex","minWidth"],"sources":["../../../../src/screens/conversations/components/search_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 SearchListHeaderComponent = () => {\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.statusErrorBorder,\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 +1 @@
1
- {"version":3,"file":"conversations_screen.d.ts","sourceRoot":"","sources":["../../../src/screens/conversations/conversations_screen.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAA;AAM5D,OAAO,EAAE,OAAO,EAAE,MAAM,gCAAgC,CAAA;AACxD,OAAO,EAAE,OAAO,EAAE,MAAM,sCAAsC,CAAA;AAG9D,MAAM,MAAM,wBAAwB,GAAG,iBAAiB,CAAC;IACvD,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,mBAAmB,CAAC,EAAE,OAAO,CAAA;IAC7B,qBAAqB,CAAC,EAAE,OAAO,CAAA;IAC/B,oBAAoB,CAAC,EAAE,OAAO,CAAA;CAC/B,CAAC,CAAA;AAEF,wBAAgB,mBAAmB,CAAC,EAAE,KAAK,EAAE,EAAE,wBAAwB,2CAYtE"}
1
+ {"version":3,"file":"conversations_screen.d.ts","sourceRoot":"","sources":["../../../src/screens/conversations/conversations_screen.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAA;AAO5D,OAAO,EAAE,OAAO,EAAE,MAAM,gCAAgC,CAAA;AACxD,OAAO,EAAE,OAAO,EAAE,MAAM,sCAAsC,CAAA;AAI9D,MAAM,MAAM,wBAAwB,GAAG,iBAAiB,CAAC;IACvD,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,mBAAmB,CAAC,EAAE,OAAO,CAAA;IAC7B,qBAAqB,CAAC,EAAE,OAAO,CAAA;IAC/B,oBAAoB,CAAC,EAAE,OAAO,CAAA;CAC/B,CAAC,CAAA;AAEF,wBAAgB,mBAAmB,CAAC,EAAE,KAAK,EAAE,EAAE,wBAAwB,2CAetE"}
@@ -3,54 +3,66 @@ import React from 'react';
3
3
  import { StyleSheet, View } from 'react-native';
4
4
  import { Conversations } from '../../components';
5
5
  import { ConversationsContextProvider } from '../../contexts/conversations_context';
6
+ import { availableFeatures, useFeatures } from '../../hooks/use_features';
6
7
  import { analyticsEvents, usePublishProductAnalyticsEvent } from '../../hooks/use_product_analytics';
7
8
  import { ListHeaderComponent } from './components/list_header_component';
9
+ import { SearchListHeaderComponent } from './components/search_list_header_component';
8
10
  import { jsx as _jsx } from "react/jsx-runtime";
9
11
  export function ConversationsScreen(t0) {
10
- const $ = _c(7);
12
+ const $ = _c(9);
11
13
  const {
12
14
  route
13
15
  } = t0;
14
16
  const styles = useStyles();
17
+ const {
18
+ featureEnabled
19
+ } = useFeatures();
20
+ const searchEnabled = featureEnabled(availableFeatures.search);
21
+ const Header = searchEnabled ? SearchListHeaderComponent : ListHeaderComponent;
15
22
  usePublishProductAnalyticsEvent(analyticsEvents.conversation_index_opened);
16
23
  let t1;
17
- let t2;
18
24
  if ($[0] === Symbol.for("react.memo_cache_sentinel")) {
19
25
  t1 = {
20
26
  throwOnError: true
21
27
  };
22
- t2 = /*#__PURE__*/_jsx(Conversations, {
23
- ListHeaderComponent: ListHeaderComponent
24
- });
25
28
  $[0] = t1;
26
- $[1] = t2;
27
29
  } else {
28
30
  t1 = $[0];
29
- t2 = $[1];
31
+ }
32
+ let t2;
33
+ if ($[1] !== Header) {
34
+ t2 = /*#__PURE__*/_jsx(Conversations, {
35
+ ListHeaderComponent: Header
36
+ });
37
+ $[1] = Header;
38
+ $[2] = t2;
39
+ } else {
40
+ t2 = $[2];
30
41
  }
31
42
  let t3;
32
- if ($[2] !== route.params) {
43
+ if ($[3] !== route.params || $[4] !== t2) {
33
44
  t3 = /*#__PURE__*/_jsx(ConversationsContextProvider, {
34
45
  args: route.params,
35
46
  opts: t1,
36
47
  children: t2
37
48
  });
38
- $[2] = route.params;
39
- $[3] = t3;
49
+ $[3] = route.params;
50
+ $[4] = t2;
51
+ $[5] = t3;
40
52
  } else {
41
- t3 = $[3];
53
+ t3 = $[5];
42
54
  }
43
55
  let t4;
44
- if ($[4] !== styles.container || $[5] !== t3) {
56
+ if ($[6] !== styles.container || $[7] !== t3) {
45
57
  t4 = /*#__PURE__*/_jsx(View, {
46
58
  style: styles.container,
47
59
  children: t3
48
60
  });
49
- $[4] = styles.container;
50
- $[5] = t3;
51
- $[6] = t4;
61
+ $[6] = styles.container;
62
+ $[7] = t3;
63
+ $[8] = t4;
52
64
  } else {
53
- t4 = $[6];
65
+ t4 = $[8];
54
66
  }
55
67
  return t4;
56
68
  }
@@ -1 +1 @@
1
- {"version":3,"file":"conversations_screen.js","names":["React","StyleSheet","View","Conversations","ConversationsContextProvider","analyticsEvents","usePublishProductAnalyticsEvent","ListHeaderComponent","jsx","_jsx","ConversationsScreen","t0","$","_c","route","styles","useStyles","conversation_index_opened","t1","t2","Symbol","for","throwOnError","t3","params","args","opts","children","t4","container","style","create","flex","justifyContent"],"sources":["../../../src/screens/conversations/conversations_screen.tsx"],"sourcesContent":["import { StaticScreenProps } from '@react-navigation/native'\nimport React from 'react'\nimport { StyleSheet, View } from 'react-native'\nimport { Conversations } from '../../components'\nimport { ConversationsContextProvider } from '../../contexts/conversations_context'\nimport { analyticsEvents, usePublishProductAnalyticsEvent } from '../../hooks/use_product_analytics'\nimport { AppName } from '../../types/resources/app_name'\nimport { GraphId } from '../../types/resources/group_resource'\nimport { ListHeaderComponent } from './components/list_header_component'\n\nexport type ConversationsScreenProps = StaticScreenProps<{\n title?: string\n chat_group_graph_id?: GraphId\n group_source_app_name?: AppName\n show_direct_messages?: boolean\n}>\n\nexport function ConversationsScreen({ route }: ConversationsScreenProps) {\n const styles = useStyles()\n\n usePublishProductAnalyticsEvent(analyticsEvents.conversation_index_opened)\n\n return (\n <View style={styles.container}>\n <ConversationsContextProvider args={route.params} opts={{ throwOnError: true }}>\n <Conversations ListHeaderComponent={ListHeaderComponent} />\n </ConversationsContextProvider>\n </View>\n )\n}\n\nconst useStyles = () => {\n return StyleSheet.create({\n container: {\n flex: 1,\n justifyContent: 'center',\n },\n })\n}\n"],"mappings":";AACA,OAAOA,KAAK,MAAM,OAAO;AACzB,SAASC,UAAU,EAAEC,IAAI,QAAQ,cAAc;AAC/C,SAASC,aAAa,QAAQ,kBAAkB;AAChD,SAASC,4BAA4B,QAAQ,sCAAsC;AACnF,SAASC,eAAe,EAAEC,+BAA+B,QAAQ,mCAAmC;AAGpG,SAASC,mBAAmB,QAAQ,oCAAoC;AAAA,SAAAC,GAAA,IAAAC,IAAA;AASxE,OAAO,SAAAC,oBAAAC,EAAA;EAAA,MAAAC,CAAA,GAAAC,EAAA;EAA6B;IAAAC;EAAA,IAAAH,EAAmC;EACrE,MAAAI,MAAA,GAAeC,SAAS,CAAC,CAAC;EAE1BV,+BAA+B,CAACD,eAAe,CAAAY,yBAA0B,CAAC;EAAA,IAAAC,EAAA;EAAA,IAAAC,EAAA;EAAA,IAAAP,CAAA,QAAAQ,MAAA,CAAAC,GAAA;IAIdH,EAAA;MAAAI,YAAA,EAAgB;IAAK,CAAC;IAC5EH,EAAA,gBAAAV,IAAA,CAACN,aAAa;MAAsBI,mBAAmB,EAAnBA;IAAmB,CAAG,CAAC;IAAAK,CAAA,MAAAM,EAAA;IAAAN,CAAA,MAAAO,EAAA;EAAA;IAAAD,EAAA,GAAAN,CAAA;IAAAO,EAAA,GAAAP,CAAA;EAAA;EAAA,IAAAW,EAAA;EAAA,IAAAX,CAAA,QAAAE,KAAA,CAAAU,MAAA;IAD7DD,EAAA,gBAAAd,IAAA,CAACL,4BAA4B;MAAOqB,IAAY,EAAZX,KAAK,CAAAU,MAAO;MAAQE,IAAsB,EAAtBR,EAAsB;MAAAS,QAAA,EAC5ER;IAA2D,CAC/B,CAAC;IAAAP,CAAA,MAAAE,KAAA,CAAAU,MAAA;IAAAZ,CAAA,MAAAW,EAAA;EAAA;IAAAA,EAAA,GAAAX,CAAA;EAAA;EAAA,IAAAgB,EAAA;EAAA,IAAAhB,CAAA,QAAAG,MAAA,CAAAc,SAAA,IAAAjB,CAAA,QAAAW,EAAA;IAHjCK,EAAA,gBAAAnB,IAAA,CAACP,IAAI;MAAQ4B,KAAgB,EAAhBf,MAAM,CAAAc,SAAU;MAAAF,QAAA,EAC3BJ;IAE+B,CAC3B,CAAC;IAAAX,CAAA,MAAAG,MAAA,CAAAc,SAAA;IAAAjB,CAAA,MAAAW,EAAA;IAAAX,CAAA,MAAAgB,EAAA;EAAA;IAAAA,EAAA,GAAAhB,CAAA;EAAA;EAAA,OAJPgB,EAIO;AAAA;AAIX,MAAMZ,SAAS,GAAGA,CAAA,KAAM;EACtB,OAAOf,UAAU,CAAC8B,MAAM,CAAC;IACvBF,SAAS,EAAE;MACTG,IAAI,EAAE,CAAC;MACPC,cAAc,EAAE;IAClB;EACF,CAAC,CAAC;AACJ,CAAC","ignoreList":[]}
1
+ {"version":3,"file":"conversations_screen.js","names":["React","StyleSheet","View","Conversations","ConversationsContextProvider","availableFeatures","useFeatures","analyticsEvents","usePublishProductAnalyticsEvent","ListHeaderComponent","SearchListHeaderComponent","jsx","_jsx","ConversationsScreen","t0","$","_c","route","styles","useStyles","featureEnabled","searchEnabled","search","Header","conversation_index_opened","t1","Symbol","for","throwOnError","t2","t3","params","args","opts","children","t4","container","style","create","flex","justifyContent"],"sources":["../../../src/screens/conversations/conversations_screen.tsx"],"sourcesContent":["import { StaticScreenProps } from '@react-navigation/native'\nimport React from 'react'\nimport { StyleSheet, View } from 'react-native'\nimport { Conversations } from '../../components'\nimport { ConversationsContextProvider } from '../../contexts/conversations_context'\nimport { availableFeatures, useFeatures } from '../../hooks/use_features'\nimport { analyticsEvents, usePublishProductAnalyticsEvent } from '../../hooks/use_product_analytics'\nimport { AppName } from '../../types/resources/app_name'\nimport { GraphId } from '../../types/resources/group_resource'\nimport { ListHeaderComponent } from './components/list_header_component'\nimport { SearchListHeaderComponent } from './components/search_list_header_component'\n\nexport type ConversationsScreenProps = StaticScreenProps<{\n title?: string\n chat_group_graph_id?: GraphId\n group_source_app_name?: AppName\n show_direct_messages?: boolean\n}>\n\nexport function ConversationsScreen({ route }: ConversationsScreenProps) {\n const styles = useStyles()\n const { featureEnabled } = useFeatures()\n const searchEnabled = featureEnabled(availableFeatures.search)\n const Header = searchEnabled ? SearchListHeaderComponent : ListHeaderComponent\n\n usePublishProductAnalyticsEvent(analyticsEvents.conversation_index_opened)\n\n return (\n <View style={styles.container}>\n <ConversationsContextProvider args={route.params} opts={{ throwOnError: true }}>\n <Conversations ListHeaderComponent={Header} />\n </ConversationsContextProvider>\n </View>\n )\n}\n\nconst useStyles = () => {\n return StyleSheet.create({\n container: {\n flex: 1,\n justifyContent: 'center',\n },\n })\n}\n"],"mappings":";AACA,OAAOA,KAAK,MAAM,OAAO;AACzB,SAASC,UAAU,EAAEC,IAAI,QAAQ,cAAc;AAC/C,SAASC,aAAa,QAAQ,kBAAkB;AAChD,SAASC,4BAA4B,QAAQ,sCAAsC;AACnF,SAASC,iBAAiB,EAAEC,WAAW,QAAQ,0BAA0B;AACzE,SAASC,eAAe,EAAEC,+BAA+B,QAAQ,mCAAmC;AAGpG,SAASC,mBAAmB,QAAQ,oCAAoC;AACxE,SAASC,yBAAyB,QAAQ,2CAA2C;AAAA,SAAAC,GAAA,IAAAC,IAAA;AASrF,OAAO,SAAAC,oBAAAC,EAAA;EAAA,MAAAC,CAAA,GAAAC,EAAA;EAA6B;IAAAC;EAAA,IAAAH,EAAmC;EACrE,MAAAI,MAAA,GAAeC,SAAS,CAAC,CAAC;EAC1B;IAAAC;EAAA,IAA2Bd,WAAW,CAAC,CAAC;EACxC,MAAAe,aAAA,GAAsBD,cAAc,CAACf,iBAAiB,CAAAiB,MAAO,CAAC;EAC9D,MAAAC,MAAA,GAAeF,aAAa,GAAbX,yBAA+D,GAA/DD,mBAA+D;EAE9ED,+BAA+B,CAACD,eAAe,CAAAiB,yBAA0B,CAAC;EAAA,IAAAC,EAAA;EAAA,IAAAV,CAAA,QAAAW,MAAA,CAAAC,GAAA;IAIdF,EAAA;MAAAG,YAAA,EAAgB;IAAK,CAAC;IAAAb,CAAA,MAAAU,EAAA;EAAA;IAAAA,EAAA,GAAAV,CAAA;EAAA;EAAA,IAAAc,EAAA;EAAA,IAAAd,CAAA,QAAAQ,MAAA;IAC5EM,EAAA,gBAAAjB,IAAA,CAACT,aAAa;MAAsBoB,mBAAM,EAANA;IAAM,CAAG,CAAC;IAAAR,CAAA,MAAAQ,MAAA;IAAAR,CAAA,MAAAc,EAAA;EAAA;IAAAA,EAAA,GAAAd,CAAA;EAAA;EAAA,IAAAe,EAAA;EAAA,IAAAf,CAAA,QAAAE,KAAA,CAAAc,MAAA,IAAAhB,CAAA,QAAAc,EAAA;IADhDC,EAAA,gBAAAlB,IAAA,CAACR,4BAA4B;MAAO4B,IAAY,EAAZf,KAAK,CAAAc,MAAO;MAAQE,IAAsB,EAAtBR,EAAsB;MAAAS,QAAA,EAC5EL;IAA8C,CAClB,CAAC;IAAAd,CAAA,MAAAE,KAAA,CAAAc,MAAA;IAAAhB,CAAA,MAAAc,EAAA;IAAAd,CAAA,MAAAe,EAAA;EAAA;IAAAA,EAAA,GAAAf,CAAA;EAAA;EAAA,IAAAoB,EAAA;EAAA,IAAApB,CAAA,QAAAG,MAAA,CAAAkB,SAAA,IAAArB,CAAA,QAAAe,EAAA;IAHjCK,EAAA,gBAAAvB,IAAA,CAACV,IAAI;MAAQmC,KAAgB,EAAhBnB,MAAM,CAAAkB,SAAU;MAAAF,QAAA,EAC3BJ;IAE+B,CAC3B,CAAC;IAAAf,CAAA,MAAAG,MAAA,CAAAkB,SAAA;IAAArB,CAAA,MAAAe,EAAA;IAAAf,CAAA,MAAAoB,EAAA;EAAA;IAAAA,EAAA,GAAApB,CAAA;EAAA;EAAA,OAJPoB,EAIO;AAAA;AAIX,MAAMhB,SAAS,GAAGA,CAAA,KAAM;EACtB,OAAOlB,UAAU,CAACqC,MAAM,CAAC;IACvBF,SAAS,EAAE;MACTG,IAAI,EAAE,CAAC;MACPC,cAAc,EAAE;IAClB;EACF,CAAC,CAAC;AACJ,CAAC","ignoreList":[]}
@@ -16,6 +16,7 @@ export interface MessageResource {
16
16
  reactionCounts: ReactionCountResource[];
17
17
  replyCount: number;
18
18
  replyRootId?: string | null;
19
+ replyRoot?: MessageResource | null;
19
20
  idempotentKey?: string | null;
20
21
  messageType: string;
21
22
  personIdsForSystemEvent?: number[] | null;