stream-chat-react-native-core 5.23.1 → 5.23.2-beta.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/commonjs/components/AutoCompleteInput/AutoCompleteSuggestionList.js +94 -93
- package/lib/commonjs/components/AutoCompleteInput/AutoCompleteSuggestionList.js.map +1 -1
- package/lib/commonjs/components/Channel/Channel.js +33 -32
- package/lib/commonjs/components/Channel/Channel.js.map +1 -1
- package/lib/commonjs/components/MessageInput/MessageInput.js +30 -37
- package/lib/commonjs/components/MessageInput/MessageInput.js.map +1 -1
- package/lib/commonjs/components/MessageList/MessageList.js +41 -43
- package/lib/commonjs/components/MessageList/MessageList.js.map +1 -1
- package/lib/commonjs/components/MessageList/hooks/useMessageList.js +1 -2
- package/lib/commonjs/components/MessageList/hooks/useMessageList.js.map +1 -1
- package/lib/commonjs/i18n/en.json +1 -1
- package/lib/commonjs/i18n/fr.json +50 -50
- package/lib/commonjs/i18n/hi.json +50 -50
- package/lib/commonjs/i18n/it.json +50 -50
- package/lib/commonjs/i18n/nl.json +50 -50
- package/lib/commonjs/i18n/ru.json +50 -50
- package/lib/commonjs/i18n/tr.json +50 -50
- package/lib/commonjs/version.json +1 -1
- package/lib/module/components/AutoCompleteInput/AutoCompleteSuggestionList.js +94 -93
- package/lib/module/components/AutoCompleteInput/AutoCompleteSuggestionList.js.map +1 -1
- package/lib/module/components/Channel/Channel.js +33 -32
- package/lib/module/components/Channel/Channel.js.map +1 -1
- package/lib/module/components/MessageInput/MessageInput.js +30 -37
- package/lib/module/components/MessageInput/MessageInput.js.map +1 -1
- package/lib/module/components/MessageList/MessageList.js +41 -43
- package/lib/module/components/MessageList/MessageList.js.map +1 -1
- package/lib/module/components/MessageList/hooks/useMessageList.js +1 -2
- package/lib/module/components/MessageList/hooks/useMessageList.js.map +1 -1
- package/lib/module/i18n/en.json +1 -1
- package/lib/module/i18n/fr.json +50 -50
- package/lib/module/i18n/hi.json +50 -50
- package/lib/module/i18n/it.json +50 -50
- package/lib/module/i18n/nl.json +50 -50
- package/lib/module/i18n/ru.json +50 -50
- package/lib/module/i18n/tr.json +50 -50
- package/lib/module/version.json +1 -1
- package/lib/typescript/components/MessageInput/MessageInput.d.ts +1 -3
- package/lib/typescript/components/MessageList/MessageList.d.ts +1 -5
- package/lib/typescript/i18n/en.json +1 -1
- package/lib/typescript/i18n/fr.json +50 -50
- package/lib/typescript/i18n/hi.json +50 -50
- package/lib/typescript/i18n/it.json +50 -50
- package/lib/typescript/i18n/nl.json +50 -50
- package/lib/typescript/i18n/ru.json +50 -50
- package/lib/typescript/i18n/tr.json +50 -50
- package/package.json +1 -1
- package/src/components/AutoCompleteInput/AutoCompleteSuggestionList.tsx +83 -74
- package/src/components/Channel/Channel.tsx +22 -17
- package/src/components/MessageInput/MessageInput.tsx +14 -16
- package/src/components/MessageList/MessageList.tsx +12 -15
- package/src/components/MessageList/hooks/useMessageList.ts +2 -2
- package/src/i18n/en.json +1 -1
- package/src/i18n/fr.json +50 -50
- package/src/i18n/hi.json +50 -50
- package/src/i18n/it.json +50 -50
- package/src/i18n/nl.json +50 -50
- package/src/i18n/ru.json +50 -50
- package/src/i18n/tr.json +50 -50
- package/src/version.json +1 -1
|
@@ -4,73 +4,73 @@
|
|
|
4
4
|
"Allow access to your Gallery": "Разрешить доступ к вашей галерее",
|
|
5
5
|
"Allow camera access in device settings": "Разрешите доступ к камере в настройках устройства.",
|
|
6
6
|
"Also send to channel": "Также отправить на канал",
|
|
7
|
-
"Are you sure you want to permanently delete this message?": "
|
|
8
|
-
"Block User": "
|
|
9
|
-
"Cancel": "
|
|
10
|
-
"Cannot Flag Message": "
|
|
11
|
-
"Copy Message": "
|
|
12
|
-
"Delete": "
|
|
13
|
-
"Delete Message": "
|
|
7
|
+
"Are you sure you want to permanently delete this message?": "",
|
|
8
|
+
"Block User": "",
|
|
9
|
+
"Cancel": "",
|
|
10
|
+
"Cannot Flag Message": "",
|
|
11
|
+
"Copy Message": "",
|
|
12
|
+
"Delete": "",
|
|
13
|
+
"Delete Message": "",
|
|
14
14
|
"Device camera is used to take photos or videos.": "Камера устройства используется для съемки фотографий или видео.",
|
|
15
|
-
"Do you want to send a copy of this message to a moderator for further investigation?": "
|
|
16
|
-
"Edit Message": "
|
|
17
|
-
"Editing Message": "
|
|
15
|
+
"Do you want to send a copy of this message to a moderator for further investigation?": "",
|
|
16
|
+
"Edit Message": "",
|
|
17
|
+
"Editing Message": "",
|
|
18
18
|
"Emoji matching": "Соответствие эмодзи",
|
|
19
|
-
"Empty message...": "
|
|
20
|
-
"Error loading": "
|
|
21
|
-
"Error loading channel list...": "
|
|
22
|
-
"Error loading messages for this channel...": "
|
|
23
|
-
"Error while loading, please reload/refresh": "
|
|
24
|
-
"File type not supported": "
|
|
25
|
-
"Flag": "
|
|
26
|
-
"Flag Message": "
|
|
27
|
-
"Flag action failed either due to a network issue or the message is already flagged": "
|
|
28
|
-
"How about sending your first message to a friend?": "
|
|
19
|
+
"Empty message...": "",
|
|
20
|
+
"Error loading": "",
|
|
21
|
+
"Error loading channel list...": "",
|
|
22
|
+
"Error loading messages for this channel...": "",
|
|
23
|
+
"Error while loading, please reload/refresh": "",
|
|
24
|
+
"File type not supported": "",
|
|
25
|
+
"Flag": "",
|
|
26
|
+
"Flag Message": "",
|
|
27
|
+
"Flag action failed either due to a network issue or the message is already flagged": "",
|
|
28
|
+
"How about sending your first message to a friend?": "",
|
|
29
29
|
"Instant Commands": "Мгновенные Команды",
|
|
30
|
-
"Let's start chatting!": "
|
|
30
|
+
"Let's start chatting!": "",
|
|
31
31
|
"Links are disabled": "Ссылки отключены",
|
|
32
32
|
"Loading channels...": "Загружаю каналы...",
|
|
33
33
|
"Loading messages...": "Загружаю сообщения...",
|
|
34
34
|
"Loading...": "Загружаю...",
|
|
35
35
|
"Maximum file size upload limit reached. Please upload a file below {{MAX_FILE_SIZE_TO_UPLOAD_IN_MB}} MB.": "Достигнут предел максимального размера файла для загрузки. Загрузите файл размером менее {{MAX_FILE_SIZE_TO_UPLOAD_IN_MB}} МБ.",
|
|
36
|
-
"Message Reactions": "
|
|
37
|
-
"Message deleted": "
|
|
38
|
-
"Message flagged": "
|
|
39
|
-
"Mute User": "
|
|
36
|
+
"Message Reactions": "",
|
|
37
|
+
"Message deleted": "",
|
|
38
|
+
"Message flagged": "",
|
|
39
|
+
"Mute User": "",
|
|
40
40
|
"Not supported": "не поддерживается",
|
|
41
|
-
"Nothing yet...": "
|
|
42
|
-
"Ok": "
|
|
43
|
-
"Only visible to you": "
|
|
41
|
+
"Nothing yet...": "",
|
|
42
|
+
"Ok": "",
|
|
43
|
+
"Only visible to you": "",
|
|
44
44
|
"Open Settings": "Открыть настройки",
|
|
45
|
-
"Photo": "
|
|
45
|
+
"Photo": "",
|
|
46
46
|
"Photos and Videos": "Фото и видео",
|
|
47
|
-
"Pin to Conversation": "
|
|
48
|
-
"Pinned by": "
|
|
47
|
+
"Pin to Conversation": "",
|
|
48
|
+
"Pinned by": "",
|
|
49
49
|
"Please enable access to your photos and videos so you can share them.": "Разрешите доступ к своим фотографиям и видео, чтобы вы могли ими поделиться.",
|
|
50
|
-
"Please select a channel first": "
|
|
51
|
-
"Reconnecting...": "
|
|
52
|
-
"Reply": "
|
|
53
|
-
"Reply to Message": "
|
|
54
|
-
"Resend": "
|
|
55
|
-
"Search GIFs": "
|
|
50
|
+
"Please select a channel first": "",
|
|
51
|
+
"Reconnecting...": "",
|
|
52
|
+
"Reply": "",
|
|
53
|
+
"Reply to Message": "",
|
|
54
|
+
"Resend": "",
|
|
55
|
+
"Search GIFs": "",
|
|
56
56
|
"Select More Photos": "Выбрать больше фотографий",
|
|
57
|
-
"Send a message": "
|
|
57
|
+
"Send a message": "",
|
|
58
58
|
"Sending links is not allowed in this conversation": "Отправка ссылок недоступна в этом чате",
|
|
59
|
-
"Slow mode ON": "
|
|
60
|
-
"The message has been reported to a moderator.": "
|
|
61
|
-
"Thread Reply": "
|
|
62
|
-
"Unblock User": "
|
|
59
|
+
"Slow mode ON": "",
|
|
60
|
+
"The message has been reported to a moderator.": "",
|
|
61
|
+
"Thread Reply": "",
|
|
62
|
+
"Unblock User": "",
|
|
63
63
|
"Unknown User": "Неизвестный пользователь",
|
|
64
|
-
"Unmute User": "
|
|
65
|
-
"Unpin from Conversation": "
|
|
64
|
+
"Unmute User": "",
|
|
65
|
+
"Unpin from Conversation": "",
|
|
66
66
|
"Unread Messages": "Непрочитанные Сообщения",
|
|
67
|
-
"Video": "
|
|
68
|
-
"You": "
|
|
69
|
-
"You can't send messages in this channel": "
|
|
70
|
-
"{{ firstUser }} and {{ nonSelfUserLength }} more are typing": "
|
|
67
|
+
"Video": "",
|
|
68
|
+
"You": "",
|
|
69
|
+
"You can't send messages in this channel": "",
|
|
70
|
+
"{{ firstUser }} and {{ nonSelfUserLength }} more are typing": "",
|
|
71
71
|
"{{ index }} of {{ photoLength }}": "{{ index }} из {{ photoLength }}",
|
|
72
72
|
"{{ replyCount }} Replies": "{{ replyCount }} Ответов",
|
|
73
73
|
"{{ replyCount }} Thread Replies": "{{replyCount}} Ответы в темах",
|
|
74
|
-
"{{ user }} is typing": "
|
|
75
|
-
"🏙 Attachment...": "
|
|
74
|
+
"{{ user }} is typing": "",
|
|
75
|
+
"🏙 Attachment...": ""
|
|
76
76
|
}
|
|
@@ -4,73 +4,73 @@
|
|
|
4
4
|
"Allow access to your Gallery": "Galerinize erişime izin verin",
|
|
5
5
|
"Allow camera access in device settings": "Cihaz ayarlarında kamera erişimine izin ver",
|
|
6
6
|
"Also send to channel": "Kanala da gönder",
|
|
7
|
-
"Are you sure you want to permanently delete this message?": "
|
|
8
|
-
"Block User": "
|
|
9
|
-
"Cancel": "
|
|
10
|
-
"Cannot Flag Message": "
|
|
11
|
-
"Copy Message": "
|
|
12
|
-
"Delete": "
|
|
13
|
-
"Delete Message": "
|
|
7
|
+
"Are you sure you want to permanently delete this message?": "",
|
|
8
|
+
"Block User": "",
|
|
9
|
+
"Cancel": "",
|
|
10
|
+
"Cannot Flag Message": "",
|
|
11
|
+
"Copy Message": "",
|
|
12
|
+
"Delete": "",
|
|
13
|
+
"Delete Message": "",
|
|
14
14
|
"Device camera is used to take photos or videos.": "Cihaz kamerası fotoğraf veya video çekmek için kullanılır.",
|
|
15
|
-
"Do you want to send a copy of this message to a moderator for further investigation?": "
|
|
16
|
-
"Edit Message": "
|
|
17
|
-
"Editing Message": "
|
|
15
|
+
"Do you want to send a copy of this message to a moderator for further investigation?": "",
|
|
16
|
+
"Edit Message": "",
|
|
17
|
+
"Editing Message": "",
|
|
18
18
|
"Emoji matching": "Emoji eşleştirme",
|
|
19
|
-
"Empty message...": "
|
|
20
|
-
"Error loading": "
|
|
21
|
-
"Error loading channel list...": "
|
|
22
|
-
"Error loading messages for this channel...": "
|
|
23
|
-
"Error while loading, please reload/refresh": "
|
|
24
|
-
"File type not supported": "
|
|
25
|
-
"Flag": "
|
|
26
|
-
"Flag Message": "
|
|
27
|
-
"Flag action failed either due to a network issue or the message is already flagged": "
|
|
28
|
-
"How about sending your first message to a friend?": "
|
|
19
|
+
"Empty message...": "",
|
|
20
|
+
"Error loading": "",
|
|
21
|
+
"Error loading channel list...": "",
|
|
22
|
+
"Error loading messages for this channel...": "",
|
|
23
|
+
"Error while loading, please reload/refresh": "",
|
|
24
|
+
"File type not supported": "",
|
|
25
|
+
"Flag": "",
|
|
26
|
+
"Flag Message": "",
|
|
27
|
+
"Flag action failed either due to a network issue or the message is already flagged": "",
|
|
28
|
+
"How about sending your first message to a friend?": "",
|
|
29
29
|
"Instant Commands": "Anlık Komutlar",
|
|
30
|
-
"Let's start chatting!": "
|
|
30
|
+
"Let's start chatting!": "",
|
|
31
31
|
"Links are disabled": "Bağlantılar devre dışı",
|
|
32
32
|
"Loading channels...": "Kanallar yükleniyor...",
|
|
33
33
|
"Loading messages...": "Mesajlar yükleniyor...",
|
|
34
34
|
"Loading...": "Yükleniyor...",
|
|
35
35
|
"Maximum file size upload limit reached. Please upload a file below {{MAX_FILE_SIZE_TO_UPLOAD_IN_MB}} MB.": "Maksimum dosya boyutu yükleme sınırına ulaşıldı. Lütfen {{MAX_FILE_SIZE_TO_UPLOAD_IN_MB}} MB'ın altında bir dosya yükleyin.",
|
|
36
|
-
"Message Reactions": "
|
|
37
|
-
"Message deleted": "
|
|
38
|
-
"Message flagged": "
|
|
39
|
-
"Mute User": "
|
|
36
|
+
"Message Reactions": "",
|
|
37
|
+
"Message deleted": "",
|
|
38
|
+
"Message flagged": "",
|
|
39
|
+
"Mute User": "",
|
|
40
40
|
"Not supported": "Desteklenmiyor",
|
|
41
|
-
"Nothing yet...": "
|
|
42
|
-
"Ok": "
|
|
43
|
-
"Only visible to you": "
|
|
41
|
+
"Nothing yet...": "",
|
|
42
|
+
"Ok": "",
|
|
43
|
+
"Only visible to you": "",
|
|
44
44
|
"Open Settings": "Ayarları aç",
|
|
45
|
-
"Photo": "
|
|
45
|
+
"Photo": "",
|
|
46
46
|
"Photos and Videos": "Fotoğraflar ve Videolar",
|
|
47
|
-
"Pin to Conversation": "
|
|
48
|
-
"Pinned by": "
|
|
47
|
+
"Pin to Conversation": "",
|
|
48
|
+
"Pinned by": "",
|
|
49
49
|
"Please enable access to your photos and videos so you can share them.": "Paylaşım yapabilmek için lutfen fotoğraflarınıza ve videolarınıza erişimi etkinleştirin.",
|
|
50
|
-
"Please select a channel first": "
|
|
51
|
-
"Reconnecting...": "
|
|
52
|
-
"Reply": "
|
|
53
|
-
"Reply to Message": "
|
|
54
|
-
"Resend": "
|
|
55
|
-
"Search GIFs": "
|
|
50
|
+
"Please select a channel first": "",
|
|
51
|
+
"Reconnecting...": "",
|
|
52
|
+
"Reply": "",
|
|
53
|
+
"Reply to Message": "",
|
|
54
|
+
"Resend": "",
|
|
55
|
+
"Search GIFs": "",
|
|
56
56
|
"Select More Photos": "Daha Fazla Fotoğraf Seçin",
|
|
57
|
-
"Send a message": "
|
|
57
|
+
"Send a message": "",
|
|
58
58
|
"Sending links is not allowed in this conversation": "Bu konuşmada bağlantı göndermek desteklenmiyor",
|
|
59
|
-
"Slow mode ON": "
|
|
60
|
-
"The message has been reported to a moderator.": "
|
|
61
|
-
"Thread Reply": "
|
|
62
|
-
"Unblock User": "
|
|
59
|
+
"Slow mode ON": "",
|
|
60
|
+
"The message has been reported to a moderator.": "",
|
|
61
|
+
"Thread Reply": "",
|
|
62
|
+
"Unblock User": "",
|
|
63
63
|
"Unknown User": "Bilinmeyen kullanıcı",
|
|
64
|
-
"Unmute User": "
|
|
65
|
-
"Unpin from Conversation": "
|
|
64
|
+
"Unmute User": "",
|
|
65
|
+
"Unpin from Conversation": "",
|
|
66
66
|
"Unread Messages": "Okunmamış Mesajlar",
|
|
67
|
-
"Video": "
|
|
68
|
-
"You": "
|
|
69
|
-
"You can't send messages in this channel": "
|
|
70
|
-
"{{ firstUser }} and {{ nonSelfUserLength }} more are typing": "
|
|
67
|
+
"Video": "",
|
|
68
|
+
"You": "",
|
|
69
|
+
"You can't send messages in this channel": "",
|
|
70
|
+
"{{ firstUser }} and {{ nonSelfUserLength }} more are typing": "",
|
|
71
71
|
"{{ index }} of {{ photoLength }}": "{{ index }} / {{ photoLength }}",
|
|
72
72
|
"{{ replyCount }} Replies": "{{ replyCount }} Cevap",
|
|
73
73
|
"{{ replyCount }} Thread Replies": "{{responseCount}} Konu Cevapı",
|
|
74
|
-
"{{ user }} is typing": "
|
|
75
|
-
"🏙 Attachment...": "
|
|
74
|
+
"{{ user }} is typing": "",
|
|
75
|
+
"🏙 Attachment...": ""
|
|
76
76
|
}
|
|
@@ -1,31 +1,49 @@
|
|
|
1
1
|
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
2
|
+
var _typeof = require("@babel/runtime/helpers/typeof");
|
|
2
3
|
Object.defineProperty(exports, "__esModule", {
|
|
3
4
|
value: true
|
|
4
5
|
});
|
|
5
6
|
exports.AutoCompleteSuggestionListWithContext = exports.AutoCompleteSuggestionList = void 0;
|
|
7
|
+
var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
|
|
6
8
|
var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
|
|
7
9
|
var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutProperties"));
|
|
8
|
-
var _react =
|
|
10
|
+
var _react = _interopRequireWildcard(require("react"));
|
|
9
11
|
var _reactNative = require("react-native");
|
|
10
12
|
var _SuggestionsContext = require("../../contexts/suggestionsContext/SuggestionsContext");
|
|
11
13
|
var _ThemeContext = require("../../contexts/themeContext/ThemeContext");
|
|
12
|
-
var
|
|
14
|
+
var _native = require("../../native");
|
|
15
|
+
var _excluded = ["children", "style"];
|
|
13
16
|
var _this = this,
|
|
14
17
|
_jsxFileName = "/home/runner/work/stream-chat-react-native/stream-chat-react-native/package/src/components/AutoCompleteInput/AutoCompleteSuggestionList.tsx";
|
|
18
|
+
function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
|
|
19
|
+
function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { "default": obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj["default"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
|
|
20
|
+
var AUTO_COMPLETE_SUGGESTION_LIST_HEADER_HEIGHT = 30;
|
|
15
21
|
var SuggestionsItem = function SuggestionsItem(props) {
|
|
16
22
|
var children = props.children,
|
|
17
|
-
|
|
18
|
-
|
|
23
|
+
propsStyle = props.style,
|
|
24
|
+
pressableProps = (0, _objectWithoutProperties2["default"])(props, _excluded);
|
|
25
|
+
var style = function style(_ref) {
|
|
26
|
+
var pressed = _ref.pressed;
|
|
27
|
+
return [propsStyle, {
|
|
28
|
+
opacity: pressed ? 0.2 : 1
|
|
29
|
+
}];
|
|
30
|
+
};
|
|
31
|
+
return _react["default"].createElement(_reactNative.Pressable, (0, _extends2["default"])({}, pressableProps, {
|
|
32
|
+
style: style,
|
|
19
33
|
__self: _this,
|
|
20
34
|
__source: {
|
|
21
35
|
fileName: _jsxFileName,
|
|
22
|
-
lineNumber:
|
|
23
|
-
columnNumber:
|
|
36
|
+
lineNumber: 52,
|
|
37
|
+
columnNumber: 5
|
|
24
38
|
}
|
|
25
39
|
}), children);
|
|
26
40
|
};
|
|
27
41
|
SuggestionsItem.displayName = 'SuggestionsHeader{messageInput{suggestions}}';
|
|
28
42
|
var AutoCompleteSuggestionListWithContext = function AutoCompleteSuggestionListWithContext(props) {
|
|
43
|
+
var _useState = (0, _react.useState)(0),
|
|
44
|
+
_useState2 = (0, _slicedToArray2["default"])(_useState, 2),
|
|
45
|
+
itemHeight = _useState2[0],
|
|
46
|
+
setItemHeight = _useState2[1];
|
|
29
47
|
var active = props.active,
|
|
30
48
|
AutoCompleteSuggestionHeader = props.AutoCompleteSuggestionHeader,
|
|
31
49
|
AutoCompleteSuggestionItem = props.AutoCompleteSuggestionItem,
|
|
@@ -34,98 +52,68 @@ var AutoCompleteSuggestionListWithContext = function AutoCompleteSuggestionListW
|
|
|
34
52
|
queryText = props.queryText,
|
|
35
53
|
triggerType = props.triggerType;
|
|
36
54
|
var _useTheme = (0, _ThemeContext.useTheme)(),
|
|
37
|
-
_useTheme$theme
|
|
55
|
+
_useTheme$theme = _useTheme.theme,
|
|
56
|
+
white = _useTheme$theme.colors.white,
|
|
57
|
+
_useTheme$theme$messa = _useTheme$theme.messageInput,
|
|
38
58
|
maxHeight = _useTheme$theme$messa.container.maxHeight,
|
|
39
59
|
itemStyle = _useTheme$theme$messa.suggestions.item,
|
|
40
60
|
flatlist = _useTheme$theme$messa.suggestionsListContainer.flatlist;
|
|
41
|
-
var
|
|
42
|
-
var
|
|
43
|
-
|
|
61
|
+
var flatlistHeight = (0, _react.useMemo)(function () {
|
|
62
|
+
var totalItemHeight;
|
|
63
|
+
if (triggerType === 'emoji') {
|
|
64
|
+
totalItemHeight = data.length < 7 ? data.length * itemHeight : itemHeight * 6;
|
|
65
|
+
} else {
|
|
66
|
+
totalItemHeight = data.length < 4 ? data.length * itemHeight : itemHeight * 3;
|
|
67
|
+
}
|
|
68
|
+
return triggerType === 'emoji' || triggerType === 'command' ? totalItemHeight + AUTO_COMPLETE_SUGGESTION_LIST_HEADER_HEIGHT : totalItemHeight;
|
|
69
|
+
}, [itemHeight, data.length]);
|
|
70
|
+
var renderItem = function renderItem(_ref2) {
|
|
71
|
+
var item = _ref2.item;
|
|
44
72
|
switch (triggerType) {
|
|
45
|
-
case 'mention':
|
|
46
|
-
if ((0, _SuggestionsContext.isSuggestionUser)(item)) {
|
|
47
|
-
return _react["default"].createElement(SuggestionsItem, {
|
|
48
|
-
onPress: function onPress() {
|
|
49
|
-
onSelect(item);
|
|
50
|
-
},
|
|
51
|
-
style: [{
|
|
52
|
-
paddingBottom: index === data.length - 1 ? 8 : 0,
|
|
53
|
-
paddingTop: index === 0 ? 8 : 0
|
|
54
|
-
}, itemStyle],
|
|
55
|
-
__self: _this,
|
|
56
|
-
__source: {
|
|
57
|
-
fileName: _jsxFileName,
|
|
58
|
-
lineNumber: 71,
|
|
59
|
-
columnNumber: 13
|
|
60
|
-
}
|
|
61
|
-
}, AutoCompleteSuggestionItem && _react["default"].createElement(AutoCompleteSuggestionItem, {
|
|
62
|
-
itemProps: item,
|
|
63
|
-
triggerType: triggerType,
|
|
64
|
-
__self: _this,
|
|
65
|
-
__source: {
|
|
66
|
-
fileName: _jsxFileName,
|
|
67
|
-
lineNumber: 84,
|
|
68
|
-
columnNumber: 17
|
|
69
|
-
}
|
|
70
|
-
}));
|
|
71
|
-
}
|
|
72
|
-
return null;
|
|
73
73
|
case 'command':
|
|
74
|
-
|
|
75
|
-
return _react["default"].createElement(SuggestionsItem, {
|
|
76
|
-
onPress: function onPress() {
|
|
77
|
-
onSelect(item);
|
|
78
|
-
},
|
|
79
|
-
style: [itemStyle],
|
|
80
|
-
__self: _this,
|
|
81
|
-
__source: {
|
|
82
|
-
fileName: _jsxFileName,
|
|
83
|
-
lineNumber: 93,
|
|
84
|
-
columnNumber: 13
|
|
85
|
-
}
|
|
86
|
-
}, AutoCompleteSuggestionItem && _react["default"].createElement(AutoCompleteSuggestionItem, {
|
|
87
|
-
itemProps: item,
|
|
88
|
-
triggerType: triggerType,
|
|
89
|
-
__self: _this,
|
|
90
|
-
__source: {
|
|
91
|
-
fileName: _jsxFileName,
|
|
92
|
-
lineNumber: 100,
|
|
93
|
-
columnNumber: 17
|
|
94
|
-
}
|
|
95
|
-
}));
|
|
96
|
-
}
|
|
97
|
-
return null;
|
|
74
|
+
case 'mention':
|
|
98
75
|
case 'emoji':
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
76
|
+
return _react["default"].createElement(SuggestionsItem, {
|
|
77
|
+
onLayout: function onLayout(event) {
|
|
78
|
+
return setItemHeight(event.nativeEvent.layout.height);
|
|
79
|
+
},
|
|
80
|
+
onPress: function onPress() {
|
|
81
|
+
onSelect(item);
|
|
82
|
+
},
|
|
83
|
+
style: itemStyle,
|
|
84
|
+
__self: _this,
|
|
85
|
+
__source: {
|
|
86
|
+
fileName: _jsxFileName,
|
|
87
|
+
lineNumber: 106,
|
|
88
|
+
columnNumber: 11
|
|
89
|
+
}
|
|
90
|
+
}, AutoCompleteSuggestionItem && _react["default"].createElement(AutoCompleteSuggestionItem, {
|
|
91
|
+
itemProps: item,
|
|
92
|
+
triggerType: triggerType,
|
|
93
|
+
__self: _this,
|
|
94
|
+
__source: {
|
|
95
|
+
fileName: _jsxFileName,
|
|
96
|
+
lineNumber: 114,
|
|
97
|
+
columnNumber: 15
|
|
98
|
+
}
|
|
99
|
+
}));
|
|
123
100
|
default:
|
|
124
101
|
return null;
|
|
125
102
|
}
|
|
126
103
|
};
|
|
127
104
|
if (!active || data.length === 0) return null;
|
|
128
|
-
return _react["default"].createElement(_reactNative.
|
|
105
|
+
return _react["default"].createElement(_reactNative.View, {
|
|
106
|
+
style: [styles.container, {
|
|
107
|
+
backgroundColor: white,
|
|
108
|
+
height: flatlistHeight
|
|
109
|
+
}],
|
|
110
|
+
__self: _this,
|
|
111
|
+
__source: {
|
|
112
|
+
fileName: _jsxFileName,
|
|
113
|
+
lineNumber: 126,
|
|
114
|
+
columnNumber: 5
|
|
115
|
+
}
|
|
116
|
+
}, _react["default"].createElement(_native.FlatList, {
|
|
129
117
|
data: data,
|
|
130
118
|
keyboardShouldPersistTaps: "always",
|
|
131
119
|
keyExtractor: function keyExtractor(item, index) {
|
|
@@ -137,8 +125,8 @@ var AutoCompleteSuggestionListWithContext = function AutoCompleteSuggestionListW
|
|
|
137
125
|
__self: _this,
|
|
138
126
|
__source: {
|
|
139
127
|
fileName: _jsxFileName,
|
|
140
|
-
lineNumber:
|
|
141
|
-
columnNumber:
|
|
128
|
+
lineNumber: 135,
|
|
129
|
+
columnNumber: 13
|
|
142
130
|
}
|
|
143
131
|
}) : null,
|
|
144
132
|
renderItem: renderItem,
|
|
@@ -148,10 +136,10 @@ var AutoCompleteSuggestionListWithContext = function AutoCompleteSuggestionListW
|
|
|
148
136
|
__self: _this,
|
|
149
137
|
__source: {
|
|
150
138
|
fileName: _jsxFileName,
|
|
151
|
-
lineNumber:
|
|
152
|
-
columnNumber:
|
|
139
|
+
lineNumber: 127,
|
|
140
|
+
columnNumber: 7
|
|
153
141
|
}
|
|
154
|
-
});
|
|
142
|
+
}));
|
|
155
143
|
};
|
|
156
144
|
exports.AutoCompleteSuggestionListWithContext = AutoCompleteSuggestionListWithContext;
|
|
157
145
|
var areEqual = function areEqual(prevProps, nextProps) {
|
|
@@ -185,11 +173,24 @@ var AutoCompleteSuggestionList = function AutoCompleteSuggestionList(props) {
|
|
|
185
173
|
__self: _this,
|
|
186
174
|
__source: {
|
|
187
175
|
fileName: _jsxFileName,
|
|
188
|
-
lineNumber:
|
|
176
|
+
lineNumber: 200,
|
|
189
177
|
columnNumber: 5
|
|
190
178
|
}
|
|
191
179
|
}));
|
|
192
180
|
};
|
|
193
181
|
exports.AutoCompleteSuggestionList = AutoCompleteSuggestionList;
|
|
182
|
+
var styles = _reactNative.StyleSheet.create({
|
|
183
|
+
container: {
|
|
184
|
+
borderRadius: 8,
|
|
185
|
+
elevation: 3,
|
|
186
|
+
marginHorizontal: 8,
|
|
187
|
+
marginVertical: 8,
|
|
188
|
+
shadowOffset: {
|
|
189
|
+
height: 1,
|
|
190
|
+
width: 0
|
|
191
|
+
},
|
|
192
|
+
shadowOpacity: 0.15
|
|
193
|
+
}
|
|
194
|
+
});
|
|
194
195
|
AutoCompleteSuggestionList.displayName = 'AutoCompleteSuggestionList{messageInput{suggestions{List}}}';
|
|
195
196
|
//# sourceMappingURL=AutoCompleteSuggestionList.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_react","_interopRequireDefault","require","_reactNative","_SuggestionsContext","_ThemeContext","_excluded","_this","_jsxFileName","SuggestionsItem","props","children","touchableOpacityProps","_objectWithoutProperties2","createElement","TouchableOpacity","_extends2","__self","__source","fileName","lineNumber","columnNumber","displayName","AutoCompleteSuggestionListWithContext","active","AutoCompleteSuggestionHeader","AutoCompleteSuggestionItem","data","onSelect","queryText","triggerType","_useTheme","useTheme","_useTheme$theme$messa","theme","messageInput","maxHeight","container","itemStyle","suggestions","item","flatlist","suggestionsListContainer","renderItem","_ref","index","isSuggestionUser","onPress","style","paddingBottom","length","paddingTop","itemProps","isSuggestionCommand","isSuggestionEmoji","FlatList","keyboardShouldPersistTaps","keyExtractor","name","id","ListHeaderComponent","exports","areEqual","prevProps","nextProps","prevActive","prevData","prevQueryText","prevType","nextActive","nextData","nextQueryText","nextType","activeEqual","queryTextEqual","dataEqual","typeEqual","MemoizedAutoCompleteSuggestionList","React","memo","AutoCompleteSuggestionList","_useSuggestionsContex","useSuggestionsContext"],"sources":["AutoCompleteSuggestionList.tsx"],"sourcesContent":["import React from 'react';\nimport { FlatList, TouchableOpacity, TouchableOpacityProps } from 'react-native';\n\nimport type { AutoCompleteSuggestionHeaderProps } from './AutoCompleteSuggestionHeader';\nimport type { AutoCompleteSuggestionItemProps } from './AutoCompleteSuggestionItem';\n\nimport {\n isSuggestionCommand,\n isSuggestionEmoji,\n isSuggestionUser,\n Suggestion,\n SuggestionsContextValue,\n useSuggestionsContext,\n} from '../../contexts/suggestionsContext/SuggestionsContext';\nimport { useTheme } from '../../contexts/themeContext/ThemeContext';\nimport type { DefaultStreamChatGenerics } from '../../types/types';\n\ntype AutoCompleteSuggestionListComponentProps<\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n> = Pick<SuggestionsContextValue, 'queryText' | 'triggerType'> & {\n active: boolean;\n data: Suggestion<StreamChatGenerics>[];\n onSelect: (item: Suggestion<StreamChatGenerics>) => void;\n};\n\nexport type AutoCompleteSuggestionListPropsWithContext<\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n> = Pick<\n SuggestionsContextValue<StreamChatGenerics>,\n 'AutoCompleteSuggestionHeader' | 'AutoCompleteSuggestionItem'\n> &\n AutoCompleteSuggestionListComponentProps<StreamChatGenerics>;\n\nconst SuggestionsItem: React.FC<TouchableOpacityProps> = (props) => {\n const { children, ...touchableOpacityProps } = props;\n return <TouchableOpacity {...touchableOpacityProps}>{children}</TouchableOpacity>;\n};\n\nSuggestionsItem.displayName = 'SuggestionsHeader{messageInput{suggestions}}';\n\nexport const AutoCompleteSuggestionListWithContext = <\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n>(\n props: AutoCompleteSuggestionListPropsWithContext<StreamChatGenerics>,\n) => {\n const {\n active,\n AutoCompleteSuggestionHeader,\n AutoCompleteSuggestionItem,\n data,\n onSelect,\n queryText,\n triggerType,\n } = props;\n\n const {\n theme: {\n messageInput: {\n container: { maxHeight },\n suggestions: { item: itemStyle },\n suggestionsListContainer: { flatlist },\n },\n },\n } = useTheme();\n\n const renderItem = ({ index, item }: { index: number; item: Suggestion<StreamChatGenerics> }) => {\n switch (triggerType) {\n case 'mention':\n if (isSuggestionUser(item)) {\n return (\n <SuggestionsItem\n onPress={() => {\n onSelect(item);\n }}\n style={[\n {\n paddingBottom: index === data.length - 1 ? 8 : 0,\n paddingTop: index === 0 ? 8 : 0,\n },\n itemStyle,\n ]}\n >\n {AutoCompleteSuggestionItem && (\n <AutoCompleteSuggestionItem itemProps={item} triggerType={triggerType} />\n )}\n </SuggestionsItem>\n );\n }\n return null;\n case 'command':\n if (isSuggestionCommand(item)) {\n return (\n <SuggestionsItem\n onPress={() => {\n onSelect(item);\n }}\n style={[itemStyle]}\n >\n {AutoCompleteSuggestionItem && (\n <AutoCompleteSuggestionItem itemProps={item} triggerType={triggerType} />\n )}\n </SuggestionsItem>\n );\n }\n return null;\n case 'emoji':\n if (isSuggestionEmoji(item)) {\n return (\n <SuggestionsItem\n onPress={() => {\n onSelect(item);\n }}\n style={[itemStyle]}\n >\n {AutoCompleteSuggestionItem && (\n <AutoCompleteSuggestionItem itemProps={item} triggerType={triggerType} />\n )}\n </SuggestionsItem>\n );\n }\n return null;\n default:\n return null;\n }\n };\n\n if (!active || data.length === 0) return null;\n\n return (\n <FlatList\n data={data}\n keyboardShouldPersistTaps='always'\n keyExtractor={(item, index) =>\n `${item.name || (isSuggestionUser(item) ? item.id : '')}${index}`\n }\n ListHeaderComponent={\n AutoCompleteSuggestionHeader ? (\n <AutoCompleteSuggestionHeader queryText={queryText} triggerType={triggerType} />\n ) : null\n }\n renderItem={renderItem}\n style={[flatlist, { maxHeight }]}\n />\n );\n};\n\nconst areEqual = <StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics>(\n prevProps: AutoCompleteSuggestionListPropsWithContext<StreamChatGenerics>,\n nextProps: AutoCompleteSuggestionListPropsWithContext<StreamChatGenerics>,\n) => {\n const {\n active: prevActive,\n data: prevData,\n queryText: prevQueryText,\n triggerType: prevType,\n } = prevProps;\n const {\n active: nextActive,\n data: nextData,\n queryText: nextQueryText,\n triggerType: nextType,\n } = nextProps;\n\n const activeEqual = prevActive === nextActive;\n if (!activeEqual) return false;\n\n const queryTextEqual = prevQueryText === nextQueryText;\n if (!queryTextEqual) return false;\n\n const dataEqual = prevData === nextData;\n if (!dataEqual) return false;\n\n const typeEqual = prevType === nextType;\n if (!typeEqual) return false;\n\n return true;\n};\n\nconst MemoizedAutoCompleteSuggestionList = React.memo(\n AutoCompleteSuggestionListWithContext,\n areEqual,\n) as typeof AutoCompleteSuggestionListWithContext;\n\nexport type AutoCompleteSuggestionListProps<\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n> = AutoCompleteSuggestionListComponentProps<StreamChatGenerics> & {\n AutoCompleteSuggestionHeader?: React.ComponentType<AutoCompleteSuggestionHeaderProps>;\n AutoCompleteSuggestionItem?: React.ComponentType<\n AutoCompleteSuggestionItemProps<StreamChatGenerics>\n >;\n};\n\nexport const AutoCompleteSuggestionList = <\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n>(\n props: AutoCompleteSuggestionListProps<StreamChatGenerics>,\n) => {\n const { AutoCompleteSuggestionHeader, AutoCompleteSuggestionItem } =\n useSuggestionsContext<StreamChatGenerics>();\n\n return (\n <MemoizedAutoCompleteSuggestionList\n {...{ AutoCompleteSuggestionHeader, AutoCompleteSuggestionItem }}\n {...props}\n />\n );\n};\n\nAutoCompleteSuggestionList.displayName =\n 'AutoCompleteSuggestionList{messageInput{suggestions{List}}}';\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"names":["_react","_interopRequireWildcard","require","_reactNative","_SuggestionsContext","_ThemeContext","_native","_excluded","_this","_jsxFileName","_getRequireWildcardCache","nodeInterop","WeakMap","cacheBabelInterop","cacheNodeInterop","obj","__esModule","_typeof","cache","has","get","newObj","hasPropertyDescriptor","Object","defineProperty","getOwnPropertyDescriptor","key","prototype","hasOwnProperty","call","desc","set","AUTO_COMPLETE_SUGGESTION_LIST_HEADER_HEIGHT","SuggestionsItem","props","children","propsStyle","style","pressableProps","_objectWithoutProperties2","_ref","pressed","opacity","createElement","Pressable","_extends2","__self","__source","fileName","lineNumber","columnNumber","displayName","AutoCompleteSuggestionListWithContext","_useState","useState","_useState2","_slicedToArray2","itemHeight","setItemHeight","active","AutoCompleteSuggestionHeader","AutoCompleteSuggestionItem","data","onSelect","queryText","triggerType","_useTheme","useTheme","_useTheme$theme","theme","white","colors","_useTheme$theme$messa","messageInput","maxHeight","container","itemStyle","suggestions","item","flatlist","suggestionsListContainer","flatlistHeight","useMemo","totalItemHeight","length","renderItem","_ref2","onLayout","event","nativeEvent","layout","height","onPress","itemProps","View","styles","backgroundColor","FlatList","keyboardShouldPersistTaps","keyExtractor","index","name","isSuggestionUser","id","ListHeaderComponent","exports","areEqual","prevProps","nextProps","prevActive","prevData","prevQueryText","prevType","nextActive","nextData","nextQueryText","nextType","activeEqual","queryTextEqual","dataEqual","typeEqual","MemoizedAutoCompleteSuggestionList","React","memo","AutoCompleteSuggestionList","_useSuggestionsContex","useSuggestionsContext","StyleSheet","create","borderRadius","elevation","marginHorizontal","marginVertical","shadowOffset","width","shadowOpacity"],"sources":["AutoCompleteSuggestionList.tsx"],"sourcesContent":["import React, { useMemo, useState } from 'react';\nimport {\n LayoutChangeEvent,\n Pressable,\n PressableProps,\n PressableStateCallbackType,\n StyleSheet,\n View,\n ViewStyle,\n} from 'react-native';\n\nimport type { AutoCompleteSuggestionHeaderProps } from './AutoCompleteSuggestionHeader';\nimport type { AutoCompleteSuggestionItemProps } from './AutoCompleteSuggestionItem';\n\nimport {\n isSuggestionUser,\n Suggestion,\n SuggestionsContextValue,\n useSuggestionsContext,\n} from '../../contexts/suggestionsContext/SuggestionsContext';\nimport { useTheme } from '../../contexts/themeContext/ThemeContext';\nimport { FlatList } from '../../native';\nimport type { DefaultStreamChatGenerics } from '../../types/types';\n\nconst AUTO_COMPLETE_SUGGESTION_LIST_HEADER_HEIGHT = 30;\n\ntype AutoCompleteSuggestionListComponentProps<\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n> = Pick<SuggestionsContextValue, 'queryText' | 'triggerType'> & {\n active: boolean;\n data: Suggestion<StreamChatGenerics>[];\n onSelect: (item: Suggestion<StreamChatGenerics>) => void;\n};\n\nexport type AutoCompleteSuggestionListPropsWithContext<\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n> = Pick<\n SuggestionsContextValue<StreamChatGenerics>,\n 'AutoCompleteSuggestionHeader' | 'AutoCompleteSuggestionItem'\n> &\n AutoCompleteSuggestionListComponentProps<StreamChatGenerics>;\n\nconst SuggestionsItem: React.FC<PressableProps> = (props) => {\n const { children, style: propsStyle, ...pressableProps } = props;\n\n const style = ({ pressed }: PressableStateCallbackType) => [\n propsStyle as ViewStyle,\n { opacity: pressed ? 0.2 : 1 },\n ];\n\n return (\n <Pressable {...pressableProps} style={style}>\n {children}\n </Pressable>\n );\n};\n\nSuggestionsItem.displayName = 'SuggestionsHeader{messageInput{suggestions}}';\n\nexport const AutoCompleteSuggestionListWithContext = <\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n>(\n props: AutoCompleteSuggestionListPropsWithContext<StreamChatGenerics>,\n) => {\n const [itemHeight, setItemHeight] = useState<number>(0);\n const {\n active,\n AutoCompleteSuggestionHeader,\n AutoCompleteSuggestionItem,\n data,\n onSelect,\n queryText,\n triggerType,\n } = props;\n\n const {\n theme: {\n colors: { white },\n messageInput: {\n container: { maxHeight },\n suggestions: { item: itemStyle },\n suggestionsListContainer: { flatlist },\n },\n },\n } = useTheme();\n\n const flatlistHeight = useMemo(() => {\n let totalItemHeight;\n if (triggerType === 'emoji') {\n totalItemHeight = data.length < 7 ? data.length * itemHeight : itemHeight * 6;\n } else {\n totalItemHeight = data.length < 4 ? data.length * itemHeight : itemHeight * 3;\n }\n\n return triggerType === 'emoji' || triggerType === 'command'\n ? totalItemHeight + AUTO_COMPLETE_SUGGESTION_LIST_HEADER_HEIGHT\n : totalItemHeight;\n }, [itemHeight, data.length]);\n\n const renderItem = ({ item }: { item: Suggestion<StreamChatGenerics> }) => {\n switch (triggerType) {\n case 'command':\n case 'mention':\n case 'emoji':\n return (\n <SuggestionsItem\n onLayout={(event: LayoutChangeEvent) => setItemHeight(event.nativeEvent.layout.height)}\n onPress={() => {\n onSelect(item);\n }}\n style={itemStyle}\n >\n {AutoCompleteSuggestionItem && (\n <AutoCompleteSuggestionItem itemProps={item} triggerType={triggerType} />\n )}\n </SuggestionsItem>\n );\n default:\n return null;\n }\n };\n\n if (!active || data.length === 0) return null;\n\n return (\n <View style={[styles.container, { backgroundColor: white, height: flatlistHeight }]}>\n <FlatList\n data={data}\n keyboardShouldPersistTaps='always'\n keyExtractor={(item, index) =>\n `${item.name || (isSuggestionUser(item) ? item.id : '')}${index}`\n }\n ListHeaderComponent={\n AutoCompleteSuggestionHeader ? (\n <AutoCompleteSuggestionHeader queryText={queryText} triggerType={triggerType} />\n ) : null\n }\n renderItem={renderItem}\n style={[flatlist, { maxHeight }]}\n />\n </View>\n );\n};\n\nconst areEqual = <StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics>(\n prevProps: AutoCompleteSuggestionListPropsWithContext<StreamChatGenerics>,\n nextProps: AutoCompleteSuggestionListPropsWithContext<StreamChatGenerics>,\n) => {\n const {\n active: prevActive,\n data: prevData,\n queryText: prevQueryText,\n triggerType: prevType,\n } = prevProps;\n const {\n active: nextActive,\n data: nextData,\n queryText: nextQueryText,\n triggerType: nextType,\n } = nextProps;\n\n const activeEqual = prevActive === nextActive;\n if (!activeEqual) return false;\n\n const queryTextEqual = prevQueryText === nextQueryText;\n if (!queryTextEqual) return false;\n\n const dataEqual = prevData === nextData;\n if (!dataEqual) return false;\n\n const typeEqual = prevType === nextType;\n if (!typeEqual) return false;\n\n return true;\n};\n\nconst MemoizedAutoCompleteSuggestionList = React.memo(\n AutoCompleteSuggestionListWithContext,\n areEqual,\n) as typeof AutoCompleteSuggestionListWithContext;\n\nexport type AutoCompleteSuggestionListProps<\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n> = AutoCompleteSuggestionListComponentProps<StreamChatGenerics> & {\n AutoCompleteSuggestionHeader?: React.ComponentType<AutoCompleteSuggestionHeaderProps>;\n AutoCompleteSuggestionItem?: React.ComponentType<\n AutoCompleteSuggestionItemProps<StreamChatGenerics>\n >;\n};\n\nexport const AutoCompleteSuggestionList = <\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n>(\n props: AutoCompleteSuggestionListProps<StreamChatGenerics>,\n) => {\n const { AutoCompleteSuggestionHeader, AutoCompleteSuggestionItem } =\n useSuggestionsContext<StreamChatGenerics>();\n\n return (\n <MemoizedAutoCompleteSuggestionList\n {...{ AutoCompleteSuggestionHeader, AutoCompleteSuggestionItem }}\n {...props}\n />\n );\n};\n\nconst styles = StyleSheet.create({\n container: {\n borderRadius: 8,\n elevation: 3,\n marginHorizontal: 8,\n marginVertical: 8,\n shadowOffset: { height: 1, width: 0 },\n shadowOpacity: 0.15,\n },\n});\n\nAutoCompleteSuggestionList.displayName =\n 'AutoCompleteSuggestionList{messageInput{suggestions{List}}}';\n"],"mappings":"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"}
|