@planningcenter/chat-react-native 4.4.1-qa-staging.30 → 4.4.1-qa-staging.31

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 (72) hide show
  1. package/build/components/conversation/message_list.d.ts.map +1 -1
  2. package/build/components/conversation/message_list.js +155 -123
  3. package/build/components/conversation/message_list.js.map +1 -1
  4. package/build/components/conversations/conversations.d.ts.map +1 -1
  5. package/build/components/conversations/conversations.js +1 -0
  6. package/build/components/conversations/conversations.js.map +1 -1
  7. package/build/components/display/keyboard_scroll_view.d.ts.map +1 -1
  8. package/build/components/display/keyboard_scroll_view.js +1 -0
  9. package/build/components/display/keyboard_scroll_view.js.map +1 -1
  10. package/build/hooks/direct_messages/use_direct_message_candidates.d.ts +3 -1
  11. package/build/hooks/direct_messages/use_direct_message_candidates.d.ts.map +1 -1
  12. package/build/hooks/direct_messages/use_direct_message_candidates.js +42 -29
  13. package/build/hooks/direct_messages/use_direct_message_candidates.js.map +1 -1
  14. package/build/navigation/index.d.ts.map +1 -1
  15. package/build/navigation/index.js +11 -3
  16. package/build/navigation/index.js.map +1 -1
  17. package/build/screens/conversation_details_screen.d.ts.map +1 -1
  18. package/build/screens/conversation_details_screen.js +1 -0
  19. package/build/screens/conversation_details_screen.js.map +1 -1
  20. package/build/screens/conversation_select_recipients/conversation_new_entry_screen.d.ts.map +1 -1
  21. package/build/screens/conversation_select_recipients/conversation_new_entry_screen.js +1 -0
  22. package/build/screens/conversation_select_recipients/conversation_new_entry_screen.js.map +1 -1
  23. package/build/screens/conversation_select_recipients/conversation_select_direct_message_recipients_screen.d.ts.map +1 -1
  24. package/build/screens/conversation_select_recipients/conversation_select_direct_message_recipients_screen.js +409 -308
  25. package/build/screens/conversation_select_recipients/conversation_select_direct_message_recipients_screen.js.map +1 -1
  26. package/build/screens/conversation_select_recipients/conversation_select_group_recipients_screen.d.ts.map +1 -1
  27. package/build/screens/conversation_select_recipients/conversation_select_group_recipients_screen.js +1 -0
  28. package/build/screens/conversation_select_recipients/conversation_select_group_recipients_screen.js.map +1 -1
  29. package/build/screens/conversation_select_recipients/conversation_select_teams_i_lead_recipients_screen.d.ts.map +1 -1
  30. package/build/screens/conversation_select_recipients/conversation_select_teams_i_lead_recipients_screen.js +1 -0
  31. package/build/screens/conversation_select_recipients/conversation_select_teams_i_lead_recipients_screen.js.map +1 -1
  32. package/build/screens/get_help_screen.js +56 -62
  33. package/build/screens/get_help_screen.js.map +1 -1
  34. package/build/screens/group_notification_settings_screen.js +3 -2
  35. package/build/screens/group_notification_settings_screen.js.map +1 -1
  36. package/build/screens/notification_settings_screen.d.ts.map +1 -1
  37. package/build/screens/notification_settings_screen.js +1 -0
  38. package/build/screens/notification_settings_screen.js.map +1 -1
  39. package/build/screens/preferred_app_selection_screen.js +45 -39
  40. package/build/screens/preferred_app_selection_screen.js.map +1 -1
  41. package/build/screens/search/components/search_results_list.d.ts +4 -1
  42. package/build/screens/search/components/search_results_list.d.ts.map +1 -1
  43. package/build/screens/search/components/search_results_list.js +176 -138
  44. package/build/screens/search/components/search_results_list.js.map +1 -1
  45. package/build/screens/search/search_screen.d.ts.map +1 -1
  46. package/build/screens/search/search_screen.js +21 -28
  47. package/build/screens/search/search_screen.js.map +1 -1
  48. package/build/screens/settings_screen.d.ts.map +1 -1
  49. package/build/screens/settings_screen.js +7 -6
  50. package/build/screens/settings_screen.js.map +1 -1
  51. package/package.json +3 -3
  52. package/src/components/conversation/__tests__/message_list.test.tsx +4 -0
  53. package/src/components/conversation/message_list.tsx +6 -0
  54. package/src/components/conversations/conversations.tsx +1 -0
  55. package/src/components/display/keyboard_scroll_view.tsx +1 -0
  56. package/src/hooks/direct_messages/use_direct_message_candidates.ts +2 -2
  57. package/src/navigation/index.tsx +11 -2
  58. package/src/screens/conversation_details_screen.tsx +1 -0
  59. package/src/screens/conversation_select_recipients/__tests__/conversation_select_direct_message_recipients_screen.test.tsx +83 -0
  60. package/src/screens/conversation_select_recipients/conversation_new_entry_screen.tsx +4 -1
  61. package/src/screens/conversation_select_recipients/conversation_select_direct_message_recipients_screen.tsx +104 -69
  62. package/src/screens/conversation_select_recipients/conversation_select_group_recipients_screen.tsx +1 -0
  63. package/src/screens/conversation_select_recipients/conversation_select_teams_i_lead_recipients_screen.tsx +1 -0
  64. package/src/screens/get_help_screen.tsx +4 -4
  65. package/src/screens/group_notification_settings_screen.tsx +3 -3
  66. package/src/screens/notification_settings_screen.tsx +1 -0
  67. package/src/screens/preferred_app_selection_screen.tsx +4 -4
  68. package/src/screens/search/__tests__/search_screen.test.tsx +5 -7
  69. package/src/screens/search/components/__tests__/search_results_list.test.tsx +6 -2
  70. package/src/screens/search/components/search_results_list.tsx +29 -8
  71. package/src/screens/search/search_screen.tsx +8 -18
  72. package/src/screens/settings_screen.tsx +25 -25
@@ -1 +1 @@
1
- {"version":3,"file":"message_list.d.ts","sourceRoot":"","sources":["../../../src/components/conversation/message_list.tsx"],"names":[],"mappings":"AAEA,OAAc,EAAE,SAAS,EAA4C,MAAM,OAAO,CAAA;AAClF,OAAO,EAAE,QAAQ,EAAE,aAAa,EAAoB,MAAM,cAAc,CAAA;AAExE,OAAO,EAAE,oBAAoB,EAAE,MAAM,oCAAoC,CAAA;AACzE,OAAO,EAAE,eAAe,EAAE,MAAM,+BAA+B,CAAA;AAE/D,OAAO,EAAqC,KAAK,eAAe,EAAE,MAAM,4BAA4B,CAAA;AAepG,KAAK,cAAc,GAAG,IAAI,CACxB,aAAa,CAAC,eAAe,CAAC,EAC5B,UAAU,GACV,UAAU,GACV,qBAAqB,GACrB,mBAAmB,GACnB,iBAAiB,GACjB,qBAAqB,CACxB,CAAA;AAED,UAAU,gBAAiB,SAAQ,cAAc;IAC/C,OAAO,EAAE,SAAS,CAAC,QAAQ,GAAG,IAAI,CAAC,CAAA;IACnC,YAAY,EAAE,oBAAoB,CAAA;IAClC,cAAc,EAAE,MAAM,CAAA;IACtB,QAAQ,EAAE,eAAe,EAAE,CAAA;IAC3B,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IAC3B,eAAe,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IAC/B,MAAM,CAAC,EAAE,OAAO,CAAA;IAChB,WAAW,EAAE,OAAO,CAAA;IACpB,YAAY,EAAE,MAAM,IAAI,CAAA;IACxB,cAAc,CAAC,EAAE,MAAM,IAAI,CAAA;CAC5B;AAKD;;GAEG;AACH,wBAAgB,WAAW,CAAC,EAC1B,OAAO,EACP,YAAY,EACZ,cAAc,EACd,QAAQ,EACR,WAAW,EACX,eAAe,EACf,MAAc,EACd,WAAW,EACX,YAAY,EACZ,cAAc,EACd,QAAQ,EACR,QAAQ,EACR,mBAAmB,EACnB,iBAAiB,EACjB,eAAe,EACf,mBAAmB,GACpB,EAAE,gBAAgB,2CA2JlB"}
1
+ {"version":3,"file":"message_list.d.ts","sourceRoot":"","sources":["../../../src/components/conversation/message_list.tsx"],"names":[],"mappings":"AAGA,OAAc,EAAE,SAAS,EAA4C,MAAM,OAAO,CAAA;AAClF,OAAO,EAAE,QAAQ,EAAE,aAAa,EAAoB,MAAM,cAAc,CAAA;AAExE,OAAO,EAAE,oBAAoB,EAAE,MAAM,oCAAoC,CAAA;AACzE,OAAO,EAAE,eAAe,EAAE,MAAM,+BAA+B,CAAA;AAE/D,OAAO,EAAqC,KAAK,eAAe,EAAE,MAAM,4BAA4B,CAAA;AAgBpG,KAAK,cAAc,GAAG,IAAI,CACxB,aAAa,CAAC,eAAe,CAAC,EAC5B,UAAU,GACV,UAAU,GACV,qBAAqB,GACrB,mBAAmB,GACnB,iBAAiB,GACjB,qBAAqB,CACxB,CAAA;AAED,UAAU,gBAAiB,SAAQ,cAAc;IAC/C,OAAO,EAAE,SAAS,CAAC,QAAQ,GAAG,IAAI,CAAC,CAAA;IACnC,YAAY,EAAE,oBAAoB,CAAA;IAClC,cAAc,EAAE,MAAM,CAAA;IACtB,QAAQ,EAAE,eAAe,EAAE,CAAA;IAC3B,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IAC3B,eAAe,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IAC/B,MAAM,CAAC,EAAE,OAAO,CAAA;IAChB,WAAW,EAAE,OAAO,CAAA;IACpB,YAAY,EAAE,MAAM,IAAI,CAAA;IACxB,cAAc,CAAC,EAAE,MAAM,IAAI,CAAA;CAC5B;AAKD;;GAEG;AACH,wBAAgB,WAAW,CAAC,EAC1B,OAAO,EACP,YAAY,EACZ,cAAc,EACd,QAAQ,EACR,WAAW,EACX,eAAe,EACf,MAAc,EACd,WAAW,EACX,YAAY,EACZ,cAAc,EACd,QAAQ,EACR,QAAQ,EACR,mBAAmB,EACnB,iBAAiB,EACjB,eAAe,EACf,mBAAmB,GACpB,EAAE,gBAAgB,2CA+JlB"}
@@ -1,11 +1,13 @@
1
1
  import { c as _c } from "react/compiler-runtime";
2
2
  import { date as formatDate } from '@planningcenter/datetime-fmt';
3
+ import { useHeaderHeight } from '@react-navigation/elements';
3
4
  import { noop } from 'lodash';
4
5
  import React, { useCallback, useEffect, useRef, useState } from 'react';
5
6
  import { FlatList, StyleSheet, View } from 'react-native';
6
7
  import { useTheme } from '../../hooks';
7
8
  import { getRelativeDateStatus } from '../../utils/date';
8
9
  import { groupMessages } from '../../utils/group_messages';
10
+ import { isLiquidGlassEnabled } from '../../utils/liquid_glass';
9
11
  import { CONVERSATION_MESSAGE_LIST_PADDING_HORIZONTAL } from '../../utils/styles';
10
12
  import { isSystemMessage } from '../../utils/system_messages';
11
13
  import { Text } from '../display';
@@ -34,7 +36,7 @@ const ANCHOR_VIEWABILITY = {
34
36
  * The inverted list of messages, reply previews, and date separators for a conversation
35
37
  */
36
38
  export function MessageList(t0) {
37
- const $ = _c(51);
39
+ const $ = _c(58);
38
40
  const {
39
41
  listRef,
40
42
  conversation,
@@ -55,28 +57,38 @@ export function MessageList(t0) {
55
57
  } = t0;
56
58
  const behind = t1 === undefined ? false : t1;
57
59
  const styles = useStyles();
60
+ const headerHeight = useHeaderHeight();
61
+ let t2;
62
+ if ($[0] !== headerHeight) {
63
+ t2 = isLiquidGlassEnabled() ? headerHeight : 0;
64
+ $[0] = headerHeight;
65
+ $[1] = t2;
66
+ } else {
67
+ t2 = $[1];
68
+ }
69
+ const glassHeaderInset = t2;
58
70
  const inReplyScreen = !!replyRootId;
59
71
  const canDeleteNonAuthoredMessages = conversation.memberAbility?.canDeleteNonAuthoredMessages ?? false;
60
72
  const conversationDisabled = conversation.disabled ?? false;
61
73
  const latestRead = conversation.latestReadMessageSortKey;
62
74
  let messagesWithSeparators;
63
- let t2;
64
- if ($[0] !== anchorMessageId || $[1] !== inReplyScreen || $[2] !== messages) {
75
+ let t3;
76
+ if ($[2] !== anchorMessageId || $[3] !== inReplyScreen || $[4] !== messages) {
65
77
  messagesWithSeparators = groupMessages({
66
78
  ms: messages,
67
79
  inReplyScreen
68
80
  });
69
- t2 = anchorMessageId ? messagesWithSeparators.findIndex(item => item.id === anchorMessageId) : -1;
70
- $[0] = anchorMessageId;
71
- $[1] = inReplyScreen;
72
- $[2] = messages;
73
- $[3] = messagesWithSeparators;
74
- $[4] = t2;
81
+ t3 = anchorMessageId ? messagesWithSeparators.findIndex(item => item.id === anchorMessageId) : -1;
82
+ $[2] = anchorMessageId;
83
+ $[3] = inReplyScreen;
84
+ $[4] = messages;
85
+ $[5] = messagesWithSeparators;
86
+ $[6] = t3;
75
87
  } else {
76
- messagesWithSeparators = $[3];
77
- t2 = $[4];
88
+ messagesWithSeparators = $[5];
89
+ t3 = $[6];
78
90
  }
79
- const anchorIndex = t2;
91
+ const anchorIndex = t3;
80
92
  const layoutHeight = useRef(0);
81
93
  const contentHeight = useRef(0);
82
94
  const userHasScrolled = useRef(false);
@@ -84,24 +96,24 @@ export function MessageList(t0) {
84
96
  const latestAnchorMessageId = useRef(anchorMessageId);
85
97
  const flashedAnchorId = useRef(null);
86
98
  const [highlightedMessageId, setHighlightedMessageId] = useState(null);
87
- let t3;
88
99
  let t4;
89
- if ($[5] !== anchorMessageId) {
90
- t3 = () => {
100
+ let t5;
101
+ if ($[7] !== anchorMessageId) {
102
+ t4 = () => {
91
103
  latestAnchorMessageId.current = anchorMessageId;
92
104
  };
93
- t4 = [anchorMessageId];
94
- $[5] = anchorMessageId;
95
- $[6] = t3;
96
- $[7] = t4;
105
+ t5 = [anchorMessageId];
106
+ $[7] = anchorMessageId;
107
+ $[8] = t4;
108
+ $[9] = t5;
97
109
  } else {
98
- t3 = $[6];
99
- t4 = $[7];
110
+ t4 = $[8];
111
+ t5 = $[9];
100
112
  }
101
- useEffect(t3, t4);
102
- let t5;
103
- if ($[8] !== anchorIndex || $[9] !== listRef) {
104
- t5 = () => {
113
+ useEffect(t4, t5);
114
+ let t6;
115
+ if ($[10] !== anchorIndex || $[11] !== listRef) {
116
+ t6 = () => {
105
117
  const anchorIsLoaded = anchorIndex >= 0;
106
118
  if (!anchorIsLoaded || userHasScrolled.current) {
107
119
  return;
@@ -117,60 +129,60 @@ export function MessageList(t0) {
117
129
  animated: false
118
130
  });
119
131
  };
120
- $[8] = anchorIndex;
121
- $[9] = listRef;
122
- $[10] = t5;
132
+ $[10] = anchorIndex;
133
+ $[11] = listRef;
134
+ $[12] = t6;
123
135
  } else {
124
- t5 = $[10];
136
+ t6 = $[12];
125
137
  }
126
- const pinAnchorToBottomEdge = t5;
127
- let t6;
128
- if ($[11] !== onLayout || $[12] !== pinAnchorToBottomEdge) {
129
- t6 = event => {
138
+ const pinAnchorToBottomEdge = t6;
139
+ let t7;
140
+ if ($[13] !== onLayout || $[14] !== pinAnchorToBottomEdge) {
141
+ t7 = event => {
130
142
  onLayout?.(event);
131
143
  layoutHeight.current = event.nativeEvent.layout.height;
132
144
  pinAnchorToBottomEdge();
133
145
  };
134
- $[11] = onLayout;
135
- $[12] = pinAnchorToBottomEdge;
136
- $[13] = t6;
146
+ $[13] = onLayout;
147
+ $[14] = pinAnchorToBottomEdge;
148
+ $[15] = t7;
137
149
  } else {
138
- t6 = $[13];
150
+ t7 = $[15];
139
151
  }
140
- const handleLayout = t6;
141
- let t7;
142
- if ($[14] !== onContentSizeChange || $[15] !== pinAnchorToBottomEdge) {
143
- t7 = (width, height) => {
152
+ const handleLayout = t7;
153
+ let t8;
154
+ if ($[16] !== onContentSizeChange || $[17] !== pinAnchorToBottomEdge) {
155
+ t8 = (width, height) => {
144
156
  onContentSizeChange?.(width, height);
145
157
  contentHeight.current = height;
146
158
  pinAnchorToBottomEdge();
147
159
  };
148
- $[14] = onContentSizeChange;
149
- $[15] = pinAnchorToBottomEdge;
150
- $[16] = t7;
160
+ $[16] = onContentSizeChange;
161
+ $[17] = pinAnchorToBottomEdge;
162
+ $[18] = t8;
151
163
  } else {
152
- t7 = $[16];
164
+ t8 = $[18];
153
165
  }
154
- const handleContentSizeChange = t7;
155
- let t8;
156
- if ($[17] !== onScrollBeginDrag) {
157
- t8 = event_0 => {
166
+ const handleContentSizeChange = t8;
167
+ let t9;
168
+ if ($[19] !== onScrollBeginDrag) {
169
+ t9 = event_0 => {
158
170
  userHasScrolled.current = true;
159
171
  draggedSinceStartReached.current = true;
160
172
  onScrollBeginDrag?.(event_0);
161
173
  };
162
- $[17] = onScrollBeginDrag;
163
- $[18] = t8;
174
+ $[19] = onScrollBeginDrag;
175
+ $[20] = t9;
164
176
  } else {
165
- t8 = $[18];
177
+ t9 = $[20];
166
178
  }
167
- const handleScrollBeginDrag = t8;
168
- let t9;
169
- if ($[19] === Symbol.for("react.memo_cache_sentinel")) {
170
- t9 = t10 => {
179
+ const handleScrollBeginDrag = t9;
180
+ let t10;
181
+ if ($[21] === Symbol.for("react.memo_cache_sentinel")) {
182
+ t10 = t11 => {
171
183
  const {
172
184
  viewableItems
173
- } = t10;
185
+ } = t11;
174
186
  const anchorId = latestAnchorMessageId.current;
175
187
  if (!anchorId || anchorId === flashedAnchorId.current) {
176
188
  return;
@@ -181,53 +193,69 @@ export function MessageList(t0) {
181
193
  flashedAnchorId.current = anchorId;
182
194
  setHighlightedMessageId(anchorId);
183
195
  };
184
- $[19] = t9;
196
+ $[21] = t10;
185
197
  } else {
186
- t9 = $[19];
198
+ t10 = $[21];
187
199
  }
188
- const flashAnchorOnceViewable = t9;
189
- let t10;
190
- if ($[20] === Symbol.for("react.memo_cache_sentinel")) {
191
- t10 = () => setHighlightedMessageId(null);
192
- $[20] = t10;
200
+ const flashAnchorOnceViewable = t10;
201
+ let t11;
202
+ if ($[22] === Symbol.for("react.memo_cache_sentinel")) {
203
+ t11 = () => setHighlightedMessageId(null);
204
+ $[22] = t11;
193
205
  } else {
194
- t10 = $[20];
206
+ t11 = $[22];
195
207
  }
196
- const clearHighlight = t10;
197
- let t11;
198
- if ($[21] !== onStartReached) {
199
- t11 = () => {
208
+ const clearHighlight = t11;
209
+ let t12;
210
+ if ($[23] !== onStartReached) {
211
+ t12 = () => {
200
212
  if (!draggedSinceStartReached.current) {
201
213
  return;
202
214
  }
203
215
  draggedSinceStartReached.current = false;
204
216
  onStartReached?.();
205
217
  };
206
- $[21] = onStartReached;
207
- $[22] = t11;
218
+ $[23] = onStartReached;
219
+ $[24] = t12;
208
220
  } else {
209
- t11 = $[22];
221
+ t12 = $[24];
210
222
  }
211
- const handleStartReached = t11;
212
- const t12 = behind ? HOLD_ONLY : HOLD_AND_FOLLOW;
223
+ const handleStartReached = t12;
213
224
  let t13;
214
- if ($[23] !== conversation || $[24] !== hasNextPage) {
215
- t13 = hasNextPage ? null : /*#__PURE__*/_jsx(ConversationStartBanner, {
225
+ let t14;
226
+ if ($[25] !== glassHeaderInset) {
227
+ t13 = {
228
+ bottom: glassHeaderInset
229
+ };
230
+ t14 = {
231
+ bottom: glassHeaderInset
232
+ };
233
+ $[25] = glassHeaderInset;
234
+ $[26] = t13;
235
+ $[27] = t14;
236
+ } else {
237
+ t13 = $[26];
238
+ t14 = $[27];
239
+ }
240
+ const t15 = behind ? HOLD_ONLY : HOLD_AND_FOLLOW;
241
+ let t16;
242
+ if ($[28] !== conversation || $[29] !== hasNextPage) {
243
+ t16 = hasNextPage ? null : /*#__PURE__*/_jsx(ConversationStartBanner, {
216
244
  conversation: conversation,
217
245
  hasMessages: true
218
246
  });
219
- $[23] = conversation;
220
- $[24] = hasNextPage;
221
- $[25] = t13;
247
+ $[28] = conversation;
248
+ $[29] = hasNextPage;
249
+ $[30] = t16;
222
250
  } else {
223
- t13 = $[25];
251
+ t16 = $[30];
224
252
  }
225
- let t14;
226
- if ($[26] !== canDeleteNonAuthoredMessages || $[27] !== conversationDisabled || $[28] !== conversationId || $[29] !== highlightedMessageId || $[30] !== inReplyScreen || $[31] !== latestRead) {
227
- t14 = t15 => {
253
+ let t17;
254
+ if ($[31] !== canDeleteNonAuthoredMessages || $[32] !== conversationDisabled || $[33] !== conversationId || $[34] !== highlightedMessageId || $[35] !== inReplyScreen || $[36] !== latestRead) {
255
+ t17 = t18 => {
228
256
  const {
229
257
  item: item_1
230
- } = t15;
258
+ } = t18;
231
259
  if (item_1.type === "DateSeparator") {
232
260
  return /*#__PURE__*/_jsx(InlineDateSeparator, {
233
261
  ...item_1
@@ -262,32 +290,34 @@ export function MessageList(t0) {
262
290
  onHighlightShown: clearHighlight
263
291
  });
264
292
  };
265
- $[26] = canDeleteNonAuthoredMessages;
266
- $[27] = conversationDisabled;
267
- $[28] = conversationId;
268
- $[29] = highlightedMessageId;
269
- $[30] = inReplyScreen;
270
- $[31] = latestRead;
271
- $[32] = t14;
293
+ $[31] = canDeleteNonAuthoredMessages;
294
+ $[32] = conversationDisabled;
295
+ $[33] = conversationId;
296
+ $[34] = highlightedMessageId;
297
+ $[35] = inReplyScreen;
298
+ $[36] = latestRead;
299
+ $[37] = t17;
272
300
  } else {
273
- t14 = $[32];
301
+ t17 = $[37];
274
302
  }
275
- let t15;
276
- if ($[33] !== styles.listHeader) {
277
- t15 = /*#__PURE__*/_jsx(View, {
303
+ let t18;
304
+ if ($[38] !== styles.listHeader) {
305
+ t18 = /*#__PURE__*/_jsx(View, {
278
306
  style: styles.listHeader
279
307
  });
280
- $[33] = styles.listHeader;
281
- $[34] = t15;
308
+ $[38] = styles.listHeader;
309
+ $[39] = t18;
282
310
  } else {
283
- t15 = $[34];
311
+ t18 = $[39];
284
312
  }
285
- let t16;
286
- if ($[35] !== handleContentSizeChange || $[36] !== handleLayout || $[37] !== handleScrollBeginDrag || $[38] !== handleStartReached || $[39] !== listRef || $[40] !== messagesWithSeparators || $[41] !== onEndReached || $[42] !== onMomentumScrollEnd || $[43] !== onScroll || $[44] !== onScrollEndDrag || $[45] !== styles.listContainer || $[46] !== t12 || $[47] !== t13 || $[48] !== t14 || $[49] !== t15) {
287
- t16 = /*#__PURE__*/_jsx(FlatList, {
313
+ let t19;
314
+ if ($[40] !== handleContentSizeChange || $[41] !== handleLayout || $[42] !== handleScrollBeginDrag || $[43] !== handleStartReached || $[44] !== listRef || $[45] !== messagesWithSeparators || $[46] !== onEndReached || $[47] !== onMomentumScrollEnd || $[48] !== onScroll || $[49] !== onScrollEndDrag || $[50] !== styles.listContainer || $[51] !== t13 || $[52] !== t14 || $[53] !== t15 || $[54] !== t16 || $[55] !== t17 || $[56] !== t18) {
315
+ t19 = /*#__PURE__*/_jsx(FlatList, {
288
316
  inverted: true,
289
317
  ref: listRef,
290
318
  contentContainerStyle: styles.listContainer,
319
+ contentInset: t13,
320
+ scrollIndicatorInsets: t14,
291
321
  data: messagesWithSeparators,
292
322
  keyExtractor: _temp,
293
323
  onScroll: onScroll,
@@ -300,33 +330,35 @@ export function MessageList(t0) {
300
330
  onViewableItemsChanged: flashAnchorOnceViewable,
301
331
  viewabilityConfig: ANCHOR_VIEWABILITY,
302
332
  scrollEventThrottle: 10,
303
- maintainVisibleContentPosition: t12,
304
- ListFooterComponent: t13,
305
- renderItem: t14,
333
+ maintainVisibleContentPosition: t15,
334
+ ListFooterComponent: t16,
335
+ renderItem: t17,
306
336
  onEndReached: onEndReached,
307
337
  onStartReached: handleStartReached,
308
- ListHeaderComponent: t15
338
+ ListHeaderComponent: t18
309
339
  });
310
- $[35] = handleContentSizeChange;
311
- $[36] = handleLayout;
312
- $[37] = handleScrollBeginDrag;
313
- $[38] = handleStartReached;
314
- $[39] = listRef;
315
- $[40] = messagesWithSeparators;
316
- $[41] = onEndReached;
317
- $[42] = onMomentumScrollEnd;
318
- $[43] = onScroll;
319
- $[44] = onScrollEndDrag;
320
- $[45] = styles.listContainer;
321
- $[46] = t12;
322
- $[47] = t13;
323
- $[48] = t14;
324
- $[49] = t15;
325
- $[50] = t16;
340
+ $[40] = handleContentSizeChange;
341
+ $[41] = handleLayout;
342
+ $[42] = handleScrollBeginDrag;
343
+ $[43] = handleStartReached;
344
+ $[44] = listRef;
345
+ $[45] = messagesWithSeparators;
346
+ $[46] = onEndReached;
347
+ $[47] = onMomentumScrollEnd;
348
+ $[48] = onScroll;
349
+ $[49] = onScrollEndDrag;
350
+ $[50] = styles.listContainer;
351
+ $[51] = t13;
352
+ $[52] = t14;
353
+ $[53] = t15;
354
+ $[54] = t16;
355
+ $[55] = t17;
356
+ $[56] = t18;
357
+ $[57] = t19;
326
358
  } else {
327
- t16 = $[50];
359
+ t19 = $[57];
328
360
  }
329
- return t16;
361
+ return t19;
330
362
  }
331
363
  function _temp(item_0) {
332
364
  return item_0.id;
@@ -1 +1 @@
1
- {"version":3,"file":"message_list.js","names":["date","formatDate","noop","React","useCallback","useEffect","useRef","useState","FlatList","StyleSheet","View","useTheme","getRelativeDateStatus","groupMessages","CONVERSATION_MESSAGE_LIST_PADDING_HORIZONTAL","isSystemMessage","Text","ConversationStartBanner","Message","MissingMessage","ReplyShadowMessage","SystemMessage","jsx","_jsx","jsxs","_jsxs","HOLD_AND_FOLLOW","minIndexForVisible","autoscrollToTopThreshold","HOLD_ONLY","ANCHOR_CLEARS_JUMP_BUTTON","ANCHOR_VIEWABILITY","itemVisiblePercentThreshold","MessageList","t0","$","_c","listRef","conversation","conversationId","messages","replyRootId","anchorMessageId","behind","t1","hasNextPage","onEndReached","onStartReached","onScroll","onLayout","onContentSizeChange","onScrollBeginDrag","onScrollEndDrag","onMomentumScrollEnd","undefined","styles","useStyles","inReplyScreen","canDeleteNonAuthoredMessages","memberAbility","conversationDisabled","disabled","latestRead","latestReadMessageSortKey","messagesWithSeparators","t2","ms","findIndex","item","id","anchorIndex","layoutHeight","contentHeight","userHasScrolled","draggedSinceStartReached","latestAnchorMessageId","flashedAnchorId","highlightedMessageId","setHighlightedMessageId","t3","t4","current","t5","anchorIsLoaded","scrollable","scrollToIndex","index","viewPosition","viewOffset","animated","pinAnchorToBottomEdge","t6","event","nativeEvent","layout","height","handleLayout","t7","width","handleContentSizeChange","t8","event_0","handleScrollBeginDrag","t9","Symbol","for","t10","viewableItems","anchorId","some","token","flashAnchorOnceViewable","clearHighlight","t11","handleStartReached","t12","t13","hasMessages","t14","t15","item_1","type","InlineDateSeparator","deletedAt","readByOthers","mine","highlighted","listHeader","style","t16","listContainer","inverted","contentContainerStyle","keyExtractor","_temp","scrollEventThrottle","maintainVisibleContentPosition","ListFooterComponent","renderItem","ListHeaderComponent","item_0","useDateSeparatorStyles","isThisYear","showYear","year","dateStamp","separator","dateText","variant","children","container","theme","colors","borderColorDefaultBase","create","alignItems","flexDirection","paddingHorizontal","paddingVertical","flex","borderTopWidth","borderTopColor"],"sources":["../../../src/components/conversation/message_list.tsx"],"sourcesContent":["import { date as formatDate } from '@planningcenter/datetime-fmt'\nimport { noop } from 'lodash'\nimport React, { RefObject, useCallback, useEffect, useRef, useState } from 'react'\nimport { FlatList, FlatListProps, StyleSheet, View } from 'react-native'\nimport { useTheme } from '../../hooks'\nimport { ConversationResource } from '../../types/resources/conversation'\nimport { MessageResource } from '../../types/resources/message'\nimport { getRelativeDateStatus } from '../../utils/date'\nimport { groupMessages, type DateSeparator, type EnrichedMessage } from '../../utils/group_messages'\nimport { CONVERSATION_MESSAGE_LIST_PADDING_HORIZONTAL } from '../../utils/styles'\nimport { isSystemMessage } from '../../utils/system_messages'\nimport { Text } from '../display'\nimport { ConversationStartBanner } from './conversation_start_banner'\nimport { Message } from './message'\nimport { MissingMessage } from './missing_message'\nimport { ReplyShadowMessage } from './reply_shadow_message'\nimport { SystemMessage } from './system_message'\n\n// While behind, the bottom of the window isn't the live edge. Following there pulls\n// each newly paged-in page into view and chains the next fetch.\nconst HOLD_AND_FOLLOW = { minIndexForVisible: 0, autoscrollToTopThreshold: 100 }\nconst HOLD_ONLY = { minIndexForVisible: 0 }\n\ntype ScrollHandlers = Pick<\n FlatListProps<EnrichedMessage>,\n | 'onScroll'\n | 'onLayout'\n | 'onContentSizeChange'\n | 'onScrollBeginDrag'\n | 'onScrollEndDrag'\n | 'onMomentumScrollEnd'\n>\n\ninterface MessageListProps extends ScrollHandlers {\n listRef: RefObject<FlatList | null>\n conversation: ConversationResource\n conversationId: number\n messages: MessageResource[]\n replyRootId?: string | null\n anchorMessageId?: string | null\n behind?: boolean\n hasNextPage: boolean\n onEndReached: () => void\n onStartReached?: () => void\n}\n\nconst ANCHOR_CLEARS_JUMP_BUTTON = 56\nconst ANCHOR_VIEWABILITY = { itemVisiblePercentThreshold: 50 }\n\n/** MessageList\n * The inverted list of messages, reply previews, and date separators for a conversation\n */\nexport function MessageList({\n listRef,\n conversation,\n conversationId,\n messages,\n replyRootId,\n anchorMessageId,\n behind = false,\n hasNextPage,\n onEndReached,\n onStartReached,\n onScroll,\n onLayout,\n onContentSizeChange,\n onScrollBeginDrag,\n onScrollEndDrag,\n onMomentumScrollEnd,\n}: MessageListProps) {\n const styles = useStyles()\n const inReplyScreen = !!replyRootId\n const canDeleteNonAuthoredMessages =\n conversation.memberAbility?.canDeleteNonAuthoredMessages ?? false\n const conversationDisabled = conversation.disabled ?? false\n const latestRead = conversation.latestReadMessageSortKey\n const messagesWithSeparators = groupMessages({ ms: messages, inReplyScreen })\n const anchorIndex = anchorMessageId\n ? messagesWithSeparators.findIndex(item => item.id === anchorMessageId)\n : -1\n const layoutHeight = useRef(0)\n const contentHeight = useRef(0)\n const userHasScrolled = useRef(false)\n const draggedSinceStartReached = useRef(false)\n const latestAnchorMessageId = useRef(anchorMessageId)\n const flashedAnchorId = useRef<string | null>(null)\n const [highlightedMessageId, setHighlightedMessageId] = useState<string | null>(null)\n\n useEffect(() => {\n latestAnchorMessageId.current = anchorMessageId\n }, [anchorMessageId])\n\n // Row heights keep settling after the first layout (images, attachments), so we\n // re-pin on every layout pass until the reader takes over with a drag.\n const pinAnchorToBottomEdge = () => {\n const anchorIsLoaded = anchorIndex >= 0\n if (!anchorIsLoaded || userHasScrolled.current) return\n\n const scrollable = layoutHeight.current > 0 && contentHeight.current > layoutHeight.current\n if (!scrollable) return\n\n listRef.current?.scrollToIndex({\n index: anchorIndex,\n viewPosition: 0,\n viewOffset: ANCHOR_CLEARS_JUMP_BUTTON,\n animated: false,\n })\n }\n\n const handleLayout: FlatListProps<EnrichedMessage>['onLayout'] = event => {\n onLayout?.(event)\n layoutHeight.current = event.nativeEvent.layout.height\n pinAnchorToBottomEdge()\n }\n\n const handleContentSizeChange: FlatListProps<EnrichedMessage>['onContentSizeChange'] = (\n width,\n height\n ) => {\n onContentSizeChange?.(width, height)\n contentHeight.current = height\n pinAnchorToBottomEdge()\n }\n\n const handleScrollBeginDrag: FlatListProps<EnrichedMessage>['onScrollBeginDrag'] = event => {\n userHasScrolled.current = true\n draggedSinceStartReached.current = true\n onScrollBeginDrag?.(event)\n }\n\n const flashAnchorOnceViewable: FlatListProps<EnrichedMessage>['onViewableItemsChanged'] = ({\n viewableItems,\n }) => {\n const anchorId = latestAnchorMessageId.current\n if (!anchorId || anchorId === flashedAnchorId.current) return\n if (!viewableItems.some(token => token.item.id === anchorId)) return\n\n flashedAnchorId.current = anchorId\n setHighlightedMessageId(anchorId)\n }\n\n const clearHighlight = useCallback(() => setHighlightedMessageId(null), [])\n\n // VirtualizedList re-checks its edges on every content size change using a JS offset\n // the native hold never updates, so without this each merged page re-fires it.\n const handleStartReached = () => {\n if (!draggedSinceStartReached.current) return\n\n draggedSinceStartReached.current = false\n onStartReached?.()\n }\n\n return (\n <FlatList\n inverted\n ref={listRef}\n contentContainerStyle={styles.listContainer}\n data={messagesWithSeparators}\n keyExtractor={item => item.id}\n onScroll={onScroll}\n onLayout={handleLayout}\n onContentSizeChange={handleContentSizeChange}\n onScrollBeginDrag={handleScrollBeginDrag}\n // Expected while rows are still measuring; the next layout pass pins again.\n onScrollToIndexFailed={noop}\n onScrollEndDrag={onScrollEndDrag}\n onMomentumScrollEnd={onMomentumScrollEnd}\n onViewableItemsChanged={flashAnchorOnceViewable}\n viewabilityConfig={ANCHOR_VIEWABILITY}\n scrollEventThrottle={10}\n maintainVisibleContentPosition={behind ? HOLD_ONLY : HOLD_AND_FOLLOW}\n ListFooterComponent={\n hasNextPage ? null : (\n <ConversationStartBanner conversation={conversation} hasMessages={true} />\n )\n }\n renderItem={({ item }) => {\n if (item.type === 'DateSeparator') {\n return <InlineDateSeparator {...item} />\n }\n\n if (item.type === 'Message' && item.deletedAt && !item.replyRootId) {\n return <MissingMessage />\n }\n\n if (item.type === 'ReplyShadowMessage') {\n return (\n <ReplyShadowMessage\n {...(item as any)}\n conversation_id={conversationId}\n inReplyScreen={inReplyScreen}\n />\n )\n }\n\n if (isSystemMessage(item)) {\n return (\n <SystemMessage\n message={item}\n conversationId={conversationId}\n conversationDisabled={conversationDisabled}\n />\n )\n }\n\n const readByOthers = item.mine && !!latestRead && item.id <= latestRead\n return (\n <Message\n {...item}\n canDeleteNonAuthoredMessages={canDeleteNonAuthoredMessages}\n conversationDisabled={conversationDisabled}\n conversation_id={conversationId}\n readByOthers={readByOthers}\n inReplyScreen={inReplyScreen}\n highlighted={item.id === highlightedMessageId}\n onHighlightShown={clearHighlight}\n />\n )\n }}\n onEndReached={onEndReached}\n onStartReached={handleStartReached}\n ListHeaderComponent={<View style={styles.listHeader} />}\n />\n )\n}\n\nfunction InlineDateSeparator({ date }: DateSeparator) {\n const styles = useDateSeparatorStyles()\n const { isThisYear } = getRelativeDateStatus(date)\n const showYear = !isThisYear\n const dateStamp = formatDate(date, { style: 'long', year: showYear })\n\n return (\n <View style={styles.container}>\n <View style={styles.separator} />\n <Text variant=\"footnote\" style={styles.dateText}>\n {dateStamp}\n </Text>\n <View style={styles.separator} />\n </View>\n )\n}\n\nconst useDateSeparatorStyles = () => {\n const theme = useTheme()\n return StyleSheet.create({\n container: {\n alignItems: 'center',\n flexDirection: 'row',\n paddingHorizontal: CONVERSATION_MESSAGE_LIST_PADDING_HORIZONTAL,\n paddingVertical: 16,\n },\n separator: {\n flex: 1,\n height: 1,\n borderTopWidth: 1,\n borderTopColor: theme.colors.borderColorDefaultBase,\n },\n dateText: {\n paddingHorizontal: 8,\n },\n })\n}\n\nconst useStyles = () =>\n StyleSheet.create({\n listContainer: {\n paddingVertical: 12,\n },\n listHeader: {\n // Just whitespace to provide space where the typing indicator can be\n height: 16,\n },\n })\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"message_list.js","names":["date","formatDate","useHeaderHeight","noop","React","useCallback","useEffect","useRef","useState","FlatList","StyleSheet","View","useTheme","getRelativeDateStatus","groupMessages","isLiquidGlassEnabled","CONVERSATION_MESSAGE_LIST_PADDING_HORIZONTAL","isSystemMessage","Text","ConversationStartBanner","Message","MissingMessage","ReplyShadowMessage","SystemMessage","jsx","_jsx","jsxs","_jsxs","HOLD_AND_FOLLOW","minIndexForVisible","autoscrollToTopThreshold","HOLD_ONLY","ANCHOR_CLEARS_JUMP_BUTTON","ANCHOR_VIEWABILITY","itemVisiblePercentThreshold","MessageList","t0","$","_c","listRef","conversation","conversationId","messages","replyRootId","anchorMessageId","behind","t1","hasNextPage","onEndReached","onStartReached","onScroll","onLayout","onContentSizeChange","onScrollBeginDrag","onScrollEndDrag","onMomentumScrollEnd","undefined","styles","useStyles","headerHeight","t2","glassHeaderInset","inReplyScreen","canDeleteNonAuthoredMessages","memberAbility","conversationDisabled","disabled","latestRead","latestReadMessageSortKey","messagesWithSeparators","t3","ms","findIndex","item","id","anchorIndex","layoutHeight","contentHeight","userHasScrolled","draggedSinceStartReached","latestAnchorMessageId","flashedAnchorId","highlightedMessageId","setHighlightedMessageId","t4","t5","current","t6","anchorIsLoaded","scrollable","scrollToIndex","index","viewPosition","viewOffset","animated","pinAnchorToBottomEdge","t7","event","nativeEvent","layout","height","handleLayout","t8","width","handleContentSizeChange","t9","event_0","handleScrollBeginDrag","t10","Symbol","for","t11","viewableItems","anchorId","some","token","flashAnchorOnceViewable","clearHighlight","t12","handleStartReached","t13","t14","bottom","t15","t16","hasMessages","t17","t18","item_1","type","InlineDateSeparator","deletedAt","readByOthers","mine","highlighted","listHeader","style","t19","listContainer","inverted","contentContainerStyle","contentInset","scrollIndicatorInsets","keyExtractor","_temp","scrollEventThrottle","maintainVisibleContentPosition","ListFooterComponent","renderItem","ListHeaderComponent","item_0","useDateSeparatorStyles","isThisYear","showYear","year","dateStamp","separator","dateText","variant","children","container","theme","colors","borderColorDefaultBase","create","alignItems","flexDirection","paddingHorizontal","paddingVertical","flex","borderTopWidth","borderTopColor"],"sources":["../../../src/components/conversation/message_list.tsx"],"sourcesContent":["import { date as formatDate } from '@planningcenter/datetime-fmt'\nimport { useHeaderHeight } from '@react-navigation/elements'\nimport { noop } from 'lodash'\nimport React, { RefObject, useCallback, useEffect, useRef, useState } from 'react'\nimport { FlatList, FlatListProps, StyleSheet, View } from 'react-native'\nimport { useTheme } from '../../hooks'\nimport { ConversationResource } from '../../types/resources/conversation'\nimport { MessageResource } from '../../types/resources/message'\nimport { getRelativeDateStatus } from '../../utils/date'\nimport { groupMessages, type DateSeparator, type EnrichedMessage } from '../../utils/group_messages'\nimport { isLiquidGlassEnabled } from '../../utils/liquid_glass'\nimport { CONVERSATION_MESSAGE_LIST_PADDING_HORIZONTAL } from '../../utils/styles'\nimport { isSystemMessage } from '../../utils/system_messages'\nimport { Text } from '../display'\nimport { ConversationStartBanner } from './conversation_start_banner'\nimport { Message } from './message'\nimport { MissingMessage } from './missing_message'\nimport { ReplyShadowMessage } from './reply_shadow_message'\nimport { SystemMessage } from './system_message'\n\n// While behind, the bottom of the window isn't the live edge. Following there pulls\n// each newly paged-in page into view and chains the next fetch.\nconst HOLD_AND_FOLLOW = { minIndexForVisible: 0, autoscrollToTopThreshold: 100 }\nconst HOLD_ONLY = { minIndexForVisible: 0 }\n\ntype ScrollHandlers = Pick<\n FlatListProps<EnrichedMessage>,\n | 'onScroll'\n | 'onLayout'\n | 'onContentSizeChange'\n | 'onScrollBeginDrag'\n | 'onScrollEndDrag'\n | 'onMomentumScrollEnd'\n>\n\ninterface MessageListProps extends ScrollHandlers {\n listRef: RefObject<FlatList | null>\n conversation: ConversationResource\n conversationId: number\n messages: MessageResource[]\n replyRootId?: string | null\n anchorMessageId?: string | null\n behind?: boolean\n hasNextPage: boolean\n onEndReached: () => void\n onStartReached?: () => void\n}\n\nconst ANCHOR_CLEARS_JUMP_BUTTON = 56\nconst ANCHOR_VIEWABILITY = { itemVisiblePercentThreshold: 50 }\n\n/** MessageList\n * The inverted list of messages, reply previews, and date separators for a conversation\n */\nexport function MessageList({\n listRef,\n conversation,\n conversationId,\n messages,\n replyRootId,\n anchorMessageId,\n behind = false,\n hasNextPage,\n onEndReached,\n onStartReached,\n onScroll,\n onLayout,\n onContentSizeChange,\n onScrollBeginDrag,\n onScrollEndDrag,\n onMomentumScrollEnd,\n}: MessageListProps) {\n const styles = useStyles()\n const headerHeight = useHeaderHeight()\n const glassHeaderInset = isLiquidGlassEnabled() ? headerHeight : 0\n const inReplyScreen = !!replyRootId\n const canDeleteNonAuthoredMessages =\n conversation.memberAbility?.canDeleteNonAuthoredMessages ?? false\n const conversationDisabled = conversation.disabled ?? false\n const latestRead = conversation.latestReadMessageSortKey\n const messagesWithSeparators = groupMessages({ ms: messages, inReplyScreen })\n const anchorIndex = anchorMessageId\n ? messagesWithSeparators.findIndex(item => item.id === anchorMessageId)\n : -1\n const layoutHeight = useRef(0)\n const contentHeight = useRef(0)\n const userHasScrolled = useRef(false)\n const draggedSinceStartReached = useRef(false)\n const latestAnchorMessageId = useRef(anchorMessageId)\n const flashedAnchorId = useRef<string | null>(null)\n const [highlightedMessageId, setHighlightedMessageId] = useState<string | null>(null)\n\n useEffect(() => {\n latestAnchorMessageId.current = anchorMessageId\n }, [anchorMessageId])\n\n // Row heights keep settling after the first layout (images, attachments), so we\n // re-pin on every layout pass until the reader takes over with a drag.\n const pinAnchorToBottomEdge = () => {\n const anchorIsLoaded = anchorIndex >= 0\n if (!anchorIsLoaded || userHasScrolled.current) return\n\n const scrollable = layoutHeight.current > 0 && contentHeight.current > layoutHeight.current\n if (!scrollable) return\n\n listRef.current?.scrollToIndex({\n index: anchorIndex,\n viewPosition: 0,\n viewOffset: ANCHOR_CLEARS_JUMP_BUTTON,\n animated: false,\n })\n }\n\n const handleLayout: FlatListProps<EnrichedMessage>['onLayout'] = event => {\n onLayout?.(event)\n layoutHeight.current = event.nativeEvent.layout.height\n pinAnchorToBottomEdge()\n }\n\n const handleContentSizeChange: FlatListProps<EnrichedMessage>['onContentSizeChange'] = (\n width,\n height\n ) => {\n onContentSizeChange?.(width, height)\n contentHeight.current = height\n pinAnchorToBottomEdge()\n }\n\n const handleScrollBeginDrag: FlatListProps<EnrichedMessage>['onScrollBeginDrag'] = event => {\n userHasScrolled.current = true\n draggedSinceStartReached.current = true\n onScrollBeginDrag?.(event)\n }\n\n const flashAnchorOnceViewable: FlatListProps<EnrichedMessage>['onViewableItemsChanged'] = ({\n viewableItems,\n }) => {\n const anchorId = latestAnchorMessageId.current\n if (!anchorId || anchorId === flashedAnchorId.current) return\n if (!viewableItems.some(token => token.item.id === anchorId)) return\n\n flashedAnchorId.current = anchorId\n setHighlightedMessageId(anchorId)\n }\n\n const clearHighlight = useCallback(() => setHighlightedMessageId(null), [])\n\n // VirtualizedList re-checks its edges on every content size change using a JS offset\n // the native hold never updates, so without this each merged page re-fires it.\n const handleStartReached = () => {\n if (!draggedSinceStartReached.current) return\n\n draggedSinceStartReached.current = false\n onStartReached?.()\n }\n\n return (\n <FlatList\n inverted\n ref={listRef}\n contentContainerStyle={styles.listContainer}\n contentInset={{ bottom: glassHeaderInset }}\n scrollIndicatorInsets={{ bottom: glassHeaderInset }}\n data={messagesWithSeparators}\n keyExtractor={item => item.id}\n onScroll={onScroll}\n onLayout={handleLayout}\n onContentSizeChange={handleContentSizeChange}\n onScrollBeginDrag={handleScrollBeginDrag}\n // Expected while rows are still measuring; the next layout pass pins again.\n onScrollToIndexFailed={noop}\n onScrollEndDrag={onScrollEndDrag}\n onMomentumScrollEnd={onMomentumScrollEnd}\n onViewableItemsChanged={flashAnchorOnceViewable}\n viewabilityConfig={ANCHOR_VIEWABILITY}\n scrollEventThrottle={10}\n maintainVisibleContentPosition={behind ? HOLD_ONLY : HOLD_AND_FOLLOW}\n ListFooterComponent={\n hasNextPage ? null : (\n <ConversationStartBanner conversation={conversation} hasMessages={true} />\n )\n }\n renderItem={({ item }) => {\n if (item.type === 'DateSeparator') {\n return <InlineDateSeparator {...item} />\n }\n\n if (item.type === 'Message' && item.deletedAt && !item.replyRootId) {\n return <MissingMessage />\n }\n\n if (item.type === 'ReplyShadowMessage') {\n return (\n <ReplyShadowMessage\n {...(item as any)}\n conversation_id={conversationId}\n inReplyScreen={inReplyScreen}\n />\n )\n }\n\n if (isSystemMessage(item)) {\n return (\n <SystemMessage\n message={item}\n conversationId={conversationId}\n conversationDisabled={conversationDisabled}\n />\n )\n }\n\n const readByOthers = item.mine && !!latestRead && item.id <= latestRead\n return (\n <Message\n {...item}\n canDeleteNonAuthoredMessages={canDeleteNonAuthoredMessages}\n conversationDisabled={conversationDisabled}\n conversation_id={conversationId}\n readByOthers={readByOthers}\n inReplyScreen={inReplyScreen}\n highlighted={item.id === highlightedMessageId}\n onHighlightShown={clearHighlight}\n />\n )\n }}\n onEndReached={onEndReached}\n onStartReached={handleStartReached}\n ListHeaderComponent={<View style={styles.listHeader} />}\n />\n )\n}\n\nfunction InlineDateSeparator({ date }: DateSeparator) {\n const styles = useDateSeparatorStyles()\n const { isThisYear } = getRelativeDateStatus(date)\n const showYear = !isThisYear\n const dateStamp = formatDate(date, { style: 'long', year: showYear })\n\n return (\n <View style={styles.container}>\n <View style={styles.separator} />\n <Text variant=\"footnote\" style={styles.dateText}>\n {dateStamp}\n </Text>\n <View style={styles.separator} />\n </View>\n )\n}\n\nconst useDateSeparatorStyles = () => {\n const theme = useTheme()\n return StyleSheet.create({\n container: {\n alignItems: 'center',\n flexDirection: 'row',\n paddingHorizontal: CONVERSATION_MESSAGE_LIST_PADDING_HORIZONTAL,\n paddingVertical: 16,\n },\n separator: {\n flex: 1,\n height: 1,\n borderTopWidth: 1,\n borderTopColor: theme.colors.borderColorDefaultBase,\n },\n dateText: {\n paddingHorizontal: 8,\n },\n })\n}\n\nconst useStyles = () =>\n StyleSheet.create({\n listContainer: {\n paddingVertical: 12,\n },\n listHeader: {\n // Just whitespace to provide space where the typing indicator can be\n height: 16,\n },\n })\n"],"mappings":";AAAA,SAASA,IAAI,IAAIC,UAAU,QAAQ,8BAA8B;AACjE,SAASC,eAAe,QAAQ,4BAA4B;AAC5D,SAASC,IAAI,QAAQ,QAAQ;AAC7B,OAAOC,KAAK,IAAeC,WAAW,EAAEC,SAAS,EAAEC,MAAM,EAAEC,QAAQ,QAAQ,OAAO;AAClF,SAASC,QAAQ,EAAiBC,UAAU,EAAEC,IAAI,QAAQ,cAAc;AACxE,SAASC,QAAQ,QAAQ,aAAa;AAGtC,SAASC,qBAAqB,QAAQ,kBAAkB;AACxD,SAASC,aAAa,QAAkD,4BAA4B;AACpG,SAASC,oBAAoB,QAAQ,0BAA0B;AAC/D,SAASC,4CAA4C,QAAQ,oBAAoB;AACjF,SAASC,eAAe,QAAQ,6BAA6B;AAC7D,SAASC,IAAI,QAAQ,YAAY;AACjC,SAASC,uBAAuB,QAAQ,6BAA6B;AACrE,SAASC,OAAO,QAAQ,WAAW;AACnC,SAASC,cAAc,QAAQ,mBAAmB;AAClD,SAASC,kBAAkB,QAAQ,wBAAwB;AAC3D,SAASC,aAAa,QAAQ,kBAAkB;;AAEhD;AACA;AAAA,SAAAC,GAAA,IAAAC,IAAA,EAAAC,IAAA,IAAAC,KAAA;AACA,MAAMC,eAAe,GAAG;EAAEC,kBAAkB,EAAE,CAAC;EAAEC,wBAAwB,EAAE;AAAI,CAAC;AAChF,MAAMC,SAAS,GAAG;EAAEF,kBAAkB,EAAE;AAAE,CAAC;AAyB3C,MAAMG,yBAAyB,GAAG,EAAE;AACpC,MAAMC,kBAAkB,GAAG;EAAEC,2BAA2B,EAAE;AAAG,CAAC;;AAE9D;AACA;AACA;AACA,OAAO,SAAAC,YAAAC,EAAA;EAAA,MAAAC,CAAA,GAAAC,EAAA;EAAqB;IAAAC,OAAA;IAAAC,YAAA;IAAAC,cAAA;IAAAC,QAAA;IAAAC,WAAA;IAAAC,eAAA;IAAAC,MAAA,EAAAC,EAAA;IAAAC,WAAA;IAAAC,YAAA;IAAAC,cAAA;IAAAC,QAAA;IAAAC,QAAA;IAAAC,mBAAA;IAAAC,iBAAA;IAAAC,eAAA;IAAAC;EAAA,IAAAnB,EAiBT;EAVjB,MAAAS,MAAA,GAAAC,EAAc,KAAdU,SAAc,GAAd,KAAc,GAAdV,EAAc;EAWd,MAAAW,MAAA,GAAeC,SAAS,CAAC,CAAC;EAC1B,MAAAC,YAAA,GAAqBzD,eAAe,CAAC,CAAC;EAAA,IAAA0D,EAAA;EAAA,IAAAvB,CAAA,QAAAsB,YAAA;IACbC,EAAA,GAAA7C,oBAAoB,CAAoB,CAAC,GAAzC4C,YAAyC,GAAzC,CAAyC;IAAAtB,CAAA,MAAAsB,YAAA;IAAAtB,CAAA,MAAAuB,EAAA;EAAA;IAAAA,EAAA,GAAAvB,CAAA;EAAA;EAAlE,MAAAwB,gBAAA,GAAyBD,EAAyC;EAClE,MAAAE,aAAA,GAAsB,CAAC,CAACnB,WAAW;EACnC,MAAAoB,4BAAA,GACEvB,YAAY,CAAAwB,aAA4C,EAAAD,4BAAS,IAAjE,KAAiE;EACnE,MAAAE,oBAAA,GAA6BzB,YAAY,CAAA0B,QAAkB,IAA9B,KAA8B;EAC3D,MAAAC,UAAA,GAAmB3B,YAAY,CAAA4B,wBAAyB;EAAA,IAAAC,sBAAA;EAAA,IAAAC,EAAA;EAAA,IAAAjC,CAAA,QAAAO,eAAA,IAAAP,CAAA,QAAAyB,aAAA,IAAAzB,CAAA,QAAAK,QAAA;IACxD2B,sBAAA,GAA+BvD,aAAa,CAAC;MAAAyD,EAAA,EAAM7B,QAAQ;MAAAoB;IAAgB,CAAC,CAAC;IACzDQ,EAAA,GAAA1B,eAAe,GAC/ByB,sBAAsB,CAAAG,SAAU,CAACC,IAAA,IAAQA,IAAI,CAAAC,EAAG,KAAK9B,eACpD,CAAC,GAFc,EAEd;IAAAP,CAAA,MAAAO,eAAA;IAAAP,CAAA,MAAAyB,aAAA;IAAAzB,CAAA,MAAAK,QAAA;IAAAL,CAAA,MAAAgC,sBAAA;IAAAhC,CAAA,MAAAiC,EAAA;EAAA;IAAAD,sBAAA,GAAAhC,CAAA;IAAAiC,EAAA,GAAAjC,CAAA;EAAA;EAFN,MAAAsC,WAAA,GAAoBL,EAEd;EACN,MAAAM,YAAA,GAAqBrE,MAAM,CAAC,CAAC,CAAC;EAC9B,MAAAsE,aAAA,GAAsBtE,MAAM,CAAC,CAAC,CAAC;EAC/B,MAAAuE,eAAA,GAAwBvE,MAAM,CAAC,KAAK,CAAC;EACrC,MAAAwE,wBAAA,GAAiCxE,MAAM,CAAC,KAAK,CAAC;EAC9C,MAAAyE,qBAAA,GAA8BzE,MAAM,CAACqC,eAAe,CAAC;EACrD,MAAAqC,eAAA,GAAwB1E,MAAM,CAAgB,IAAI,CAAC;EACnD,OAAA2E,oBAAA,EAAAC,uBAAA,IAAwD3E,QAAQ,CAAgB,IAAI,CAAC;EAAA,IAAA4E,EAAA;EAAA,IAAAC,EAAA;EAAA,IAAAhD,CAAA,QAAAO,eAAA;IAE3EwC,EAAA,GAAAA,CAAA;MACRJ,qBAAqB,CAAAM,OAAA,GAAW1C,eAAH;IAAA,CAC9B;IAAEyC,EAAA,IAACzC,eAAe,CAAC;IAAAP,CAAA,MAAAO,eAAA;IAAAP,CAAA,MAAA+C,EAAA;IAAA/C,CAAA,MAAAgD,EAAA;EAAA;IAAAD,EAAA,GAAA/C,CAAA;IAAAgD,EAAA,GAAAhD,CAAA;EAAA;EAFpB/B,SAAS,CAAC8E,EAET,EAAEC,EAAiB,CAAC;EAAA,IAAAE,EAAA;EAAA,IAAAlD,CAAA,SAAAsC,WAAA,IAAAtC,CAAA,SAAAE,OAAA;IAISgD,EAAA,GAAAA,CAAA;MAC5B,MAAAC,cAAA,GAAuBb,WAAW,IAAI,CAAC;MACvC,IAAI,CAACa,cAAyC,IAAvBV,eAAe,CAAAQ,OAAQ;QAAA;MAAA;MAE9C,MAAAG,UAAA,GAAmBb,YAAY,CAAAU,OAAQ,GAAG,CAAiD,IAA5CT,aAAa,CAAAS,OAAQ,GAAGV,YAAY,CAAAU,OAAQ;MAC3F,IAAI,CAACG,UAAU;QAAA;MAAA;MAEflD,OAAO,CAAA+C,OAAuB,EAAAI,aAK5B,CAL6B;QAAAC,KAAA,EACtBhB,WAAW;QAAAiB,YAAA,EACJ,CAAC;QAAAC,UAAA,EACH7D,yBAAyB;QAAA8D,QAAA,EAC3B;MACZ,CAAC,CAAC;IAAA,CACH;IAAAzD,CAAA,OAAAsC,WAAA;IAAAtC,CAAA,OAAAE,OAAA;IAAAF,CAAA,OAAAkD,EAAA;EAAA;IAAAA,EAAA,GAAAlD,CAAA;EAAA;EAbD,MAAA0D,qBAAA,GAA8BR,EAa7B;EAAA,IAAAS,EAAA;EAAA,IAAA3D,CAAA,SAAAc,QAAA,IAAAd,CAAA,SAAA0D,qBAAA;IAEgEC,EAAA,GAAAC,KAAA;MAC/D9C,QAAQ,GAAG8C,KAAK,CAAC;MACjBrB,YAAY,CAAAU,OAAA,GAAWW,KAAK,CAAAC,WAAY,CAAAC,MAAO,CAAAC,MAA3B;MACpBL,qBAAqB,CAAC,CAAC;IAAA,CACxB;IAAA1D,CAAA,OAAAc,QAAA;IAAAd,CAAA,OAAA0D,qBAAA;IAAA1D,CAAA,OAAA2D,EAAA;EAAA;IAAAA,EAAA,GAAA3D,CAAA;EAAA;EAJD,MAAAgE,YAAA,GAAiEL,EAIhE;EAAA,IAAAM,EAAA;EAAA,IAAAjE,CAAA,SAAAe,mBAAA,IAAAf,CAAA,SAAA0D,qBAAA;IAEsFO,EAAA,GAAAA,CAAAC,KAAA,EAAAH,MAAA;MAIrFhD,mBAAmB,GAAGmD,KAAK,EAAEH,MAAM,CAAC;MACpCvB,aAAa,CAAAS,OAAA,GAAWc,MAAH;MACrBL,qBAAqB,CAAC,CAAC;IAAA,CACxB;IAAA1D,CAAA,OAAAe,mBAAA;IAAAf,CAAA,OAAA0D,qBAAA;IAAA1D,CAAA,OAAAiE,EAAA;EAAA;IAAAA,EAAA,GAAAjE,CAAA;EAAA;EAPD,MAAAmE,uBAAA,GAAuFF,EAOtF;EAAA,IAAAG,EAAA;EAAA,IAAApE,CAAA,SAAAgB,iBAAA;IAEkFoD,EAAA,GAAAC,OAAA;MACjF5B,eAAe,CAAAQ,OAAA,GAAW,IAAH;MACvBP,wBAAwB,CAAAO,OAAA,GAAW,IAAH;MAChCjC,iBAAiB,GAAG4C,OAAK,CAAC;IAAA,CAC3B;IAAA5D,CAAA,OAAAgB,iBAAA;IAAAhB,CAAA,OAAAoE,EAAA;EAAA;IAAAA,EAAA,GAAApE,CAAA;EAAA;EAJD,MAAAsE,qBAAA,GAAmFF,EAIlF;EAAA,IAAAG,GAAA;EAAA,IAAAvE,CAAA,SAAAwE,MAAA,CAAAC,GAAA;IAEyFF,GAAA,GAAAG,GAAA;MAAC;QAAAC;MAAA,IAAAD,GAE1F;MACC,MAAAE,QAAA,GAAiBjC,qBAAqB,CAAAM,OAAQ;MAC9C,IAAI,CAAC2B,QAAgD,IAApCA,QAAQ,KAAKhC,eAAe,CAAAK,OAAQ;QAAA;MAAA;MACrD,IAAI,CAAC0B,aAAa,CAAAE,IAAK,CAACC,KAAA,IAASA,KAAK,CAAA1C,IAAK,CAAAC,EAAG,KAAKuC,QAAQ,CAAC;QAAA;MAAA;MAE5DhC,eAAe,CAAAK,OAAA,GAAW2B,QAAH;MACvB9B,uBAAuB,CAAC8B,QAAQ,CAAC;IAAA,CAClC;IAAA5E,CAAA,OAAAuE,GAAA;EAAA;IAAAA,GAAA,GAAAvE,CAAA;EAAA;EATD,MAAA+E,uBAAA,GAA0FR,GASzF;EAAA,IAAAG,GAAA;EAAA,IAAA1E,CAAA,SAAAwE,MAAA,CAAAC,GAAA;IAEkCC,GAAA,GAAAA,CAAA,KAAM5B,uBAAuB,CAAC,IAAI,CAAC;IAAA9C,CAAA,OAAA0E,GAAA;EAAA;IAAAA,GAAA,GAAA1E,CAAA;EAAA;EAAtE,MAAAgF,cAAA,GAAuBN,GAAoD;EAAA,IAAAO,GAAA;EAAA,IAAAjF,CAAA,SAAAY,cAAA;IAIhDqE,GAAA,GAAAA,CAAA;MACzB,IAAI,CAACvC,wBAAwB,CAAAO,OAAQ;QAAA;MAAA;MAErCP,wBAAwB,CAAAO,OAAA,GAAW,KAAH;MAChCrC,cAAc,GAAG,CAAC;IAAA,CACnB;IAAAZ,CAAA,OAAAY,cAAA;IAAAZ,CAAA,OAAAiF,GAAA;EAAA;IAAAA,GAAA,GAAAjF,CAAA;EAAA;EALD,MAAAkF,kBAAA,GAA2BD,GAK1B;EAAA,IAAAE,GAAA;EAAA,IAAAC,GAAA;EAAA,IAAApF,CAAA,SAAAwB,gBAAA;IAOiB2D,GAAA;MAAAE,MAAA,EAAU7D;IAAiB,CAAC;IACnB4D,GAAA;MAAAC,MAAA,EAAU7D;IAAiB,CAAC;IAAAxB,CAAA,OAAAwB,gBAAA;IAAAxB,CAAA,OAAAmF,GAAA;IAAAnF,CAAA,OAAAoF,GAAA;EAAA;IAAAD,GAAA,GAAAnF,CAAA;IAAAoF,GAAA,GAAApF,CAAA;EAAA;EAcnB,MAAAsF,GAAA,GAAA9E,MAAM,GAANd,SAAoC,GAApCH,eAAoC;EAAA,IAAAgG,GAAA;EAAA,IAAAvF,CAAA,SAAAG,YAAA,IAAAH,CAAA,SAAAU,WAAA;IAElE6E,GAAA,GAAA7E,WAAW,GAAX,IAEC,gBAFDtB,IAAA,CACGN,uBAAuB;MAAeqB,YAAY,EAAZA,YAAY;MAAeqF,WAAI,EAAJ;IAAI,CACxE,CAAC;IAAAxF,CAAA,OAAAG,YAAA;IAAAH,CAAA,OAAAU,WAAA;IAAAV,CAAA,OAAAuF,GAAA;EAAA;IAAAA,GAAA,GAAAvF,CAAA;EAAA;EAAA,IAAAyF,GAAA;EAAA,IAAAzF,CAAA,SAAA0B,4BAAA,IAAA1B,CAAA,SAAA4B,oBAAA,IAAA5B,CAAA,SAAAI,cAAA,IAAAJ,CAAA,SAAA6C,oBAAA,IAAA7C,CAAA,SAAAyB,aAAA,IAAAzB,CAAA,SAAA8B,UAAA;IAES2D,GAAA,GAAAC,GAAA;MAAC;QAAAtD,IAAA,EAAAuD;MAAA,IAAAD,GAAQ;MACnB,IAAItD,MAAI,CAAAwD,IAAK,KAAK,eAAe;QAAA,oBACxBxG,IAAA,CAACyG,mBAAmB;UAAA,GAAKzD;QAAI,CAAG,CAAC;MAAA;MAG1C,IAAIA,MAAI,CAAAwD,IAAK,KAAK,SAA2B,IAAdxD,MAAI,CAAA0D,SAA+B,IAA9D,CAA8C1D,MAAI,CAAA9B,WAAY;QAAA,oBACzDlB,IAAA,CAACJ,cAAc,IAAE,CAAC;MAAA;MAG3B,IAAIoD,MAAI,CAAAwD,IAAK,KAAK,oBAAoB;QAAA,oBAElCxG,IAAA,CAACH,kBAAkB;UAAA,GACZmD,MAAI;UACQhC,eAAc,EAAdA,cAAc;UAChBqB,aAAa,EAAbA;QAAa,CAC7B,CAAC;MAAA;MAIN,IAAI7C,eAAe,CAACwD,MAAI,CAAC;QAAA,oBAErBhD,IAAA,CAACF,aAAa;UACHkD,OAAI,EAAJA,MAAI;UACGhC,cAAc,EAAdA,cAAc;UACRwB,oBAAoB,EAApBA;QAAoB,CAC3C,CAAC;MAAA;MAIN,MAAAmE,YAAA,GAAqB3D,MAAI,CAAA4D,IAAqB,IAAzB,CAAc,CAAClE,UAAmC,IAArBM,MAAI,CAAAC,EAAG,IAAIP,UAAU;MAAA,oBAErE1C,IAAA,CAACL,OAAO;QAAA,GACFqD,MAAI;QACsBV,4BAA4B,EAA5BA,4BAA4B;QACpCE,oBAAoB,EAApBA,oBAAoB;QACzBxB,eAAc,EAAdA,cAAc;QACjB2F,YAAY,EAAZA,YAAY;QACXtE,aAAa,EAAbA,aAAa;QACfwE,WAAgC,EAAhC7D,MAAI,CAAAC,EAAG,KAAKQ,oBAAoB;QAC3BmC,gBAAc,EAAdA;MAAc,CACjC,CAAC;IAAA,CAEL;IAAAhF,CAAA,OAAA0B,4BAAA;IAAA1B,CAAA,OAAA4B,oBAAA;IAAA5B,CAAA,OAAAI,cAAA;IAAAJ,CAAA,OAAA6C,oBAAA;IAAA7C,CAAA,OAAAyB,aAAA;IAAAzB,CAAA,OAAA8B,UAAA;IAAA9B,CAAA,OAAAyF,GAAA;EAAA;IAAAA,GAAA,GAAAzF,CAAA;EAAA;EAAA,IAAA0F,GAAA;EAAA,IAAA1F,CAAA,SAAAoB,MAAA,CAAA8E,UAAA;IAGoBR,GAAA,gBAAAtG,IAAA,CAACd,IAAI;MAAQ6H,KAAiB,EAAjB/E,MAAM,CAAA8E;IAAW,CAAG,CAAC;IAAAlG,CAAA,OAAAoB,MAAA,CAAA8E,UAAA;IAAAlG,CAAA,OAAA0F,GAAA;EAAA;IAAAA,GAAA,GAAA1F,CAAA;EAAA;EAAA,IAAAoG,GAAA;EAAA,IAAApG,CAAA,SAAAmE,uBAAA,IAAAnE,CAAA,SAAAgE,YAAA,IAAAhE,CAAA,SAAAsE,qBAAA,IAAAtE,CAAA,SAAAkF,kBAAA,IAAAlF,CAAA,SAAAE,OAAA,IAAAF,CAAA,SAAAgC,sBAAA,IAAAhC,CAAA,SAAAW,YAAA,IAAAX,CAAA,SAAAkB,mBAAA,IAAAlB,CAAA,SAAAa,QAAA,IAAAb,CAAA,SAAAiB,eAAA,IAAAjB,CAAA,SAAAoB,MAAA,CAAAiF,aAAA,IAAArG,CAAA,SAAAmF,GAAA,IAAAnF,CAAA,SAAAoF,GAAA,IAAApF,CAAA,SAAAsF,GAAA,IAAAtF,CAAA,SAAAuF,GAAA,IAAAvF,CAAA,SAAAyF,GAAA,IAAAzF,CAAA,SAAA0F,GAAA;IAtEzDU,GAAA,gBAAAhH,IAAA,CAAChB,QAAQ;MACPkI,QAAQ,EAAR,IAAQ;MACHpG,GAAO,EAAPA,OAAO;MACWqG,qBAAoB,EAApBnF,MAAM,CAAAiF,aAAc;MAC7BG,YAA4B,EAA5BrB,GAA4B;MACnBsB,qBAA4B,EAA5BrB,GAA4B;MAC7CpD,IAAsB,EAAtBA,sBAAsB;MACd0E,YAAe,EAAfC,KAAe;MACnB9F,QAAQ,EAARA,QAAQ;MACRmD,QAAY,EAAZA,YAAY;MACDG,mBAAuB,EAAvBA,uBAAuB;MACzBG,iBAAqB,EAArBA,qBAAqB;MAEjBxG,qBAAI,EAAJA,IAAI;MACVmD,eAAe,EAAfA,eAAe;MACXC,mBAAmB,EAAnBA,mBAAmB;MAChB6D,sBAAuB,EAAvBA,uBAAuB;MAC5BnF,iBAAkB,EAAlBA,kBAAkB;MAChBgH,mBAAE,EAAF,EAAE;MACSC,8BAAoC,EAApCvB,GAAoC;MAElEwB,mBAEC,EAFDvB,GAEC;MAESwB,UA0CX,EA1CWtB,GA0CX;MACa9E,YAAY,EAAZA,YAAY;MACVuE,cAAkB,EAAlBA,kBAAkB;MACb8B,mBAAkC,EAAlCtB;IAAkC,CACxD,CAAC;IAAA1F,CAAA,OAAAmE,uBAAA;IAAAnE,CAAA,OAAAgE,YAAA;IAAAhE,CAAA,OAAAsE,qBAAA;IAAAtE,CAAA,OAAAkF,kBAAA;IAAAlF,CAAA,OAAAE,OAAA;IAAAF,CAAA,OAAAgC,sBAAA;IAAAhC,CAAA,OAAAW,YAAA;IAAAX,CAAA,OAAAkB,mBAAA;IAAAlB,CAAA,OAAAa,QAAA;IAAAb,CAAA,OAAAiB,eAAA;IAAAjB,CAAA,OAAAoB,MAAA,CAAAiF,aAAA;IAAArG,CAAA,OAAAmF,GAAA;IAAAnF,CAAA,OAAAoF,GAAA;IAAApF,CAAA,OAAAsF,GAAA;IAAAtF,CAAA,OAAAuF,GAAA;IAAAvF,CAAA,OAAAyF,GAAA;IAAAzF,CAAA,OAAA0F,GAAA;IAAA1F,CAAA,OAAAoG,GAAA;EAAA;IAAAA,GAAA,GAAApG,CAAA;EAAA;EAAA,OAvEFoG,GAuEE;AAAA;AA9KC,SAAAO,MAAAM,MAAA;EAAA,OA8GqB7E,MAAI,CAAAC,EAAG;AAAA;AAoEnC,SAAAwD,oBAAA9F,EAAA;EAAA,MAAAC,CAAA,GAAAC,EAAA;EAA6B;IAAAtC;EAAA,IAAAoC,EAAuB;EAClD,MAAAqB,MAAA,GAAe8F,sBAAsB,CAAC,CAAC;EAAA,IAAAzG,EAAA;EAAA,IAAAT,CAAA,QAAArC,IAAA;IAChB8C,EAAA,GAAAjC,qBAAqB,CAACb,IAAI,CAAC;IAAAqC,CAAA,MAAArC,IAAA;IAAAqC,CAAA,MAAAS,EAAA;EAAA;IAAAA,EAAA,GAAAT,CAAA;EAAA;EAAlD;IAAAmH;EAAA,IAAuB1G,EAA2B;EAClD,MAAA2G,QAAA,GAAiB,CAACD,UAAU;EAAA,IAAA5F,EAAA;EAAA,IAAAvB,CAAA,QAAArC,IAAA,IAAAqC,CAAA,QAAAoH,QAAA;IACV7F,EAAA,GAAA3D,UAAU,CAACD,IAAI,EAAE;MAAAwI,KAAA,EAAS,MAAM;MAAAkB,IAAA,EAAQD;IAAS,CAAC,CAAC;IAAApH,CAAA,MAAArC,IAAA;IAAAqC,CAAA,MAAAoH,QAAA;IAAApH,CAAA,MAAAuB,EAAA;EAAA;IAAAA,EAAA,GAAAvB,CAAA;EAAA;EAArE,MAAAsH,SAAA,GAAkB/F,EAAmD;EAAA,IAAAU,EAAA;EAAA,IAAAjC,CAAA,QAAAoB,MAAA,CAAAmG,SAAA;IAIjEtF,EAAA,gBAAA7C,IAAA,CAACd,IAAI;MAAQ6H,KAAgB,EAAhB/E,MAAM,CAAAmG;IAAU,CAAG,CAAC;IAAAvH,CAAA,MAAAoB,MAAA,CAAAmG,SAAA;IAAAvH,CAAA,MAAAiC,EAAA;EAAA;IAAAA,EAAA,GAAAjC,CAAA;EAAA;EAAA,IAAA+C,EAAA;EAAA,IAAA/C,CAAA,QAAAsH,SAAA,IAAAtH,CAAA,QAAAoB,MAAA,CAAAoG,QAAA;IACjCzE,EAAA,gBAAA3D,IAAA,CAACP,IAAI;MAAS4I,OAAU,EAAV,UAAU;MAAQtB,KAAe,EAAf/E,MAAM,CAAAoG,QAAS;MAAAE,QAAA,EAC5CJ;IAAS,CACN,CAAC;IAAAtH,CAAA,MAAAsH,SAAA;IAAAtH,CAAA,MAAAoB,MAAA,CAAAoG,QAAA;IAAAxH,CAAA,MAAA+C,EAAA;EAAA;IAAAA,EAAA,GAAA/C,CAAA;EAAA;EAAA,IAAAgD,EAAA;EAAA,IAAAhD,CAAA,SAAAoB,MAAA,CAAAmG,SAAA;IACPvE,EAAA,gBAAA5D,IAAA,CAACd,IAAI;MAAQ6H,KAAgB,EAAhB/E,MAAM,CAAAmG;IAAU,CAAG,CAAC;IAAAvH,CAAA,OAAAoB,MAAA,CAAAmG,SAAA;IAAAvH,CAAA,OAAAgD,EAAA;EAAA;IAAAA,EAAA,GAAAhD,CAAA;EAAA;EAAA,IAAAkD,EAAA;EAAA,IAAAlD,CAAA,SAAAoB,MAAA,CAAAuG,SAAA,IAAA3H,CAAA,SAAAiC,EAAA,IAAAjC,CAAA,SAAA+C,EAAA,IAAA/C,CAAA,SAAAgD,EAAA;IALnCE,EAAA,gBAAA5D,KAAA,CAAChB,IAAI;MAAQ6H,KAAgB,EAAhB/E,MAAM,CAAAuG,SAAU;MAAAD,QAAA,GAC3BzF,EAAiC,EACjCc,EAEO,EACPC,EAAiC;IAAA,CAC7B,CAAC;IAAAhD,CAAA,OAAAoB,MAAA,CAAAuG,SAAA;IAAA3H,CAAA,OAAAiC,EAAA;IAAAjC,CAAA,OAAA+C,EAAA;IAAA/C,CAAA,OAAAgD,EAAA;IAAAhD,CAAA,OAAAkD,EAAA;EAAA;IAAAA,EAAA,GAAAlD,CAAA;EAAA;EAAA,OANPkD,EAMO;AAAA;AAIX,MAAMgE,sBAAsB,GAAGA,CAAA;EAAA,MAAAlH,CAAA,GAAAC,EAAA;EAC7B,MAAA2H,KAAA,GAAcrJ,QAAQ,CAAC,CAAC;EAAA,IAAAwB,EAAA;EAAA,IAAAC,CAAA,QAAA4H,KAAA,CAAAC,MAAA,CAAAC,sBAAA;IACjB/H,EAAA,GAAA1B,UAAU,CAAA0J,MAAO,CAAC;MAAAJ,SAAA,EACZ;QAAAK,UAAA,EACG,QAAQ;QAAAC,aAAA,EACL,KAAK;QAAAC,iBAAA,EACDvJ,4CAA4C;QAAAwJ,eAAA,EAC9C;MACnB,CAAC;MAAAZ,SAAA,EACU;QAAAa,IAAA,EACH,CAAC;QAAArE,MAAA,EACC,CAAC;QAAAsE,cAAA,EACO,CAAC;QAAAC,cAAA,EACDV,KAAK,CAAAC,MAAO,CAAAC;MAC9B,CAAC;MAAAN,QAAA,EACS;QAAAU,iBAAA,EACW;MACrB;IACF,CAAC,CAAC;IAAAlI,CAAA,MAAA4H,KAAA,CAAAC,MAAA,CAAAC,sBAAA;IAAA9H,CAAA,MAAAD,EAAA;EAAA;IAAAA,EAAA,GAAAC,CAAA;EAAA;EAAA,OAhBKD,EAgBL;AAAA,CACH;AAED,MAAMsB,SAAS,GAAGA,CAAA,KAChBhD,UAAU,CAAC0J,MAAM,CAAC;EAChB1B,aAAa,EAAE;IACb8B,eAAe,EAAE;EACnB,CAAC;EACDjC,UAAU,EAAE;IACV;IACAnC,MAAM,EAAE;EACV;AACF,CAAC,CAAC","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"conversations.d.ts","sourceRoot":"","sources":["../../../src/components/conversations/conversations.tsx"],"names":[],"mappings":"AACA,OAAO,KAAkB,MAAM,OAAO,CAAA;AActC,UAAU,kBAAkB;IAC1B,mBAAmB,CAAC,EAChB,KAAK,CAAC,aAAa,CAAC,GAAG,CAAC,GACxB,KAAK,CAAC,YAAY,CAAC,GAAG,EAAE,MAAM,GAAG,KAAK,CAAC,qBAAqB,CAAC,GAAG,CAAC,CAAC,GAClE,IAAI,GACJ,SAAS,CAAA;CACd;AAED,eAAO,MAAM,aAAa,GAAI,yBAAyB,kBAAkB,4CAmGxE,CAAA"}
1
+ {"version":3,"file":"conversations.d.ts","sourceRoot":"","sources":["../../../src/components/conversations/conversations.tsx"],"names":[],"mappings":"AACA,OAAO,KAAkB,MAAM,OAAO,CAAA;AActC,UAAU,kBAAkB;IAC1B,mBAAmB,CAAC,EAChB,KAAK,CAAC,aAAa,CAAC,GAAG,CAAC,GACxB,KAAK,CAAC,YAAY,CAAC,GAAG,EAAE,MAAM,GAAG,KAAK,CAAC,qBAAqB,CAAC,GAAG,CAAC,CAAC,GAClE,IAAI,GACJ,SAAS,CAAA;CACd;AAED,eAAO,MAAM,aAAa,GAAI,yBAAyB,kBAAkB,4CAoGxE,CAAA"}
@@ -129,6 +129,7 @@ export const Conversations = t0 => {
129
129
  data: data,
130
130
  keyExtractor: _temp2,
131
131
  contentContainerStyle: styles.contentContainer,
132
+ contentInsetAdjustmentBehavior: "automatic",
132
133
  onRefresh: refetch,
133
134
  refreshing: t3,
134
135
  ListHeaderComponent: ListHeaderComponent,
@@ -1 +1 @@
1
- {"version":3,"file":"conversations.js","names":["useNavigation","React","useMemo","FlatList","StyleSheet","View","useConversationsContext","useTheme","useCanCreateConversations","useClearConversationFilters","useConversationsJoltEvents","useFilterDropdownEnabled","ArchivedResultsFooter","ConversationPreview","ConversationPreviewSkeleton","ConversationsBlankState","FilteredResultsFooter","jsx","_jsx","Conversations","t0","$","_c","ListHeaderComponent","styles","useStyles","conversations","isLoading","fetchNextPage","refetch","isRefetching","isFetched","hasNextPage","args","t1","chat_group_graph_id","group_source_app_name","show_direct_messages","show_archived","show_unread","navigation","canCreateConversations","clearFilters","filterDropdownEnabled","isFilterApplied","showArchivedResultsFooter","showFilteredResultsFooter","length","showBadges","t2","bb0","loadingPlaceholder","t3","map","_temp","data","t4","t5","t6","t7","item","item_0","type","conversation","resource","onPress","navigate","conversation_id","id","title","undefined","badge","badges","deleted","muted","t8","contentContainer","keyExtractor","_temp2","contentContainerStyle","refreshing","ListEmptyComponent","ListFooterComponent","renderItem","onEndReached","t9","container","style","children","colors","fillColorNeutral020","create","flex","paddingVertical","listItem","color","Array","from","_","i","toString"],"sources":["../../../src/components/conversations/conversations.tsx"],"sourcesContent":["import { useNavigation } from '@react-navigation/native'\nimport React, { useMemo } from 'react'\nimport { FlatList, StyleSheet, View } from 'react-native'\nimport { useConversationsContext } from '../../contexts/conversations_context'\nimport { useTheme } from '../../hooks'\nimport { useCanCreateConversations } from '../../hooks/use_chat_permissions'\nimport { useClearConversationFilters } from '../../hooks/use_clear_conversation_filters'\nimport { useConversationsJoltEvents } from '../../hooks/use_conversations_jolt_events'\nimport { useFilterDropdownEnabled } from '../../hooks/use_filter_dropdown_enabled'\nimport { ConversationResource } from '../../types'\nimport { ArchivedResultsFooter } from './archived_results_footer'\nimport { ConversationPreview, ConversationPreviewSkeleton } from './conversation_preview'\nimport { ConversationsBlankState } from './conversations_blank_state'\nimport { FilteredResultsFooter } from './filtered_results_footer'\n\ninterface ConversationsProps {\n ListHeaderComponent?:\n | React.ComponentType<any>\n | React.ReactElement<any, string | React.JSXElementConstructor<any>>\n | null\n | undefined\n}\n\nexport const Conversations = ({ ListHeaderComponent }: ConversationsProps) => {\n const styles = useStyles()\n const {\n conversations,\n isLoading,\n fetchNextPage,\n refetch,\n isRefetching,\n isFetched,\n hasNextPage,\n args: {\n chat_group_graph_id,\n group_source_app_name,\n show_direct_messages,\n show_archived,\n show_unread,\n },\n } = useConversationsContext()\n const navigation = useNavigation()\n const canCreateConversations = useCanCreateConversations()\n const clearFilters = useClearConversationFilters()\n const filterDropdownEnabled = useFilterDropdownEnabled()\n const isFilterApplied =\n !!chat_group_graph_id ||\n !!group_source_app_name ||\n !!show_direct_messages ||\n !!show_archived ||\n !!show_unread\n const showArchivedResultsFooter = !!show_archived && !isLoading && !hasNextPage\n const showFilteredResultsFooter =\n filterDropdownEnabled &&\n isFilterApplied &&\n !show_archived &&\n !hasNextPage &&\n !isLoading &&\n conversations.length > 0\n\n const showBadges = !chat_group_graph_id\n\n const data: FlatListItem[] = useMemo(() => {\n if (isLoading) {\n return loadingPlaceholder\n }\n return conversations.map(conversation => ({\n type: 'conversation' as const,\n id: conversation.id,\n resource: conversation,\n }))\n }, [conversations, isLoading])\n\n useConversationsJoltEvents()\n\n return (\n <View style={styles.container}>\n <FlatList\n data={data}\n keyExtractor={item => item.id.toString()}\n contentContainerStyle={styles.contentContainer}\n onRefresh={refetch}\n refreshing={!isFetched && isRefetching}\n ListHeaderComponent={ListHeaderComponent}\n ListEmptyComponent={\n <ConversationsBlankState\n isFilterApplied={isFilterApplied}\n canCreateConversations={canCreateConversations}\n />\n }\n ListFooterComponent={\n showArchivedResultsFooter ? (\n <ArchivedResultsFooter onViewActiveConversations={clearFilters} />\n ) : showFilteredResultsFooter ? (\n <FilteredResultsFooter />\n ) : null\n }\n renderItem={({ item }) => {\n if (item.type === 'loading') {\n return <ConversationPreviewSkeleton />\n } else {\n return (\n <ConversationPreview\n conversation={item.resource}\n onPress={() =>\n navigation.navigate('Conversation', {\n conversation_id: item.resource.id,\n title: item.resource.title ?? undefined,\n badge: item.resource.badges?.[0],\n deleted: item.resource.deleted,\n muted: item.resource.muted,\n })\n }\n showBadges={showBadges}\n />\n )\n }\n }}\n onEndReached={() => fetchNextPage()}\n />\n </View>\n )\n}\n\nconst useStyles = () => {\n const { colors } = useTheme()\n\n return StyleSheet.create({\n container: { flex: 1 },\n contentContainer: { paddingVertical: 16 },\n listItem: { color: colors.fillColorNeutral020 },\n })\n}\n\ninterface FlatListLoadingItem {\n type: 'loading'\n id: string\n}\ninterface FlatListConversationItem {\n type: 'conversation'\n resource: ConversationResource\n id: number\n}\ntype FlatListItem = FlatListLoadingItem | FlatListConversationItem\n\nconst loadingPlaceholder: FlatListItem[] = Array.from({ length: 5 }, (_, i) => ({\n type: 'loading',\n id: `loading${i}`,\n}))\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"conversations.js","names":["useNavigation","React","useMemo","FlatList","StyleSheet","View","useConversationsContext","useTheme","useCanCreateConversations","useClearConversationFilters","useConversationsJoltEvents","useFilterDropdownEnabled","ArchivedResultsFooter","ConversationPreview","ConversationPreviewSkeleton","ConversationsBlankState","FilteredResultsFooter","jsx","_jsx","Conversations","t0","$","_c","ListHeaderComponent","styles","useStyles","conversations","isLoading","fetchNextPage","refetch","isRefetching","isFetched","hasNextPage","args","t1","chat_group_graph_id","group_source_app_name","show_direct_messages","show_archived","show_unread","navigation","canCreateConversations","clearFilters","filterDropdownEnabled","isFilterApplied","showArchivedResultsFooter","showFilteredResultsFooter","length","showBadges","t2","bb0","loadingPlaceholder","t3","map","_temp","data","t4","t5","t6","t7","item","item_0","type","conversation","resource","onPress","navigate","conversation_id","id","title","undefined","badge","badges","deleted","muted","t8","contentContainer","keyExtractor","_temp2","contentContainerStyle","contentInsetAdjustmentBehavior","refreshing","ListEmptyComponent","ListFooterComponent","renderItem","onEndReached","t9","container","style","children","colors","fillColorNeutral020","create","flex","paddingVertical","listItem","color","Array","from","_","i","toString"],"sources":["../../../src/components/conversations/conversations.tsx"],"sourcesContent":["import { useNavigation } from '@react-navigation/native'\nimport React, { useMemo } from 'react'\nimport { FlatList, StyleSheet, View } from 'react-native'\nimport { useConversationsContext } from '../../contexts/conversations_context'\nimport { useTheme } from '../../hooks'\nimport { useCanCreateConversations } from '../../hooks/use_chat_permissions'\nimport { useClearConversationFilters } from '../../hooks/use_clear_conversation_filters'\nimport { useConversationsJoltEvents } from '../../hooks/use_conversations_jolt_events'\nimport { useFilterDropdownEnabled } from '../../hooks/use_filter_dropdown_enabled'\nimport { ConversationResource } from '../../types'\nimport { ArchivedResultsFooter } from './archived_results_footer'\nimport { ConversationPreview, ConversationPreviewSkeleton } from './conversation_preview'\nimport { ConversationsBlankState } from './conversations_blank_state'\nimport { FilteredResultsFooter } from './filtered_results_footer'\n\ninterface ConversationsProps {\n ListHeaderComponent?:\n | React.ComponentType<any>\n | React.ReactElement<any, string | React.JSXElementConstructor<any>>\n | null\n | undefined\n}\n\nexport const Conversations = ({ ListHeaderComponent }: ConversationsProps) => {\n const styles = useStyles()\n const {\n conversations,\n isLoading,\n fetchNextPage,\n refetch,\n isRefetching,\n isFetched,\n hasNextPage,\n args: {\n chat_group_graph_id,\n group_source_app_name,\n show_direct_messages,\n show_archived,\n show_unread,\n },\n } = useConversationsContext()\n const navigation = useNavigation()\n const canCreateConversations = useCanCreateConversations()\n const clearFilters = useClearConversationFilters()\n const filterDropdownEnabled = useFilterDropdownEnabled()\n const isFilterApplied =\n !!chat_group_graph_id ||\n !!group_source_app_name ||\n !!show_direct_messages ||\n !!show_archived ||\n !!show_unread\n const showArchivedResultsFooter = !!show_archived && !isLoading && !hasNextPage\n const showFilteredResultsFooter =\n filterDropdownEnabled &&\n isFilterApplied &&\n !show_archived &&\n !hasNextPage &&\n !isLoading &&\n conversations.length > 0\n\n const showBadges = !chat_group_graph_id\n\n const data: FlatListItem[] = useMemo(() => {\n if (isLoading) {\n return loadingPlaceholder\n }\n return conversations.map(conversation => ({\n type: 'conversation' as const,\n id: conversation.id,\n resource: conversation,\n }))\n }, [conversations, isLoading])\n\n useConversationsJoltEvents()\n\n return (\n <View style={styles.container}>\n <FlatList\n data={data}\n keyExtractor={item => item.id.toString()}\n contentContainerStyle={styles.contentContainer}\n contentInsetAdjustmentBehavior=\"automatic\"\n onRefresh={refetch}\n refreshing={!isFetched && isRefetching}\n ListHeaderComponent={ListHeaderComponent}\n ListEmptyComponent={\n <ConversationsBlankState\n isFilterApplied={isFilterApplied}\n canCreateConversations={canCreateConversations}\n />\n }\n ListFooterComponent={\n showArchivedResultsFooter ? (\n <ArchivedResultsFooter onViewActiveConversations={clearFilters} />\n ) : showFilteredResultsFooter ? (\n <FilteredResultsFooter />\n ) : null\n }\n renderItem={({ item }) => {\n if (item.type === 'loading') {\n return <ConversationPreviewSkeleton />\n } else {\n return (\n <ConversationPreview\n conversation={item.resource}\n onPress={() =>\n navigation.navigate('Conversation', {\n conversation_id: item.resource.id,\n title: item.resource.title ?? undefined,\n badge: item.resource.badges?.[0],\n deleted: item.resource.deleted,\n muted: item.resource.muted,\n })\n }\n showBadges={showBadges}\n />\n )\n }\n }}\n onEndReached={() => fetchNextPage()}\n />\n </View>\n )\n}\n\nconst useStyles = () => {\n const { colors } = useTheme()\n\n return StyleSheet.create({\n container: { flex: 1 },\n contentContainer: { paddingVertical: 16 },\n listItem: { color: colors.fillColorNeutral020 },\n })\n}\n\ninterface FlatListLoadingItem {\n type: 'loading'\n id: string\n}\ninterface FlatListConversationItem {\n type: 'conversation'\n resource: ConversationResource\n id: number\n}\ntype FlatListItem = FlatListLoadingItem | FlatListConversationItem\n\nconst loadingPlaceholder: FlatListItem[] = Array.from({ length: 5 }, (_, i) => ({\n type: 'loading',\n id: `loading${i}`,\n}))\n"],"mappings":"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","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"keyboard_scroll_view.d.ts","sourceRoot":"","sources":["../../../src/components/display/keyboard_scroll_view.tsx"],"names":[],"mappings":"AACA,OAAO,EAAwB,eAAe,EAAa,MAAM,cAAc,CAAA;AAK/E,KAAK,uBAAuB,GAAG,IAAI,CAAC,eAAe,EAAE,UAAU,GAAG,uBAAuB,CAAC,CAAA;AAE1F,wBAAgB,kBAAkB,CAAC,EAAE,QAAQ,EAAE,qBAAqB,EAAE,EAAE,uBAAuB,2CA6C9F"}
1
+ {"version":3,"file":"keyboard_scroll_view.d.ts","sourceRoot":"","sources":["../../../src/components/display/keyboard_scroll_view.tsx"],"names":[],"mappings":"AACA,OAAO,EAAwB,eAAe,EAAa,MAAM,cAAc,CAAA;AAK/E,KAAK,uBAAuB,GAAG,IAAI,CAAC,eAAe,EAAE,UAAU,GAAG,uBAAuB,CAAC,CAAA;AAE1F,wBAAgB,kBAAkB,CAAC,EAAE,QAAQ,EAAE,qBAAqB,EAAE,EAAE,uBAAuB,2CA8C9F"}
@@ -53,6 +53,7 @@ export function KeyboardScrollView(t0) {
53
53
  t2 = /*#__PURE__*/_jsx(KeyboardView, {
54
54
  children: /*#__PURE__*/_jsx(ScrollView, {
55
55
  ref: scrollViewRef,
56
+ contentInsetAdjustmentBehavior: "automatic",
56
57
  contentContainerStyle: contentContainerStyle,
57
58
  onLayout: scrollFocusedInputIntoView,
58
59
  onContentSizeChange: scrollFocusedInputIntoView,