stream-chat-react-native-core 5.22.0-beta.7 → 5.22.0-beta.8
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/AttachmentPicker/components/AttachmentPickerItem.js +4 -4
- package/lib/commonjs/components/AttachmentPicker/components/AttachmentPickerItem.js.map +1 -1
- package/lib/commonjs/components/Message/MessageSimple/utils/generateMarkdownText.js +7 -5
- package/lib/commonjs/components/Message/MessageSimple/utils/generateMarkdownText.js.map +1 -1
- package/lib/commonjs/components/Message/MessageSimple/utils/generateMarkdownText.test.js +8 -0
- package/lib/commonjs/components/Message/MessageSimple/utils/generateMarkdownText.test.js.map +1 -0
- package/lib/commonjs/components/Message/MessageSimple/utils/renderText.js +17 -16
- package/lib/commonjs/components/Message/MessageSimple/utils/renderText.js.map +1 -1
- package/lib/commonjs/components/MessageInput/FileUploadPreview.js +30 -20
- package/lib/commonjs/components/MessageInput/FileUploadPreview.js.map +1 -1
- package/lib/commonjs/components/MessageInput/MessageInput.js +1 -1
- package/lib/commonjs/components/MessageInput/MessageInput.js.map +1 -1
- package/lib/commonjs/contexts/messageInputContext/MessageInputContext.js +7 -7
- package/lib/commonjs/contexts/messageInputContext/MessageInputContext.js.map +1 -1
- package/lib/commonjs/i18n/fr.json +12 -12
- package/lib/commonjs/i18n/hi.json +12 -12
- package/lib/commonjs/i18n/it.json +12 -12
- package/lib/commonjs/i18n/nl.json +12 -12
- package/lib/commonjs/i18n/ru.json +12 -12
- package/lib/commonjs/i18n/tr.json +12 -12
- package/lib/commonjs/types/types.js.map +1 -1
- package/lib/commonjs/version.json +1 -1
- package/lib/module/components/AttachmentPicker/components/AttachmentPickerItem.js +4 -4
- package/lib/module/components/AttachmentPicker/components/AttachmentPickerItem.js.map +1 -1
- package/lib/module/components/Message/MessageSimple/utils/generateMarkdownText.js +7 -5
- package/lib/module/components/Message/MessageSimple/utils/generateMarkdownText.js.map +1 -1
- package/lib/module/components/Message/MessageSimple/utils/generateMarkdownText.test.js +8 -0
- package/lib/module/components/Message/MessageSimple/utils/generateMarkdownText.test.js.map +1 -0
- package/lib/module/components/Message/MessageSimple/utils/renderText.js +17 -16
- package/lib/module/components/Message/MessageSimple/utils/renderText.js.map +1 -1
- package/lib/module/components/MessageInput/FileUploadPreview.js +30 -20
- package/lib/module/components/MessageInput/FileUploadPreview.js.map +1 -1
- package/lib/module/components/MessageInput/MessageInput.js +1 -1
- package/lib/module/components/MessageInput/MessageInput.js.map +1 -1
- package/lib/module/contexts/messageInputContext/MessageInputContext.js +7 -7
- package/lib/module/contexts/messageInputContext/MessageInputContext.js.map +1 -1
- package/lib/module/i18n/fr.json +12 -12
- package/lib/module/i18n/hi.json +12 -12
- package/lib/module/i18n/it.json +12 -12
- package/lib/module/i18n/nl.json +12 -12
- package/lib/module/i18n/ru.json +12 -12
- package/lib/module/i18n/tr.json +12 -12
- package/lib/module/types/types.js.map +1 -1
- package/lib/module/version.json +1 -1
- package/lib/typescript/components/Message/MessageSimple/utils/generateMarkdownText.d.ts +1 -3
- package/lib/typescript/components/Message/MessageSimple/utils/generateMarkdownText.test.d.ts +1 -0
- package/lib/typescript/i18n/fr.json +12 -12
- package/lib/typescript/i18n/hi.json +12 -12
- package/lib/typescript/i18n/it.json +12 -12
- package/lib/typescript/i18n/nl.json +12 -12
- package/lib/typescript/i18n/ru.json +12 -12
- package/lib/typescript/i18n/tr.json +12 -12
- package/lib/typescript/types/types.d.ts +8 -11
- package/package.json +1 -1
- package/src/components/AttachmentPicker/components/AttachmentPickerItem.tsx +4 -4
- package/src/components/Message/MessageSimple/utils/generateMarkdownText.test.ts +23 -0
- package/src/components/Message/MessageSimple/utils/generateMarkdownText.ts +12 -13
- package/src/components/Message/MessageSimple/utils/renderText.tsx +2 -1
- package/src/components/MessageInput/FileUploadPreview.tsx +16 -1
- package/src/components/MessageInput/MessageInput.tsx +1 -1
- package/src/components/MessageInput/__tests__/MessageInput.test.js +2 -2
- package/src/contexts/messageInputContext/MessageInputContext.tsx +2 -2
- package/src/i18n/fr.json +12 -12
- package/src/i18n/hi.json +12 -12
- package/src/i18n/it.json +12 -12
- package/src/i18n/nl.json +12 -12
- package/src/i18n/ru.json +12 -12
- package/src/i18n/tr.json +12 -12
- package/src/types/types.ts +8 -12
- package/src/version.json +1 -1
|
@@ -15,23 +15,23 @@
|
|
|
15
15
|
"Do you want to send a copy of this message to a moderator for further investigation?": "",
|
|
16
16
|
"Edit Message": "",
|
|
17
17
|
"Editing Message": "",
|
|
18
|
-
"Emoji matching": "",
|
|
18
|
+
"Emoji matching": "Abbinamento emoji",
|
|
19
19
|
"Empty message...": "",
|
|
20
20
|
"Error loading": "",
|
|
21
21
|
"Error loading channel list...": "",
|
|
22
22
|
"Error loading messages for this channel...": "",
|
|
23
23
|
"Error while loading, please reload/refresh": "",
|
|
24
|
-
"File type not supported": "
|
|
24
|
+
"File type not supported": "",
|
|
25
25
|
"Flag": "",
|
|
26
26
|
"Flag Message": "",
|
|
27
27
|
"Flag action failed either due to a network issue or the message is already flagged": "",
|
|
28
28
|
"How about sending your first message to a friend?": "",
|
|
29
|
-
"Instant Commands": "",
|
|
29
|
+
"Instant Commands": "Comandi Istantanei",
|
|
30
30
|
"Let's start chatting!": "",
|
|
31
31
|
"Links are disabled": "",
|
|
32
|
-
"Loading channels...": "
|
|
33
|
-
"Loading messages...": "
|
|
34
|
-
"Loading...": "
|
|
32
|
+
"Loading channels...": "",
|
|
33
|
+
"Loading messages...": "",
|
|
34
|
+
"Loading...": "",
|
|
35
35
|
"Maximum file size upload limit reached. Please upload a file below {{MAX_FILE_SIZE_TO_UPLOAD_IN_MB}} MB.": "",
|
|
36
36
|
"Message Reactions": "",
|
|
37
37
|
"Message deleted": "",
|
|
@@ -40,23 +40,23 @@
|
|
|
40
40
|
"Not supported": "non supportato",
|
|
41
41
|
"Nothing yet...": "",
|
|
42
42
|
"Ok": "",
|
|
43
|
-
"Only visible to you": "
|
|
43
|
+
"Only visible to you": "",
|
|
44
44
|
"Open Settings": "",
|
|
45
45
|
"Photo": "Foto",
|
|
46
46
|
"Photos and Videos": "",
|
|
47
47
|
"Pin to Conversation": "",
|
|
48
48
|
"Pinned by": "",
|
|
49
49
|
"Please enable access to your photos and videos so you can share them.": "",
|
|
50
|
-
"Please select a channel first": "
|
|
50
|
+
"Please select a channel first": "",
|
|
51
51
|
"Reconnecting...": "",
|
|
52
52
|
"Reply": "",
|
|
53
53
|
"Reply to Message": "",
|
|
54
54
|
"Resend": "",
|
|
55
|
-
"Search GIFs": "",
|
|
55
|
+
"Search GIFs": "Cerca GIF",
|
|
56
56
|
"Select More Photos": "",
|
|
57
|
-
"Send a message": "",
|
|
57
|
+
"Send a message": "Mandare un messaggio",
|
|
58
58
|
"Sending links is not allowed in this conversation": "",
|
|
59
|
-
"Slow mode ON": "",
|
|
59
|
+
"Slow mode ON": "Slowmode attiva",
|
|
60
60
|
"The message has been reported to a moderator.": "",
|
|
61
61
|
"Thread Reply": "",
|
|
62
62
|
"Unblock User": "",
|
|
@@ -66,7 +66,7 @@
|
|
|
66
66
|
"Unread Messages": "",
|
|
67
67
|
"Video": "Video",
|
|
68
68
|
"You": "",
|
|
69
|
-
"You can't send messages in this channel": "
|
|
69
|
+
"You can't send messages in this channel": "",
|
|
70
70
|
"{{ firstUser }} and {{ nonSelfUserLength }} more are typing": "{{ firstUser }} e altri {{ nonSelfUserLength }} stanno scrivendo",
|
|
71
71
|
"{{ index }} of {{ photoLength }}": "",
|
|
72
72
|
"{{ replyCount }} Replies": "",
|
|
@@ -15,23 +15,23 @@
|
|
|
15
15
|
"Do you want to send a copy of this message to a moderator for further investigation?": "",
|
|
16
16
|
"Edit Message": "",
|
|
17
17
|
"Editing Message": "",
|
|
18
|
-
"Emoji matching": "",
|
|
18
|
+
"Emoji matching": "Emoji-overeenkomsten",
|
|
19
19
|
"Empty message...": "",
|
|
20
20
|
"Error loading": "",
|
|
21
21
|
"Error loading channel list...": "",
|
|
22
22
|
"Error loading messages for this channel...": "",
|
|
23
23
|
"Error while loading, please reload/refresh": "",
|
|
24
|
-
"File type not supported": "
|
|
24
|
+
"File type not supported": "",
|
|
25
25
|
"Flag": "",
|
|
26
26
|
"Flag Message": "",
|
|
27
27
|
"Flag action failed either due to a network issue or the message is already flagged": "",
|
|
28
28
|
"How about sending your first message to a friend?": "",
|
|
29
|
-
"Instant Commands": "",
|
|
29
|
+
"Instant Commands": "Directe Opdrachten",
|
|
30
30
|
"Let's start chatting!": "",
|
|
31
31
|
"Links are disabled": "",
|
|
32
|
-
"Loading channels...": "
|
|
33
|
-
"Loading messages...": "
|
|
34
|
-
"Loading...": "
|
|
32
|
+
"Loading channels...": "",
|
|
33
|
+
"Loading messages...": "",
|
|
34
|
+
"Loading...": "",
|
|
35
35
|
"Maximum file size upload limit reached. Please upload a file below {{MAX_FILE_SIZE_TO_UPLOAD_IN_MB}} MB.": "",
|
|
36
36
|
"Message Reactions": "",
|
|
37
37
|
"Message deleted": "",
|
|
@@ -40,23 +40,23 @@
|
|
|
40
40
|
"Not supported": "niet ondersteund",
|
|
41
41
|
"Nothing yet...": "",
|
|
42
42
|
"Ok": "",
|
|
43
|
-
"Only visible to you": "
|
|
43
|
+
"Only visible to you": "",
|
|
44
44
|
"Open Settings": "",
|
|
45
45
|
"Photo": "Foto",
|
|
46
46
|
"Photos and Videos": "",
|
|
47
47
|
"Pin to Conversation": "",
|
|
48
48
|
"Pinned by": "",
|
|
49
49
|
"Please enable access to your photos and videos so you can share them.": "",
|
|
50
|
-
"Please select a channel first": "
|
|
50
|
+
"Please select a channel first": "",
|
|
51
51
|
"Reconnecting...": "",
|
|
52
52
|
"Reply": "",
|
|
53
53
|
"Reply to Message": "",
|
|
54
54
|
"Resend": "",
|
|
55
|
-
"Search GIFs": "",
|
|
55
|
+
"Search GIFs": "Zoek GIF's",
|
|
56
56
|
"Select More Photos": "",
|
|
57
|
-
"Send a message": "",
|
|
57
|
+
"Send a message": "Stuur een bericht",
|
|
58
58
|
"Sending links is not allowed in this conversation": "",
|
|
59
|
-
"Slow mode ON": "",
|
|
59
|
+
"Slow mode ON": "Langzame modus aan",
|
|
60
60
|
"The message has been reported to a moderator.": "",
|
|
61
61
|
"Thread Reply": "",
|
|
62
62
|
"Unblock User": "",
|
|
@@ -66,7 +66,7 @@
|
|
|
66
66
|
"Unread Messages": "",
|
|
67
67
|
"Video": "Video",
|
|
68
68
|
"You": "",
|
|
69
|
-
"You can't send messages in this channel": "
|
|
69
|
+
"You can't send messages in this channel": "",
|
|
70
70
|
"{{ firstUser }} and {{ nonSelfUserLength }} more are typing": "{{ firstUser }} en {{ nonSelfUserLength }} anderen zijn aan het typen",
|
|
71
71
|
"{{ index }} of {{ photoLength }}": "",
|
|
72
72
|
"{{ replyCount }} Replies": "",
|
|
@@ -15,23 +15,23 @@
|
|
|
15
15
|
"Do you want to send a copy of this message to a moderator for further investigation?": "",
|
|
16
16
|
"Edit Message": "",
|
|
17
17
|
"Editing Message": "",
|
|
18
|
-
"Emoji matching": "",
|
|
18
|
+
"Emoji matching": "Соответствие эмодзи",
|
|
19
19
|
"Empty message...": "",
|
|
20
20
|
"Error loading": "",
|
|
21
21
|
"Error loading channel list...": "",
|
|
22
22
|
"Error loading messages for this channel...": "",
|
|
23
23
|
"Error while loading, please reload/refresh": "",
|
|
24
|
-
"File type not supported": "
|
|
24
|
+
"File type not supported": "",
|
|
25
25
|
"Flag": "",
|
|
26
26
|
"Flag Message": "",
|
|
27
27
|
"Flag action failed either due to a network issue or the message is already flagged": "",
|
|
28
28
|
"How about sending your first message to a friend?": "",
|
|
29
|
-
"Instant Commands": "",
|
|
29
|
+
"Instant Commands": "Мгновенные Команды",
|
|
30
30
|
"Let's start chatting!": "",
|
|
31
31
|
"Links are disabled": "",
|
|
32
|
-
"Loading channels...": "
|
|
33
|
-
"Loading messages...": "
|
|
34
|
-
"Loading...": "
|
|
32
|
+
"Loading channels...": "",
|
|
33
|
+
"Loading messages...": "",
|
|
34
|
+
"Loading...": "",
|
|
35
35
|
"Maximum file size upload limit reached. Please upload a file below {{MAX_FILE_SIZE_TO_UPLOAD_IN_MB}} MB.": "",
|
|
36
36
|
"Message Reactions": "",
|
|
37
37
|
"Message deleted": "",
|
|
@@ -40,23 +40,23 @@
|
|
|
40
40
|
"Not supported": "не поддерживается",
|
|
41
41
|
"Nothing yet...": "",
|
|
42
42
|
"Ok": "",
|
|
43
|
-
"Only visible to you": "
|
|
43
|
+
"Only visible to you": "",
|
|
44
44
|
"Open Settings": "",
|
|
45
45
|
"Photo": "Фото",
|
|
46
46
|
"Photos and Videos": "",
|
|
47
47
|
"Pin to Conversation": "",
|
|
48
48
|
"Pinned by": "",
|
|
49
49
|
"Please enable access to your photos and videos so you can share them.": "",
|
|
50
|
-
"Please select a channel first": "
|
|
50
|
+
"Please select a channel first": "",
|
|
51
51
|
"Reconnecting...": "",
|
|
52
52
|
"Reply": "",
|
|
53
53
|
"Reply to Message": "",
|
|
54
54
|
"Resend": "",
|
|
55
|
-
"Search GIFs": "",
|
|
55
|
+
"Search GIFs": "Поиск GIF",
|
|
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": "",
|
|
59
|
+
"Slow mode ON": "Медленный режим включен",
|
|
60
60
|
"The message has been reported to a moderator.": "",
|
|
61
61
|
"Thread Reply": "",
|
|
62
62
|
"Unblock User": "",
|
|
@@ -66,7 +66,7 @@
|
|
|
66
66
|
"Unread Messages": "",
|
|
67
67
|
"Video": "видео",
|
|
68
68
|
"You": "",
|
|
69
|
-
"You can't send messages in this channel": "
|
|
69
|
+
"You can't send messages in this channel": "",
|
|
70
70
|
"{{ firstUser }} and {{ nonSelfUserLength }} more are typing": "{{ firstUser }} и еще {{ nonSelfUserLength }} пишут",
|
|
71
71
|
"{{ index }} of {{ photoLength }}": "",
|
|
72
72
|
"{{ replyCount }} Replies": "",
|
|
@@ -15,23 +15,23 @@
|
|
|
15
15
|
"Do you want to send a copy of this message to a moderator for further investigation?": "",
|
|
16
16
|
"Edit Message": "",
|
|
17
17
|
"Editing Message": "",
|
|
18
|
-
"Emoji matching": "",
|
|
18
|
+
"Emoji matching": "Emoji eşleştirme",
|
|
19
19
|
"Empty message...": "",
|
|
20
20
|
"Error loading": "",
|
|
21
21
|
"Error loading channel list...": "",
|
|
22
22
|
"Error loading messages for this channel...": "",
|
|
23
23
|
"Error while loading, please reload/refresh": "",
|
|
24
|
-
"File type not supported": "
|
|
24
|
+
"File type not supported": "",
|
|
25
25
|
"Flag": "",
|
|
26
26
|
"Flag Message": "",
|
|
27
27
|
"Flag action failed either due to a network issue or the message is already flagged": "",
|
|
28
28
|
"How about sending your first message to a friend?": "",
|
|
29
|
-
"Instant Commands": "",
|
|
29
|
+
"Instant Commands": "Anlık Komutlar",
|
|
30
30
|
"Let's start chatting!": "",
|
|
31
31
|
"Links are disabled": "",
|
|
32
|
-
"Loading channels...": "
|
|
33
|
-
"Loading messages...": "
|
|
34
|
-
"Loading...": "
|
|
32
|
+
"Loading channels...": "",
|
|
33
|
+
"Loading messages...": "",
|
|
34
|
+
"Loading...": "",
|
|
35
35
|
"Maximum file size upload limit reached. Please upload a file below {{MAX_FILE_SIZE_TO_UPLOAD_IN_MB}} MB.": "",
|
|
36
36
|
"Message Reactions": "",
|
|
37
37
|
"Message deleted": "",
|
|
@@ -40,23 +40,23 @@
|
|
|
40
40
|
"Not supported": "Desteklenmiyor",
|
|
41
41
|
"Nothing yet...": "",
|
|
42
42
|
"Ok": "",
|
|
43
|
-
"Only visible to you": "
|
|
43
|
+
"Only visible to you": "",
|
|
44
44
|
"Open Settings": "",
|
|
45
45
|
"Photo": "Fotoğraf",
|
|
46
46
|
"Photos and Videos": "",
|
|
47
47
|
"Pin to Conversation": "",
|
|
48
48
|
"Pinned by": "",
|
|
49
49
|
"Please enable access to your photos and videos so you can share them.": "",
|
|
50
|
-
"Please select a channel first": "
|
|
50
|
+
"Please select a channel first": "",
|
|
51
51
|
"Reconnecting...": "",
|
|
52
52
|
"Reply": "",
|
|
53
53
|
"Reply to Message": "",
|
|
54
54
|
"Resend": "",
|
|
55
|
-
"Search GIFs": "",
|
|
55
|
+
"Search GIFs": "GIF Ara",
|
|
56
56
|
"Select More Photos": "",
|
|
57
|
-
"Send a message": "",
|
|
57
|
+
"Send a message": "Mesaj gönder",
|
|
58
58
|
"Sending links is not allowed in this conversation": "",
|
|
59
|
-
"Slow mode ON": "",
|
|
59
|
+
"Slow mode ON": "Yavaş Mod Açık",
|
|
60
60
|
"The message has been reported to a moderator.": "",
|
|
61
61
|
"Thread Reply": "",
|
|
62
62
|
"Unblock User": "",
|
|
@@ -66,7 +66,7 @@
|
|
|
66
66
|
"Unread Messages": "",
|
|
67
67
|
"Video": "Video",
|
|
68
68
|
"You": "",
|
|
69
|
-
"You can't send messages in this channel": "
|
|
69
|
+
"You can't send messages in this channel": "",
|
|
70
70
|
"{{ firstUser }} and {{ nonSelfUserLength }} more are typing": "{{ firstUser }} ve {{ nonSelfUserLength }} kişi daha yazıyor",
|
|
71
71
|
"{{ index }} of {{ photoLength }}": "",
|
|
72
72
|
"{{ replyCount }} Replies": "",
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":[],"sources":["types.ts"],"sourcesContent":["import type { ExtendableGenerics, LiteralStringForUnion } from 'stream-chat';\n\nexport type Asset = {\n duration: number
|
|
1
|
+
{"version":3,"names":[],"sources":["types.ts"],"sourcesContent":["import type { ExtendableGenerics, LiteralStringForUnion } from 'stream-chat';\n\nexport type Asset = {\n duration: number;\n height: number;\n name: string;\n source: 'camera' | 'picker';\n type: string;\n uri: string;\n width: number;\n id?: string;\n size?: number;\n};\n\nexport type File = {\n name: string;\n duration?: number;\n id?: string;\n mimeType?: string;\n size?: number;\n // The uri should be of type `string`. But is `string|undefined` because the same type is used for the response from Stream's Attachment. This shall be fixed.\n uri?: string;\n};\n\nexport type DefaultAttachmentType = UnknownType & {\n file_size?: number;\n mime_type?: string;\n originalFile?: File;\n};\n\ninterface DefaultUserType extends UnknownType {\n image?: string;\n}\n\ninterface DefaultChannelType extends UnknownType {\n [key: string]: unknown;\n\n image?: string;\n}\n\nexport interface DefaultStreamChatGenerics extends ExtendableGenerics {\n attachmentType: DefaultAttachmentType;\n channelType: DefaultChannelType;\n commandType: LiteralStringForUnion;\n eventType: UnknownType;\n messageType: UnknownType;\n reactionType: UnknownType;\n userType: DefaultUserType;\n}\n\nexport type UnknownType = Record<string, unknown>;\n\nexport type ValueOf<T> = T[keyof T];\n"],"mappings":""}
|
|
@@ -67,13 +67,13 @@ var AttachmentVideo = function AttachmentVideo(props) {
|
|
|
67
67
|
case 5:
|
|
68
68
|
localAssetURI = _context.t0;
|
|
69
69
|
uri = localAssetURI || asset.uri || '';
|
|
70
|
-
mimeType = (0, _mimeTypes.lookup)(asset.
|
|
70
|
+
mimeType = (0, _mimeTypes.lookup)(asset.name) || 'multipart/form-data';
|
|
71
71
|
return _context.abrupt("return", [].concat((0, _toConsumableArray2["default"])(files), [{
|
|
72
|
-
duration:
|
|
72
|
+
duration: asset.duration,
|
|
73
73
|
id: asset.id,
|
|
74
74
|
mimeType: mimeType,
|
|
75
|
-
name: asset.
|
|
76
|
-
size: asset.
|
|
75
|
+
name: asset.name,
|
|
76
|
+
size: asset.size,
|
|
77
77
|
uri: uri
|
|
78
78
|
}]));
|
|
79
79
|
case 9:
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_react","_interopRequireDefault","require","_reactNative","_bottomSheet","_dayjs","_mimeTypes","_ThemeContext","_useViewport3","_icons","_native","_this","_jsxFileName","AttachmentVideo","props","asset","ImageOverlaySelectedComponent","maxNumberOfFiles","numberOfAttachmentPickerImageColumns","numberOfUploads","selected","selectedFiles","setSelectedFiles","_useViewport","useViewport","vw","_useTheme","useTheme","_useTheme$theme","theme","_useTheme$theme$attac","attachmentPicker","durationText","image","imageOverlay","_useTheme$theme$color","colors","overlay","white","videoDuration","duration","uri","ONE_HOUR_IN_SECONDS","durationLabel","isDurationLongerThanHour","formattedDurationParam","formattedVideoDuration","dayjs","format","size","patchVideoFile","_ref","_asyncToGenerator2","_regenerator","mark","_callee","files","localAssetURI","mimeType","wrap","_callee$","_context","prev","next","t0","Platform","OS","id","getLocalAssetUri","sent","lookup","filename","abrupt","concat","_toConsumableArray2","name","fileSize","stop","_x","apply","arguments","updateSelectedFiles","_ref2","_callee2","_callee2$","_context2","Alert","alert","onPressVideo","filter","file","createElement","TouchableOpacity","onPress","__self","__source","fileName","lineNumber","columnNumber","ImageBackground","source","style","height","margin","width","View","styles","backgroundColor","videoView","Recorder","pathFill","Text","color","AttachmentImage","selectedImages","setSelectedImages","_useTheme2","_useTheme2$theme","_useTheme2$theme$atta","_useViewport2","patchImageFile","_ref3","_callee3","images","_callee3$","_context3","_extends2","_x2","updateSelectedImages","_ref4","_callee4","_callee4$","_context4","onPressImage","renderAttachmentPickerItem","_ref5","item","isVideoType","type","includes","exports","StyleSheet","create","fontWeight","alignItems","flex","bottom","display","flexDirection","justifyContent","paddingHorizontal","position"],"sources":["AttachmentPickerItem.tsx"],"sourcesContent":["import React from 'react';\n\nimport { Alert, ImageBackground, Platform, StyleSheet, Text, View } from 'react-native';\n\nimport { TouchableOpacity } from '@gorhom/bottom-sheet';\nimport dayjs from 'dayjs';\nimport { lookup } from 'mime-types';\n\nimport type { AttachmentPickerContextValue } from '../../../contexts/attachmentPickerContext/AttachmentPickerContext';\nimport { useTheme } from '../../../contexts/themeContext/ThemeContext';\nimport { useViewport } from '../../../hooks/useViewport';\nimport { Recorder } from '../../../icons';\nimport { getLocalAssetUri } from '../../../native';\nimport type { Asset, File } from '../../../types/types';\n\ntype AttachmentPickerItemType = Pick<\n AttachmentPickerContextValue,\n 'selectedFiles' | 'setSelectedFiles' | 'setSelectedImages' | 'selectedImages' | 'maxNumberOfFiles'\n> & {\n asset: Asset;\n ImageOverlaySelectedComponent: React.ComponentType;\n numberOfUploads: number;\n selected: boolean;\n numberOfAttachmentPickerImageColumns?: number;\n};\n\ntype AttachmentImageProps = Omit<AttachmentPickerItemType, 'setSelectedFiles' | 'selectedFiles'>;\n\ntype AttachmentVideoProps = Omit<AttachmentPickerItemType, 'setSelectedImages' | 'selectedImages'>;\n\nconst AttachmentVideo: React.FC<AttachmentVideoProps> = (props) => {\n const {\n asset,\n ImageOverlaySelectedComponent,\n maxNumberOfFiles,\n numberOfAttachmentPickerImageColumns,\n numberOfUploads,\n selected,\n selectedFiles,\n setSelectedFiles,\n } = props;\n const { vw } = useViewport();\n\n const {\n theme: {\n attachmentPicker: { durationText, image, imageOverlay },\n colors: { overlay, white },\n },\n } = useTheme();\n\n const { duration: videoDuration, uri } = asset;\n\n const ONE_HOUR_IN_SECONDS = 3600;\n\n let durationLabel = '00:00';\n\n if (videoDuration) {\n const isDurationLongerThanHour = videoDuration / ONE_HOUR_IN_SECONDS >= 1;\n const formattedDurationParam = isDurationLongerThanHour ? 'HH:mm:ss' : 'mm:ss';\n const formattedVideoDuration = dayjs\n .duration(videoDuration, 'second')\n .format(formattedDurationParam);\n durationLabel = formattedVideoDuration;\n }\n\n const size = vw(100) / (numberOfAttachmentPickerImageColumns || 3) - 2;\n\n /* Patches video files with uri and mimetype */\n const patchVideoFile = async (files: File[]) => {\n // For the case of Expo CLI where you need to fetch the file uri from file id. Here it is only done for iOS since for android the file.uri is fine.\n const localAssetURI = Platform.OS === 'ios' && asset.id && (await getLocalAssetUri(asset.id));\n const uri = localAssetURI || asset.uri || '';\n // We need a mime-type to upload a video file.\n const mimeType = lookup(asset.filename) || 'multipart/form-data';\n return [\n ...files,\n {\n duration: durationLabel,\n id: asset.id,\n mimeType,\n name: asset.filename,\n size: asset.fileSize,\n uri,\n },\n ];\n };\n\n const updateSelectedFiles = async () => {\n if (numberOfUploads >= maxNumberOfFiles) {\n Alert.alert('Maximum number of files reached');\n return;\n }\n const files = await patchVideoFile(selectedFiles);\n setSelectedFiles(files);\n };\n\n const onPressVideo = () => {\n if (selected) {\n setSelectedFiles((files) =>\n // `id` is available for Expo MediaLibrary while Cameraroll doesn't share id therefore we use `uri`\n files.filter((file) => (file.id ? file.id !== asset.id : file.uri !== asset.uri)),\n );\n } else {\n updateSelectedFiles();\n }\n };\n\n return (\n <TouchableOpacity onPress={onPressVideo}>\n <ImageBackground\n source={{ uri }}\n style={[\n {\n height: size,\n margin: 1,\n width: size,\n },\n image,\n ]}\n >\n {selected && (\n <View style={[styles.overlay, { backgroundColor: overlay }, imageOverlay]}>\n <ImageOverlaySelectedComponent />\n </View>\n )}\n <View style={styles.videoView}>\n <Recorder height={20} pathFill={white} width={25} />\n {videoDuration ? (\n <Text style={[styles.durationText, durationText, { color: white }]}>\n {durationLabel}\n </Text>\n ) : null}\n </View>\n </ImageBackground>\n </TouchableOpacity>\n );\n};\n\nconst AttachmentImage: React.FC<AttachmentImageProps> = (props) => {\n const {\n asset,\n ImageOverlaySelectedComponent,\n maxNumberOfFiles,\n numberOfAttachmentPickerImageColumns,\n numberOfUploads,\n selected,\n selectedImages,\n setSelectedImages,\n } = props;\n const {\n theme: {\n attachmentPicker: { image, imageOverlay },\n colors: { overlay },\n },\n } = useTheme();\n const { vw } = useViewport();\n\n const size = vw(100) / (numberOfAttachmentPickerImageColumns || 3) - 2;\n\n const { uri } = asset;\n\n /* Patches image files with uri */\n const patchImageFile = async (images: Asset[]) => {\n // For the case of Expo CLI where you need to fetch the file uri from file id. Here it is only done for iOS since for android the file.uri is fine.\n const localAssetURI = Platform.OS === 'ios' && asset.id && (await getLocalAssetUri(asset.id));\n const uri = localAssetURI || asset.uri || '';\n return [\n ...images,\n {\n ...asset,\n uri,\n },\n ];\n };\n\n const updateSelectedImages = async () => {\n if (numberOfUploads >= maxNumberOfFiles) {\n Alert.alert('Maximum number of files reached');\n return;\n }\n const images = await patchImageFile(selectedImages);\n setSelectedImages(images);\n };\n\n const onPressImage = () => {\n if (selected) {\n // `id` is available for Expo MediaLibrary while Cameraroll doesn't share id therefore we use `uri`\n setSelectedImages((images) =>\n images.filter((image) => (image.id ? image.id !== asset.id : image.uri !== asset.uri)),\n );\n } else {\n updateSelectedImages();\n }\n };\n\n return (\n <TouchableOpacity onPress={onPressImage}>\n <ImageBackground\n source={{ uri }}\n style={[\n {\n height: size,\n margin: 1,\n width: size,\n },\n image,\n ]}\n >\n {selected && (\n <View style={[styles.overlay, { backgroundColor: overlay }, imageOverlay]}>\n <ImageOverlaySelectedComponent />\n </View>\n )}\n </ImageBackground>\n </TouchableOpacity>\n );\n};\n\nexport const renderAttachmentPickerItem = ({ item }: { item: AttachmentPickerItemType }) => {\n const {\n asset,\n ImageOverlaySelectedComponent,\n maxNumberOfFiles,\n numberOfAttachmentPickerImageColumns,\n numberOfUploads,\n selected,\n selectedFiles,\n selectedImages,\n setSelectedFiles,\n setSelectedImages,\n } = item;\n\n /**\n * Expo Media Library - Result of asset type\n * Native Android - Gives mime type(Eg: image/jpeg, video/mp4, etc.)\n * Native iOS - Gives `image` or `video`\n * Expo Android/iOS - Gives `photo` or `video`\n **/\n const isVideoType = asset.type.includes('video');\n\n if (isVideoType) {\n return (\n <AttachmentVideo\n asset={asset}\n ImageOverlaySelectedComponent={ImageOverlaySelectedComponent}\n maxNumberOfFiles={maxNumberOfFiles}\n numberOfAttachmentPickerImageColumns={numberOfAttachmentPickerImageColumns}\n numberOfUploads={numberOfUploads}\n selected={selected}\n selectedFiles={selectedFiles}\n setSelectedFiles={setSelectedFiles}\n />\n );\n }\n\n return (\n <AttachmentImage\n asset={asset}\n ImageOverlaySelectedComponent={ImageOverlaySelectedComponent}\n maxNumberOfFiles={maxNumberOfFiles}\n numberOfAttachmentPickerImageColumns={numberOfAttachmentPickerImageColumns}\n numberOfUploads={numberOfUploads}\n selected={selected}\n selectedImages={selectedImages}\n setSelectedImages={setSelectedImages}\n />\n );\n};\n\nconst styles = StyleSheet.create({\n durationText: {\n fontWeight: 'bold',\n },\n overlay: {\n alignItems: 'flex-end',\n flex: 1,\n },\n videoView: {\n bottom: 5,\n display: 'flex',\n flexDirection: 'row',\n justifyContent: 'space-between',\n paddingHorizontal: 5,\n position: 'absolute',\n width: '100%',\n },\n});\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"names":["_react","_interopRequireDefault","require","_reactNative","_bottomSheet","_dayjs","_mimeTypes","_ThemeContext","_useViewport3","_icons","_native","_this","_jsxFileName","AttachmentVideo","props","asset","ImageOverlaySelectedComponent","maxNumberOfFiles","numberOfAttachmentPickerImageColumns","numberOfUploads","selected","selectedFiles","setSelectedFiles","_useViewport","useViewport","vw","_useTheme","useTheme","_useTheme$theme","theme","_useTheme$theme$attac","attachmentPicker","durationText","image","imageOverlay","_useTheme$theme$color","colors","overlay","white","videoDuration","duration","uri","ONE_HOUR_IN_SECONDS","durationLabel","isDurationLongerThanHour","formattedDurationParam","formattedVideoDuration","dayjs","format","size","patchVideoFile","_ref","_asyncToGenerator2","_regenerator","mark","_callee","files","localAssetURI","mimeType","wrap","_callee$","_context","prev","next","t0","Platform","OS","id","getLocalAssetUri","sent","lookup","name","abrupt","concat","_toConsumableArray2","stop","_x","apply","arguments","updateSelectedFiles","_ref2","_callee2","_callee2$","_context2","Alert","alert","onPressVideo","filter","file","createElement","TouchableOpacity","onPress","__self","__source","fileName","lineNumber","columnNumber","ImageBackground","source","style","height","margin","width","View","styles","backgroundColor","videoView","Recorder","pathFill","Text","color","AttachmentImage","selectedImages","setSelectedImages","_useTheme2","_useTheme2$theme","_useTheme2$theme$atta","_useViewport2","patchImageFile","_ref3","_callee3","images","_callee3$","_context3","_extends2","_x2","updateSelectedImages","_ref4","_callee4","_callee4$","_context4","onPressImage","renderAttachmentPickerItem","_ref5","item","isVideoType","type","includes","exports","StyleSheet","create","fontWeight","alignItems","flex","bottom","display","flexDirection","justifyContent","paddingHorizontal","position"],"sources":["AttachmentPickerItem.tsx"],"sourcesContent":["import React from 'react';\n\nimport { Alert, ImageBackground, Platform, StyleSheet, Text, View } from 'react-native';\n\nimport { TouchableOpacity } from '@gorhom/bottom-sheet';\nimport dayjs from 'dayjs';\nimport { lookup } from 'mime-types';\n\nimport type { AttachmentPickerContextValue } from '../../../contexts/attachmentPickerContext/AttachmentPickerContext';\nimport { useTheme } from '../../../contexts/themeContext/ThemeContext';\nimport { useViewport } from '../../../hooks/useViewport';\nimport { Recorder } from '../../../icons';\nimport { getLocalAssetUri } from '../../../native';\nimport type { Asset, File } from '../../../types/types';\n\ntype AttachmentPickerItemType = Pick<\n AttachmentPickerContextValue,\n 'selectedFiles' | 'setSelectedFiles' | 'setSelectedImages' | 'selectedImages' | 'maxNumberOfFiles'\n> & {\n asset: Asset;\n ImageOverlaySelectedComponent: React.ComponentType;\n numberOfUploads: number;\n selected: boolean;\n numberOfAttachmentPickerImageColumns?: number;\n};\n\ntype AttachmentImageProps = Omit<AttachmentPickerItemType, 'setSelectedFiles' | 'selectedFiles'>;\n\ntype AttachmentVideoProps = Omit<AttachmentPickerItemType, 'setSelectedImages' | 'selectedImages'>;\n\nconst AttachmentVideo: React.FC<AttachmentVideoProps> = (props) => {\n const {\n asset,\n ImageOverlaySelectedComponent,\n maxNumberOfFiles,\n numberOfAttachmentPickerImageColumns,\n numberOfUploads,\n selected,\n selectedFiles,\n setSelectedFiles,\n } = props;\n const { vw } = useViewport();\n\n const {\n theme: {\n attachmentPicker: { durationText, image, imageOverlay },\n colors: { overlay, white },\n },\n } = useTheme();\n\n const { duration: videoDuration, uri } = asset;\n\n const ONE_HOUR_IN_SECONDS = 3600;\n\n let durationLabel = '00:00';\n\n if (videoDuration) {\n const isDurationLongerThanHour = videoDuration / ONE_HOUR_IN_SECONDS >= 1;\n const formattedDurationParam = isDurationLongerThanHour ? 'HH:mm:ss' : 'mm:ss';\n const formattedVideoDuration = dayjs\n .duration(videoDuration, 'second')\n .format(formattedDurationParam);\n durationLabel = formattedVideoDuration;\n }\n\n const size = vw(100) / (numberOfAttachmentPickerImageColumns || 3) - 2;\n\n /* Patches video files with uri and mimetype */\n const patchVideoFile = async (files: File[]) => {\n // For the case of Expo CLI where you need to fetch the file uri from file id. Here it is only done for iOS since for android the file.uri is fine.\n const localAssetURI = Platform.OS === 'ios' && asset.id && (await getLocalAssetUri(asset.id));\n const uri = localAssetURI || asset.uri || '';\n // We need a mime-type to upload a video file.\n const mimeType = lookup(asset.name) || 'multipart/form-data';\n return [\n ...files,\n {\n duration: asset.duration,\n id: asset.id,\n mimeType,\n name: asset.name,\n size: asset.size,\n uri,\n },\n ];\n };\n\n const updateSelectedFiles = async () => {\n if (numberOfUploads >= maxNumberOfFiles) {\n Alert.alert('Maximum number of files reached');\n return;\n }\n const files = await patchVideoFile(selectedFiles);\n setSelectedFiles(files);\n };\n\n const onPressVideo = () => {\n if (selected) {\n setSelectedFiles((files) =>\n // `id` is available for Expo MediaLibrary while Cameraroll doesn't share id therefore we use `uri`\n files.filter((file) => (file.id ? file.id !== asset.id : file.uri !== asset.uri)),\n );\n } else {\n updateSelectedFiles();\n }\n };\n\n return (\n <TouchableOpacity onPress={onPressVideo}>\n <ImageBackground\n source={{ uri }}\n style={[\n {\n height: size,\n margin: 1,\n width: size,\n },\n image,\n ]}\n >\n {selected && (\n <View style={[styles.overlay, { backgroundColor: overlay }, imageOverlay]}>\n <ImageOverlaySelectedComponent />\n </View>\n )}\n <View style={styles.videoView}>\n <Recorder height={20} pathFill={white} width={25} />\n {videoDuration ? (\n <Text style={[styles.durationText, durationText, { color: white }]}>\n {durationLabel}\n </Text>\n ) : null}\n </View>\n </ImageBackground>\n </TouchableOpacity>\n );\n};\n\nconst AttachmentImage: React.FC<AttachmentImageProps> = (props) => {\n const {\n asset,\n ImageOverlaySelectedComponent,\n maxNumberOfFiles,\n numberOfAttachmentPickerImageColumns,\n numberOfUploads,\n selected,\n selectedImages,\n setSelectedImages,\n } = props;\n const {\n theme: {\n attachmentPicker: { image, imageOverlay },\n colors: { overlay },\n },\n } = useTheme();\n const { vw } = useViewport();\n\n const size = vw(100) / (numberOfAttachmentPickerImageColumns || 3) - 2;\n\n const { uri } = asset;\n\n /* Patches image files with uri */\n const patchImageFile = async (images: Asset[]) => {\n // For the case of Expo CLI where you need to fetch the file uri from file id. Here it is only done for iOS since for android the file.uri is fine.\n const localAssetURI = Platform.OS === 'ios' && asset.id && (await getLocalAssetUri(asset.id));\n const uri = localAssetURI || asset.uri || '';\n return [\n ...images,\n {\n ...asset,\n uri,\n },\n ];\n };\n\n const updateSelectedImages = async () => {\n if (numberOfUploads >= maxNumberOfFiles) {\n Alert.alert('Maximum number of files reached');\n return;\n }\n const images = await patchImageFile(selectedImages);\n setSelectedImages(images);\n };\n\n const onPressImage = () => {\n if (selected) {\n // `id` is available for Expo MediaLibrary while Cameraroll doesn't share id therefore we use `uri`\n setSelectedImages((images) =>\n images.filter((image) => (image.id ? image.id !== asset.id : image.uri !== asset.uri)),\n );\n } else {\n updateSelectedImages();\n }\n };\n\n return (\n <TouchableOpacity onPress={onPressImage}>\n <ImageBackground\n source={{ uri }}\n style={[\n {\n height: size,\n margin: 1,\n width: size,\n },\n image,\n ]}\n >\n {selected && (\n <View style={[styles.overlay, { backgroundColor: overlay }, imageOverlay]}>\n <ImageOverlaySelectedComponent />\n </View>\n )}\n </ImageBackground>\n </TouchableOpacity>\n );\n};\n\nexport const renderAttachmentPickerItem = ({ item }: { item: AttachmentPickerItemType }) => {\n const {\n asset,\n ImageOverlaySelectedComponent,\n maxNumberOfFiles,\n numberOfAttachmentPickerImageColumns,\n numberOfUploads,\n selected,\n selectedFiles,\n selectedImages,\n setSelectedFiles,\n setSelectedImages,\n } = item;\n\n /**\n * Expo Media Library - Result of asset type\n * Native Android - Gives mime type(Eg: image/jpeg, video/mp4, etc.)\n * Native iOS - Gives `image` or `video`\n * Expo Android/iOS - Gives `photo` or `video`\n **/\n const isVideoType = asset.type.includes('video');\n\n if (isVideoType) {\n return (\n <AttachmentVideo\n asset={asset}\n ImageOverlaySelectedComponent={ImageOverlaySelectedComponent}\n maxNumberOfFiles={maxNumberOfFiles}\n numberOfAttachmentPickerImageColumns={numberOfAttachmentPickerImageColumns}\n numberOfUploads={numberOfUploads}\n selected={selected}\n selectedFiles={selectedFiles}\n setSelectedFiles={setSelectedFiles}\n />\n );\n }\n\n return (\n <AttachmentImage\n asset={asset}\n ImageOverlaySelectedComponent={ImageOverlaySelectedComponent}\n maxNumberOfFiles={maxNumberOfFiles}\n numberOfAttachmentPickerImageColumns={numberOfAttachmentPickerImageColumns}\n numberOfUploads={numberOfUploads}\n selected={selected}\n selectedImages={selectedImages}\n setSelectedImages={setSelectedImages}\n />\n );\n};\n\nconst styles = StyleSheet.create({\n durationText: {\n fontWeight: 'bold',\n },\n overlay: {\n alignItems: 'flex-end',\n flex: 1,\n },\n videoView: {\n bottom: 5,\n display: 'flex',\n flexDirection: 'row',\n justifyContent: 'space-between',\n paddingHorizontal: 5,\n position: 'absolute',\n width: '100%',\n },\n});\n"],"mappings":"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"}
|
|
@@ -8,8 +8,10 @@ var _parseLinks = require("./parseLinks");
|
|
|
8
8
|
function _createForOfIteratorHelperLoose(o, allowArrayLike) { var it = typeof Symbol !== "undefined" && o[Symbol.iterator] || o["@@iterator"]; if (it) return (it = it.call(o)).next.bind(it); if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === "number") { if (it) o = it; var i = 0; return function () { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
|
|
9
9
|
function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
|
|
10
10
|
function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }
|
|
11
|
-
|
|
12
|
-
|
|
11
|
+
function escapeRegExp(text) {
|
|
12
|
+
return text.replace(/[-[\]{}()*+?.,\\^$|#\s]/g, '\\$&');
|
|
13
|
+
}
|
|
14
|
+
var generateMarkdownText = function generateMarkdownText(text) {
|
|
13
15
|
if (!text) return null;
|
|
14
16
|
var resultText = text.trim();
|
|
15
17
|
var linkInfos = (0, _parseLinks.parseLinksFromText)(resultText);
|
|
@@ -19,13 +21,13 @@ var generateMarkdownText = function generateMarkdownText(message) {
|
|
|
19
21
|
length: 200,
|
|
20
22
|
omission: '...'
|
|
21
23
|
});
|
|
22
|
-
var normalRegEx = new RegExp(linkInfo.raw, 'g');
|
|
24
|
+
var normalRegEx = new RegExp(escapeRegExp(linkInfo.raw), 'g');
|
|
23
25
|
var markdown = "[" + displayLink + "](" + linkInfo.encodedUrl + ")";
|
|
24
26
|
resultText = text.replace(normalRegEx, markdown);
|
|
25
|
-
var mentionsRegex = new RegExp("@\\[" + displayLink + "\\]\\(" + linkInfo.encodedUrl + "\\)", 'g');
|
|
27
|
+
var mentionsRegex = new RegExp("@\\[" + escapeRegExp(displayLink) + "\\]\\(" + escapeRegExp(linkInfo.encodedUrl) + "\\)", 'g');
|
|
26
28
|
resultText = resultText.replace(mentionsRegex, "@" + displayLink);
|
|
27
29
|
}
|
|
28
|
-
resultText = resultText.replace(/[
|
|
30
|
+
resultText = resultText.replace(/[<"'>]/g, '\\$&');
|
|
29
31
|
return resultText;
|
|
30
32
|
};
|
|
31
33
|
exports.generateMarkdownText = generateMarkdownText;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_truncate","_interopRequireDefault","require","_parseLinks","_createForOfIteratorHelperLoose","o","allowArrayLike","it","Symbol","iterator","call","next","bind","Array","isArray","_unsupportedIterableToArray","length","i","done","value","TypeError","minLen","_arrayLikeToArray","n","Object","prototype","toString","slice","constructor","name","from","test","arr","len","arr2","
|
|
1
|
+
{"version":3,"names":["_truncate","_interopRequireDefault","require","_parseLinks","_createForOfIteratorHelperLoose","o","allowArrayLike","it","Symbol","iterator","call","next","bind","Array","isArray","_unsupportedIterableToArray","length","i","done","value","TypeError","minLen","_arrayLikeToArray","n","Object","prototype","toString","slice","constructor","name","from","test","arr","len","arr2","escapeRegExp","text","replace","generateMarkdownText","resultText","trim","linkInfos","parseLinksFromText","_iterator","_step","linkInfo","displayLink","truncate","raw","omission","normalRegEx","RegExp","markdown","encodedUrl","mentionsRegex","exports"],"sources":["generateMarkdownText.ts"],"sourcesContent":["import truncate from 'lodash/truncate';\n\nimport { parseLinksFromText } from './parseLinks';\n\n// If you need to use any of the special characters literally (actually searching for a \"*\", for instance), you must escape it by putting a backslash in front of it.\nfunction escapeRegExp(text: string) {\n return text.replace(/[-[\\]{}()*+?.,\\\\^$|#\\s]/g, '\\\\$&');\n}\n\nexport const generateMarkdownText = (text?: string) => {\n if (!text) return null;\n\n // Trim the extra spaces from the text.\n let resultText = text.trim();\n\n // List of all the links present in the text.\n const linkInfos = parseLinksFromText(resultText);\n\n for (const linkInfo of linkInfos) {\n const displayLink = truncate(linkInfo.raw, {\n length: 200,\n omission: '...',\n });\n // Convert raw links/emails in the text to respective markdown syntax.\n // Eg: Hi @getstream.io -> Hi @[getstream.io](getstream.io).\n const normalRegEx = new RegExp(escapeRegExp(linkInfo.raw), 'g');\n const markdown = `[${displayLink}](${linkInfo.encodedUrl})`;\n resultText = text.replace(normalRegEx, markdown);\n\n // After previous step, in some cases, the mentioned user after `@` might have a link/email so we convert it back to normal raw text.\n // Eg: Hi, @[test.user@gmail.com](mailto:test.user@gmail.com) to @test.user@gmail.com.\n const mentionsRegex = new RegExp(\n `@\\\\[${escapeRegExp(displayLink)}\\\\]\\\\(${escapeRegExp(linkInfo.encodedUrl)}\\\\)`,\n 'g',\n );\n resultText = resultText.replace(mentionsRegex, `@${displayLink}`);\n }\n\n resultText = resultText.replace(/[<\"'>]/g, '\\\\$&');\n\n return resultText;\n};\n"],"mappings":";;;;;AAAA,IAAAA,SAAA,GAAAC,sBAAA,CAAAC,OAAA;AAEA,IAAAC,WAAA,GAAAD,OAAA;AAAkD,SAAAE,gCAAAC,CAAA,EAAAC,cAAA,QAAAC,EAAA,UAAAC,MAAA,oBAAAH,CAAA,CAAAG,MAAA,CAAAC,QAAA,KAAAJ,CAAA,oBAAAE,EAAA,UAAAA,EAAA,GAAAA,EAAA,CAAAG,IAAA,CAAAL,CAAA,GAAAM,IAAA,CAAAC,IAAA,CAAAL,EAAA,OAAAM,KAAA,CAAAC,OAAA,CAAAT,CAAA,MAAAE,EAAA,GAAAQ,2BAAA,CAAAV,CAAA,MAAAC,cAAA,IAAAD,CAAA,WAAAA,CAAA,CAAAW,MAAA,qBAAAT,EAAA,EAAAF,CAAA,GAAAE,EAAA,MAAAU,CAAA,+BAAAA,CAAA,IAAAZ,CAAA,CAAAW,MAAA,WAAAE,IAAA,mBAAAA,IAAA,SAAAC,KAAA,EAAAd,CAAA,CAAAY,CAAA,sBAAAG,SAAA;AAAA,SAAAL,4BAAAV,CAAA,EAAAgB,MAAA,SAAAhB,CAAA,qBAAAA,CAAA,sBAAAiB,iBAAA,CAAAjB,CAAA,EAAAgB,MAAA,OAAAE,CAAA,GAAAC,MAAA,CAAAC,SAAA,CAAAC,QAAA,CAAAhB,IAAA,CAAAL,CAAA,EAAAsB,KAAA,aAAAJ,CAAA,iBAAAlB,CAAA,CAAAuB,WAAA,EAAAL,CAAA,GAAAlB,CAAA,CAAAuB,WAAA,CAAAC,IAAA,MAAAN,CAAA,cAAAA,CAAA,mBAAAV,KAAA,CAAAiB,IAAA,CAAAzB,CAAA,OAAAkB,CAAA,+DAAAQ,IAAA,CAAAR,CAAA,UAAAD,iBAAA,CAAAjB,CAAA,EAAAgB,MAAA;AAAA,SAAAC,kBAAAU,GAAA,EAAAC,GAAA,QAAAA,GAAA,YAAAA,GAAA,GAAAD,GAAA,CAAAhB,MAAA,EAAAiB,GAAA,GAAAD,GAAA,CAAAhB,MAAA,WAAAC,CAAA,MAAAiB,IAAA,OAAArB,KAAA,CAAAoB,GAAA,GAAAhB,CAAA,GAAAgB,GAAA,EAAAhB,CAAA,IAAAiB,IAAA,CAAAjB,CAAA,IAAAe,GAAA,CAAAf,CAAA,UAAAiB,IAAA;AAGlD,SAASC,YAAYA,CAACC,IAAY,EAAE;EAClC,OAAOA,IAAI,CAACC,OAAO,CAAC,0BAA0B,EAAE,MAAM,CAAC;AACzD;AAEO,IAAMC,oBAAoB,GAAG,SAAvBA,oBAAoBA,CAAIF,IAAa,EAAK;EACrD,IAAI,CAACA,IAAI,EAAE,OAAO,IAAI;EAGtB,IAAIG,UAAU,GAAGH,IAAI,CAACI,IAAI,CAAC,CAAC;EAG5B,IAAMC,SAAS,GAAG,IAAAC,8BAAkB,EAACH,UAAU,CAAC;EAEhD,SAAAI,SAAA,GAAAvC,+BAAA,CAAuBqC,SAAS,GAAAG,KAAA,IAAAA,KAAA,GAAAD,SAAA,IAAAzB,IAAA,GAAE;IAAA,IAAvB2B,QAAQ,GAAAD,KAAA,CAAAzB,KAAA;IACjB,IAAM2B,WAAW,GAAG,IAAAC,oBAAQ,EAACF,QAAQ,CAACG,GAAG,EAAE;MACzChC,MAAM,EAAE,GAAG;MACXiC,QAAQ,EAAE;IACZ,CAAC,CAAC;IAGF,IAAMC,WAAW,GAAG,IAAIC,MAAM,CAAChB,YAAY,CAACU,QAAQ,CAACG,GAAG,CAAC,EAAE,GAAG,CAAC;IAC/D,IAAMI,QAAQ,SAAON,WAAW,UAAKD,QAAQ,CAACQ,UAAU,MAAG;IAC3Dd,UAAU,GAAGH,IAAI,CAACC,OAAO,CAACa,WAAW,EAAEE,QAAQ,CAAC;IAIhD,IAAME,aAAa,GAAG,IAAIH,MAAM,UACvBhB,YAAY,CAACW,WAAW,CAAC,cAASX,YAAY,CAACU,QAAQ,CAACQ,UAAU,CAAC,UAC1E,GACF,CAAC;IACDd,UAAU,GAAGA,UAAU,CAACF,OAAO,CAACiB,aAAa,QAAMR,WAAa,CAAC;EACnE;EAEAP,UAAU,GAAGA,UAAU,CAACF,OAAO,CAAC,SAAS,EAAE,MAAM,CAAC;EAElD,OAAOE,UAAU;AACnB,CAAC;AAACgB,OAAA,CAAAjB,oBAAA,GAAAA,oBAAA"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
var _generateMarkdownText = require("./generateMarkdownText");
|
|
2
|
+
describe('generateMarkdownText', function () {
|
|
3
|
+
it.each([['', null], [' test message ', 'test message'], ['https://www.getstream.io', '[https://www.getstream.io](https://www.getstream.io)'], ['https://getstream-production.s3-accelerate.amazonaws.com/N336903591601695/33e78ef89e64642862a75c5cca2541eaf6b1c924/trimmedVideos/alert/2_270_881/outputVideo.mp4?AWSAccessKeyId=AKIAVJAW2AD2SQVQCBXV&Expires=1699998768&Signature=zdEMCGzf4Pq++16YkPprvN5NAds=', '[https://getstream-production.s3-accelerate.amazonaws.com/N336903591601695/33e78ef89e64642862a75c5cca2541eaf6b1c924/trimmedVideos/alert/2_270_881/outputVideo.mp4?AWSAccessKeyId=AKIAVJAW2AD2SQVQCBXV&...](https://getstream-production.s3-accelerate.amazonaws.com/N336903591601695/33e78ef89e64642862a75c5cca2541eaf6b1c924/trimmedVideos/alert/2_270_881/outputVideo.mp4?AWSAccessKeyId=AKIAVJAW2AD2SQVQCBXV&Expires=1699998768&Signature=zdEMCGzf4Pq++16YkPprvN5NAds=)'], ['Hi @getstream.io', 'Hi @getstream.io'], ['Hi test@gmail.com @test@gmail.com', 'Hi [test@gmail.com](mailto:test@gmail.com) @test@gmail.com'], ['Hi @getstream.io getstream.io', 'Hi @getstream.io [getstream.io](http://getstream.io)'], ['Hi <Stream>', 'Hi \\<Stream\\>']])('Returns the generated markdown text for %p and %p', function (text, expected) {
|
|
4
|
+
var result = (0, _generateMarkdownText.generateMarkdownText)(text);
|
|
5
|
+
expect(result).toBe(expected);
|
|
6
|
+
});
|
|
7
|
+
});
|
|
8
|
+
//# sourceMappingURL=generateMarkdownText.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["_generateMarkdownText","require","describe","it","each","text","expected","result","generateMarkdownText","expect","toBe"],"sources":["generateMarkdownText.test.ts"],"sourcesContent":["import { generateMarkdownText } from './generateMarkdownText';\n\ndescribe('generateMarkdownText', () => {\n it.each([\n ['', null],\n [' test message ', 'test message'],\n ['https://www.getstream.io', '[https://www.getstream.io](https://www.getstream.io)'],\n [\n 'https://getstream-production.s3-accelerate.amazonaws.com/N336903591601695/33e78ef89e64642862a75c5cca2541eaf6b1c924/trimmedVideos/alert/2_270_881/outputVideo.mp4?AWSAccessKeyId=AKIAVJAW2AD2SQVQCBXV&Expires=1699998768&Signature=zdEMCGzf4Pq++16YkPprvN5NAds=',\n '[https://getstream-production.s3-accelerate.amazonaws.com/N336903591601695/33e78ef89e64642862a75c5cca2541eaf6b1c924/trimmedVideos/alert/2_270_881/outputVideo.mp4?AWSAccessKeyId=AKIAVJAW2AD2SQVQCBXV&...](https://getstream-production.s3-accelerate.amazonaws.com/N336903591601695/33e78ef89e64642862a75c5cca2541eaf6b1c924/trimmedVideos/alert/2_270_881/outputVideo.mp4?AWSAccessKeyId=AKIAVJAW2AD2SQVQCBXV&Expires=1699998768&Signature=zdEMCGzf4Pq++16YkPprvN5NAds=)',\n ],\n ['Hi @getstream.io', 'Hi @getstream.io'],\n [\n 'Hi test@gmail.com @test@gmail.com',\n 'Hi [test@gmail.com](mailto:test@gmail.com) @test@gmail.com',\n ],\n ['Hi @getstream.io getstream.io', 'Hi @getstream.io [getstream.io](http://getstream.io)'],\n ['Hi <Stream>', 'Hi \\\\<Stream\\\\>'],\n ])('Returns the generated markdown text for %p and %p', (text, expected) => {\n const result = generateMarkdownText(text);\n expect(result).toBe(expected);\n });\n});\n"],"mappings":"AAAA,IAAAA,qBAAA,GAAAC,OAAA;AAEAC,QAAQ,CAAC,sBAAsB,EAAE,YAAM;EACrCC,EAAE,CAACC,IAAI,CAAC,CACN,CAAC,EAAE,EAAE,IAAI,CAAC,EACV,CAAC,kBAAkB,EAAE,cAAc,CAAC,EACpC,CAAC,0BAA0B,EAAE,sDAAsD,CAAC,EACpF,CACE,gQAAgQ,EAChQ,4cAA4c,CAC7c,EACD,CAAC,kBAAkB,EAAE,kBAAkB,CAAC,EACxC,CACE,mCAAmC,EACnC,4DAA4D,CAC7D,EACD,CAAC,+BAA+B,EAAE,sDAAsD,CAAC,EACzF,CAAC,aAAa,EAAE,iBAAiB,CAAC,CACnC,CAAC,CAAC,mDAAmD,EAAE,UAACC,IAAI,EAAEC,QAAQ,EAAK;IAC1E,IAAMC,MAAM,GAAG,IAAAC,0CAAoB,EAACH,IAAI,CAAC;IACzCI,MAAM,CAACF,MAAM,CAAC,CAACG,IAAI,CAACJ,QAAQ,CAAC;EAC/B,CAAC,CAAC;AACJ,CAAC,CAAC"}
|