@kesha-antonov/react-native-chat 6.0.1 → 6.1.1
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.
- package/README.md +36 -4
- package/lib/Actions.d.ts.map +1 -1
- package/lib/Actions.js +33 -27
- package/lib/Actions.js.map +1 -1
- package/lib/Chat/Chat.d.ts.map +1 -1
- package/lib/Chat/Chat.js +253 -203
- package/lib/Chat/Chat.js.map +1 -1
- package/lib/Chat/ChatMessageList.d.ts.map +1 -1
- package/lib/Chat/ChatMessageList.js +4 -0
- package/lib/Chat/ChatMessageList.js.map +1 -1
- package/lib/Chat/index.d.ts +9 -1
- package/lib/Chat/index.d.ts.map +1 -1
- package/lib/Chat/index.js +14 -1
- package/lib/Chat/index.js.map +1 -1
- package/lib/Chat/types.d.ts +29 -0
- package/lib/Chat/types.d.ts.map +1 -1
- package/lib/Chat/types.js.map +1 -1
- package/lib/Chat/useMessageActions.d.ts +1 -0
- package/lib/Chat/useMessageActions.d.ts.map +1 -1
- package/lib/Chat/useMessageActions.js +97 -89
- package/lib/Chat/useMessageActions.js.map +1 -1
- package/lib/ChatHeader.d.ts +50 -0
- package/lib/ChatHeader.d.ts.map +1 -0
- package/lib/ChatHeader.js +356 -0
- package/lib/ChatHeader.js.map +1 -0
- package/lib/ChatList/ChatListCell.d.ts +1 -1
- package/lib/ChatList/ChatListCell.d.ts.map +1 -1
- package/lib/ChatList/ChatListCell.js +42 -11
- package/lib/ChatList/ChatListCell.js.map +1 -1
- package/lib/ChatList/index.js +332 -323
- package/lib/ChatList/index.js.map +1 -1
- package/lib/ChatList/types.d.ts +17 -1
- package/lib/ChatList/types.d.ts.map +1 -1
- package/lib/ChatList/types.js.map +1 -1
- package/lib/ChatList/utils.d.ts +4 -1
- package/lib/ChatList/utils.d.ts.map +1 -1
- package/lib/ChatList/utils.js +3 -2
- package/lib/ChatList/utils.js.map +1 -1
- package/lib/Composer.js +5 -1
- package/lib/Composer.js.map +1 -1
- package/lib/InputToolbar/fragments.d.ts +1 -1
- package/lib/InputToolbar/fragments.d.ts.map +1 -1
- package/lib/InputToolbar/fragments.js +9 -7
- package/lib/InputToolbar/fragments.js.map +1 -1
- package/lib/InputToolbar/index.d.ts.map +1 -1
- package/lib/InputToolbar/index.js +3 -2
- package/lib/InputToolbar/index.js.map +1 -1
- package/lib/InputToolbar/types.d.ts +6 -0
- package/lib/InputToolbar/types.d.ts.map +1 -1
- package/lib/InputToolbar/types.js.map +1 -1
- package/lib/InputToolbar/useActionsFragment.d.ts.map +1 -1
- package/lib/InputToolbar/useActionsFragment.js +83 -59
- package/lib/InputToolbar/useActionsFragment.js.map +1 -1
- package/lib/InputToolbar/useKeyboardInset.d.ts +1 -1
- package/lib/InputToolbar/useKeyboardInset.d.ts.map +1 -1
- package/lib/InputToolbar/useKeyboardInset.js +2 -2
- package/lib/InputToolbar/useKeyboardInset.js.map +1 -1
- package/lib/MessageText.d.ts.map +1 -1
- package/lib/MessageText.js +39 -33
- package/lib/MessageText.js.map +1 -1
- package/lib/MessagesContainer/index.d.ts.map +1 -1
- package/lib/MessagesContainer/index.js +113 -94
- package/lib/MessagesContainer/index.js.map +1 -1
- package/lib/MessagesContainer/types.d.ts +5 -2
- package/lib/MessagesContainer/types.d.ts.map +1 -1
- package/lib/MessagesContainer/types.js.map +1 -1
- package/lib/MessagesContainer/useChained.d.ts +6 -0
- package/lib/MessagesContainer/useChained.d.ts.map +1 -0
- package/lib/MessagesContainer/useChained.js +38 -0
- package/lib/MessagesContainer/useChained.js.map +1 -0
- package/lib/MessagesContainer/useListChrome.d.ts.map +1 -1
- package/lib/MessagesContainer/useListChrome.js +1 -1
- package/lib/MessagesContainer/useListChrome.js.map +1 -1
- package/lib/Models.d.ts +2 -1
- package/lib/Models.d.ts.map +1 -1
- package/lib/Models.js.map +1 -1
- package/lib/Send.d.ts.map +1 -1
- package/lib/Send.js +18 -13
- package/lib/Send.js.map +1 -1
- package/lib/Theme.d.ts +11 -0
- package/lib/Theme.d.ts.map +1 -1
- package/lib/Theme.js +17 -1
- package/lib/Theme.js.map +1 -1
- package/lib/attachments/AttachmentButton.js +17 -15
- package/lib/attachments/AttachmentButton.js.map +1 -1
- package/lib/attachments/AttachmentMenu/GalleryGrid.d.ts +3 -1
- package/lib/attachments/AttachmentMenu/GalleryGrid.d.ts.map +1 -1
- package/lib/attachments/AttachmentMenu/GalleryGrid.js +69 -68
- package/lib/attachments/AttachmentMenu/GalleryGrid.js.map +1 -1
- package/lib/attachments/AttachmentMenu/TabPanel.d.ts +3 -1
- package/lib/attachments/AttachmentMenu/TabPanel.d.ts.map +1 -1
- package/lib/attachments/AttachmentMenu/TabPanel.js +23 -21
- package/lib/attachments/AttachmentMenu/TabPanel.js.map +1 -1
- package/lib/attachments/AttachmentMenu/index.d.ts +6 -2
- package/lib/attachments/AttachmentMenu/index.d.ts.map +1 -1
- package/lib/attachments/AttachmentMenu/index.js +259 -247
- package/lib/attachments/AttachmentMenu/index.js.map +1 -1
- package/lib/attachments/buildMessages.d.ts +4 -4
- package/lib/attachments/buildMessages.d.ts.map +1 -1
- package/lib/attachments/buildMessages.js +9 -8
- package/lib/attachments/buildMessages.js.map +1 -1
- package/lib/attachments/types.d.ts +19 -0
- package/lib/attachments/types.d.ts.map +1 -1
- package/lib/attachments/types.js.map +1 -1
- package/lib/components/TouchableOpacity.d.ts +5 -0
- package/lib/components/TouchableOpacity.d.ts.map +1 -1
- package/lib/components/TouchableOpacity.js +59 -54
- package/lib/components/TouchableOpacity.js.map +1 -1
- package/lib/components/defaultMessageActions.d.ts +3 -1
- package/lib/components/defaultMessageActions.d.ts.map +1 -1
- package/lib/components/defaultMessageActions.js +9 -1
- package/lib/components/defaultMessageActions.js.map +1 -1
- package/lib/components/textHighlight.d.ts +14 -0
- package/lib/components/textHighlight.d.ts.map +1 -0
- package/lib/components/textHighlight.js +39 -0
- package/lib/components/textHighlight.js.map +1 -0
- package/lib/hooks/useKeyboardVerticalOffset.d.ts +6 -0
- package/lib/hooks/useKeyboardVerticalOffset.d.ts.map +1 -1
- package/lib/hooks/useKeyboardVerticalOffset.js +35 -13
- package/lib/hooks/useKeyboardVerticalOffset.js.map +1 -1
- package/lib/i18n.d.ts +2 -0
- package/lib/i18n.d.ts.map +1 -1
- package/lib/i18n.js +1 -0
- package/lib/i18n.js.map +1 -1
- package/lib/index.d.ts +3 -1
- package/lib/index.d.ts.map +1 -1
- package/lib/index.js +1 -0
- package/lib/index.js.map +1 -1
- package/lib/linkParser.d.ts +4 -1
- package/lib/linkParser.d.ts.map +1 -1
- package/lib/linkParser.js +115 -78
- package/lib/linkParser.js.map +1 -1
- package/lib/locales/ar.d.ts.map +1 -1
- package/lib/locales/ar.js +1 -0
- package/lib/locales/ar.js.map +1 -1
- package/lib/locales/de.d.ts.map +1 -1
- package/lib/locales/de.js +1 -0
- package/lib/locales/de.js.map +1 -1
- package/lib/locales/es.d.ts.map +1 -1
- package/lib/locales/es.js +1 -0
- package/lib/locales/es.js.map +1 -1
- package/lib/locales/fr.d.ts.map +1 -1
- package/lib/locales/fr.js +1 -0
- package/lib/locales/fr.js.map +1 -1
- package/lib/locales/hi.d.ts.map +1 -1
- package/lib/locales/hi.js +1 -0
- package/lib/locales/hi.js.map +1 -1
- package/lib/locales/id.d.ts.map +1 -1
- package/lib/locales/id.js +1 -0
- package/lib/locales/id.js.map +1 -1
- package/lib/locales/it.d.ts.map +1 -1
- package/lib/locales/it.js +1 -0
- package/lib/locales/it.js.map +1 -1
- package/lib/locales/ja.d.ts.map +1 -1
- package/lib/locales/ja.js +1 -0
- package/lib/locales/ja.js.map +1 -1
- package/lib/locales/ko.d.ts.map +1 -1
- package/lib/locales/ko.js +1 -0
- package/lib/locales/ko.js.map +1 -1
- package/lib/locales/nl.d.ts.map +1 -1
- package/lib/locales/nl.js +1 -0
- package/lib/locales/nl.js.map +1 -1
- package/lib/locales/pl.d.ts.map +1 -1
- package/lib/locales/pl.js +1 -0
- package/lib/locales/pl.js.map +1 -1
- package/lib/locales/pt.d.ts.map +1 -1
- package/lib/locales/pt.js +1 -0
- package/lib/locales/pt.js.map +1 -1
- package/lib/locales/ru.d.ts.map +1 -1
- package/lib/locales/ru.js +1 -0
- package/lib/locales/ru.js.map +1 -1
- package/lib/locales/tr.d.ts.map +1 -1
- package/lib/locales/tr.js +1 -0
- package/lib/locales/tr.js.map +1 -1
- package/lib/locales/zh.d.ts.map +1 -1
- package/lib/locales/zh.js +1 -0
- package/lib/locales/zh.js.map +1 -1
- package/llms.txt +1 -1
- 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(
|
|
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] =
|
|
54
|
+
$[6] = onRetryMessage;
|
|
55
|
+
$[7] = t2;
|
|
53
56
|
} else {
|
|
54
|
-
t2 = $[
|
|
57
|
+
t2 = $[7];
|
|
55
58
|
}
|
|
56
59
|
const actionCallbacksRef = useRef(t2);
|
|
57
60
|
let t3;
|
|
58
|
-
if ($[
|
|
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
|
-
$[
|
|
70
|
-
$[
|
|
71
|
-
$[
|
|
72
|
-
$[
|
|
73
|
-
$[
|
|
74
|
-
$[
|
|
75
|
-
$[
|
|
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 = $[
|
|
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 ($[
|
|
91
|
+
if ($[16] === Symbol.for("react.memo_cache_sentinel")) {
|
|
86
92
|
t4 = getClipboard();
|
|
87
|
-
$[
|
|
93
|
+
$[16] = t4;
|
|
88
94
|
} else {
|
|
89
|
-
t4 = $[
|
|
95
|
+
t4 = $[16];
|
|
90
96
|
}
|
|
91
97
|
const hasClipboard = !!t4;
|
|
92
98
|
const canSelect = hasClipboard || hasDelete || hasForward;
|
|
93
99
|
let t5;
|
|
94
|
-
if ($[
|
|
100
|
+
if ($[17] !== defaultMessageActions || $[18] !== messageActions || $[19] !== onLongPressMessage) {
|
|
95
101
|
t5 = defaultMessageActions === false || onLongPressMessage && messageActions === undefined ? [] : defaultMessageActions === true ? DEFAULT_MESSAGE_ACTION_KEYS : defaultMessageActions;
|
|
96
|
-
$[
|
|
97
|
-
$[
|
|
98
|
-
$[
|
|
99
|
-
$[
|
|
102
|
+
$[17] = defaultMessageActions;
|
|
103
|
+
$[18] = messageActions;
|
|
104
|
+
$[19] = onLongPressMessage;
|
|
105
|
+
$[20] = t5;
|
|
100
106
|
} else {
|
|
101
|
-
t5 = $[
|
|
107
|
+
t5 = $[20];
|
|
102
108
|
}
|
|
103
109
|
const actionKeys = t5;
|
|
104
110
|
let t6;
|
|
105
|
-
if ($[
|
|
111
|
+
if ($[21] !== actionKeys) {
|
|
106
112
|
t6 = actionKeys.join(",");
|
|
107
|
-
$[
|
|
108
|
-
$[
|
|
113
|
+
$[21] = actionKeys;
|
|
114
|
+
$[22] = t6;
|
|
109
115
|
} else {
|
|
110
|
-
t6 = $[
|
|
116
|
+
t6 = $[22];
|
|
111
117
|
}
|
|
112
118
|
const actionKeysId = t6;
|
|
113
119
|
let t7;
|
|
114
|
-
if ($[
|
|
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 ($[
|
|
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
|
-
$[
|
|
134
|
-
$[
|
|
135
|
-
$[
|
|
139
|
+
$[41] = composerPanels;
|
|
140
|
+
$[42] = selectionStore;
|
|
141
|
+
$[43] = t8;
|
|
136
142
|
} else {
|
|
137
|
-
t8 = $[
|
|
143
|
+
t8 = $[43];
|
|
138
144
|
}
|
|
139
145
|
const startSelection = t8;
|
|
140
146
|
let t9;
|
|
141
|
-
if ($[
|
|
147
|
+
if ($[44] !== userId) {
|
|
142
148
|
t9 = userId != null ? {
|
|
143
149
|
_id: userId
|
|
144
150
|
} : undefined;
|
|
145
|
-
$[
|
|
146
|
-
$[
|
|
151
|
+
$[44] = userId;
|
|
152
|
+
$[45] = t9;
|
|
147
153
|
} else {
|
|
148
|
-
t9 = $[
|
|
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
|
-
|
|
173
|
-
|
|
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(
|
|
188
|
+
onDeleteMessage_0(m_2);
|
|
182
189
|
} else {
|
|
183
|
-
onDeleteMessages_0?.([
|
|
190
|
+
onDeleteMessages_0?.([m_2]);
|
|
184
191
|
}
|
|
185
192
|
} : undefined
|
|
186
193
|
});
|
|
187
194
|
if (typeof messageActions === "function") {
|
|
188
195
|
let t10;
|
|
189
|
-
if ($[
|
|
196
|
+
if ($[46] !== defaultsFor || $[47] !== messageActions) {
|
|
190
197
|
t10 = message_1 => messageActions(message_1, defaultsFor(message_1));
|
|
191
|
-
$[
|
|
192
|
-
$[
|
|
193
|
-
$[
|
|
198
|
+
$[46] = defaultsFor;
|
|
199
|
+
$[47] = messageActions;
|
|
200
|
+
$[48] = t10;
|
|
194
201
|
} else {
|
|
195
|
-
t10 = $[
|
|
202
|
+
t10 = $[48];
|
|
196
203
|
}
|
|
197
204
|
t7 = t10;
|
|
198
205
|
break bb0;
|
|
199
206
|
}
|
|
200
207
|
t7 = defaultsFor;
|
|
201
208
|
}
|
|
202
|
-
$[
|
|
203
|
-
$[
|
|
204
|
-
$[
|
|
205
|
-
$[
|
|
206
|
-
$[
|
|
207
|
-
$[
|
|
208
|
-
$[
|
|
209
|
-
$[
|
|
210
|
-
$[
|
|
211
|
-
$[
|
|
212
|
-
$[
|
|
213
|
-
$[
|
|
214
|
-
$[
|
|
215
|
-
$[
|
|
216
|
-
$[
|
|
217
|
-
$[
|
|
218
|
-
$[
|
|
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 = $[
|
|
228
|
+
t7 = $[40];
|
|
221
229
|
}
|
|
222
230
|
const resolvedMessageActions = t7;
|
|
223
231
|
let t8;
|
|
224
|
-
if ($[
|
|
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
|
-
$[
|
|
233
|
-
$[
|
|
240
|
+
$[49] = selectionStore;
|
|
241
|
+
$[50] = t8;
|
|
234
242
|
} else {
|
|
235
|
-
t8 = $[
|
|
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 ($[
|
|
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
|
-
$[
|
|
259
|
-
$[
|
|
266
|
+
$[51] = selectionStore;
|
|
267
|
+
$[52] = t10;
|
|
260
268
|
} else {
|
|
261
|
-
t10 = $[
|
|
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 ($[
|
|
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
|
-
$[
|
|
291
|
-
$[
|
|
292
|
-
$[
|
|
293
|
-
$[
|
|
298
|
+
$[53] = editStore;
|
|
299
|
+
$[54] = selectionStore;
|
|
300
|
+
$[55] = stopEdit;
|
|
301
|
+
$[56] = t11;
|
|
294
302
|
} else {
|
|
295
|
-
t11 = $[
|
|
303
|
+
t11 = $[56];
|
|
296
304
|
}
|
|
297
305
|
t10 = t11;
|
|
298
306
|
}
|
|
299
307
|
const deleteSelection = t10;
|
|
300
308
|
let t11;
|
|
301
|
-
if ($[
|
|
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
|
-
$[
|
|
311
|
-
$[
|
|
312
|
-
$[
|
|
313
|
-
$[
|
|
314
|
-
$[
|
|
318
|
+
$[57] = copySelection;
|
|
319
|
+
$[58] = deleteSelection;
|
|
320
|
+
$[59] = forwardSelection;
|
|
321
|
+
$[60] = resolvedMessageActions;
|
|
322
|
+
$[61] = t11;
|
|
315
323
|
} else {
|
|
316
|
-
t11 = $[
|
|
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":";AAAA,SAASA,WAAW,EAAEC,kBAAkB,EAAEC,OAAO,EAAEC,MAAM,QAAQ,OAAO;AACxE,SAASC,QAAQ,QAAQ,cAAc;AAEvC,SAASC,0BAA0B,EAAEC,2BAA2B,QAAQ,qCAAqC;AAI7G,SAASC,YAAY,QAAQ,aAAa;AAI1C;AACA;AACA;AACA;AACA,OAAO,SAAAC,kBAAAC,EAAA;EAAA,MAAAC,CAAA,GAAAC,EAAA;EAAuD;IAAAC,KAAA;IAAAC,MAAA;IAAAC,cAAA;IAAAC,cAAA;IAAAC,UAAA;IAAAC,SAAA;IAAAC,QAAA;IAAAC,SAAA;IAAAC,cAAA;IAAAC;EAAA,IAAAZ,EAsB7D;EACC;IAAAa,cAAA;IAAAC,qBAAA,EAAAC,EAAA;IAAAC,aAAA;IAAAC,eAAA;IAAAC,gBAAA;IAAAC,YAAA;IAAAC,iBAAA;IAAAC,gBAAA;IAAAC;EAAA,IAUInB,KAAK;EARP,MAAAW,qBAAA,GAAAC,EAA4B,KAA5BQ,SAA4B,GAA5B,IAA4B,GAA5BR,EAA4B;EAAA,IAAAS,EAAA;EAAA,IAAAvB,CAAA,QAAAgB,eAAA,IAAAhB,CAAA,QAAAoB,gBAAA,IAAApB,CAAA,QAAAe,aAAA,IAAAf,CAAA,QAAAiB,gBAAA,IAAAjB,CAAA,QAAAmB,iBAAA,IAAAnB,CAAA,QAAAkB,YAAA;IAYIK,EAAA;MAAAR,aAAA;MAAAC,eAAA;MAAAC,gBAAA;MAAAC,YAAA;MAAAC,iBAAA;MAAAC;IAAsG,CAAC;IAAApB,CAAA,MAAAgB,eAAA;IAAAhB,CAAA,MAAAoB,gBAAA;IAAApB,CAAA,MAAAe,aAAA;IAAAf,CAAA,MAAAiB,gBAAA;IAAAjB,CAAA,MAAAmB,iBAAA;IAAAnB,CAAA,MAAAkB,YAAA;IAAAlB,CAAA,MAAAuB,EAAA;EAAA;IAAAA,EAAA,GAAAvB,CAAA;EAAA;EAAzI,MAAAwB,kBAAA,GAA2B/B,MAAM,CAAC8B,EAAuG,CAAC;EAAA,IAAAE,EAAA;EAAA,IAAAzB,CAAA,QAAAgB,eAAA,IAAAhB,CAAA,QAAAoB,gBAAA,IAAApB,CAAA,QAAAe,aAAA,IAAAf,CAAA,SAAAiB,gBAAA,IAAAjB,CAAA,SAAAmB,iBAAA,IAAAnB,CAAA,SAAAkB,YAAA;IACvHO,EAAA,GAAAA,CAAA;MACjBD,kBAAkB,CAAAE,OAAA,GAAW;QAAAX,aAAA;QAAAC,eAAA;QAAAC,gBAAA;QAAAC,YAAA;QAAAC,iBAAA;QAAAC;MAAsG,CAAzG;IAAA,CAC3B;IAAApB,CAAA,MAAAgB,eAAA;IAAAhB,CAAA,MAAAoB,gBAAA;IAAApB,CAAA,MAAAe,aAAA;IAAAf,CAAA,OAAAiB,gBAAA;IAAAjB,CAAA,OAAAmB,iBAAA;IAAAnB,CAAA,OAAAkB,YAAA;IAAAlB,CAAA,OAAAyB,EAAA;EAAA;IAAAA,EAAA,GAAAzB,CAAA;EAAA;EAFDT,kBAAkB,CAACkC,EAElB,CAAC;EACF,MAAAE,MAAA,GAAe,CAAC,CAACT,YAAY;EAC7B,MAAAU,OAAA,GAAgB,CAAC,CAACb,aAAa;EAC/B,MAAAc,SAAA,GAAkB,CAAC,CAACb,eAAqC,IAAvC,CAAsB,CAACI,gBAAgB;EACzD,MAAAU,UAAA,GAAmB,CAAC,CAACb,gBAAuC,IAAzC,CAAuB,CAACE,iBAAiB;EAAA,IAAAY,EAAA;EAAA,IAAA/B,CAAA,SAAAgC,MAAA,CAAAC,GAAA;IACrCF,EAAA,GAAAlC,YAAY,CAAC,CAAC;IAAAG,CAAA,OAAA+B,EAAA;EAAA;IAAAA,EAAA,GAAA/B,CAAA;EAAA;EAArC,MAAAkC,YAAA,GAAqB,CAAC,CAACH,EAAc;EAErC,MAAAI,SAAA,GAAkBD,YAAyB,IAAzBL,SAAuC,IAAvCC,UAAuC;EAAA,IAAAM,EAAA;EAAA,IAAApC,CAAA,SAAAa,qBAAA,IAAAb,CAAA,SAAAY,cAAA,IAAAZ,CAAA,SAAAqB,kBAAA;IAGtCe,EAAA,GAAAvB,qBAAqB,KAAK,KAA6D,IAAnDQ,kBAAkD,IAA5BT,cAAc,KAAKU,SAER,GAFrE,EAEqE,GAApFT,qBAAqB,KAAK,IAA0D,GAApFjB,2BAAoF,GAApFiB,qBAAoF;IAAAb,CAAA,OAAAa,qBAAA;IAAAb,CAAA,OAAAY,cAAA;IAAAZ,CAAA,OAAAqB,kBAAA;IAAArB,CAAA,OAAAoC,EAAA;EAAA;IAAAA,EAAA,GAAApC,CAAA;EAAA;EAFxF,MAAAqC,UAAA,GAAmBD,EAEqE;EAAA,IAAAE,EAAA;EAAA,IAAAtC,CAAA,SAAAqC,UAAA;IACnEC,EAAA,GAAAD,UAAU,CAAAE,IAAK,CAAC,GAAG,CAAC;IAAAvC,CAAA,OAAAqC,UAAA;IAAArC,CAAA,OAAAsC,EAAA;EAAA;IAAAA,EAAA,GAAAtC,CAAA;EAAA;EAAzC,MAAAwC,YAAA,GAAqBF,EAAoB;EAAA,IAAAG,EAAA;EAAA,IAAAzC,CAAA,SAAAwC,YAAA,IAAAxC,CAAA,SAAAmC,SAAA,IAAAnC,CAAA,SAAAU,cAAA,IAAAV,CAAA,SAAAS,SAAA,IAAAT,CAAA,SAAA6B,SAAA,IAAA7B,CAAA,SAAA4B,OAAA,IAAA5B,CAAA,SAAA8B,UAAA,IAAA9B,CAAA,SAAA2B,MAAA,IAAA3B,CAAA,SAAAK,cAAA,IAAAL,CAAA,SAAAY,cAAA,IAAAZ,CAAA,SAAAI,cAAA,IAAAJ,CAAA,SAAAW,cAAA,IAAAX,CAAA,SAAAO,SAAA,IAAAP,CAAA,SAAAM,UAAA,IAAAN,CAAA,SAAAQ,QAAA,IAAAR,CAAA,SAAAG,MAAA;IAAAuC,GAAA;MAGvC,IAAIC,KAAK,CAAAC,OAAQ,CAAChC,cAAc,CAAC;QAC/B6B,EAAA,GAAO7B,cAAc;QAArB,MAAA8B,GAAA;MAAqB;MAEvB,MAAAG,IAAA,GAAcL,YAAY,GAAGA,YAAY,CAAAM,KAAM,CAAC,GAAQ,CAAC,GAA3C,EAA2C;MACzD,IAAID,IAAI,CAAAE,MAAO,KAAK,CAAoB,IAApC,CAAsBnC,cAAc;QACtC6B,EAAA,GAAOnB,SAAS;QAAhB,MAAAoB,GAAA;MAAgB;MAElB,MAAAM,SAAA,GAAkBH,IAAI,CAAAI,QAAS,CAAC,MAA8B,CAAC,GAArBpD,YAAY,CAAQ,CAAC,GAA7C,IAA6C;MAAA,IAAAqD,EAAA;MAAA,IAAAlD,CAAA,SAAAU,cAAA,IAAAV,CAAA,SAAAW,cAAA;QACxCuC,EAAA,GAAAC,OAAA;UACrBzD,QAAQ,CAAA0D,OAAQ,CAAC,CAAC;UAClB1C,cAAc,CAAA2C,KAAM,CAAC,CAAC;UACtB1C,cAAc,CAAA2C,KAAM,CAACH,OAAO,CAAAI,GAAI,CAAC;QAAA,CAClC;QAAAvD,CAAA,OAAAU,cAAA;QAAAV,CAAA,OAAAW,cAAA;QAAAX,CAAA,OAAAkD,EAAA;MAAA;QAAAA,EAAA,GAAAlD,CAAA;MAAA;MAJD,MAAAwD,cAAA,GAAuBN,EAItB;MAAA,IAAAO,EAAA;MAAA,IAAAzD,CAAA,SAAAG,MAAA;QACasD,EAAA,GAAAtD,MAAM,IAAI,IAAkC,GAA5C;UAAAoD,GAAA,EAAwBpD;QAAmB,CAAC,GAA5CmB,SAA4C;QAAAtB,CAAA,OAAAG,MAAA;QAAAH,CAAA,OAAAyD,EAAA;MAAA;QAAAA,EAAA,GAAAzD,CAAA;MAAA;MAA1D,MAAA0D,KAAA,GAAcD,EAA4C;MAC1D,MAAAE,WAAA,GAAoBC,SAAA,IAA0Cf,IAAI,CAAAE,MAAO,KAAK,CAgC1E,GAhC0D,EAgC1D,GA9BApD,0BAA0B,CAAC;QAAAwD,OAAA,EAC3BA,SAAO;QAAAU,IAAA,EACDH,KAAK;QAAAI,MAAA,EACH1D,cAAc;QAAAyC,IAAA;QAAAG,SAAA;QAAAe,OAAA,EAGb1D,cAAc,GAAdC,UAAuC,GAAvCgB,SAAuC;QAAA0C,MAAA,EACxCpC,OAAO,GAAPrB,SAA+B,GAA/Be,SAA+B;QAAA2C,SAAA,EAC5BnC,UAAU,GAAVoC,CAAA;UAEP;YAAAjD,gBAAA,EAAAkD,kBAAA;YAAAhD,iBAAA,EAAAiD;UAAA,IAAgD5C,kBAAkB,CAAAE,OAAQ;UAC1E,IAAIT,kBAAgB;YAClBA,kBAAgB,CAACiD,CAAC,CAAC;UAAA;YAEnB/C,mBAAiB,GAAG,CAAC+C,CAAC,CAAC,CAAC;UAAA;QAAA,CAEjB,GARF5C,SAQE;QAAA+C,QAAA,EACHlC,SAAS,GAATqB,cAAsC,GAAtClC,SAAsC;QAAAgD,KAAA,EACzC3C,MAAM,GAAN4C,GAAA,IAAc/C,kBAAkB,CAAAE,OAAQ,CAAAR,YAAkB,GAAFgD,GAAC,CAAa,GAAtE5C,SAAsE;QAAAkD,QAAA,EACnE3C,SAAS,GAAT4C,GAAA;UAEN,IAAIhE,SAAS,CAAAiE,GAAI,CAAM,CAAC,EAAAnB,GAAA,KAAKW,GAAC,CAAAX,GAAI;YAChC/C,QAAQ,CAAC,CAAC;UAAA;UACZ;YAAAQ,eAAA,EAAA2D,iBAAA;YAAAvD,gBAAA,EAAAwD;UAAA,IAA8CpD,kBAAkB,CAAAE,OAAQ;UACxE,IAAIV,iBAAe;YACjBA,iBAAe,CAACkD,GAAC,CAAC;UAAA;YAElB9C,kBAAgB,GAAG,CAAC8C,GAAC,CAAC,CAAC;UAAA;QAAA,CAEhB,GAVH5C;MAWZ,CAAC,CAAC;MAEJ,IAAI,OAAOV,cAAc,KAAK,UAAU;QAAA,IAAAiE,GAAA;QAAA,IAAA7E,CAAA,SAAA2D,WAAA,IAAA3D,CAAA,SAAAY,cAAA;UAC/BiE,GAAA,GAAAC,SAAA,IAAuBlE,cAAc,CAACuC,SAAO,EAAEQ,WAAW,CAACR,SAAO,CAAC,CAAC;UAAAnD,CAAA,OAAA2D,WAAA;UAAA3D,CAAA,OAAAY,cAAA;UAAAZ,CAAA,OAAA6E,GAAA;QAAA;UAAAA,GAAA,GAAA7E,CAAA;QAAA;QAA3EyC,EAAA,GAAOoC,GAAoE;QAA3E,MAAAnC,GAAA;MAA2E;MAE7ED,EAAA,GAAOkB,WAAW;IAAA;IAAA3D,CAAA,OAAAwC,YAAA;IAAAxC,CAAA,OAAAmC,SAAA;IAAAnC,CAAA,OAAAU,cAAA;IAAAV,CAAA,OAAAS,SAAA;IAAAT,CAAA,OAAA6B,SAAA;IAAA7B,CAAA,OAAA4B,OAAA;IAAA5B,CAAA,OAAA8B,UAAA;IAAA9B,CAAA,OAAA2B,MAAA;IAAA3B,CAAA,OAAAK,cAAA;IAAAL,CAAA,OAAAY,cAAA;IAAAZ,CAAA,OAAAI,cAAA;IAAAJ,CAAA,OAAAW,cAAA;IAAAX,CAAA,OAAAO,SAAA;IAAAP,CAAA,OAAAM,UAAA;IAAAN,CAAA,OAAAQ,QAAA;IAAAR,CAAA,OAAAG,MAAA;IAAAH,CAAA,OAAAyC,EAAA;EAAA;IAAAA,EAAA,GAAAzC,CAAA;EAAA;EApDpB,MAAA+E,sBAAA,GAA+BtC,EAsE7B;EAAA,IAAAS,EAAA;EAAA,IAAAlD,CAAA,SAAAW,cAAA;IAEgCuC,EAAA,GAAA8B,QAAA;MAChC,MAAAC,IAAA,GAAaD,QAAQ,CAAAE,GAAI,CAACC,KAAuB,CAAC,CAAAC,MAAO,CAACC,OAAO,CAAC,CAAA9C,IAAK,CAAC,MAAM,CAAC;MAC/E,IAAI0C,IAAI;QACNpF,YAAY,CAAY,CAAC,EAAAyF,SAAM,CAALL,IAAI,CAAC;MAAA;MACjCtE,cAAc,CAAA4E,KAAM,CAAC,CAAC;IAAA,CACvB;IAAAvF,CAAA,OAAAW,cAAA;IAAAX,CAAA,OAAAkD,EAAA;EAAA;IAAAA,EAAA,GAAAlD,CAAA;EAAA;EALD,MAAAwF,aAAA,GAAsBtC,EAKF;EAAA,IAAAO,EAAA;EAAAgC,GAAA;IAGlB,IAAI,CAAC3D,UAAU;MACb2B,EAAA,GAAOnC,SAAS;MAAhB,MAAAmE,GAAA;IAAgB;IAAA,IAAAZ,GAAA;IAAA,IAAA7E,CAAA,SAAAW,cAAA;MACXkE,GAAA,GAAAa,UAAA;QACL;UAAAzE,gBAAA,EAAA0E,kBAAA;UAAAxE,iBAAA,EAAAyE;QAAA,IAAgDpE,kBAAkB,CAAAE,OAAQ;QAC1E,IAAIP,mBAAiB;UACnBA,mBAAiB,CAAC6D,UAAQ,CAAC;QAAA;UAE3BA,UAAQ,CAAAa,OAAQ,CAACC,SAAA,IAAW7E,kBAAgB,GAAGkC,SAAO,CAAC,CAAC;QAAA;QAC1DxC,cAAc,CAAA4E,KAAM,CAAC,CAAC;MAAA,CACvB;MAAAvF,CAAA,OAAAW,cAAA;MAAAX,CAAA,OAAA6E,GAAA;IAAA;MAAAA,GAAA,GAAA7E,CAAA;IAAA;IAPDyD,EAAA,GAAOoB,GAON;EAAA;EAVH,MAAAkB,gBAAA,GAAyBtC,EAWO;EAAA,IAAAoB,GAAA;EAAAmB,GAAA;IAG9B,IAAI,CAACnE,SAAS;MACZgD,GAAA,GAAOvD,SAAS;MAAhB,MAAA0E,GAAA;IAAgB;IAAA,IAAAC,GAAA;IAAA,IAAAjG,CAAA,SAAAS,SAAA,IAAAT,CAAA,SAAAW,cAAA,IAAAX,CAAA,SAAAQ,QAAA;MACXyF,GAAA,GAAAC,UAAA;QACL,MAAAC,cAAA,GAAuB1F,SAAS,CAAAiE,GAAI,CAAC,CAAC;QACtC,IAAIyB,cAA8E,IAA5DnB,UAAQ,CAAAoB,IAAK,CAACC,SAAA,IAAWlD,SAAO,CAAAI,GAAI,KAAK4C,cAAc,CAAA5C,GAAI,CAAC;UAChF/C,QAAQ,CAAC,CAAC;QAAA;QACZ;UAAAQ,eAAA,EAAAsF,iBAAA;UAAAlF,gBAAA,EAAAmF;QAAA,IAA8C/E,kBAAkB,CAAAE,OAAQ;QACxE,IAAIN,kBAAgB;UAClBA,kBAAgB,CAAC4D,UAAQ,CAAC;QAAA;UAE1BA,UAAQ,CAAAa,OAAQ,CAACW,SAAA,IAAWxF,iBAAe,GAAGmC,SAAO,CAAC,CAAC;QAAA;QACzDxC,cAAc,CAAA4E,KAAM,CAAC,CAAC;MAAA,CACvB;MAAAvF,CAAA,OAAAS,SAAA;MAAAT,CAAA,OAAAW,cAAA;MAAAX,CAAA,OAAAQ,QAAA;MAAAR,CAAA,OAAAiG,GAAA;IAAA;MAAAA,GAAA,GAAAjG,CAAA;IAAA;IAVD6E,GAAA,GAAOoB,GAUN;EAAA;EAbH,MAAAQ,eAAA,GAAwB5B,GAc4B;EAAA,IAAAoB,GAAA;EAAA,IAAAjG,CAAA,SAAAwF,aAAA,IAAAxF,CAAA,SAAAyG,eAAA,IAAAzG,CAAA,SAAA+F,gBAAA,IAAA/F,CAAA,SAAA+E,sBAAA;IAE7CkB,GAAA;MAAAlB,sBAAA;MAAAvD,kBAAA;MAAAU,YAAA;MAAAsD,aAAA;MAAAO,gBAAA;MAAAU;IAA6G,CAAC;IAAAzG,CAAA,OAAAwF,aAAA;IAAAxF,CAAA,OAAAyG,eAAA;IAAAzG,CAAA,OAAA+F,gBAAA;IAAA/F,CAAA,OAAA+E,sBAAA;IAAA/E,CAAA,OAAAiG,GAAA;EAAA;IAAAA,GAAA,GAAAjG,CAAA;EAAA;EAAA,OAA9GiG,GAA8G;AAAA;AAnKhH,SAAAd,MAAAuB,SAAA;EAAA,OAgIkCvD,SAAO,CAAA8B,IAAK;AAAA","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"}
|