stream-chat-react-native-core 5.26.0-beta.3 → 5.26.0-beta.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (84) hide show
  1. package/lib/commonjs/components/Channel/Channel.js +56 -45
  2. package/lib/commonjs/components/Channel/Channel.js.map +1 -1
  3. package/lib/commonjs/components/Channel/hooks/useTargetedMessage.js +5 -0
  4. package/lib/commonjs/components/Channel/hooks/useTargetedMessage.js.map +1 -1
  5. package/lib/commonjs/components/ChannelPreview/ChannelPreviewMessenger.js +2 -0
  6. package/lib/commonjs/components/ChannelPreview/ChannelPreviewMessenger.js.map +1 -1
  7. package/lib/commonjs/components/ChannelPreview/ChannelPreviewTitle.js +1 -1
  8. package/lib/commonjs/components/ChannelPreview/ChannelPreviewTitle.js.map +1 -1
  9. package/lib/commonjs/components/ChannelPreview/ChannelPreviewUnreadCount.js +2 -2
  10. package/lib/commonjs/components/ChannelPreview/ChannelPreviewUnreadCount.js.map +1 -1
  11. package/lib/commonjs/contexts/channelsContext/ChannelsContext.js.map +1 -1
  12. package/lib/commonjs/i18n/en.json +1 -1
  13. package/lib/commonjs/i18n/es.json +33 -33
  14. package/lib/commonjs/i18n/fr.json +33 -33
  15. package/lib/commonjs/i18n/he.json +33 -33
  16. package/lib/commonjs/i18n/hi.json +33 -33
  17. package/lib/commonjs/i18n/it.json +33 -33
  18. package/lib/commonjs/i18n/ja.json +33 -33
  19. package/lib/commonjs/i18n/ko.json +33 -33
  20. package/lib/commonjs/i18n/nl.json +33 -33
  21. package/lib/commonjs/i18n/pt-BR.json +33 -33
  22. package/lib/commonjs/i18n/ru.json +33 -33
  23. package/lib/commonjs/i18n/tr.json +33 -33
  24. package/lib/commonjs/version.json +1 -1
  25. package/lib/module/components/Channel/Channel.js +56 -45
  26. package/lib/module/components/Channel/Channel.js.map +1 -1
  27. package/lib/module/components/Channel/hooks/useTargetedMessage.js +5 -0
  28. package/lib/module/components/Channel/hooks/useTargetedMessage.js.map +1 -1
  29. package/lib/module/components/ChannelPreview/ChannelPreviewMessenger.js +2 -0
  30. package/lib/module/components/ChannelPreview/ChannelPreviewMessenger.js.map +1 -1
  31. package/lib/module/components/ChannelPreview/ChannelPreviewTitle.js +1 -1
  32. package/lib/module/components/ChannelPreview/ChannelPreviewTitle.js.map +1 -1
  33. package/lib/module/components/ChannelPreview/ChannelPreviewUnreadCount.js +2 -2
  34. package/lib/module/components/ChannelPreview/ChannelPreviewUnreadCount.js.map +1 -1
  35. package/lib/module/contexts/channelsContext/ChannelsContext.js.map +1 -1
  36. package/lib/module/i18n/en.json +1 -1
  37. package/lib/module/i18n/es.json +33 -33
  38. package/lib/module/i18n/fr.json +33 -33
  39. package/lib/module/i18n/he.json +33 -33
  40. package/lib/module/i18n/hi.json +33 -33
  41. package/lib/module/i18n/it.json +33 -33
  42. package/lib/module/i18n/ja.json +33 -33
  43. package/lib/module/i18n/ko.json +33 -33
  44. package/lib/module/i18n/nl.json +33 -33
  45. package/lib/module/i18n/pt-BR.json +33 -33
  46. package/lib/module/i18n/ru.json +33 -33
  47. package/lib/module/i18n/tr.json +33 -33
  48. package/lib/module/version.json +1 -1
  49. package/lib/typescript/components/Channel/hooks/useTargetedMessage.d.ts +1 -0
  50. package/lib/typescript/components/ChannelPreview/ChannelPreviewTitle.d.ts +4 -2
  51. package/lib/typescript/components/ChannelPreview/ChannelPreviewUnreadCount.d.ts +2 -1
  52. package/lib/typescript/contexts/channelsContext/ChannelsContext.d.ts +1 -1
  53. package/lib/typescript/i18n/en.json +1 -1
  54. package/lib/typescript/i18n/es.json +33 -33
  55. package/lib/typescript/i18n/fr.json +33 -33
  56. package/lib/typescript/i18n/he.json +33 -33
  57. package/lib/typescript/i18n/hi.json +33 -33
  58. package/lib/typescript/i18n/it.json +33 -33
  59. package/lib/typescript/i18n/ja.json +33 -33
  60. package/lib/typescript/i18n/ko.json +33 -33
  61. package/lib/typescript/i18n/nl.json +33 -33
  62. package/lib/typescript/i18n/pt-BR.json +33 -33
  63. package/lib/typescript/i18n/ru.json +33 -33
  64. package/lib/typescript/i18n/tr.json +33 -33
  65. package/package.json +1 -1
  66. package/src/components/Channel/Channel.tsx +41 -27
  67. package/src/components/Channel/hooks/useTargetedMessage.ts +6 -0
  68. package/src/components/ChannelPreview/ChannelPreviewMessenger.tsx +2 -2
  69. package/src/components/ChannelPreview/ChannelPreviewTitle.tsx +11 -2
  70. package/src/components/ChannelPreview/ChannelPreviewUnreadCount.tsx +9 -6
  71. package/src/contexts/channelsContext/ChannelsContext.tsx +1 -1
  72. package/src/i18n/en.json +1 -1
  73. package/src/i18n/es.json +33 -33
  74. package/src/i18n/fr.json +33 -33
  75. package/src/i18n/he.json +33 -33
  76. package/src/i18n/hi.json +33 -33
  77. package/src/i18n/it.json +33 -33
  78. package/src/i18n/ja.json +33 -33
  79. package/src/i18n/ko.json +33 -33
  80. package/src/i18n/nl.json +33 -33
  81. package/src/i18n/pt-BR.json +33 -33
  82. package/src/i18n/ru.json +33 -33
  83. package/src/i18n/tr.json +33 -33
  84. package/src/version.json +1 -1
@@ -600,7 +600,7 @@ const ChannelWithContext = <
600
600
  */
601
601
  const [hasNoMoreRecentMessagesToLoad, setHasNoMoreRecentMessagesToLoad] = useState(true);
602
602
 
603
- const { setTargetedMessage, targetedMessage } = useTargetedMessage();
603
+ const { prevTargetedMessage, setTargetedMessage, targetedMessage } = useTargetedMessage();
604
604
 
605
605
  /**
606
606
  * If we loaded a channel around message
@@ -718,7 +718,7 @@ const ChannelWithContext = <
718
718
  () => {
719
719
  if (channel) {
720
720
  clearInterval(mergeSetsIntervalRef.current);
721
- setMessages([...channel.state.messages]);
721
+ setMessages(channel.state.messages);
722
722
  restartSetsMergeFuncRef.current();
723
723
  }
724
724
  },
@@ -753,7 +753,7 @@ const ChannelWithContext = <
753
753
 
754
754
  const copyChannelState = useRef(
755
755
  throttle(
756
- (onComplete: (() => void) | undefined = undefined) => {
756
+ () => {
757
757
  setLoading(false);
758
758
  if (channel) {
759
759
  setMembers({ ...channel.state.members });
@@ -762,7 +762,6 @@ const ChannelWithContext = <
762
762
  setTyping({ ...channel.state.typing });
763
763
  setWatcherCount(channel.state.watcher_count);
764
764
  setWatchers({ ...channel.state.watchers });
765
- onComplete?.();
766
765
  }
767
766
  },
768
767
  stateUpdateThrottleInterval,
@@ -787,6 +786,8 @@ const ChannelWithContext = <
787
786
  // subscribe to the generic all channel event
788
787
  useEffect(() => {
789
788
  const handleEvent: EventHandler<StreamChatGenerics> = (event) => {
789
+ const ignorableEvents = ['user.watching.start', 'user.watching.stop'];
790
+ if (ignorableEvents.includes(event.type)) return;
790
791
  if (shouldSyncChannel) {
791
792
  const isTypingEvent = event.type === 'typing.start' || event.type === 'typing.stop';
792
793
  if (!isTypingEvent) {
@@ -805,6 +806,7 @@ const ChannelWithContext = <
805
806
  // only update channel state if the events are not the previously subscribed useEffect's subscription events
806
807
  if (
807
808
  channel &&
809
+ channel.initialized &&
808
810
  event.type !== 'message.new' &&
809
811
  event.type !== 'message.read' &&
810
812
  event.type !== 'typing.start' &&
@@ -861,8 +863,8 @@ const ChannelWithContext = <
861
863
  const scrollToMessageIndex = scrollToMessageId
862
864
  ? currentMessages.findIndex(({ id }) => id === scrollToMessageId)
863
865
  : -1;
864
-
865
866
  if (channel && scrollToMessageIndex !== -1) {
867
+ copyChannelState.cancel();
866
868
  // We assume that on average user sees 5 messages on screen
867
869
  // We dont want new renders to happen while scrolling to the targeted message
868
870
  // hence we limit the number of messages to be rendered after the targeted message to 5 - 1 = 4
@@ -870,21 +872,19 @@ const ChannelWithContext = <
870
872
  // the previous latest message set will be thrown away as we cannot merge it with the current message set after the target message is set
871
873
  const limitAfter = 4;
872
874
  const currentLength = currentMessages.length;
873
- if (scrollToMessageIndex !== -1) {
874
- const noOfMessagesAfter = currentLength - scrollToMessageIndex - 1;
875
- // number of messages are over the limit, limit the length of messages
876
- if (noOfMessagesAfter > limitAfter) {
877
- const endIndex = scrollToMessageIndex + limitAfter;
878
- channel.state.clearMessages();
879
- channel.state.messages = currentMessages.slice(0, endIndex + 1);
880
- splitLatestCurrentMessageSetRef.current();
881
- const restOfMessages = currentMessages.slice(endIndex + 1);
882
- if (hadCurrentLatestMessages) {
883
- const latestSet = channel.state.messageSets.find((set) => set.isLatest);
884
- if (latestSet) {
885
- latestSet.messages = restOfMessages;
886
- hasOverlappingRecentMessagesRef.current = true;
887
- }
875
+ const noOfMessagesAfter = currentLength - scrollToMessageIndex - 1;
876
+ // number of messages are over the limit, limit the length of messages
877
+ if (noOfMessagesAfter > limitAfter) {
878
+ const endIndex = scrollToMessageIndex + limitAfter;
879
+ channel.state.clearMessages();
880
+ channel.state.messages = currentMessages.slice(0, endIndex + 1);
881
+ splitLatestCurrentMessageSetRef.current();
882
+ const restOfMessages = currentMessages.slice(endIndex + 1);
883
+ if (hadCurrentLatestMessages) {
884
+ const latestSet = channel.state.messageSets.find((set) => set.isLatest);
885
+ if (latestSet) {
886
+ latestSet.messages = restOfMessages;
887
+ hasOverlappingRecentMessagesRef.current = true;
888
888
  }
889
889
  }
890
890
  }
@@ -892,11 +892,12 @@ const ChannelWithContext = <
892
892
  const hasLatestMessages = channel.state.latestMessages.length > 0;
893
893
  channel.state.setIsUpToDate(hasLatestMessages);
894
894
  setHasNoMoreRecentMessagesToLoad(hasLatestMessages);
895
- copyChannelState(() => {
896
- // only after the debounce interval completes, we will merge the sets and set any other states
897
- restartSetsMergeFuncRef.current();
898
- onAfterQueryCall?.();
899
- });
895
+ copyChannelState();
896
+ if (scrollToMessageIndex !== -1) {
897
+ // since we need to scroll after immediately do this without throttle
898
+ copyChannelState.flush();
899
+ }
900
+ onAfterQueryCall?.();
900
901
  } catch (err) {
901
902
  if (err instanceof Error) {
902
903
  setError(err);
@@ -956,7 +957,11 @@ const ChannelWithContext = <
956
957
  await loadLatestMessagesRef.current();
957
958
  }
958
959
  },
959
- undefined,
960
+ () => {
961
+ if (unreadMessageIdToScrollTo) {
962
+ restartSetsMergeFuncRef.current();
963
+ }
964
+ },
960
965
  () => unreadMessageIdToScrollTo,
961
966
  );
962
967
  };
@@ -997,12 +1002,21 @@ const ChannelWithContext = <
997
1002
  },
998
1003
  () => {
999
1004
  if (messageIdToLoadAround) {
1005
+ clearInterval(mergeSetsIntervalRef.current); // do not merge sets as we will scroll/highlight to the message
1000
1006
  setTargetedMessage(messageIdToLoadAround);
1001
1007
  }
1002
1008
  },
1003
1009
  messageIdToLoadAround,
1004
1010
  );
1005
1011
 
1012
+ useEffect(() => {
1013
+ if (!targetedMessage && prevTargetedMessage) {
1014
+ // we cleared the merge sets interval to wait for the targeted message to be set
1015
+ // now restart it since its done
1016
+ restartSetsMergeFuncRef.current();
1017
+ }
1018
+ }, [targetedMessage]);
1019
+
1006
1020
  /**
1007
1021
  * @deprecated use loadChannelAroundMessage instead
1008
1022
  *
@@ -1091,7 +1105,7 @@ const ChannelWithContext = <
1091
1105
  const currentLength = channel.state.messages.length || 0;
1092
1106
  const didMerge = mergeOverlappingMessageSetsRef.current(true);
1093
1107
  if (didMerge && channel.state.messages.length !== currentLength) {
1094
- setMessages([...channel.state.messages]);
1108
+ setMessages(channel.state.messages);
1095
1109
  }
1096
1110
  }, 1000);
1097
1111
  });
@@ -3,6 +3,11 @@ import { useEffect, useRef, useState } from 'react';
3
3
  export const useTargetedMessage = (messageId?: string) => {
4
4
  const clearTargetedMessageCall = useRef<ReturnType<typeof setTimeout>>();
5
5
  const [targetedMessage, setTargetedMessage] = useState(messageId);
6
+ const prevTargetedMessageRef = useRef<string>();
7
+
8
+ useEffect(() => {
9
+ prevTargetedMessageRef.current = targetedMessage;
10
+ }, [targetedMessage]);
6
11
 
7
12
  useEffect(() => {
8
13
  clearTargetedMessageCall.current = setTimeout(() => {
@@ -25,6 +30,7 @@ export const useTargetedMessage = (messageId?: string) => {
25
30
  });
26
31
 
27
32
  return {
33
+ prevTargetedMessage: prevTargetedMessageRef.current,
28
34
  setTargetedMessage: setTargetedMessageTimeoutRef.current,
29
35
  targetedMessage,
30
36
  };
@@ -165,10 +165,10 @@ const ChannelPreviewMessengerWithContext = <
165
165
  testID={`channel-preview-content-${channel.id}`}
166
166
  >
167
167
  <View style={[styles.row, row]}>
168
- <PreviewTitle displayName={displayName} />
168
+ <PreviewTitle channel={channel} displayName={displayName} />
169
169
  <View style={[styles.statusContainer, row]}>
170
170
  {isChannelMuted && <PreviewMutedStatus />}
171
- <PreviewUnreadCount maxUnreadCount={maxUnreadCount} unread={unread} />
171
+ <PreviewUnreadCount channel={channel} maxUnreadCount={maxUnreadCount} unread={unread} />
172
172
  </View>
173
173
  </View>
174
174
  <View style={[styles.row, row]}>
@@ -1,20 +1,29 @@
1
1
  import React from 'react';
2
2
  import { StyleSheet, Text } from 'react-native';
3
3
 
4
+ import type { ChannelPreviewProps } from './ChannelPreview';
5
+
4
6
  import { useTheme } from '../../contexts/themeContext/ThemeContext';
7
+ import type { DefaultStreamChatGenerics } from '../../types/types';
5
8
 
6
9
  const styles = StyleSheet.create({
7
10
  title: { fontSize: 14, fontWeight: '700' },
8
11
  });
9
12
 
10
- export type ChannelPreviewTitleProps = {
13
+ export type ChannelPreviewTitleProps<
14
+ StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,
15
+ > = Pick<ChannelPreviewProps<StreamChatGenerics>, 'channel'> & {
11
16
  /**
12
17
  * Formatted name for the previewed channel.
13
18
  */
14
19
  displayName: string;
15
20
  };
16
21
 
17
- export const ChannelPreviewTitle = (props: ChannelPreviewTitleProps) => {
22
+ export const ChannelPreviewTitle = <
23
+ StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,
24
+ >(
25
+ props: ChannelPreviewTitleProps<StreamChatGenerics>,
26
+ ) => {
18
27
  const { displayName } = props;
19
28
  const {
20
29
  theme: {
@@ -1,6 +1,8 @@
1
1
  import React from 'react';
2
2
  import { StyleSheet, Text, View } from 'react-native';
3
3
 
4
+ import { ChannelPreviewProps } from './ChannelPreview';
5
+
4
6
  import type { ChannelsContextValue } from '../../contexts/channelsContext/ChannelsContext';
5
7
  import { useTheme } from '../../contexts/themeContext/ThemeContext';
6
8
 
@@ -8,12 +10,13 @@ import type { DefaultStreamChatGenerics } from '../../types/types';
8
10
 
9
11
  export type ChannelPreviewUnreadCountProps<
10
12
  StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,
11
- > = Pick<ChannelsContextValue<StreamChatGenerics>, 'maxUnreadCount'> & {
12
- /**
13
- * Number of unread messages on the channel
14
- */
15
- unread?: number;
16
- };
13
+ > = Pick<ChannelsContextValue<StreamChatGenerics>, 'maxUnreadCount'> &
14
+ Pick<ChannelPreviewProps<StreamChatGenerics>, 'channel'> & {
15
+ /**
16
+ * Number of unread messages on the channel
17
+ */
18
+ unread?: number;
19
+ };
17
20
 
18
21
  export const ChannelPreviewUnreadCount = <
19
22
  StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,
@@ -199,7 +199,7 @@ export type ChannelsContextValue<
199
199
  *
200
200
  * **Default** [ChannelPreviewTitle](https://github.com/GetStream/stream-chat-react-native/blob/main/package/src/components/ChannelPreview/ChannelPreviewTitle.tsx)
201
201
  */
202
- PreviewTitle?: React.ComponentType<ChannelPreviewTitleProps>;
202
+ PreviewTitle?: React.ComponentType<ChannelPreviewTitleProps<StreamChatGenerics>>;
203
203
  /**
204
204
  * Custom UI component to render preview avatar.
205
205
  *
package/src/i18n/en.json CHANGED
@@ -26,7 +26,7 @@
26
26
  "File type not supported": "File type not supported",
27
27
  "Flag": "Flag",
28
28
  "Flag Message": "Flag Message",
29
- "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.",
29
+ "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",
30
30
  "How about sending your first message to a friend?": "How about sending your first message to a friend?",
31
31
  "Instant Commands": "Instant Commands",
32
32
  "Let's start chatting!": "Let's start chatting!",
package/src/i18n/es.json CHANGED
@@ -1,34 +1,34 @@
1
1
  {
2
2
  "1 Reply": "",
3
- "1 Thread Reply": "1 respuesta de hilo",
3
+ "1 Thread Reply": "",
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?": "¿Estás seguro de que deseas eliminar permanentemente este mensaje?",
8
- "Are you sure?": "¿Estás seguro?",
9
- "Block User": "Bloquear usuario",
10
- "Cancel": "Cancelar",
11
- "Cannot Flag Message": "No se puede reportar el mensaje",
12
- "Consider how your comment might make others feel and be sure to follow our Community Guidelines": "Considera cómo tu comentario podría hacer sentir a los demás y asegúrate de seguir nuestras Normas de la Comunidad",
13
- "Copy Message": "Copiar mensaje",
14
- "Delete": "Eliminar",
15
- "Delete Message": "Eliminar mensaje",
7
+ "Are you sure you want to permanently delete this message?": "",
8
+ "Are you sure?": "",
9
+ "Block User": "",
10
+ "Cancel": "",
11
+ "Cannot Flag Message": "",
12
+ "Consider how your comment might make others feel and be sure to follow our Community Guidelines": "",
13
+ "Copy Message": "",
14
+ "Delete": "",
15
+ "Delete Message": "",
16
16
  "Device camera is used to take photos or videos.": "",
17
- "Do you want to send a copy of this message to a moderator for further investigation?": "¿Deseas enviar una copia de este mensaje a un moderador para una investigación adicional?",
18
- "Edit Message": "Editar mensaje",
17
+ "Do you want to send a copy of this message to a moderator for further investigation?": "",
18
+ "Edit Message": "",
19
19
  "Editing Message": "",
20
- "Emoji matching": "",
20
+ "Emoji matching": "Coincidencia de emoji",
21
21
  "Empty message...": "",
22
22
  "Error loading": "",
23
23
  "Error loading channel list...": "",
24
24
  "Error loading messages for this channel...": "",
25
25
  "Error while loading, please reload/refresh": "",
26
26
  "File type not supported": "",
27
- "Flag": "Reportar",
28
- "Flag Message": "Reportar mensaje",
29
- "Flag action failed either due to a network issue or the message is already flagged": "El reporte falló debido a un problema de red o el mensaje ya fue reportado.",
27
+ "Flag": "",
28
+ "Flag Message": "",
29
+ "Flag action failed either due to a network issue or the message is already flagged": "",
30
30
  "How about sending your first message to a friend?": "",
31
- "Instant Commands": "",
31
+ "Instant Commands": "Comandos instantáneos",
32
32
  "Let's start chatting!": "",
33
33
  "Links are disabled": "",
34
34
  "Loading channels...": "",
@@ -37,43 +37,43 @@
37
37
  "Maximum file size upload limit reached. Please upload a file below {{MAX_FILE_SIZE_TO_UPLOAD_IN_MB}} MB.": "",
38
38
  "Message Reactions": "Reacciones al mensaje",
39
39
  "Message deleted": "",
40
- "Message flagged": "Mensaje reportado",
41
- "Mute User": "Silenciar usuario",
40
+ "Message flagged": "",
41
+ "Mute User": "",
42
42
  "Not supported": "",
43
43
  "Nothing yet...": "",
44
- "Ok": "Aceptar",
44
+ "Ok": "",
45
45
  "Only visible to you": "Solo visible para ti",
46
46
  "Open Settings": "",
47
47
  "Photo": "",
48
48
  "Photos and Videos": "",
49
- "Pin to Conversation": "Fijar a la conversación",
50
- "Pinned by": "",
49
+ "Pin to Conversation": "",
50
+ "Pinned by": "Fijado por",
51
51
  "Please enable access to your photos and videos so you can share them.": "",
52
52
  "Please select a channel first": "",
53
53
  "Reconnecting...": "",
54
- "Reply": "Responder",
54
+ "Reply": "",
55
55
  "Reply to Message": "",
56
- "Resend": "Reenviar",
56
+ "Resend": "",
57
57
  "Search GIFs": "",
58
58
  "Select More Photos": "",
59
- "Send Anyway": "Enviar de todos modos",
59
+ "Send Anyway": "",
60
60
  "Send a message": "",
61
61
  "Sending links is not allowed in this conversation": "",
62
62
  "Slow mode ON": "",
63
- "The message has been reported to a moderator.": "El mensaje ha sido reportado a un moderador.",
64
- "Thread Reply": "Respuesta de hilo",
65
- "Unblock User": "Desbloquear usuario",
63
+ "The message has been reported to a moderator.": "",
64
+ "Thread Reply": "",
65
+ "Unblock User": "",
66
66
  "Unknown User": "",
67
- "Unmute User": "Activar sonido del usuario",
68
- "Unpin from Conversation": "Desmarcar de la conversación",
67
+ "Unmute User": "",
68
+ "Unpin from Conversation": "",
69
69
  "Unread Messages": "",
70
70
  "Video": "",
71
71
  "You": "",
72
72
  "You can't send messages in this channel": "",
73
- "{{ firstUser }} and {{ nonSelfUserLength }} more are typing": "",
73
+ "{{ firstUser }} and {{ nonSelfUserLength }} more are typing": "{{ firstUser }} y {{ nonSelfUserLength }} más están escribiendo",
74
74
  "{{ index }} of {{ photoLength }}": "",
75
75
  "{{ replyCount }} Replies": "",
76
- "{{ replyCount }} Thread Replies": "{{ replyCount }} respuestas de hilo",
77
- "{{ user }} is typing": "",
76
+ "{{ replyCount }} Thread Replies": "",
77
+ "{{ user }} is typing": "{{ user }} está escribiendo",
78
78
  "🏙 Attachment...": ""
79
79
  }
package/src/i18n/fr.json CHANGED
@@ -1,34 +1,34 @@
1
1
  {
2
2
  "1 Reply": "",
3
- "1 Thread Reply": "Réponse à 1 fil",
3
+ "1 Thread Reply": "",
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?": "Êtes-vous sûr de vouloir supprimer définitivement ce message?",
8
- "Are you sure?": "Es-tu sûr ?",
9
- "Block User": "Bloquer un utilisateur",
10
- "Cancel": "Annuler",
11
- "Cannot Flag Message": "Impossible de signaler le message",
12
- "Consider how your comment might make others feel and be sure to follow our Community Guidelines": "Considérez comment votre commentaire pourrait faire sentir les autres et assurez-vous de suivre nos directives communautaires",
13
- "Copy Message": "Copier le message",
14
- "Delete": "Supprimer",
15
- "Delete Message": "Supprimer un message",
7
+ "Are you sure you want to permanently delete this message?": "",
8
+ "Are you sure?": "",
9
+ "Block User": "",
10
+ "Cancel": "",
11
+ "Cannot Flag Message": "",
12
+ "Consider how your comment might make others feel and be sure to follow our Community Guidelines": "",
13
+ "Copy Message": "",
14
+ "Delete": "",
15
+ "Delete Message": "",
16
16
  "Device camera is used to take photos or videos.": "",
17
- "Do you want to send a copy of this message to a moderator for further investigation?": "Voulez-vous envoyer une copie de ce message à un modérateur pour une enquête plus approfondie?",
18
- "Edit Message": "Éditer un message",
17
+ "Do you want to send a copy of this message to a moderator for further investigation?": "",
18
+ "Edit Message": "",
19
19
  "Editing Message": "",
20
- "Emoji matching": "",
20
+ "Emoji matching": "Correspondance Emoji",
21
21
  "Empty message...": "",
22
22
  "Error loading": "",
23
23
  "Error loading channel list...": "",
24
24
  "Error loading messages for this channel...": "",
25
25
  "Error while loading, please reload/refresh": "",
26
26
  "File type not supported": "",
27
- "Flag": "Signaler",
28
- "Flag Message": "Signaler le message",
29
- "Flag action failed either due to a network issue or the message is already flagged": "L'action de signalisation a échoué en raison d'un problème de réseau ou le message est déjà signalé.",
27
+ "Flag": "",
28
+ "Flag Message": "",
29
+ "Flag action failed either due to a network issue or the message is already flagged": "",
30
30
  "How about sending your first message to a friend?": "",
31
- "Instant Commands": "",
31
+ "Instant Commands": "Commandes Instantanées",
32
32
  "Let's start chatting!": "",
33
33
  "Links are disabled": "",
34
34
  "Loading channels...": "",
@@ -37,43 +37,43 @@
37
37
  "Maximum file size upload limit reached. Please upload a file below {{MAX_FILE_SIZE_TO_UPLOAD_IN_MB}} MB.": "",
38
38
  "Message Reactions": "Réactions aux messages",
39
39
  "Message deleted": "",
40
- "Message flagged": "Message signalé",
41
- "Mute User": "Utilisateur muet",
40
+ "Message flagged": "",
41
+ "Mute User": "",
42
42
  "Not supported": "",
43
43
  "Nothing yet...": "",
44
- "Ok": "Ok",
44
+ "Ok": "",
45
45
  "Only visible to you": "Seulement visible par vous",
46
46
  "Open Settings": "",
47
47
  "Photo": "",
48
48
  "Photos and Videos": "",
49
- "Pin to Conversation": "Épingler à la conversation",
50
- "Pinned by": "",
49
+ "Pin to Conversation": "",
50
+ "Pinned by": "Épinglé par",
51
51
  "Please enable access to your photos and videos so you can share them.": "",
52
52
  "Please select a channel first": "",
53
53
  "Reconnecting...": "",
54
- "Reply": "Répondre",
54
+ "Reply": "",
55
55
  "Reply to Message": "",
56
- "Resend": "Renvoyer",
56
+ "Resend": "",
57
57
  "Search GIFs": "",
58
58
  "Select More Photos": "",
59
- "Send Anyway": "Envoyer quand même",
59
+ "Send Anyway": "",
60
60
  "Send a message": "",
61
61
  "Sending links is not allowed in this conversation": "",
62
62
  "Slow mode ON": "",
63
- "The message has been reported to a moderator.": "Le message a été signalé à un modérateur.",
64
- "Thread Reply": "Réponse à la discussion",
65
- "Unblock User": "Débloquer Utilisateur",
63
+ "The message has been reported to a moderator.": "",
64
+ "Thread Reply": "",
65
+ "Unblock User": "",
66
66
  "Unknown User": "",
67
- "Unmute User": "Activer le son de Utilisateur",
68
- "Unpin from Conversation": "Décrocher de la conversation",
67
+ "Unmute User": "",
68
+ "Unpin from Conversation": "",
69
69
  "Unread Messages": "",
70
70
  "Video": "",
71
71
  "You": "",
72
72
  "You can't send messages in this channel": "",
73
- "{{ firstUser }} and {{ nonSelfUserLength }} more are typing": "",
73
+ "{{ firstUser }} and {{ nonSelfUserLength }} more are typing": "{{ firstUser }} et {{ nonSelfUserLength }} autres sont en train d'écrire",
74
74
  "{{ index }} of {{ photoLength }}": "",
75
75
  "{{ replyCount }} Replies": "",
76
- "{{ replyCount }} Thread Replies": "{{replyCount}} Réponses à la discussion",
77
- "{{ user }} is typing": "",
76
+ "{{ replyCount }} Thread Replies": "",
77
+ "{{ user }} is typing": "{{ user }} est en train d'écrire",
78
78
  "🏙 Attachment...": ""
79
79
  }
package/src/i18n/he.json CHANGED
@@ -1,34 +1,34 @@
1
1
  {
2
2
  "1 Reply": "",
3
- "1 Thread Reply": "תגובה אחת לשרשור",
3
+ "1 Thread Reply": "",
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
- "Are you sure?": "האם אתה בטוח?",
9
- "Block User": "חסום משתמש",
10
- "Cancel": "ביטול",
11
- "Cannot Flag Message": "סימון הודעה לא אפשרי",
12
- "Consider how your comment might make others feel and be sure to follow our Community Guidelines": "שקול איך התגובה שלך עשויה להשפיע על אחרים ווודא שאתה עוקב אחר ההנחיות של הקהילה שלנו",
13
- "Copy Message": "העתק/י הודעה",
14
- "Delete": "מחק",
15
- "Delete Message": "מחק/י הודעה",
7
+ "Are you sure you want to permanently delete this message?": "",
8
+ "Are you sure?": "",
9
+ "Block User": "",
10
+ "Cancel": "",
11
+ "Cannot Flag Message": "",
12
+ "Consider how your comment might make others feel and be sure to follow our Community Guidelines": "",
13
+ "Copy Message": "",
14
+ "Delete": "",
15
+ "Delete Message": "",
16
16
  "Device camera is used to take photos or videos.": "",
17
- "Do you want to send a copy of this message to a moderator for further investigation?": "האם את/ה רוצה לשלוח עותק של הודעה זו למנחה להמשך חקירה?",
18
- "Edit Message": "ערוך הודעה",
17
+ "Do you want to send a copy of this message to a moderator for further investigation?": "",
18
+ "Edit Message": "",
19
19
  "Editing Message": "",
20
- "Emoji matching": "",
20
+ "Emoji matching": "התאמת אמוג'י",
21
21
  "Empty message...": "",
22
22
  "Error loading": "",
23
23
  "Error loading channel list...": "",
24
24
  "Error loading messages for this channel...": "",
25
25
  "Error while loading, please reload/refresh": "",
26
26
  "File type not supported": "",
27
- "Flag": "סמן",
28
- "Flag Message": "סמן הודעה",
29
- "Flag action failed either due to a network issue or the message is already flagged": "פעולת הסימון נכשלה בגלל בעיית רשת או שההודעה כבר סומנה.",
27
+ "Flag": "",
28
+ "Flag Message": "",
29
+ "Flag action failed either due to a network issue or the message is already flagged": "",
30
30
  "How about sending your first message to a friend?": "",
31
- "Instant Commands": "",
31
+ "Instant Commands": "פעולות מיידיות",
32
32
  "Let's start chatting!": "",
33
33
  "Links are disabled": "",
34
34
  "Loading channels...": "",
@@ -37,43 +37,43 @@
37
37
  "Maximum file size upload limit reached. Please upload a file below {{MAX_FILE_SIZE_TO_UPLOAD_IN_MB}} MB.": "",
38
38
  "Message Reactions": "תגובות להודעה",
39
39
  "Message deleted": "",
40
- "Message flagged": "ההודעה סומנה",
41
- "Mute User": "השתק/י משתמש",
40
+ "Message flagged": "",
41
+ "Mute User": "",
42
42
  "Not supported": "",
43
43
  "Nothing yet...": "",
44
- "Ok": "אוקיי",
44
+ "Ok": "",
45
45
  "Only visible to you": "גלוי רק לך",
46
46
  "Open Settings": "",
47
47
  "Photo": "",
48
48
  "Photos and Videos": "",
49
- "Pin to Conversation": "הצמד/י לשיחה",
50
- "Pinned by": "",
49
+ "Pin to Conversation": "",
50
+ "Pinned by": " - הוצמד לשיחה",
51
51
  "Please enable access to your photos and videos so you can share them.": "",
52
52
  "Please select a channel first": "",
53
53
  "Reconnecting...": "",
54
- "Reply": "השב/י",
54
+ "Reply": "",
55
55
  "Reply to Message": "",
56
- "Resend": "שלח/י שוב",
56
+ "Resend": "",
57
57
  "Search GIFs": "",
58
58
  "Select More Photos": "",
59
- "Send Anyway": "שלח בכל זאת",
59
+ "Send Anyway": "",
60
60
  "Send a message": "",
61
61
  "Sending links is not allowed in this conversation": "",
62
62
  "Slow mode ON": "",
63
- "The message has been reported to a moderator.": "ההודעה דווחה למנהל",
64
- "Thread Reply": "הגב/י בשרשור",
65
- "Unblock User": "בטל/י חסימת משתמש",
63
+ "The message has been reported to a moderator.": "",
64
+ "Thread Reply": "",
65
+ "Unblock User": "",
66
66
  "Unknown User": "",
67
- "Unmute User": "בטל/י השתקת משתמש",
68
- "Unpin from Conversation": "בטל/י הצמדה לשיחה",
67
+ "Unmute User": "",
68
+ "Unpin from Conversation": "",
69
69
  "Unread Messages": "",
70
70
  "Video": "",
71
71
  "You": "",
72
72
  "You can't send messages in this channel": "",
73
- "{{ firstUser }} and {{ nonSelfUserLength }} more are typing": "",
73
+ "{{ firstUser }} and {{ nonSelfUserLength }} more are typing": "{{ firstUser }} ו-{{ nonSelfUserLength }} משתמש/ים אחר/ים מקלידים",
74
74
  "{{ index }} of {{ photoLength }}": "",
75
75
  "{{ replyCount }} Replies": "",
76
- "{{ replyCount }} Thread Replies": "{{ replyCount }} תגובות שרשור",
77
- "{{ user }} is typing": "",
76
+ "{{ replyCount }} Thread Replies": "",
77
+ "{{ user }} is typing": "{{ user }} מקליד/ה",
78
78
  "🏙 Attachment...": ""
79
79
  }