stream-chat-react-native-core 5.23.1 → 5.23.2-beta.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/lib/commonjs/components/AutoCompleteInput/AutoCompleteSuggestionList.js +94 -93
- package/lib/commonjs/components/AutoCompleteInput/AutoCompleteSuggestionList.js.map +1 -1
- package/lib/commonjs/components/MessageInput/MessageInput.js +28 -37
- package/lib/commonjs/components/MessageInput/MessageInput.js.map +1 -1
- package/lib/commonjs/i18n/en.json +1 -1
- package/lib/commonjs/i18n/fr.json +63 -63
- package/lib/commonjs/i18n/hi.json +63 -63
- package/lib/commonjs/i18n/it.json +63 -63
- package/lib/commonjs/i18n/nl.json +63 -63
- package/lib/commonjs/i18n/ru.json +63 -63
- package/lib/commonjs/i18n/tr.json +63 -63
- 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/MessageInput/MessageInput.js +28 -37
- package/lib/module/components/MessageInput/MessageInput.js.map +1 -1
- package/lib/module/i18n/en.json +1 -1
- package/lib/module/i18n/fr.json +63 -63
- package/lib/module/i18n/hi.json +63 -63
- package/lib/module/i18n/it.json +63 -63
- package/lib/module/i18n/nl.json +63 -63
- package/lib/module/i18n/ru.json +63 -63
- package/lib/module/i18n/tr.json +63 -63
- package/lib/module/version.json +1 -1
- package/lib/typescript/i18n/en.json +1 -1
- package/lib/typescript/i18n/fr.json +63 -63
- package/lib/typescript/i18n/hi.json +63 -63
- package/lib/typescript/i18n/it.json +63 -63
- package/lib/typescript/i18n/nl.json +63 -63
- package/lib/typescript/i18n/ru.json +63 -63
- package/lib/typescript/i18n/tr.json +63 -63
- package/package.json +1 -1
- package/src/components/AutoCompleteInput/AutoCompleteSuggestionList.tsx +83 -74
- package/src/components/MessageInput/MessageInput.tsx +2 -11
- package/src/i18n/en.json +1 -1
- package/src/i18n/fr.json +63 -63
- package/src/i18n/hi.json +63 -63
- package/src/i18n/it.json +63 -63
- package/src/i18n/nl.json +63 -63
- package/src/i18n/ru.json +63 -63
- package/src/i18n/tr.json +63 -63
- package/src/version.json +1 -1
|
@@ -1,20 +1,29 @@
|
|
|
1
|
-
import React from 'react';
|
|
2
|
-
import {
|
|
1
|
+
import React, { useMemo, useState } from 'react';
|
|
2
|
+
import {
|
|
3
|
+
LayoutChangeEvent,
|
|
4
|
+
Pressable,
|
|
5
|
+
PressableProps,
|
|
6
|
+
PressableStateCallbackType,
|
|
7
|
+
StyleSheet,
|
|
8
|
+
View,
|
|
9
|
+
ViewStyle,
|
|
10
|
+
} from 'react-native';
|
|
3
11
|
|
|
4
12
|
import type { AutoCompleteSuggestionHeaderProps } from './AutoCompleteSuggestionHeader';
|
|
5
13
|
import type { AutoCompleteSuggestionItemProps } from './AutoCompleteSuggestionItem';
|
|
6
14
|
|
|
7
15
|
import {
|
|
8
|
-
isSuggestionCommand,
|
|
9
|
-
isSuggestionEmoji,
|
|
10
16
|
isSuggestionUser,
|
|
11
17
|
Suggestion,
|
|
12
18
|
SuggestionsContextValue,
|
|
13
19
|
useSuggestionsContext,
|
|
14
20
|
} from '../../contexts/suggestionsContext/SuggestionsContext';
|
|
15
21
|
import { useTheme } from '../../contexts/themeContext/ThemeContext';
|
|
22
|
+
import { FlatList } from '../../native';
|
|
16
23
|
import type { DefaultStreamChatGenerics } from '../../types/types';
|
|
17
24
|
|
|
25
|
+
const AUTO_COMPLETE_SUGGESTION_LIST_HEADER_HEIGHT = 30;
|
|
26
|
+
|
|
18
27
|
type AutoCompleteSuggestionListComponentProps<
|
|
19
28
|
StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,
|
|
20
29
|
> = Pick<SuggestionsContextValue, 'queryText' | 'triggerType'> & {
|
|
@@ -31,9 +40,19 @@ export type AutoCompleteSuggestionListPropsWithContext<
|
|
|
31
40
|
> &
|
|
32
41
|
AutoCompleteSuggestionListComponentProps<StreamChatGenerics>;
|
|
33
42
|
|
|
34
|
-
const SuggestionsItem: React.FC<
|
|
35
|
-
const { children, ...
|
|
36
|
-
|
|
43
|
+
const SuggestionsItem: React.FC<PressableProps> = (props) => {
|
|
44
|
+
const { children, style: propsStyle, ...pressableProps } = props;
|
|
45
|
+
|
|
46
|
+
const style = ({ pressed }: PressableStateCallbackType) => [
|
|
47
|
+
propsStyle as ViewStyle,
|
|
48
|
+
{ opacity: pressed ? 0.2 : 1 },
|
|
49
|
+
];
|
|
50
|
+
|
|
51
|
+
return (
|
|
52
|
+
<Pressable {...pressableProps} style={style}>
|
|
53
|
+
{children}
|
|
54
|
+
</Pressable>
|
|
55
|
+
);
|
|
37
56
|
};
|
|
38
57
|
|
|
39
58
|
SuggestionsItem.displayName = 'SuggestionsHeader{messageInput{suggestions}}';
|
|
@@ -43,6 +62,7 @@ export const AutoCompleteSuggestionListWithContext = <
|
|
|
43
62
|
>(
|
|
44
63
|
props: AutoCompleteSuggestionListPropsWithContext<StreamChatGenerics>,
|
|
45
64
|
) => {
|
|
65
|
+
const [itemHeight, setItemHeight] = useState<number>(0);
|
|
46
66
|
const {
|
|
47
67
|
active,
|
|
48
68
|
AutoCompleteSuggestionHeader,
|
|
@@ -55,6 +75,7 @@ export const AutoCompleteSuggestionListWithContext = <
|
|
|
55
75
|
|
|
56
76
|
const {
|
|
57
77
|
theme: {
|
|
78
|
+
colors: { white },
|
|
58
79
|
messageInput: {
|
|
59
80
|
container: { maxHeight },
|
|
60
81
|
suggestions: { item: itemStyle },
|
|
@@ -63,62 +84,37 @@ export const AutoCompleteSuggestionListWithContext = <
|
|
|
63
84
|
},
|
|
64
85
|
} = useTheme();
|
|
65
86
|
|
|
66
|
-
const
|
|
87
|
+
const flatlistHeight = useMemo(() => {
|
|
88
|
+
let totalItemHeight;
|
|
89
|
+
if (triggerType === 'emoji') {
|
|
90
|
+
totalItemHeight = data.length < 7 ? data.length * itemHeight : itemHeight * 6;
|
|
91
|
+
} else {
|
|
92
|
+
totalItemHeight = data.length < 4 ? data.length * itemHeight : itemHeight * 3;
|
|
93
|
+
}
|
|
94
|
+
|
|
95
|
+
return triggerType === 'emoji' || triggerType === 'command'
|
|
96
|
+
? totalItemHeight + AUTO_COMPLETE_SUGGESTION_LIST_HEADER_HEIGHT
|
|
97
|
+
: totalItemHeight;
|
|
98
|
+
}, [itemHeight, data.length]);
|
|
99
|
+
|
|
100
|
+
const renderItem = ({ item }: { item: Suggestion<StreamChatGenerics> }) => {
|
|
67
101
|
switch (triggerType) {
|
|
68
|
-
case 'mention':
|
|
69
|
-
if (isSuggestionUser(item)) {
|
|
70
|
-
return (
|
|
71
|
-
<SuggestionsItem
|
|
72
|
-
onPress={() => {
|
|
73
|
-
onSelect(item);
|
|
74
|
-
}}
|
|
75
|
-
style={[
|
|
76
|
-
{
|
|
77
|
-
paddingBottom: index === data.length - 1 ? 8 : 0,
|
|
78
|
-
paddingTop: index === 0 ? 8 : 0,
|
|
79
|
-
},
|
|
80
|
-
itemStyle,
|
|
81
|
-
]}
|
|
82
|
-
>
|
|
83
|
-
{AutoCompleteSuggestionItem && (
|
|
84
|
-
<AutoCompleteSuggestionItem itemProps={item} triggerType={triggerType} />
|
|
85
|
-
)}
|
|
86
|
-
</SuggestionsItem>
|
|
87
|
-
);
|
|
88
|
-
}
|
|
89
|
-
return null;
|
|
90
102
|
case 'command':
|
|
91
|
-
|
|
92
|
-
return (
|
|
93
|
-
<SuggestionsItem
|
|
94
|
-
onPress={() => {
|
|
95
|
-
onSelect(item);
|
|
96
|
-
}}
|
|
97
|
-
style={[itemStyle]}
|
|
98
|
-
>
|
|
99
|
-
{AutoCompleteSuggestionItem && (
|
|
100
|
-
<AutoCompleteSuggestionItem itemProps={item} triggerType={triggerType} />
|
|
101
|
-
)}
|
|
102
|
-
</SuggestionsItem>
|
|
103
|
-
);
|
|
104
|
-
}
|
|
105
|
-
return null;
|
|
103
|
+
case 'mention':
|
|
106
104
|
case 'emoji':
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
}
|
|
121
|
-
return null;
|
|
105
|
+
return (
|
|
106
|
+
<SuggestionsItem
|
|
107
|
+
onLayout={(event: LayoutChangeEvent) => setItemHeight(event.nativeEvent.layout.height)}
|
|
108
|
+
onPress={() => {
|
|
109
|
+
onSelect(item);
|
|
110
|
+
}}
|
|
111
|
+
style={itemStyle}
|
|
112
|
+
>
|
|
113
|
+
{AutoCompleteSuggestionItem && (
|
|
114
|
+
<AutoCompleteSuggestionItem itemProps={item} triggerType={triggerType} />
|
|
115
|
+
)}
|
|
116
|
+
</SuggestionsItem>
|
|
117
|
+
);
|
|
122
118
|
default:
|
|
123
119
|
return null;
|
|
124
120
|
}
|
|
@@ -127,20 +123,22 @@ export const AutoCompleteSuggestionListWithContext = <
|
|
|
127
123
|
if (!active || data.length === 0) return null;
|
|
128
124
|
|
|
129
125
|
return (
|
|
130
|
-
<
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
126
|
+
<View style={[styles.container, { backgroundColor: white, height: flatlistHeight }]}>
|
|
127
|
+
<FlatList
|
|
128
|
+
data={data}
|
|
129
|
+
keyboardShouldPersistTaps='always'
|
|
130
|
+
keyExtractor={(item, index) =>
|
|
131
|
+
`${item.name || (isSuggestionUser(item) ? item.id : '')}${index}`
|
|
132
|
+
}
|
|
133
|
+
ListHeaderComponent={
|
|
134
|
+
AutoCompleteSuggestionHeader ? (
|
|
135
|
+
<AutoCompleteSuggestionHeader queryText={queryText} triggerType={triggerType} />
|
|
136
|
+
) : null
|
|
137
|
+
}
|
|
138
|
+
renderItem={renderItem}
|
|
139
|
+
style={[flatlist, { maxHeight }]}
|
|
140
|
+
/>
|
|
141
|
+
</View>
|
|
144
142
|
);
|
|
145
143
|
};
|
|
146
144
|
|
|
@@ -206,5 +204,16 @@ export const AutoCompleteSuggestionList = <
|
|
|
206
204
|
);
|
|
207
205
|
};
|
|
208
206
|
|
|
207
|
+
const styles = StyleSheet.create({
|
|
208
|
+
container: {
|
|
209
|
+
borderRadius: 8,
|
|
210
|
+
elevation: 3,
|
|
211
|
+
marginHorizontal: 8,
|
|
212
|
+
marginVertical: 8,
|
|
213
|
+
shadowOffset: { height: 1, width: 0 },
|
|
214
|
+
shadowOpacity: 0.15,
|
|
215
|
+
},
|
|
216
|
+
});
|
|
217
|
+
|
|
209
218
|
AutoCompleteSuggestionList.displayName =
|
|
210
219
|
'AutoCompleteSuggestionList{messageInput{suggestions{List}}}';
|
|
@@ -73,13 +73,8 @@ const styles = StyleSheet.create({
|
|
|
73
73
|
replyContainer: { paddingBottom: 12, paddingHorizontal: 8 },
|
|
74
74
|
sendButtonContainer: { paddingBottom: 10, paddingLeft: 10 },
|
|
75
75
|
suggestionsListContainer: {
|
|
76
|
-
borderRadius: 10,
|
|
77
|
-
elevation: 3,
|
|
78
|
-
left: 8,
|
|
79
76
|
position: 'absolute',
|
|
80
|
-
|
|
81
|
-
shadowOffset: { height: 1, width: 0 },
|
|
82
|
-
shadowOpacity: 0.15,
|
|
77
|
+
width: '100%',
|
|
83
78
|
},
|
|
84
79
|
});
|
|
85
80
|
|
|
@@ -624,11 +619,7 @@ const MessageInputWithContext = <
|
|
|
624
619
|
|
|
625
620
|
{triggerType && suggestions ? (
|
|
626
621
|
<View
|
|
627
|
-
style={[
|
|
628
|
-
suggestionListContainer,
|
|
629
|
-
styles.suggestionsListContainer,
|
|
630
|
-
{ backgroundColor: white, bottom: height },
|
|
631
|
-
]}
|
|
622
|
+
style={[styles.suggestionsListContainer, suggestionListContainer, { bottom: height }]}
|
|
632
623
|
>
|
|
633
624
|
<AutoCompleteSuggestionList
|
|
634
625
|
active={!!suggestions}
|
package/src/i18n/en.json
CHANGED
|
@@ -24,7 +24,7 @@
|
|
|
24
24
|
"File type not supported": "File type not supported",
|
|
25
25
|
"Flag": "Flag",
|
|
26
26
|
"Flag Message": "Flag Message",
|
|
27
|
-
"Flag action failed either due to a network issue or the message is already flagged": "Flag action failed either due to a network issue or the message is already flagged
|
|
27
|
+
"Flag action failed either due to a network issue or the message is already flagged": "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?": "How about sending your first message to a friend?",
|
|
29
29
|
"Instant Commands": "Instant Commands",
|
|
30
30
|
"Let's start chatting!": "Let's start chatting!",
|
package/src/i18n/fr.json
CHANGED
|
@@ -1,76 +1,76 @@
|
|
|
1
1
|
{
|
|
2
|
-
"1 Reply": "
|
|
2
|
+
"1 Reply": "",
|
|
3
3
|
"1 Thread Reply": "Réponse à 1 fil",
|
|
4
|
-
"Allow access to your Gallery": "
|
|
5
|
-
"Allow camera access in device settings": "
|
|
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": "
|
|
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": "
|
|
4
|
+
"Allow access to your Gallery": "",
|
|
5
|
+
"Allow camera access in device settings": "",
|
|
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": "",
|
|
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": "",
|
|
18
18
|
"Emoji matching": "Correspondance Emoji",
|
|
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": "
|
|
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
24
|
"File type not supported": "Le type de fichier n'est pas pris en charge",
|
|
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?": "
|
|
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": "Commandes Instantanées",
|
|
30
|
-
"Let's start chatting!": "
|
|
30
|
+
"Let's start chatting!": "",
|
|
31
31
|
"Links are disabled": "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.": "Taille maximale de téléchargement de fichier atteinte. Veuillez télécharger un fichier inférieur à {{MAX_FILE_SIZE_TO_UPLOAD_IN_MB}} Mo.",
|
|
36
|
-
"Message Reactions": "
|
|
37
|
-
"Message deleted": "
|
|
38
|
-
"Message flagged": "
|
|
39
|
-
"Mute User": "
|
|
40
|
-
"Not supported": "
|
|
41
|
-
"Nothing yet...": "
|
|
42
|
-
"Ok": "
|
|
43
|
-
"Only visible to you": "
|
|
44
|
-
"Open Settings": "
|
|
45
|
-
"Photo": "
|
|
46
|
-
"Photos and Videos": "
|
|
47
|
-
"Pin to Conversation": "
|
|
36
|
+
"Message Reactions": "",
|
|
37
|
+
"Message deleted": "",
|
|
38
|
+
"Message flagged": "",
|
|
39
|
+
"Mute User": "",
|
|
40
|
+
"Not supported": "",
|
|
41
|
+
"Nothing yet...": "",
|
|
42
|
+
"Ok": "",
|
|
43
|
+
"Only visible to you": "",
|
|
44
|
+
"Open Settings": "",
|
|
45
|
+
"Photo": "",
|
|
46
|
+
"Photos and Videos": "",
|
|
47
|
+
"Pin to Conversation": "",
|
|
48
48
|
"Pinned by": "Épinglé par",
|
|
49
|
-
"Please enable access to your photos and videos so you can share them.": "
|
|
49
|
+
"Please enable access to your photos and videos so you can share them.": "",
|
|
50
50
|
"Please select a channel first": "Veuillez d'abord selectionnez un canal",
|
|
51
|
-
"Reconnecting...": "
|
|
52
|
-
"Reply": "
|
|
53
|
-
"Reply to Message": "
|
|
54
|
-
"Resend": "
|
|
55
|
-
"Search GIFs": "
|
|
56
|
-
"Select More Photos": "
|
|
57
|
-
"Send a message": "
|
|
51
|
+
"Reconnecting...": "",
|
|
52
|
+
"Reply": "",
|
|
53
|
+
"Reply to Message": "",
|
|
54
|
+
"Resend": "",
|
|
55
|
+
"Search GIFs": "",
|
|
56
|
+
"Select More Photos": "",
|
|
57
|
+
"Send a message": "",
|
|
58
58
|
"Sending links is not allowed in this conversation": "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": "
|
|
63
|
-
"Unknown User": "
|
|
64
|
-
"Unmute User": "
|
|
65
|
-
"Unpin from Conversation": "
|
|
66
|
-
"Unread Messages": "
|
|
67
|
-
"Video": "
|
|
68
|
-
"You": "
|
|
59
|
+
"Slow mode ON": "",
|
|
60
|
+
"The message has been reported to a moderator.": "",
|
|
61
|
+
"Thread Reply": "",
|
|
62
|
+
"Unblock User": "",
|
|
63
|
+
"Unknown User": "",
|
|
64
|
+
"Unmute User": "",
|
|
65
|
+
"Unpin from Conversation": "",
|
|
66
|
+
"Unread Messages": "",
|
|
67
|
+
"Video": "",
|
|
68
|
+
"You": "",
|
|
69
69
|
"You can't send messages in this channel": "You can't send messages in this channel",
|
|
70
|
-
"{{ firstUser }} and {{ nonSelfUserLength }} more are typing": "
|
|
71
|
-
"{{ index }} of {{ photoLength }}": "
|
|
72
|
-
"{{ replyCount }} Replies": "
|
|
70
|
+
"{{ firstUser }} and {{ nonSelfUserLength }} more are typing": "",
|
|
71
|
+
"{{ index }} of {{ photoLength }}": "",
|
|
72
|
+
"{{ replyCount }} Replies": "",
|
|
73
73
|
"{{ replyCount }} Thread Replies": "{{replyCount}} Réponses à la discussion",
|
|
74
|
-
"{{ user }} is typing": "
|
|
75
|
-
"🏙 Attachment...": "
|
|
74
|
+
"{{ user }} is typing": "",
|
|
75
|
+
"🏙 Attachment...": ""
|
|
76
76
|
}
|
package/src/i18n/hi.json
CHANGED
|
@@ -1,76 +1,76 @@
|
|
|
1
1
|
{
|
|
2
|
-
"1 Reply": "
|
|
2
|
+
"1 Reply": "",
|
|
3
3
|
"1 Thread Reply": "1 धागा उत्तर",
|
|
4
|
-
"Allow access to your Gallery": "
|
|
5
|
-
"Allow camera access in device settings": "
|
|
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": "
|
|
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": "
|
|
4
|
+
"Allow access to your Gallery": "",
|
|
5
|
+
"Allow camera access in device settings": "",
|
|
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": "",
|
|
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": "",
|
|
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": "
|
|
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
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?": "
|
|
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
|
-
"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.": "अधिकतम फ़ाइल आकार अपलोड सीमा पूरी हो गई। कृपया {{MAX_FILE_SIZE_TO_UPLOAD_IN_MB}} एमबी से नीचे की फ़ाइल अपलोड करें।",
|
|
36
|
-
"Message Reactions": "
|
|
37
|
-
"Message deleted": "
|
|
38
|
-
"Message flagged": "
|
|
39
|
-
"Mute User": "
|
|
40
|
-
"Not supported": "
|
|
41
|
-
"Nothing yet...": "
|
|
42
|
-
"Ok": "
|
|
43
|
-
"Only visible to you": "
|
|
44
|
-
"Open Settings": "
|
|
45
|
-
"Photo": "
|
|
46
|
-
"Photos and Videos": "
|
|
47
|
-
"Pin to Conversation": "
|
|
36
|
+
"Message Reactions": "",
|
|
37
|
+
"Message deleted": "",
|
|
38
|
+
"Message flagged": "",
|
|
39
|
+
"Mute User": "",
|
|
40
|
+
"Not supported": "",
|
|
41
|
+
"Nothing yet...": "",
|
|
42
|
+
"Ok": "",
|
|
43
|
+
"Only visible to you": "",
|
|
44
|
+
"Open Settings": "",
|
|
45
|
+
"Photo": "",
|
|
46
|
+
"Photos and Videos": "",
|
|
47
|
+
"Pin to Conversation": "",
|
|
48
48
|
"Pinned by": "द्वारा पिन किया गया",
|
|
49
|
-
"Please enable access to your photos and videos so you can share them.": "
|
|
49
|
+
"Please enable access to your photos and videos so you can share them.": "",
|
|
50
50
|
"Please select a channel first": "कृपया पहले एक चैनल चुनें",
|
|
51
|
-
"Reconnecting...": "
|
|
52
|
-
"Reply": "
|
|
53
|
-
"Reply to Message": "
|
|
54
|
-
"Resend": "
|
|
55
|
-
"Search GIFs": "
|
|
56
|
-
"Select More Photos": "
|
|
57
|
-
"Send a message": "
|
|
51
|
+
"Reconnecting...": "",
|
|
52
|
+
"Reply": "",
|
|
53
|
+
"Reply to Message": "",
|
|
54
|
+
"Resend": "",
|
|
55
|
+
"Search GIFs": "",
|
|
56
|
+
"Select More Photos": "",
|
|
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": "
|
|
63
|
-
"Unknown User": "
|
|
64
|
-
"Unmute User": "
|
|
65
|
-
"Unpin from Conversation": "
|
|
66
|
-
"Unread Messages": "
|
|
67
|
-
"Video": "
|
|
68
|
-
"You": "
|
|
59
|
+
"Slow mode ON": "",
|
|
60
|
+
"The message has been reported to a moderator.": "",
|
|
61
|
+
"Thread Reply": "",
|
|
62
|
+
"Unblock User": "",
|
|
63
|
+
"Unknown User": "",
|
|
64
|
+
"Unmute User": "",
|
|
65
|
+
"Unpin from Conversation": "",
|
|
66
|
+
"Unread Messages": "",
|
|
67
|
+
"Video": "",
|
|
68
|
+
"You": "",
|
|
69
69
|
"You can't send messages in this channel": "आप इस चैनल में संदेश नहीं भेज सकते",
|
|
70
|
-
"{{ firstUser }} and {{ nonSelfUserLength }} more are typing": "
|
|
71
|
-
"{{ index }} of {{ photoLength }}": "
|
|
72
|
-
"{{ replyCount }} Replies": "
|
|
70
|
+
"{{ firstUser }} and {{ nonSelfUserLength }} more are typing": "",
|
|
71
|
+
"{{ index }} of {{ photoLength }}": "",
|
|
72
|
+
"{{ replyCount }} Replies": "",
|
|
73
73
|
"{{ replyCount }} Thread Replies": "{{ replyCount }}} थ्रेड उत्तर",
|
|
74
|
-
"{{ user }} is typing": "
|
|
75
|
-
"🏙 Attachment...": "
|
|
74
|
+
"{{ user }} is typing": "",
|
|
75
|
+
"🏙 Attachment...": ""
|
|
76
76
|
}
|