@kesha-antonov/react-native-chat 6.0.0 → 6.1.0

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 (179) hide show
  1. package/README.md +28 -5
  2. package/lib/Actions.d.ts.map +1 -1
  3. package/lib/Actions.js +33 -27
  4. package/lib/Actions.js.map +1 -1
  5. package/lib/Chat/Chat.d.ts.map +1 -1
  6. package/lib/Chat/Chat.js +253 -203
  7. package/lib/Chat/Chat.js.map +1 -1
  8. package/lib/Chat/ChatMessageList.d.ts.map +1 -1
  9. package/lib/Chat/ChatMessageList.js +4 -0
  10. package/lib/Chat/ChatMessageList.js.map +1 -1
  11. package/lib/Chat/index.d.ts +9 -1
  12. package/lib/Chat/index.d.ts.map +1 -1
  13. package/lib/Chat/index.js +14 -1
  14. package/lib/Chat/index.js.map +1 -1
  15. package/lib/Chat/types.d.ts +29 -0
  16. package/lib/Chat/types.d.ts.map +1 -1
  17. package/lib/Chat/types.js.map +1 -1
  18. package/lib/Chat/useMessageActions.d.ts +1 -0
  19. package/lib/Chat/useMessageActions.d.ts.map +1 -1
  20. package/lib/Chat/useMessageActions.js +97 -89
  21. package/lib/Chat/useMessageActions.js.map +1 -1
  22. package/lib/ChatHeader.d.ts +50 -0
  23. package/lib/ChatHeader.d.ts.map +1 -0
  24. package/lib/ChatHeader.js +356 -0
  25. package/lib/ChatHeader.js.map +1 -0
  26. package/lib/ChatList/ChatListCell.d.ts +1 -1
  27. package/lib/ChatList/ChatListCell.d.ts.map +1 -1
  28. package/lib/ChatList/ChatListCell.js +42 -11
  29. package/lib/ChatList/ChatListCell.js.map +1 -1
  30. package/lib/ChatList/index.js +332 -323
  31. package/lib/ChatList/index.js.map +1 -1
  32. package/lib/ChatList/types.d.ts +17 -1
  33. package/lib/ChatList/types.d.ts.map +1 -1
  34. package/lib/ChatList/types.js.map +1 -1
  35. package/lib/ChatList/utils.d.ts +4 -1
  36. package/lib/ChatList/utils.d.ts.map +1 -1
  37. package/lib/ChatList/utils.js +3 -2
  38. package/lib/ChatList/utils.js.map +1 -1
  39. package/lib/Composer.js +5 -1
  40. package/lib/Composer.js.map +1 -1
  41. package/lib/InputToolbar/fragments.d.ts +1 -1
  42. package/lib/InputToolbar/fragments.d.ts.map +1 -1
  43. package/lib/InputToolbar/fragments.js +9 -7
  44. package/lib/InputToolbar/fragments.js.map +1 -1
  45. package/lib/InputToolbar/index.d.ts.map +1 -1
  46. package/lib/InputToolbar/index.js +3 -2
  47. package/lib/InputToolbar/index.js.map +1 -1
  48. package/lib/InputToolbar/types.d.ts +6 -0
  49. package/lib/InputToolbar/types.d.ts.map +1 -1
  50. package/lib/InputToolbar/types.js.map +1 -1
  51. package/lib/InputToolbar/useActionsFragment.d.ts.map +1 -1
  52. package/lib/InputToolbar/useActionsFragment.js +83 -59
  53. package/lib/InputToolbar/useActionsFragment.js.map +1 -1
  54. package/lib/InputToolbar/useKeyboardInset.d.ts +1 -1
  55. package/lib/InputToolbar/useKeyboardInset.d.ts.map +1 -1
  56. package/lib/InputToolbar/useKeyboardInset.js +2 -2
  57. package/lib/InputToolbar/useKeyboardInset.js.map +1 -1
  58. package/lib/MessageText.d.ts.map +1 -1
  59. package/lib/MessageText.js +39 -33
  60. package/lib/MessageText.js.map +1 -1
  61. package/lib/MessagesContainer/index.d.ts.map +1 -1
  62. package/lib/MessagesContainer/index.js +113 -94
  63. package/lib/MessagesContainer/index.js.map +1 -1
  64. package/lib/MessagesContainer/types.d.ts +5 -2
  65. package/lib/MessagesContainer/types.d.ts.map +1 -1
  66. package/lib/MessagesContainer/types.js.map +1 -1
  67. package/lib/MessagesContainer/useChained.d.ts +6 -0
  68. package/lib/MessagesContainer/useChained.d.ts.map +1 -0
  69. package/lib/MessagesContainer/useChained.js +38 -0
  70. package/lib/MessagesContainer/useChained.js.map +1 -0
  71. package/lib/MessagesContainer/useListChrome.d.ts.map +1 -1
  72. package/lib/MessagesContainer/useListChrome.js +1 -1
  73. package/lib/MessagesContainer/useListChrome.js.map +1 -1
  74. package/lib/Models.d.ts +2 -1
  75. package/lib/Models.d.ts.map +1 -1
  76. package/lib/Models.js.map +1 -1
  77. package/lib/Send.d.ts.map +1 -1
  78. package/lib/Send.js +18 -13
  79. package/lib/Send.js.map +1 -1
  80. package/lib/Theme.d.ts +11 -0
  81. package/lib/Theme.d.ts.map +1 -1
  82. package/lib/Theme.js +17 -1
  83. package/lib/Theme.js.map +1 -1
  84. package/lib/attachments/AttachmentButton.js +17 -15
  85. package/lib/attachments/AttachmentButton.js.map +1 -1
  86. package/lib/attachments/AttachmentMenu/GalleryGrid.d.ts +3 -1
  87. package/lib/attachments/AttachmentMenu/GalleryGrid.d.ts.map +1 -1
  88. package/lib/attachments/AttachmentMenu/GalleryGrid.js +69 -68
  89. package/lib/attachments/AttachmentMenu/GalleryGrid.js.map +1 -1
  90. package/lib/attachments/AttachmentMenu/TabPanel.d.ts +3 -1
  91. package/lib/attachments/AttachmentMenu/TabPanel.d.ts.map +1 -1
  92. package/lib/attachments/AttachmentMenu/TabPanel.js +23 -21
  93. package/lib/attachments/AttachmentMenu/TabPanel.js.map +1 -1
  94. package/lib/attachments/AttachmentMenu/index.d.ts +6 -2
  95. package/lib/attachments/AttachmentMenu/index.d.ts.map +1 -1
  96. package/lib/attachments/AttachmentMenu/index.js +259 -247
  97. package/lib/attachments/AttachmentMenu/index.js.map +1 -1
  98. package/lib/attachments/buildMessages.d.ts +4 -4
  99. package/lib/attachments/buildMessages.d.ts.map +1 -1
  100. package/lib/attachments/buildMessages.js +9 -8
  101. package/lib/attachments/buildMessages.js.map +1 -1
  102. package/lib/attachments/types.d.ts +19 -0
  103. package/lib/attachments/types.d.ts.map +1 -1
  104. package/lib/attachments/types.js.map +1 -1
  105. package/lib/components/TouchableOpacity.d.ts +5 -0
  106. package/lib/components/TouchableOpacity.d.ts.map +1 -1
  107. package/lib/components/TouchableOpacity.js +59 -54
  108. package/lib/components/TouchableOpacity.js.map +1 -1
  109. package/lib/components/defaultMessageActions.d.ts +3 -1
  110. package/lib/components/defaultMessageActions.d.ts.map +1 -1
  111. package/lib/components/defaultMessageActions.js +9 -1
  112. package/lib/components/defaultMessageActions.js.map +1 -1
  113. package/lib/components/textHighlight.d.ts +14 -0
  114. package/lib/components/textHighlight.d.ts.map +1 -0
  115. package/lib/components/textHighlight.js +39 -0
  116. package/lib/components/textHighlight.js.map +1 -0
  117. package/lib/hooks/useKeyboardVerticalOffset.d.ts +6 -0
  118. package/lib/hooks/useKeyboardVerticalOffset.d.ts.map +1 -1
  119. package/lib/hooks/useKeyboardVerticalOffset.js +35 -13
  120. package/lib/hooks/useKeyboardVerticalOffset.js.map +1 -1
  121. package/lib/i18n.d.ts +2 -0
  122. package/lib/i18n.d.ts.map +1 -1
  123. package/lib/i18n.js +1 -0
  124. package/lib/i18n.js.map +1 -1
  125. package/lib/index.d.ts +3 -1
  126. package/lib/index.d.ts.map +1 -1
  127. package/lib/index.js +1 -0
  128. package/lib/index.js.map +1 -1
  129. package/lib/linkParser.d.ts +4 -1
  130. package/lib/linkParser.d.ts.map +1 -1
  131. package/lib/linkParser.js +115 -78
  132. package/lib/linkParser.js.map +1 -1
  133. package/lib/locales/ar.d.ts.map +1 -1
  134. package/lib/locales/ar.js +1 -0
  135. package/lib/locales/ar.js.map +1 -1
  136. package/lib/locales/de.d.ts.map +1 -1
  137. package/lib/locales/de.js +1 -0
  138. package/lib/locales/de.js.map +1 -1
  139. package/lib/locales/es.d.ts.map +1 -1
  140. package/lib/locales/es.js +1 -0
  141. package/lib/locales/es.js.map +1 -1
  142. package/lib/locales/fr.d.ts.map +1 -1
  143. package/lib/locales/fr.js +1 -0
  144. package/lib/locales/fr.js.map +1 -1
  145. package/lib/locales/hi.d.ts.map +1 -1
  146. package/lib/locales/hi.js +1 -0
  147. package/lib/locales/hi.js.map +1 -1
  148. package/lib/locales/id.d.ts.map +1 -1
  149. package/lib/locales/id.js +1 -0
  150. package/lib/locales/id.js.map +1 -1
  151. package/lib/locales/it.d.ts.map +1 -1
  152. package/lib/locales/it.js +1 -0
  153. package/lib/locales/it.js.map +1 -1
  154. package/lib/locales/ja.d.ts.map +1 -1
  155. package/lib/locales/ja.js +1 -0
  156. package/lib/locales/ja.js.map +1 -1
  157. package/lib/locales/ko.d.ts.map +1 -1
  158. package/lib/locales/ko.js +1 -0
  159. package/lib/locales/ko.js.map +1 -1
  160. package/lib/locales/nl.d.ts.map +1 -1
  161. package/lib/locales/nl.js +1 -0
  162. package/lib/locales/nl.js.map +1 -1
  163. package/lib/locales/pl.d.ts.map +1 -1
  164. package/lib/locales/pl.js +1 -0
  165. package/lib/locales/pl.js.map +1 -1
  166. package/lib/locales/pt.d.ts.map +1 -1
  167. package/lib/locales/pt.js +1 -0
  168. package/lib/locales/pt.js.map +1 -1
  169. package/lib/locales/ru.d.ts.map +1 -1
  170. package/lib/locales/ru.js +1 -0
  171. package/lib/locales/ru.js.map +1 -1
  172. package/lib/locales/tr.d.ts.map +1 -1
  173. package/lib/locales/tr.js +1 -0
  174. package/lib/locales/tr.js.map +1 -1
  175. package/lib/locales/zh.d.ts.map +1 -1
  176. package/lib/locales/zh.js +1 -0
  177. package/lib/locales/zh.js.map +1 -1
  178. package/llms.txt +1 -1
  179. package/package.json +1 -1
@@ -8,7 +8,7 @@ import { getClipboard } from '../optional';
8
8
  * both) and what the selection bar's Copy, Forward and Delete do.
9
9
  */
10
10
  export function useMessageActions(t0) {
11
- const $ = _c(59);
11
+ const $ = _c(62);
12
12
  const {
13
13
  props,
14
14
  userId,
@@ -30,18 +30,20 @@ export function useMessageActions(t0) {
30
30
  onPinMessage,
31
31
  onForwardMessages,
32
32
  onDeleteMessages,
33
- onLongPressMessage
33
+ onLongPressMessage,
34
+ onRetryMessage
34
35
  } = props;
35
36
  const defaultMessageActions = t1 === undefined ? true : t1;
36
37
  let t2;
37
- if ($[0] !== onDeleteMessage || $[1] !== onDeleteMessages || $[2] !== onEditMessage || $[3] !== onForwardMessage || $[4] !== onForwardMessages || $[5] !== onPinMessage) {
38
+ if ($[0] !== onDeleteMessage || $[1] !== onDeleteMessages || $[2] !== onEditMessage || $[3] !== onForwardMessage || $[4] !== onForwardMessages || $[5] !== onPinMessage || $[6] !== onRetryMessage) {
38
39
  t2 = {
39
40
  onEditMessage,
40
41
  onDeleteMessage,
41
42
  onForwardMessage,
42
43
  onPinMessage,
43
44
  onForwardMessages,
44
- onDeleteMessages
45
+ onDeleteMessages,
46
+ onRetryMessage
45
47
  };
46
48
  $[0] = onDeleteMessage;
47
49
  $[1] = onDeleteMessages;
@@ -49,13 +51,14 @@ export function useMessageActions(t0) {
49
51
  $[3] = onForwardMessage;
50
52
  $[4] = onForwardMessages;
51
53
  $[5] = onPinMessage;
52
- $[6] = t2;
54
+ $[6] = onRetryMessage;
55
+ $[7] = t2;
53
56
  } else {
54
- t2 = $[6];
57
+ t2 = $[7];
55
58
  }
56
59
  const actionCallbacksRef = useRef(t2);
57
60
  let t3;
58
- if ($[7] !== onDeleteMessage || $[8] !== onDeleteMessages || $[9] !== onEditMessage || $[10] !== onForwardMessage || $[11] !== onForwardMessages || $[12] !== onPinMessage) {
61
+ if ($[8] !== onDeleteMessage || $[9] !== onDeleteMessages || $[10] !== onEditMessage || $[11] !== onForwardMessage || $[12] !== onForwardMessages || $[13] !== onPinMessage || $[14] !== onRetryMessage) {
59
62
  t3 = () => {
60
63
  actionCallbacksRef.current = {
61
64
  onEditMessage,
@@ -63,92 +66,95 @@ export function useMessageActions(t0) {
63
66
  onForwardMessage,
64
67
  onPinMessage,
65
68
  onForwardMessages,
66
- onDeleteMessages
69
+ onDeleteMessages,
70
+ onRetryMessage
67
71
  };
68
72
  };
69
- $[7] = onDeleteMessage;
70
- $[8] = onDeleteMessages;
71
- $[9] = onEditMessage;
72
- $[10] = onForwardMessage;
73
- $[11] = onForwardMessages;
74
- $[12] = onPinMessage;
75
- $[13] = t3;
73
+ $[8] = onDeleteMessage;
74
+ $[9] = onDeleteMessages;
75
+ $[10] = onEditMessage;
76
+ $[11] = onForwardMessage;
77
+ $[12] = onForwardMessages;
78
+ $[13] = onPinMessage;
79
+ $[14] = onRetryMessage;
80
+ $[15] = t3;
76
81
  } else {
77
- t3 = $[13];
82
+ t3 = $[15];
78
83
  }
79
84
  useInsertionEffect(t3);
85
+ const hasRetry = !!onRetryMessage;
80
86
  const hasPin = !!onPinMessage;
81
87
  const hasEdit = !!onEditMessage;
82
88
  const hasDelete = !!onDeleteMessage || !!onDeleteMessages;
83
89
  const hasForward = !!onForwardMessage || !!onForwardMessages;
84
90
  let t4;
85
- if ($[14] === Symbol.for("react.memo_cache_sentinel")) {
91
+ if ($[16] === Symbol.for("react.memo_cache_sentinel")) {
86
92
  t4 = getClipboard();
87
- $[14] = t4;
93
+ $[16] = t4;
88
94
  } else {
89
- t4 = $[14];
95
+ t4 = $[16];
90
96
  }
91
97
  const hasClipboard = !!t4;
92
98
  const canSelect = hasClipboard || hasDelete || hasForward;
93
99
  let t5;
94
- if ($[15] !== defaultMessageActions || $[16] !== messageActions || $[17] !== onLongPressMessage) {
100
+ if ($[17] !== defaultMessageActions || $[18] !== messageActions || $[19] !== onLongPressMessage) {
95
101
  t5 = defaultMessageActions === false || onLongPressMessage && messageActions === undefined ? [] : defaultMessageActions === true ? DEFAULT_MESSAGE_ACTION_KEYS : defaultMessageActions;
96
- $[15] = defaultMessageActions;
97
- $[16] = messageActions;
98
- $[17] = onLongPressMessage;
99
- $[18] = t5;
102
+ $[17] = defaultMessageActions;
103
+ $[18] = messageActions;
104
+ $[19] = onLongPressMessage;
105
+ $[20] = t5;
100
106
  } else {
101
- t5 = $[18];
107
+ t5 = $[20];
102
108
  }
103
109
  const actionKeys = t5;
104
110
  let t6;
105
- if ($[19] !== actionKeys) {
111
+ if ($[21] !== actionKeys) {
106
112
  t6 = actionKeys.join(",");
107
- $[19] = actionKeys;
108
- $[20] = t6;
113
+ $[21] = actionKeys;
114
+ $[22] = t6;
109
115
  } else {
110
- t6 = $[20];
116
+ t6 = $[22];
111
117
  }
112
118
  const actionKeysId = t6;
113
119
  let t7;
114
- if ($[21] !== actionKeysId || $[22] !== canSelect || $[23] !== composerPanels || $[24] !== editStore || $[25] !== hasDelete || $[26] !== hasEdit || $[27] !== hasForward || $[28] !== hasPin || $[29] !== isReplyEnabled || $[30] !== messageActions || $[31] !== resolvedLabels || $[32] !== selectionStore || $[33] !== startEdit || $[34] !== startReply || $[35] !== stopEdit || $[36] !== userId) {
120
+ if ($[23] !== actionKeysId || $[24] !== canSelect || $[25] !== composerPanels || $[26] !== editStore || $[27] !== hasDelete || $[28] !== hasEdit || $[29] !== hasForward || $[30] !== hasPin || $[31] !== hasRetry || $[32] !== isReplyEnabled || $[33] !== messageActions || $[34] !== resolvedLabels || $[35] !== selectionStore || $[36] !== startEdit || $[37] !== startReply || $[38] !== stopEdit || $[39] !== userId) {
115
121
  bb0: {
116
122
  if (Array.isArray(messageActions)) {
117
123
  t7 = messageActions;
118
124
  break bb0;
119
125
  }
120
126
  const keys = actionKeysId ? actionKeysId.split(",") : [];
121
- if (keys.length === 0 && !messageActions) {
127
+ if (keys.length === 0 && !messageActions && !hasRetry) {
122
128
  t7 = undefined;
123
129
  break bb0;
124
130
  }
125
131
  const clipboard = keys.includes("copy") ? getClipboard() : null;
126
132
  let t8;
127
- if ($[38] !== composerPanels || $[39] !== selectionStore) {
133
+ if ($[41] !== composerPanels || $[42] !== selectionStore) {
128
134
  t8 = message => {
129
135
  Keyboard.dismiss();
130
136
  composerPanels.close();
131
137
  selectionStore.start(message._id);
132
138
  };
133
- $[38] = composerPanels;
134
- $[39] = selectionStore;
135
- $[40] = t8;
139
+ $[41] = composerPanels;
140
+ $[42] = selectionStore;
141
+ $[43] = t8;
136
142
  } else {
137
- t8 = $[40];
143
+ t8 = $[43];
138
144
  }
139
145
  const startSelection = t8;
140
146
  let t9;
141
- if ($[41] !== userId) {
147
+ if ($[44] !== userId) {
142
148
  t9 = userId != null ? {
143
149
  _id: userId
144
150
  } : undefined;
145
- $[41] = userId;
146
- $[42] = t9;
151
+ $[44] = userId;
152
+ $[45] = t9;
147
153
  } else {
148
- t9 = $[42];
154
+ t9 = $[45];
149
155
  }
150
156
  const owner = t9;
151
- const defaultsFor = message_0 => keys.length === 0 ? [] : buildDefaultMessageActions({
157
+ const defaultsFor = message_0 => keys.length === 0 && !hasRetry ? [] : buildDefaultMessageActions({
152
158
  message: message_0,
153
159
  user: owner,
154
160
  labels: resolvedLabels,
@@ -169,8 +175,9 @@ export function useMessageActions(t0) {
169
175
  } : undefined,
170
176
  onSelect: canSelect ? startSelection : undefined,
171
177
  onPin: hasPin ? m_0 => actionCallbacksRef.current.onPinMessage?.(m_0) : undefined,
172
- onDelete: hasDelete ? m_1 => {
173
- if (editStore.get()?._id === m_1._id) {
178
+ onRetry: hasRetry ? m_1 => actionCallbacksRef.current.onRetryMessage?.(m_1) : undefined,
179
+ onDelete: hasDelete ? m_2 => {
180
+ if (editStore.get()?._id === m_2._id) {
174
181
  stopEdit();
175
182
  }
176
183
  const {
@@ -178,50 +185,51 @@ export function useMessageActions(t0) {
178
185
  onDeleteMessages: onDeleteMessages_0
179
186
  } = actionCallbacksRef.current;
180
187
  if (onDeleteMessage_0) {
181
- onDeleteMessage_0(m_1);
188
+ onDeleteMessage_0(m_2);
182
189
  } else {
183
- onDeleteMessages_0?.([m_1]);
190
+ onDeleteMessages_0?.([m_2]);
184
191
  }
185
192
  } : undefined
186
193
  });
187
194
  if (typeof messageActions === "function") {
188
195
  let t10;
189
- if ($[43] !== defaultsFor || $[44] !== messageActions) {
196
+ if ($[46] !== defaultsFor || $[47] !== messageActions) {
190
197
  t10 = message_1 => messageActions(message_1, defaultsFor(message_1));
191
- $[43] = defaultsFor;
192
- $[44] = messageActions;
193
- $[45] = t10;
198
+ $[46] = defaultsFor;
199
+ $[47] = messageActions;
200
+ $[48] = t10;
194
201
  } else {
195
- t10 = $[45];
202
+ t10 = $[48];
196
203
  }
197
204
  t7 = t10;
198
205
  break bb0;
199
206
  }
200
207
  t7 = defaultsFor;
201
208
  }
202
- $[21] = actionKeysId;
203
- $[22] = canSelect;
204
- $[23] = composerPanels;
205
- $[24] = editStore;
206
- $[25] = hasDelete;
207
- $[26] = hasEdit;
208
- $[27] = hasForward;
209
- $[28] = hasPin;
210
- $[29] = isReplyEnabled;
211
- $[30] = messageActions;
212
- $[31] = resolvedLabels;
213
- $[32] = selectionStore;
214
- $[33] = startEdit;
215
- $[34] = startReply;
216
- $[35] = stopEdit;
217
- $[36] = userId;
218
- $[37] = t7;
209
+ $[23] = actionKeysId;
210
+ $[24] = canSelect;
211
+ $[25] = composerPanels;
212
+ $[26] = editStore;
213
+ $[27] = hasDelete;
214
+ $[28] = hasEdit;
215
+ $[29] = hasForward;
216
+ $[30] = hasPin;
217
+ $[31] = hasRetry;
218
+ $[32] = isReplyEnabled;
219
+ $[33] = messageActions;
220
+ $[34] = resolvedLabels;
221
+ $[35] = selectionStore;
222
+ $[36] = startEdit;
223
+ $[37] = startReply;
224
+ $[38] = stopEdit;
225
+ $[39] = userId;
226
+ $[40] = t7;
219
227
  } else {
220
- t7 = $[37];
228
+ t7 = $[40];
221
229
  }
222
230
  const resolvedMessageActions = t7;
223
231
  let t8;
224
- if ($[46] !== selectionStore) {
232
+ if ($[49] !== selectionStore) {
225
233
  t8 = selected => {
226
234
  const text = selected.map(_temp).filter(Boolean).join("\n\n");
227
235
  if (text) {
@@ -229,10 +237,10 @@ export function useMessageActions(t0) {
229
237
  }
230
238
  selectionStore.clear();
231
239
  };
232
- $[46] = selectionStore;
233
- $[47] = t8;
240
+ $[49] = selectionStore;
241
+ $[50] = t8;
234
242
  } else {
235
- t8 = $[47];
243
+ t8 = $[50];
236
244
  }
237
245
  const copySelection = t8;
238
246
  let t9;
@@ -242,7 +250,7 @@ export function useMessageActions(t0) {
242
250
  break bb1;
243
251
  }
244
252
  let t10;
245
- if ($[48] !== selectionStore) {
253
+ if ($[51] !== selectionStore) {
246
254
  t10 = selected_0 => {
247
255
  const {
248
256
  onForwardMessage: onForwardMessage_1,
@@ -255,10 +263,10 @@ export function useMessageActions(t0) {
255
263
  }
256
264
  selectionStore.clear();
257
265
  };
258
- $[48] = selectionStore;
259
- $[49] = t10;
266
+ $[51] = selectionStore;
267
+ $[52] = t10;
260
268
  } else {
261
- t10 = $[49];
269
+ t10 = $[52];
262
270
  }
263
271
  t9 = t10;
264
272
  }
@@ -270,7 +278,7 @@ export function useMessageActions(t0) {
270
278
  break bb2;
271
279
  }
272
280
  let t11;
273
- if ($[50] !== editStore || $[51] !== selectionStore || $[52] !== stopEdit) {
281
+ if ($[53] !== editStore || $[54] !== selectionStore || $[55] !== stopEdit) {
274
282
  t11 = selected_1 => {
275
283
  const editingMessage = editStore.get();
276
284
  if (editingMessage && selected_1.some(message_4 => message_4._id === editingMessage._id)) {
@@ -287,18 +295,18 @@ export function useMessageActions(t0) {
287
295
  }
288
296
  selectionStore.clear();
289
297
  };
290
- $[50] = editStore;
291
- $[51] = selectionStore;
292
- $[52] = stopEdit;
293
- $[53] = t11;
298
+ $[53] = editStore;
299
+ $[54] = selectionStore;
300
+ $[55] = stopEdit;
301
+ $[56] = t11;
294
302
  } else {
295
- t11 = $[53];
303
+ t11 = $[56];
296
304
  }
297
305
  t10 = t11;
298
306
  }
299
307
  const deleteSelection = t10;
300
308
  let t11;
301
- if ($[54] !== copySelection || $[55] !== deleteSelection || $[56] !== forwardSelection || $[57] !== resolvedMessageActions) {
309
+ if ($[57] !== copySelection || $[58] !== deleteSelection || $[59] !== forwardSelection || $[60] !== resolvedMessageActions) {
302
310
  t11 = {
303
311
  resolvedMessageActions,
304
312
  actionCallbacksRef,
@@ -307,13 +315,13 @@ export function useMessageActions(t0) {
307
315
  forwardSelection,
308
316
  deleteSelection
309
317
  };
310
- $[54] = copySelection;
311
- $[55] = deleteSelection;
312
- $[56] = forwardSelection;
313
- $[57] = resolvedMessageActions;
314
- $[58] = t11;
318
+ $[57] = copySelection;
319
+ $[58] = deleteSelection;
320
+ $[59] = forwardSelection;
321
+ $[60] = resolvedMessageActions;
322
+ $[61] = t11;
315
323
  } else {
316
- t11 = $[58];
324
+ t11 = $[61];
317
325
  }
318
326
  return t11;
319
327
  }
@@ -1 +1 @@
1
- {"version":3,"file":"useMessageActions.js","names":["useCallback","useInsertionEffect","useMemo","useRef","Keyboard","buildDefaultMessageActions","DEFAULT_MESSAGE_ACTION_KEYS","getClipboard","useMessageActions","t0","$","_c","props","userId","resolvedLabels","isReplyEnabled","startReply","startEdit","stopEdit","editStore","composerPanels","selectionStore","messageActions","defaultMessageActions","t1","onEditMessage","onDeleteMessage","onForwardMessage","onPinMessage","onForwardMessages","onDeleteMessages","onLongPressMessage","undefined","t2","actionCallbacksRef","t3","current","hasPin","hasEdit","hasDelete","hasForward","t4","Symbol","for","hasClipboard","canSelect","t5","actionKeys","t6","join","actionKeysId","t7","bb0","Array","isArray","keys","split","length","clipboard","includes","t8","message","dismiss","close","start","_id","startSelection","t9","owner","defaultsFor","message_0","user","labels","onReply","onEdit","onForward","m","onForwardMessage_0","onForwardMessages_0","onSelect","onPin","m_0","onDelete","m_1","get","onDeleteMessage_0","onDeleteMessages_0","t10","message_1","resolvedMessageActions","selected","text","map","_temp","filter","Boolean","setString","clear","copySelection","bb1","selected_0","onForwardMessage_1","onForwardMessages_1","forEach","message_3","forwardSelection","bb2","t11","selected_1","editingMessage","some","message_4","onDeleteMessage_1","onDeleteMessages_1","message_5","deleteSelection","message_2"],"sources":["../../src/Chat/useMessageActions.ts"],"sourcesContent":["import { useCallback, useInsertionEffect, useMemo, useRef } from 'react'\nimport { Keyboard } from 'react-native'\nimport { ComposerPanelsStore } from '../components/composerPanels'\nimport { buildDefaultMessageActions, DEFAULT_MESSAGE_ACTION_KEYS } from '../components/defaultMessageActions'\nimport { MessageSelectionStore } from '../components/messageSelection'\nimport { ChatLabels } from '../i18n'\nimport { IMessage, MessageMenuItem } from '../Models'\nimport { getClipboard } from '../optional'\nimport { Store } from '../store'\nimport { ChatProps } from './types'\n\n/**\n * The long-press menu every row gets (the app's `messageActions`, the built-in defaults, or\n * both) and what the selection bar's Copy, Forward and Delete do.\n */\nexport function useMessageActions<TMessage extends IMessage> ({\n props,\n userId,\n resolvedLabels,\n isReplyEnabled,\n startReply,\n startEdit,\n stopEdit,\n editStore,\n composerPanels,\n selectionStore,\n}: {\n props: ChatProps<TMessage>\n userId: string | number | undefined\n resolvedLabels: ChatLabels\n isReplyEnabled: boolean\n startReply: (message: TMessage) => void\n startEdit: (message: TMessage) => void\n stopEdit: () => void\n editStore: Store<TMessage | null>\n composerPanels: ComposerPanelsStore\n selectionStore: MessageSelectionStore\n}) {\n const {\n messageActions,\n defaultMessageActions = true,\n onEditMessage,\n onDeleteMessage,\n onForwardMessage,\n onPinMessage,\n onForwardMessages,\n onDeleteMessages,\n onLongPressMessage,\n } = props\n\n // The app's callbacks are read through a ref, so an inline arrow does not hand every row a\n // new `messageActions` (and re-render it) on each parent render.\n const actionCallbacksRef = useRef({ onEditMessage, onDeleteMessage, onForwardMessage, onPinMessage, onForwardMessages, onDeleteMessages })\n useInsertionEffect(() => {\n actionCallbacksRef.current = { onEditMessage, onDeleteMessage, onForwardMessage, onPinMessage, onForwardMessages, onDeleteMessages }\n })\n const hasPin = !!onPinMessage\n const hasEdit = !!onEditMessage\n const hasDelete = !!onDeleteMessage || !!onDeleteMessages\n const hasForward = !!onForwardMessage || !!onForwardMessages\n const hasClipboard = !!getClipboard()\n // Selecting is only offered when a selection can be acted on.\n const canSelect = hasClipboard || hasDelete || hasForward\n\n // An app that already handles long-press itself keeps that, unless it asks for actions.\n const actionKeys = defaultMessageActions === false || (onLongPressMessage && messageActions === undefined)\n ? []\n : defaultMessageActions === true ? DEFAULT_MESSAGE_ACTION_KEYS : defaultMessageActions\n const actionKeysId = actionKeys.join(',')\n\n const resolvedMessageActions = useMemo(() => {\n if (Array.isArray(messageActions))\n return messageActions\n\n const keys = (actionKeysId ? actionKeysId.split(',') : []) as typeof DEFAULT_MESSAGE_ACTION_KEYS\n if (keys.length === 0 && !messageActions)\n return undefined\n\n const clipboard = keys.includes('copy') ? getClipboard() : null\n const startSelection = (message: TMessage) => {\n Keyboard.dismiss()\n composerPanels.close()\n selectionStore.start(message._id)\n }\n const owner = userId != null ? { _id: userId } : undefined\n const defaultsFor = (message: TMessage): MessageMenuItem[] => keys.length === 0\n ? []\n : buildDefaultMessageActions({\n message,\n user: owner,\n labels: resolvedLabels,\n keys,\n clipboard,\n onReply: isReplyEnabled ? startReply : undefined,\n onEdit: hasEdit ? startEdit : undefined,\n onForward: hasForward\n ? m => {\n const { onForwardMessage, onForwardMessages } = actionCallbacksRef.current\n if (onForwardMessage)\n onForwardMessage(m)\n else\n onForwardMessages?.([m])\n }\n : undefined,\n onSelect: canSelect ? startSelection : undefined,\n onPin: hasPin ? m => actionCallbacksRef.current.onPinMessage?.(m) : undefined,\n onDelete: hasDelete\n ? m => {\n if (editStore.get()?._id === m._id)\n stopEdit()\n const { onDeleteMessage, onDeleteMessages } = actionCallbacksRef.current\n if (onDeleteMessage)\n onDeleteMessage(m)\n else\n onDeleteMessages?.([m])\n }\n : undefined,\n })\n\n if (typeof messageActions === 'function')\n return (message: TMessage) => messageActions(message, defaultsFor(message))\n\n return defaultsFor\n }, [\n messageActions,\n actionKeysId,\n userId,\n resolvedLabels,\n isReplyEnabled,\n startReply,\n startEdit,\n stopEdit,\n editStore,\n hasEdit,\n hasDelete,\n hasForward,\n hasPin,\n canSelect,\n composerPanels,\n selectionStore,\n ])\n\n const copySelection = useCallback((selected: TMessage[]) => {\n const text = selected.map(message => message.text).filter(Boolean).join('\\n\\n')\n if (text)\n getClipboard()?.setString(text)\n selectionStore.clear()\n }, [selectionStore])\n\n const forwardSelection = useMemo(() => {\n if (!hasForward)\n return undefined\n return (selected: TMessage[]) => {\n const { onForwardMessage, onForwardMessages } = actionCallbacksRef.current\n if (onForwardMessages)\n onForwardMessages(selected)\n else\n selected.forEach(message => onForwardMessage?.(message))\n selectionStore.clear()\n }\n }, [hasForward, selectionStore])\n\n const deleteSelection = useMemo(() => {\n if (!hasDelete)\n return undefined\n return (selected: TMessage[]) => {\n const editingMessage = editStore.get()\n if (editingMessage && selected.some(message => message._id === editingMessage._id))\n stopEdit()\n const { onDeleteMessage, onDeleteMessages } = actionCallbacksRef.current\n if (onDeleteMessages)\n onDeleteMessages(selected)\n else\n selected.forEach(message => onDeleteMessage?.(message))\n selectionStore.clear()\n }\n }, [hasDelete, editStore, stopEdit, selectionStore])\n\n return { resolvedMessageActions, actionCallbacksRef, hasClipboard, copySelection, forwardSelection, deleteSelection }\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"useMessageActions.js","names":["useCallback","useInsertionEffect","useMemo","useRef","Keyboard","buildDefaultMessageActions","DEFAULT_MESSAGE_ACTION_KEYS","getClipboard","useMessageActions","t0","$","_c","props","userId","resolvedLabels","isReplyEnabled","startReply","startEdit","stopEdit","editStore","composerPanels","selectionStore","messageActions","defaultMessageActions","t1","onEditMessage","onDeleteMessage","onForwardMessage","onPinMessage","onForwardMessages","onDeleteMessages","onLongPressMessage","onRetryMessage","undefined","t2","actionCallbacksRef","t3","current","hasRetry","hasPin","hasEdit","hasDelete","hasForward","t4","Symbol","for","hasClipboard","canSelect","t5","actionKeys","t6","join","actionKeysId","t7","bb0","Array","isArray","keys","split","length","clipboard","includes","t8","message","dismiss","close","start","_id","startSelection","t9","owner","defaultsFor","message_0","user","labels","onReply","onEdit","onForward","m","onForwardMessage_0","onForwardMessages_0","onSelect","onPin","m_0","onRetry","m_1","onDelete","m_2","get","onDeleteMessage_0","onDeleteMessages_0","t10","message_1","resolvedMessageActions","selected","text","map","_temp","filter","Boolean","setString","clear","copySelection","bb1","selected_0","onForwardMessage_1","onForwardMessages_1","forEach","message_3","forwardSelection","bb2","t11","selected_1","editingMessage","some","message_4","onDeleteMessage_1","onDeleteMessages_1","message_5","deleteSelection","message_2"],"sources":["../../src/Chat/useMessageActions.ts"],"sourcesContent":["import { useCallback, useInsertionEffect, useMemo, useRef } from 'react'\nimport { Keyboard } from 'react-native'\nimport { ComposerPanelsStore } from '../components/composerPanels'\nimport { buildDefaultMessageActions, DEFAULT_MESSAGE_ACTION_KEYS } from '../components/defaultMessageActions'\nimport { MessageSelectionStore } from '../components/messageSelection'\nimport { ChatLabels } from '../i18n'\nimport { IMessage, MessageMenuItem } from '../Models'\nimport { getClipboard } from '../optional'\nimport { Store } from '../store'\nimport { ChatProps } from './types'\n\n/**\n * The long-press menu every row gets (the app's `messageActions`, the built-in defaults, or\n * both) and what the selection bar's Copy, Forward and Delete do.\n */\nexport function useMessageActions<TMessage extends IMessage> ({\n props,\n userId,\n resolvedLabels,\n isReplyEnabled,\n startReply,\n startEdit,\n stopEdit,\n editStore,\n composerPanels,\n selectionStore,\n}: {\n props: ChatProps<TMessage>\n userId: string | number | undefined\n resolvedLabels: ChatLabels\n isReplyEnabled: boolean\n startReply: (message: TMessage) => void\n startEdit: (message: TMessage) => void\n stopEdit: () => void\n editStore: Store<TMessage | null>\n composerPanels: ComposerPanelsStore\n selectionStore: MessageSelectionStore\n}) {\n const {\n messageActions,\n defaultMessageActions = true,\n onEditMessage,\n onDeleteMessage,\n onForwardMessage,\n onPinMessage,\n onForwardMessages,\n onDeleteMessages,\n onLongPressMessage,\n onRetryMessage,\n } = props\n\n // The app's callbacks are read through a ref, so an inline arrow does not hand every row a\n // new `messageActions` (and re-render it) on each parent render.\n const actionCallbacksRef = useRef({ onEditMessage, onDeleteMessage, onForwardMessage, onPinMessage, onForwardMessages, onDeleteMessages, onRetryMessage })\n useInsertionEffect(() => {\n actionCallbacksRef.current = { onEditMessage, onDeleteMessage, onForwardMessage, onPinMessage, onForwardMessages, onDeleteMessages, onRetryMessage }\n })\n const hasRetry = !!onRetryMessage\n const hasPin = !!onPinMessage\n const hasEdit = !!onEditMessage\n const hasDelete = !!onDeleteMessage || !!onDeleteMessages\n const hasForward = !!onForwardMessage || !!onForwardMessages\n const hasClipboard = !!getClipboard()\n // Selecting is only offered when a selection can be acted on.\n const canSelect = hasClipboard || hasDelete || hasForward\n\n // An app that already handles long-press itself keeps that, unless it asks for actions.\n const actionKeys = defaultMessageActions === false || (onLongPressMessage && messageActions === undefined)\n ? []\n : defaultMessageActions === true ? DEFAULT_MESSAGE_ACTION_KEYS : defaultMessageActions\n const actionKeysId = actionKeys.join(',')\n\n const resolvedMessageActions = useMemo(() => {\n if (Array.isArray(messageActions))\n return messageActions\n\n const keys = (actionKeysId ? actionKeysId.split(',') : []) as typeof DEFAULT_MESSAGE_ACTION_KEYS\n if (keys.length === 0 && !messageActions && !hasRetry)\n return undefined\n\n const clipboard = keys.includes('copy') ? getClipboard() : null\n const startSelection = (message: TMessage) => {\n Keyboard.dismiss()\n composerPanels.close()\n selectionStore.start(message._id)\n }\n const owner = userId != null ? { _id: userId } : undefined\n const defaultsFor = (message: TMessage): MessageMenuItem[] => keys.length === 0 && !hasRetry\n ? []\n : buildDefaultMessageActions({\n message,\n user: owner,\n labels: resolvedLabels,\n keys,\n clipboard,\n onReply: isReplyEnabled ? startReply : undefined,\n onEdit: hasEdit ? startEdit : undefined,\n onForward: hasForward\n ? m => {\n const { onForwardMessage, onForwardMessages } = actionCallbacksRef.current\n if (onForwardMessage)\n onForwardMessage(m)\n else\n onForwardMessages?.([m])\n }\n : undefined,\n onSelect: canSelect ? startSelection : undefined,\n onPin: hasPin ? m => actionCallbacksRef.current.onPinMessage?.(m) : undefined,\n onRetry: hasRetry ? m => actionCallbacksRef.current.onRetryMessage?.(m) : undefined,\n onDelete: hasDelete\n ? m => {\n if (editStore.get()?._id === m._id)\n stopEdit()\n const { onDeleteMessage, onDeleteMessages } = actionCallbacksRef.current\n if (onDeleteMessage)\n onDeleteMessage(m)\n else\n onDeleteMessages?.([m])\n }\n : undefined,\n })\n\n if (typeof messageActions === 'function')\n return (message: TMessage) => messageActions(message, defaultsFor(message))\n\n return defaultsFor\n }, [\n messageActions,\n actionKeysId,\n userId,\n resolvedLabels,\n isReplyEnabled,\n startReply,\n startEdit,\n stopEdit,\n editStore,\n hasEdit,\n hasDelete,\n hasForward,\n hasPin,\n hasRetry,\n canSelect,\n composerPanels,\n selectionStore,\n ])\n\n const copySelection = useCallback((selected: TMessage[]) => {\n const text = selected.map(message => message.text).filter(Boolean).join('\\n\\n')\n if (text)\n getClipboard()?.setString(text)\n selectionStore.clear()\n }, [selectionStore])\n\n const forwardSelection = useMemo(() => {\n if (!hasForward)\n return undefined\n return (selected: TMessage[]) => {\n const { onForwardMessage, onForwardMessages } = actionCallbacksRef.current\n if (onForwardMessages)\n onForwardMessages(selected)\n else\n selected.forEach(message => onForwardMessage?.(message))\n selectionStore.clear()\n }\n }, [hasForward, selectionStore])\n\n const deleteSelection = useMemo(() => {\n if (!hasDelete)\n return undefined\n return (selected: TMessage[]) => {\n const editingMessage = editStore.get()\n if (editingMessage && selected.some(message => message._id === editingMessage._id))\n stopEdit()\n const { onDeleteMessage, onDeleteMessages } = actionCallbacksRef.current\n if (onDeleteMessages)\n onDeleteMessages(selected)\n else\n selected.forEach(message => onDeleteMessage?.(message))\n selectionStore.clear()\n }\n }, [hasDelete, editStore, stopEdit, selectionStore])\n\n return { resolvedMessageActions, actionCallbacksRef, hasClipboard, copySelection, forwardSelection, deleteSelection }\n}\n"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,50 @@
1
+ import React, { ReactNode } from 'react';
2
+ import { ColorSchemeName, StyleProp, ViewStyle } from 'react-native';
3
+ import { TypingAction } from './components/TypingStatus';
4
+ import { ChatLabels } from './i18n';
5
+ import { ChatIcons } from './Icons';
6
+ import { User } from './Models';
7
+ import { PartialChatTheme } from './Theme';
8
+ export interface ChatHeaderProps {
9
+ /** The chat's name, on one line. */
10
+ title: string;
11
+ /** The line under the name: "online", "last seen recently", "3 members"... */
12
+ subtitle?: string;
13
+ /** Draws the subtitle in the accent color, as for "online". */
14
+ isSubtitleActive?: boolean;
15
+ /** Shown in place of the subtitle while someone types: "typing", "Anna is typing"... */
16
+ typingUsers?: User[];
17
+ typingAction?: TypingAction;
18
+ /** Names the people typing, as a group does. */
19
+ isGroup?: boolean;
20
+ /** The avatar: a photo, or initials on the chat's color picked by `id`. Hidden without it. */
21
+ avatar?: {
22
+ id: string | number;
23
+ uri?: string;
24
+ };
25
+ /** Shows the back arrow. */
26
+ onBack?: () => void;
27
+ /** Makes the avatar and the name a button, e.g. to open the profile. */
28
+ onPressTitle?: () => void;
29
+ /** Buttons at the end of the bar: a call, a menu. */
30
+ renderRight?: () => ReactNode;
31
+ /** Replaces the name and the subtitle, e.g. with a search field. */
32
+ renderTitle?: () => ReactNode;
33
+ /** Pads the bar by the top safe-area inset. Default true; turn off when it sits below the status bar already. */
34
+ isTopInsetApplied?: boolean;
35
+ style?: StyleProp<ViewStyle>;
36
+ theme?: PartialChatTheme;
37
+ darkTheme?: PartialChatTheme;
38
+ colorScheme?: ColorSchemeName;
39
+ locale?: string;
40
+ labels?: Partial<ChatLabels>;
41
+ icons?: ChatIcons;
42
+ }
43
+ /**
44
+ * A chat screen's top bar, as a messenger draws it: back arrow, a 42 avatar, the name in 18 medium
45
+ * with a 14 status line under it ("online" and "typing" in the accent color), and buttons at the
46
+ * end. Colors come from `theme.chatList` (`headerBackground`, `headerText`, `headerSubtitle`,
47
+ * `headerSubtitleActive`), so it matches `ChatList`'s header.
48
+ */
49
+ export declare function ChatHeader(props: ChatHeaderProps): React.JSX.Element;
50
+ //# sourceMappingURL=ChatHeader.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ChatHeader.d.ts","sourceRoot":"","sources":["../src/ChatHeader.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAE,SAAS,EAAuB,MAAM,OAAO,CAAA;AAC7D,OAAO,EAAE,eAAe,EAAa,SAAS,EAA0C,SAAS,EAAE,MAAM,cAAc,CAAA;AAMvH,OAAO,EAAE,YAAY,EAAgB,MAAM,2BAA2B,CAAA;AAEtE,OAAO,EAAE,UAAU,EAAiB,MAAM,QAAQ,CAAA;AAClD,OAAO,EAAE,SAAS,EAAE,MAAM,SAAS,CAAA;AACnC,OAAO,EAAE,IAAI,EAAE,MAAM,UAAU,CAAA;AAE/B,OAAO,EAAE,gBAAgB,EAAgB,MAAM,SAAS,CAAA;AAKxD,MAAM,WAAW,eAAe;IAC9B,oCAAoC;IACpC,KAAK,EAAE,MAAM,CAAA;IACb,8EAA8E;IAC9E,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,+DAA+D;IAC/D,gBAAgB,CAAC,EAAE,OAAO,CAAA;IAC1B,wFAAwF;IACxF,WAAW,CAAC,EAAE,IAAI,EAAE,CAAA;IACpB,YAAY,CAAC,EAAE,YAAY,CAAA;IAC3B,gDAAgD;IAChD,OAAO,CAAC,EAAE,OAAO,CAAA;IACjB,8FAA8F;IAC9F,MAAM,CAAC,EAAE;QAAE,EAAE,EAAE,MAAM,GAAG,MAAM,CAAC;QAAC,GAAG,CAAC,EAAE,MAAM,CAAA;KAAE,CAAA;IAC9C,4BAA4B;IAC5B,MAAM,CAAC,EAAE,MAAM,IAAI,CAAA;IACnB,wEAAwE;IACxE,YAAY,CAAC,EAAE,MAAM,IAAI,CAAA;IACzB,qDAAqD;IACrD,WAAW,CAAC,EAAE,MAAM,SAAS,CAAA;IAC7B,oEAAoE;IACpE,WAAW,CAAC,EAAE,MAAM,SAAS,CAAA;IAC7B,iHAAiH;IACjH,iBAAiB,CAAC,EAAE,OAAO,CAAA;IAC3B,KAAK,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,CAAA;IAC5B,KAAK,CAAC,EAAE,gBAAgB,CAAA;IACxB,SAAS,CAAC,EAAE,gBAAgB,CAAA;IAC5B,WAAW,CAAC,EAAE,eAAe,CAAA;IAC7B,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,MAAM,CAAC,EAAE,OAAO,CAAC,UAAU,CAAC,CAAA;IAC5B,KAAK,CAAC,EAAE,SAAS,CAAA;CAClB;AAED;;;;;GAKG;AACH,wBAAgB,UAAU,CAAE,KAAK,EAAE,eAAe,qBAsBjD"}