stream-chat-react-native-core 5.22.0-beta.1 → 5.22.0-beta.10
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +10 -5
- package/lib/commonjs/components/Attachment/AudioAttachment.js +12 -12
- package/lib/commonjs/components/Attachment/AudioAttachment.js.map +1 -1
- package/lib/commonjs/components/Attachment/FileAttachment.js +10 -7
- package/lib/commonjs/components/Attachment/FileAttachment.js.map +1 -1
- package/lib/commonjs/components/AttachmentPicker/AttachmentPicker.js +8 -6
- package/lib/commonjs/components/AttachmentPicker/AttachmentPicker.js.map +1 -1
- package/lib/commonjs/components/AttachmentPicker/components/AttachmentPickerItem.js +24 -20
- package/lib/commonjs/components/AttachmentPicker/components/AttachmentPickerItem.js.map +1 -1
- package/lib/commonjs/components/AttachmentPicker/components/AttachmentSelectionBar.js +26 -11
- package/lib/commonjs/components/AttachmentPicker/components/AttachmentSelectionBar.js.map +1 -1
- package/lib/commonjs/components/Channel/Channel.js +65 -46
- package/lib/commonjs/components/Channel/Channel.js.map +1 -1
- package/lib/commonjs/components/Channel/hooks/useCreateChannelContext.js +2 -0
- package/lib/commonjs/components/Channel/hooks/useCreateChannelContext.js.map +1 -1
- package/lib/commonjs/components/Channel/hooks/useCreateInputMessageInputContext.js +2 -2
- package/lib/commonjs/components/Channel/hooks/useCreateInputMessageInputContext.js.map +1 -1
- package/lib/commonjs/components/ChannelPreview/ChannelPreviewMessenger.js +16 -14
- package/lib/commonjs/components/ChannelPreview/ChannelPreviewMessenger.js.map +1 -1
- package/lib/commonjs/components/ChannelPreview/hooks/useChannelPreviewDisplayName.js +4 -2
- package/lib/commonjs/components/ChannelPreview/hooks/useChannelPreviewDisplayName.js.map +1 -1
- package/lib/commonjs/components/ImageGallery/ImageGallery.js +29 -32
- package/lib/commonjs/components/ImageGallery/ImageGallery.js.map +1 -1
- package/lib/commonjs/components/ImageGallery/components/AnimatedGalleryImage.js +7 -5
- package/lib/commonjs/components/ImageGallery/components/AnimatedGalleryImage.js.map +1 -1
- package/lib/commonjs/components/ImageGallery/components/AnimatedGalleryVideo.js +10 -8
- package/lib/commonjs/components/ImageGallery/components/AnimatedGalleryVideo.js.map +1 -1
- package/lib/commonjs/components/ImageGallery/components/ImageGrid.js +10 -8
- package/lib/commonjs/components/ImageGallery/components/ImageGrid.js.map +1 -1
- package/lib/commonjs/components/Indicators/EmptyStateIndicator.js +17 -12
- package/lib/commonjs/components/Indicators/EmptyStateIndicator.js.map +1 -1
- package/lib/commonjs/components/Message/MessageSimple/MessageContent.js +20 -17
- package/lib/commonjs/components/Message/MessageSimple/MessageContent.js.map +1 -1
- package/lib/commonjs/components/Message/MessageSimple/ReactionList.js +18 -17
- package/lib/commonjs/components/Message/MessageSimple/ReactionList.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 +25 -17
- 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/ImageUploadPreview.js +13 -13
- package/lib/commonjs/components/MessageInput/ImageUploadPreview.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/components/MessageInput/UploadProgressIndicator.js.map +1 -1
- package/lib/commonjs/components/MessageList/InlineUnreadIndicator.js +13 -11
- package/lib/commonjs/components/MessageList/InlineUnreadIndicator.js.map +1 -1
- package/lib/commonjs/components/MessageOverlay/MessageActionList.js +8 -14
- package/lib/commonjs/components/MessageOverlay/MessageActionList.js.map +1 -1
- package/lib/commonjs/components/MessageOverlay/MessageActionListItem.js +11 -8
- package/lib/commonjs/components/MessageOverlay/MessageActionListItem.js.map +1 -1
- package/lib/commonjs/components/MessageOverlay/MessageOverlay.js +32 -29
- package/lib/commonjs/components/MessageOverlay/MessageOverlay.js.map +1 -1
- package/lib/commonjs/components/Thread/components/ThreadFooterComponent.js +17 -15
- package/lib/commonjs/components/Thread/components/ThreadFooterComponent.js.map +1 -1
- package/lib/commonjs/contexts/channelContext/ChannelContext.js +2 -2
- package/lib/commonjs/contexts/channelContext/ChannelContext.js.map +1 -1
- package/lib/commonjs/contexts/messageInputContext/MessageInputContext.js +66 -45
- package/lib/commonjs/contexts/messageInputContext/MessageInputContext.js.map +1 -1
- package/lib/commonjs/contexts/messageInputContext/hooks/useCreateMessageInputContext.js +2 -2
- package/lib/commonjs/contexts/messageInputContext/hooks/useCreateMessageInputContext.js.map +1 -1
- package/lib/commonjs/contexts/messageInputContext/hooks/useMessageDetailsForState.js.map +1 -1
- package/lib/commonjs/contexts/messagesContext/MessagesContext.js.map +1 -1
- package/lib/commonjs/contexts/themeContext/utils/theme.js +1 -4
- package/lib/commonjs/contexts/themeContext/utils/theme.js.map +1 -1
- package/lib/commonjs/hooks/index.js +11 -0
- package/lib/commonjs/hooks/index.js.map +1 -1
- package/lib/commonjs/hooks/useViewport.js +47 -0
- package/lib/commonjs/hooks/useViewport.js.map +1 -0
- package/lib/commonjs/i18n/en.json +5 -0
- package/lib/commonjs/i18n/es.json +6 -1
- package/lib/commonjs/i18n/fr.json +20 -15
- package/lib/commonjs/i18n/he.json +6 -1
- package/lib/commonjs/i18n/hi.json +20 -15
- package/lib/commonjs/i18n/it.json +20 -15
- package/lib/commonjs/i18n/ja.json +6 -1
- package/lib/commonjs/i18n/ko.json +6 -1
- package/lib/commonjs/i18n/nl.json +20 -15
- package/lib/commonjs/i18n/ru.json +20 -15
- package/lib/commonjs/i18n/tr.json +20 -15
- package/lib/commonjs/native.js.map +1 -1
- package/lib/commonjs/types/types.js.map +1 -1
- package/lib/commonjs/utils/compressImage.js +37 -0
- package/lib/commonjs/utils/compressImage.js.map +1 -0
- package/lib/commonjs/utils/utils.js +1 -15
- package/lib/commonjs/utils/utils.js.map +1 -1
- package/lib/commonjs/version.json +1 -1
- package/lib/module/components/Attachment/AudioAttachment.js +12 -12
- package/lib/module/components/Attachment/AudioAttachment.js.map +1 -1
- package/lib/module/components/Attachment/FileAttachment.js +10 -7
- package/lib/module/components/Attachment/FileAttachment.js.map +1 -1
- package/lib/module/components/AttachmentPicker/AttachmentPicker.js +8 -6
- package/lib/module/components/AttachmentPicker/AttachmentPicker.js.map +1 -1
- package/lib/module/components/AttachmentPicker/components/AttachmentPickerItem.js +24 -20
- package/lib/module/components/AttachmentPicker/components/AttachmentPickerItem.js.map +1 -1
- package/lib/module/components/AttachmentPicker/components/AttachmentSelectionBar.js +26 -11
- package/lib/module/components/AttachmentPicker/components/AttachmentSelectionBar.js.map +1 -1
- package/lib/module/components/Channel/Channel.js +65 -46
- package/lib/module/components/Channel/Channel.js.map +1 -1
- package/lib/module/components/Channel/hooks/useCreateChannelContext.js +2 -0
- package/lib/module/components/Channel/hooks/useCreateChannelContext.js.map +1 -1
- package/lib/module/components/Channel/hooks/useCreateInputMessageInputContext.js +2 -2
- package/lib/module/components/Channel/hooks/useCreateInputMessageInputContext.js.map +1 -1
- package/lib/module/components/ChannelPreview/ChannelPreviewMessenger.js +16 -14
- package/lib/module/components/ChannelPreview/ChannelPreviewMessenger.js.map +1 -1
- package/lib/module/components/ChannelPreview/hooks/useChannelPreviewDisplayName.js +4 -2
- package/lib/module/components/ChannelPreview/hooks/useChannelPreviewDisplayName.js.map +1 -1
- package/lib/module/components/ImageGallery/ImageGallery.js +29 -32
- package/lib/module/components/ImageGallery/ImageGallery.js.map +1 -1
- package/lib/module/components/ImageGallery/components/AnimatedGalleryImage.js +7 -5
- package/lib/module/components/ImageGallery/components/AnimatedGalleryImage.js.map +1 -1
- package/lib/module/components/ImageGallery/components/AnimatedGalleryVideo.js +10 -8
- package/lib/module/components/ImageGallery/components/AnimatedGalleryVideo.js.map +1 -1
- package/lib/module/components/ImageGallery/components/ImageGrid.js +10 -8
- package/lib/module/components/ImageGallery/components/ImageGrid.js.map +1 -1
- package/lib/module/components/Indicators/EmptyStateIndicator.js +17 -12
- package/lib/module/components/Indicators/EmptyStateIndicator.js.map +1 -1
- package/lib/module/components/Message/MessageSimple/MessageContent.js +20 -17
- package/lib/module/components/Message/MessageSimple/MessageContent.js.map +1 -1
- package/lib/module/components/Message/MessageSimple/ReactionList.js +18 -17
- package/lib/module/components/Message/MessageSimple/ReactionList.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 +25 -17
- 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/ImageUploadPreview.js +13 -13
- package/lib/module/components/MessageInput/ImageUploadPreview.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/components/MessageInput/UploadProgressIndicator.js.map +1 -1
- package/lib/module/components/MessageList/InlineUnreadIndicator.js +13 -11
- package/lib/module/components/MessageList/InlineUnreadIndicator.js.map +1 -1
- package/lib/module/components/MessageOverlay/MessageActionList.js +8 -14
- package/lib/module/components/MessageOverlay/MessageActionList.js.map +1 -1
- package/lib/module/components/MessageOverlay/MessageActionListItem.js +11 -8
- package/lib/module/components/MessageOverlay/MessageActionListItem.js.map +1 -1
- package/lib/module/components/MessageOverlay/MessageOverlay.js +32 -29
- package/lib/module/components/MessageOverlay/MessageOverlay.js.map +1 -1
- package/lib/module/components/Thread/components/ThreadFooterComponent.js +17 -15
- package/lib/module/components/Thread/components/ThreadFooterComponent.js.map +1 -1
- package/lib/module/contexts/channelContext/ChannelContext.js +2 -2
- package/lib/module/contexts/channelContext/ChannelContext.js.map +1 -1
- package/lib/module/contexts/messageInputContext/MessageInputContext.js +66 -45
- package/lib/module/contexts/messageInputContext/MessageInputContext.js.map +1 -1
- package/lib/module/contexts/messageInputContext/hooks/useCreateMessageInputContext.js +2 -2
- package/lib/module/contexts/messageInputContext/hooks/useCreateMessageInputContext.js.map +1 -1
- package/lib/module/contexts/messageInputContext/hooks/useMessageDetailsForState.js.map +1 -1
- package/lib/module/contexts/messagesContext/MessagesContext.js.map +1 -1
- package/lib/module/contexts/themeContext/utils/theme.js +1 -4
- package/lib/module/contexts/themeContext/utils/theme.js.map +1 -1
- package/lib/module/hooks/index.js +11 -0
- package/lib/module/hooks/index.js.map +1 -1
- package/lib/module/hooks/useViewport.js +47 -0
- package/lib/module/hooks/useViewport.js.map +1 -0
- package/lib/module/i18n/en.json +5 -0
- package/lib/module/i18n/es.json +6 -1
- package/lib/module/i18n/fr.json +20 -15
- package/lib/module/i18n/he.json +6 -1
- package/lib/module/i18n/hi.json +20 -15
- package/lib/module/i18n/it.json +20 -15
- package/lib/module/i18n/ja.json +6 -1
- package/lib/module/i18n/ko.json +6 -1
- package/lib/module/i18n/nl.json +20 -15
- package/lib/module/i18n/ru.json +20 -15
- package/lib/module/i18n/tr.json +20 -15
- package/lib/module/native.js.map +1 -1
- package/lib/module/types/types.js.map +1 -1
- package/lib/module/utils/compressImage.js +37 -0
- package/lib/module/utils/compressImage.js.map +1 -0
- package/lib/module/utils/utils.js +1 -15
- package/lib/module/utils/utils.js.map +1 -1
- package/lib/module/version.json +1 -1
- package/lib/typescript/components/Attachment/AudioAttachment.d.ts +1 -1
- package/lib/typescript/components/Channel/hooks/useCreateChannelContext.d.ts +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/components/Message/hooks/useMessageActionHandlers.d.ts +1 -1
- package/lib/typescript/components/Message/hooks/useMessageActions.d.ts +1 -1
- package/lib/typescript/components/MessageInput/UploadProgressIndicator.d.ts +5 -2
- package/lib/typescript/contexts/channelContext/ChannelContext.d.ts +5 -0
- package/lib/typescript/contexts/messageContext/MessageContext.d.ts +1 -1
- package/lib/typescript/contexts/messageInputContext/MessageInputContext.d.ts +3 -23
- package/lib/typescript/contexts/messageInputContext/hooks/useMessageDetailsForState.d.ts +2 -2
- package/lib/typescript/contexts/messagesContext/MessagesContext.d.ts +2 -2
- package/lib/typescript/contexts/themeContext/utils/theme.d.ts +1 -3
- package/lib/typescript/hooks/index.d.ts +1 -0
- package/lib/typescript/hooks/useViewport.d.ts +11 -0
- package/lib/typescript/i18n/en.json +5 -0
- package/lib/typescript/i18n/es.json +6 -1
- package/lib/typescript/i18n/fr.json +20 -15
- package/lib/typescript/i18n/he.json +6 -1
- package/lib/typescript/i18n/hi.json +20 -15
- package/lib/typescript/i18n/it.json +20 -15
- package/lib/typescript/i18n/ja.json +6 -1
- package/lib/typescript/i18n/ko.json +6 -1
- package/lib/typescript/i18n/nl.json +20 -15
- package/lib/typescript/i18n/ru.json +20 -15
- package/lib/typescript/i18n/tr.json +20 -15
- package/lib/typescript/native.d.ts +2 -0
- package/lib/typescript/store/mappers/mapStorableToChannel.d.ts +1 -1
- package/lib/typescript/types/types.d.ts +27 -10
- package/lib/typescript/utils/Streami18n.d.ts +5 -5
- package/lib/typescript/utils/compressImage.d.ts +8 -0
- package/lib/typescript/utils/utils.d.ts +0 -2
- package/package.json +2 -2
- package/src/components/Attachment/AudioAttachment.tsx +2 -1
- package/src/components/Attachment/FileAttachment.tsx +12 -3
- package/src/components/AttachmentPicker/AttachmentPicker.tsx +4 -2
- package/src/components/AttachmentPicker/components/AttachmentPickerItem.tsx +7 -5
- package/src/components/AttachmentPicker/components/AttachmentSelectionBar.tsx +13 -1
- package/src/components/Channel/Channel.tsx +32 -8
- package/src/components/Channel/hooks/useCreateChannelContext.ts +2 -0
- package/src/components/Channel/hooks/useCreateInputMessageInputContext.ts +2 -9
- package/src/components/ChannelPreview/ChannelPreviewMessenger.tsx +4 -3
- package/src/components/ChannelPreview/hooks/useChannelPreviewDisplayName.ts +4 -3
- package/src/components/ImageGallery/ImageGallery.tsx +9 -19
- package/src/components/ImageGallery/components/AnimatedGalleryImage.tsx +5 -3
- package/src/components/ImageGallery/components/AnimatedGalleryVideo.tsx +5 -3
- package/src/components/ImageGallery/components/ImageGrid.tsx +2 -1
- package/src/components/Indicators/EmptyStateIndicator.tsx +8 -7
- package/src/components/Message/MessageSimple/MessageContent.tsx +3 -1
- package/src/components/Message/MessageSimple/ReactionList.tsx +2 -1
- 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 +12 -2
- package/src/components/MessageInput/FileUploadPreview.tsx +17 -3
- package/src/components/MessageInput/ImageUploadPreview.tsx +1 -2
- package/src/components/MessageInput/MessageInput.tsx +1 -1
- package/src/components/MessageInput/UploadProgressIndicator.tsx +2 -2
- package/src/components/MessageInput/__tests__/AudioAttachmentUploadPreviewExpo.test.tsx +1 -1
- package/src/components/MessageInput/__tests__/AudioAttachmentUploadPreviewNative.test.tsx +1 -1
- package/src/components/MessageInput/__tests__/MessageInput.test.js +2 -2
- package/src/components/MessageList/InlineUnreadIndicator.tsx +2 -1
- package/src/components/MessageOverlay/MessageActionList.tsx +3 -11
- package/src/components/MessageOverlay/MessageActionListItem.tsx +5 -2
- package/src/components/MessageOverlay/MessageOverlay.tsx +5 -3
- package/src/components/Thread/components/ThreadFooterComponent.tsx +2 -1
- package/src/contexts/channelContext/ChannelContext.tsx +5 -0
- package/src/contexts/messageInputContext/MessageInputContext.tsx +81 -69
- package/src/contexts/messageInputContext/__tests__/__snapshots__/sendMessage.test.tsx.snap +3 -3
- package/src/contexts/messageInputContext/hooks/useCreateMessageInputContext.ts +2 -2
- package/src/contexts/messageInputContext/hooks/useMessageDetailsForState.ts +2 -2
- package/src/contexts/messagesContext/MessagesContext.tsx +2 -2
- package/src/contexts/themeContext/utils/theme.ts +2 -7
- package/src/hooks/index.ts +1 -0
- package/src/hooks/useViewport.ts +41 -0
- package/src/i18n/en.json +5 -0
- package/src/i18n/es.json +6 -1
- package/src/i18n/fr.json +20 -15
- package/src/i18n/he.json +6 -1
- package/src/i18n/hi.json +20 -15
- package/src/i18n/it.json +20 -15
- package/src/i18n/ja.json +6 -1
- package/src/i18n/ko.json +6 -1
- package/src/i18n/nl.json +20 -15
- package/src/i18n/ru.json +20 -15
- package/src/i18n/tr.json +20 -15
- package/src/native.ts +5 -1
- package/src/types/types.ts +29 -10
- package/src/utils/compressImage.ts +32 -0
- package/src/utils/utils.ts +0 -13
- package/src/version.json +1 -1
|
@@ -35,8 +35,16 @@ import type { MoreOptionsButtonProps } from '../../components/MessageInput/MoreO
|
|
|
35
35
|
import type { SendButtonProps } from '../../components/MessageInput/SendButton';
|
|
36
36
|
import type { UploadProgressIndicatorProps } from '../../components/MessageInput/UploadProgressIndicator';
|
|
37
37
|
import type { MessageType } from '../../components/MessageList/hooks/useMessageList';
|
|
38
|
-
import {
|
|
39
|
-
import type {
|
|
38
|
+
import { pickDocument } from '../../native';
|
|
39
|
+
import type {
|
|
40
|
+
Asset,
|
|
41
|
+
DefaultStreamChatGenerics,
|
|
42
|
+
File,
|
|
43
|
+
FileUpload,
|
|
44
|
+
ImageUpload,
|
|
45
|
+
UnknownType,
|
|
46
|
+
} from '../../types/types';
|
|
47
|
+
import { compressedImageURI } from '../../utils/compressImage';
|
|
40
48
|
import { removeReservedFields } from '../../utils/removeReservedFields';
|
|
41
49
|
import {
|
|
42
50
|
ACITriggerSettings,
|
|
@@ -58,28 +66,6 @@ import { DEFAULT_BASE_CONTEXT_VALUE } from '../utils/defaultBaseContextValue';
|
|
|
58
66
|
import { getDisplayName } from '../utils/getDisplayName';
|
|
59
67
|
import { isTestEnvironment } from '../utils/isTestEnvironment';
|
|
60
68
|
|
|
61
|
-
export type FileUpload = {
|
|
62
|
-
file: File;
|
|
63
|
-
id: string;
|
|
64
|
-
state: FileStateValue;
|
|
65
|
-
duration?: number;
|
|
66
|
-
paused?: boolean;
|
|
67
|
-
progress?: number;
|
|
68
|
-
thumb_url?: string;
|
|
69
|
-
url?: string;
|
|
70
|
-
};
|
|
71
|
-
|
|
72
|
-
export type ImageUpload = {
|
|
73
|
-
file: Partial<Asset> & {
|
|
74
|
-
name?: string;
|
|
75
|
-
};
|
|
76
|
-
id: string;
|
|
77
|
-
state: FileStateValue;
|
|
78
|
-
height?: number;
|
|
79
|
-
url?: string;
|
|
80
|
-
width?: number;
|
|
81
|
-
};
|
|
82
|
-
|
|
83
69
|
export type MentionAllAppUsersQuery<
|
|
84
70
|
StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,
|
|
85
71
|
> = {
|
|
@@ -438,7 +424,8 @@ export const MessageInputProvider = <
|
|
|
438
424
|
|
|
439
425
|
const channelCapabities = useOwnCapabilitiesContext();
|
|
440
426
|
|
|
441
|
-
const { channel, giphyEnabled } =
|
|
427
|
+
const { channel, giphyEnabled, uploadAbortControllerRef } =
|
|
428
|
+
useChannelContext<StreamChatGenerics>();
|
|
442
429
|
const { thread } = useThreadContext<StreamChatGenerics>();
|
|
443
430
|
const { t } = useTranslationContext();
|
|
444
431
|
const inputBoxRef = useRef<TextInput | null>(null);
|
|
@@ -640,20 +627,21 @@ export const MessageInputProvider = <
|
|
|
640
627
|
setText('');
|
|
641
628
|
};
|
|
642
629
|
|
|
643
|
-
const mapImageUploadToAttachment = (image: ImageUpload) => {
|
|
644
|
-
const mime_type: string | boolean = lookup(image.file.
|
|
630
|
+
const mapImageUploadToAttachment = (image: ImageUpload): Attachment<StreamChatGenerics> => {
|
|
631
|
+
const mime_type: string | boolean = lookup(image.file.name as string);
|
|
632
|
+
const name = image.file.name as string;
|
|
645
633
|
return {
|
|
646
|
-
fallback:
|
|
634
|
+
fallback: name,
|
|
647
635
|
image_url: image.url,
|
|
648
636
|
mime_type: mime_type ? mime_type : undefined,
|
|
649
637
|
original_height: image.height,
|
|
650
638
|
original_width: image.width,
|
|
651
|
-
|
|
639
|
+
originalImage: image.file,
|
|
652
640
|
type: 'image',
|
|
653
|
-
}
|
|
641
|
+
};
|
|
654
642
|
};
|
|
655
643
|
|
|
656
|
-
const mapFileUploadToAttachment = (file: FileUpload) => {
|
|
644
|
+
const mapFileUploadToAttachment = (file: FileUpload): Attachment<StreamChatGenerics> => {
|
|
657
645
|
if (file.file.mimeType?.startsWith('image/')) {
|
|
658
646
|
return {
|
|
659
647
|
fallback: file.file.name,
|
|
@@ -968,11 +956,24 @@ export const MessageInputProvider = <
|
|
|
968
956
|
if (value.doDocUploadRequest) {
|
|
969
957
|
response = await value.doDocUploadRequest(file, channel);
|
|
970
958
|
} else if (channel && file.uri) {
|
|
959
|
+
uploadAbortControllerRef.current.set(
|
|
960
|
+
file.name,
|
|
961
|
+
client.createAbortControllerForNextRequest(),
|
|
962
|
+
);
|
|
971
963
|
response = await channel.sendFile(file.uri, file.name, file.mimeType);
|
|
964
|
+
uploadAbortControllerRef.current.delete(file.name);
|
|
972
965
|
}
|
|
973
966
|
const extraData: Partial<FileUpload> = { thumb_url: response.thumb_url, url: response.file };
|
|
974
967
|
setFileUploads(getUploadSetStateAction(id, FileState.UPLOADED, extraData));
|
|
975
968
|
} catch (error: unknown) {
|
|
969
|
+
if (
|
|
970
|
+
error instanceof Error &&
|
|
971
|
+
(error.name === 'AbortError' || error.name === 'CanceledError')
|
|
972
|
+
) {
|
|
973
|
+
// nothing to do
|
|
974
|
+
uploadAbortControllerRef.current.delete(file.name);
|
|
975
|
+
return;
|
|
976
|
+
}
|
|
976
977
|
handleFileOrImageUploadError(error, false, id);
|
|
977
978
|
}
|
|
978
979
|
};
|
|
@@ -986,52 +987,55 @@ export const MessageInputProvider = <
|
|
|
986
987
|
|
|
987
988
|
let response = {} as SendFileAPIResponse;
|
|
988
989
|
|
|
990
|
+
const uri = file.uri || '';
|
|
991
|
+
const filename = file.name ?? uri.replace(/^(file:\/\/|content:\/\/)/, '');
|
|
992
|
+
|
|
989
993
|
try {
|
|
990
|
-
const
|
|
991
|
-
/**
|
|
992
|
-
* We skip compression if:
|
|
993
|
-
* - the file is from the camera as that should already be compressed
|
|
994
|
-
* - the file has no height/width value to maintain for compression
|
|
995
|
-
* - the compressImageQuality number is not present or is 1 (meaning no compression)
|
|
996
|
-
*/
|
|
997
|
-
const compressedUri = await (file.source === 'camera' ||
|
|
998
|
-
!file.height ||
|
|
999
|
-
!file.width ||
|
|
1000
|
-
typeof value.compressImageQuality !== 'number' ||
|
|
1001
|
-
value.compressImageQuality === 1
|
|
1002
|
-
? uri
|
|
1003
|
-
: compressImage({
|
|
1004
|
-
compressImageQuality: value.compressImageQuality,
|
|
1005
|
-
height: file.height,
|
|
1006
|
-
uri,
|
|
1007
|
-
width: file.width,
|
|
1008
|
-
}));
|
|
1009
|
-
const filename = file.filename ?? uri.replace(/^(file:\/\/|content:\/\/)/, '');
|
|
994
|
+
const compressedUri = await compressedImageURI(file, value.compressImageQuality);
|
|
1010
995
|
const contentType = lookup(filename) || 'multipart/form-data';
|
|
1011
996
|
if (value.doImageUploadRequest) {
|
|
1012
997
|
response = await value.doImageUploadRequest(file, channel);
|
|
1013
998
|
} else if (compressedUri && channel) {
|
|
1014
999
|
if (value.sendImageAsync) {
|
|
1015
|
-
|
|
1016
|
-
|
|
1017
|
-
|
|
1018
|
-
|
|
1019
|
-
|
|
1020
|
-
|
|
1021
|
-
|
|
1022
|
-
|
|
1023
|
-
|
|
1024
|
-
|
|
1025
|
-
|
|
1026
|
-
|
|
1027
|
-
|
|
1028
|
-
|
|
1029
|
-
|
|
1030
|
-
|
|
1031
|
-
|
|
1032
|
-
|
|
1000
|
+
uploadAbortControllerRef.current.set(
|
|
1001
|
+
filename,
|
|
1002
|
+
client.createAbortControllerForNextRequest(),
|
|
1003
|
+
);
|
|
1004
|
+
channel.sendImage(compressedUri, filename, contentType).then(
|
|
1005
|
+
(res) => {
|
|
1006
|
+
uploadAbortControllerRef.current.delete(filename);
|
|
1007
|
+
if (asyncIds.includes(id)) {
|
|
1008
|
+
// Evaluates to true if user hit send before image successfully uploaded
|
|
1009
|
+
setAsyncUploads((prevAsyncUploads) => {
|
|
1010
|
+
prevAsyncUploads[id] = {
|
|
1011
|
+
...prevAsyncUploads[id],
|
|
1012
|
+
state: FileState.UPLOADED,
|
|
1013
|
+
url: res.file,
|
|
1014
|
+
};
|
|
1015
|
+
return prevAsyncUploads;
|
|
1016
|
+
});
|
|
1017
|
+
} else {
|
|
1018
|
+
const newImageUploads = getUploadSetStateAction<ImageUpload>(
|
|
1019
|
+
id,
|
|
1020
|
+
FileState.UPLOADED,
|
|
1021
|
+
{
|
|
1022
|
+
url: res.file,
|
|
1023
|
+
},
|
|
1024
|
+
);
|
|
1025
|
+
setImageUploads(newImageUploads);
|
|
1026
|
+
}
|
|
1027
|
+
},
|
|
1028
|
+
() => {
|
|
1029
|
+
uploadAbortControllerRef.current.delete(filename);
|
|
1030
|
+
},
|
|
1031
|
+
);
|
|
1033
1032
|
} else {
|
|
1033
|
+
uploadAbortControllerRef.current.set(
|
|
1034
|
+
filename,
|
|
1035
|
+
client.createAbortControllerForNextRequest(),
|
|
1036
|
+
);
|
|
1034
1037
|
response = await channel.sendImage(compressedUri, filename, contentType);
|
|
1038
|
+
uploadAbortControllerRef.current.delete(filename);
|
|
1035
1039
|
}
|
|
1036
1040
|
}
|
|
1037
1041
|
|
|
@@ -1044,6 +1048,14 @@ export const MessageInputProvider = <
|
|
|
1044
1048
|
setImageUploads(newImageUploads);
|
|
1045
1049
|
}
|
|
1046
1050
|
} catch (error) {
|
|
1051
|
+
if (
|
|
1052
|
+
error instanceof Error &&
|
|
1053
|
+
(error.name === 'AbortError' || error.name === 'CanceledError')
|
|
1054
|
+
) {
|
|
1055
|
+
// nothing to do
|
|
1056
|
+
uploadAbortControllerRef.current.delete(filename);
|
|
1057
|
+
return;
|
|
1058
|
+
}
|
|
1047
1059
|
handleFileOrImageUploadError(error, true, id);
|
|
1048
1060
|
}
|
|
1049
1061
|
};
|
|
@@ -7,7 +7,7 @@ Object {
|
|
|
7
7
|
"fallback": undefined,
|
|
8
8
|
"image_url": undefined,
|
|
9
9
|
"mime_type": undefined,
|
|
10
|
-
"
|
|
10
|
+
"originalImage": Object {
|
|
11
11
|
"uri": "http://www.jackblack.com/tenac_iousd.bmp",
|
|
12
12
|
},
|
|
13
13
|
"original_height": undefined,
|
|
@@ -106,7 +106,7 @@ Object {
|
|
|
106
106
|
"fallback": undefined,
|
|
107
107
|
"image_url": undefined,
|
|
108
108
|
"mime_type": undefined,
|
|
109
|
-
"
|
|
109
|
+
"originalImage": Object {
|
|
110
110
|
"uri": "http://www.jackblack.com/tenac_iousd.bmp",
|
|
111
111
|
},
|
|
112
112
|
"original_height": undefined,
|
|
@@ -117,7 +117,7 @@ Object {
|
|
|
117
117
|
"fallback": undefined,
|
|
118
118
|
"image_url": undefined,
|
|
119
119
|
"mime_type": undefined,
|
|
120
|
-
"
|
|
120
|
+
"originalImage": Object {
|
|
121
121
|
"uri": "http://www.jackblack.com/tenac_iousd.bmp",
|
|
122
122
|
},
|
|
123
123
|
"original_height": undefined,
|
|
@@ -95,7 +95,7 @@ export const useCreateMessageInputContext = <
|
|
|
95
95
|
UploadProgressIndicator,
|
|
96
96
|
}: MessageInputContextValue<StreamChatGenerics> &
|
|
97
97
|
Pick<ThreadContextValue<StreamChatGenerics>, 'thread'>) => {
|
|
98
|
-
const
|
|
98
|
+
const editingdep = typeof editing === 'boolean' ? editing : editing?.id;
|
|
99
99
|
const fileUploadsValue = fileUploads
|
|
100
100
|
.map(({ duration, paused, progress, state }) => `${state},${paused},${progress},${duration}`)
|
|
101
101
|
.join();
|
|
@@ -198,7 +198,7 @@ export const useCreateMessageInputContext = <
|
|
|
198
198
|
}),
|
|
199
199
|
[
|
|
200
200
|
cooldownEndsAt,
|
|
201
|
-
|
|
201
|
+
editingdep,
|
|
202
202
|
fileUploadsValue,
|
|
203
203
|
giphyActive,
|
|
204
204
|
imageUploadsValue,
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import { useEffect, useState } from 'react';
|
|
2
2
|
|
|
3
|
-
import type { DefaultStreamChatGenerics } from '../../../types/types';
|
|
3
|
+
import type { DefaultStreamChatGenerics, FileUpload, ImageUpload } from '../../../types/types';
|
|
4
4
|
import { generateRandomId } from '../../../utils/utils';
|
|
5
5
|
|
|
6
|
-
import type {
|
|
6
|
+
import type { MessageInputContextValue } from '../MessageInputContext';
|
|
7
7
|
|
|
8
8
|
export const isEditingBoolean = <
|
|
9
9
|
StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,
|
|
@@ -234,8 +234,8 @@ export type MessagesContextValue<
|
|
|
234
234
|
*/
|
|
235
235
|
ScrollToBottomButton: React.ComponentType<ScrollToBottomButtonProps>;
|
|
236
236
|
sendReaction: (type: string, messageId: string) => Promise<void>;
|
|
237
|
-
setEditingState: (message: MessageType<StreamChatGenerics>) => void;
|
|
238
|
-
setQuotedMessageState: (message: MessageType<StreamChatGenerics>) => void;
|
|
237
|
+
setEditingState: (message: MessageType<StreamChatGenerics> | boolean) => void;
|
|
238
|
+
setQuotedMessageState: (message: MessageType<StreamChatGenerics> | boolean) => void;
|
|
239
239
|
supportedReactions: ReactionData[];
|
|
240
240
|
/**
|
|
241
241
|
* UI component for TypingIndicator
|
|
@@ -2,7 +2,6 @@ import type { ImageStyle, TextStyle, ViewStyle } from 'react-native';
|
|
|
2
2
|
import type { CircleProps, Color, StopProps } from 'react-native-svg';
|
|
3
3
|
|
|
4
4
|
import type { IconProps } from '../../../icons/utils/base';
|
|
5
|
-
import { vh } from '../../../utils/utils';
|
|
6
5
|
|
|
7
6
|
export const DEFAULT_STATUS_ICON_SIZE = 16;
|
|
8
7
|
|
|
@@ -302,9 +301,6 @@ export type Theme = {
|
|
|
302
301
|
iconContainer: ViewStyle;
|
|
303
302
|
title: TextStyle;
|
|
304
303
|
};
|
|
305
|
-
container: ViewStyle & {
|
|
306
|
-
maxHeight: number;
|
|
307
|
-
};
|
|
308
304
|
emoji: {
|
|
309
305
|
container: ViewStyle;
|
|
310
306
|
text: TextStyle;
|
|
@@ -480,6 +476,7 @@ export type Theme = {
|
|
|
480
476
|
};
|
|
481
477
|
reactionList: {
|
|
482
478
|
container: ViewStyle;
|
|
479
|
+
iconFillColor: Color;
|
|
483
480
|
middleIcon: ViewStyle;
|
|
484
481
|
radius: number;
|
|
485
482
|
reactionBubble: ViewStyle;
|
|
@@ -809,9 +806,6 @@ export const defaultTheme: Theme = {
|
|
|
809
806
|
iconContainer: {},
|
|
810
807
|
title: {},
|
|
811
808
|
},
|
|
812
|
-
container: {
|
|
813
|
-
maxHeight: vh(25),
|
|
814
|
-
},
|
|
815
809
|
emoji: {
|
|
816
810
|
container: {},
|
|
817
811
|
text: {},
|
|
@@ -1019,6 +1013,7 @@ export const defaultTheme: Theme = {
|
|
|
1019
1013
|
},
|
|
1020
1014
|
reactionList: {
|
|
1021
1015
|
container: {},
|
|
1016
|
+
iconFillColor: '',
|
|
1022
1017
|
middleIcon: {},
|
|
1023
1018
|
radius: 2, // not recommended to change this
|
|
1024
1019
|
reactionBubble: {},
|
package/src/hooks/index.ts
CHANGED
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
import { useEffect, useMemo, useState } from 'react';
|
|
2
|
+
import { Dimensions } from 'react-native';
|
|
3
|
+
|
|
4
|
+
/**
|
|
5
|
+
* A custom hook that provides functions to calculate dimensions based on
|
|
6
|
+
* a percentage of the viewport height (vh) and viewport width (vw). It
|
|
7
|
+
* dynamically updates dimensions on changes in device orientation.
|
|
8
|
+
*
|
|
9
|
+
* @returns {Object} An object containing functions vh and vw.
|
|
10
|
+
*/
|
|
11
|
+
export const useViewport = (rounded?: boolean) => {
|
|
12
|
+
const [viewportDimensions, setViewportDimensions] = useState(Dimensions.get('window'));
|
|
13
|
+
|
|
14
|
+
useEffect(() => {
|
|
15
|
+
const subscriptions = Dimensions.addEventListener('change', ({ window }) => {
|
|
16
|
+
setViewportDimensions((prev) => {
|
|
17
|
+
const { height, width } = window;
|
|
18
|
+
if (prev.height !== height || prev.width !== width) {
|
|
19
|
+
return window;
|
|
20
|
+
}
|
|
21
|
+
return prev;
|
|
22
|
+
});
|
|
23
|
+
});
|
|
24
|
+
|
|
25
|
+
return () => subscriptions?.remove();
|
|
26
|
+
}, []);
|
|
27
|
+
|
|
28
|
+
const vw = (percentageWidth: number) => {
|
|
29
|
+
const value = viewportDimensions.width * (percentageWidth / 100);
|
|
30
|
+
return rounded ? Math.round(value) : value;
|
|
31
|
+
};
|
|
32
|
+
|
|
33
|
+
const vh = (percentageHeight: number) => {
|
|
34
|
+
const value = viewportDimensions.height * (percentageHeight / 100);
|
|
35
|
+
return rounded ? Math.round(value) : value;
|
|
36
|
+
};
|
|
37
|
+
|
|
38
|
+
const viewportFunctions = useMemo(() => ({ vh, vw }), [vh, vw]);
|
|
39
|
+
|
|
40
|
+
return viewportFunctions;
|
|
41
|
+
};
|
package/src/i18n/en.json
CHANGED
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
"1 Reply": "1 Reply",
|
|
3
3
|
"1 Thread Reply": "1 Thread Reply",
|
|
4
4
|
"Allow access to your Gallery": "Allow access to your Gallery",
|
|
5
|
+
"Allow camera access in device settings": "Allow camera access in device settings",
|
|
5
6
|
"Also send to channel": "Also send to channel",
|
|
6
7
|
"Are you sure you want to permanently delete this message?": "Are you sure you want to permanently delete this message?",
|
|
7
8
|
"Block User": "Block User",
|
|
@@ -10,6 +11,7 @@
|
|
|
10
11
|
"Copy Message": "Copy Message",
|
|
11
12
|
"Delete": "Delete",
|
|
12
13
|
"Delete Message": "Delete Message",
|
|
14
|
+
"Device camera is used to take photos or videos.": "Device camera is used to take photos or videos.",
|
|
13
15
|
"Do you want to send a copy of this message to a moderator for further investigation?": "Do you want to send a copy of this message to a moderator for further investigation?",
|
|
14
16
|
"Edit Message": "Edit Message",
|
|
15
17
|
"Editing Message": "Editing Message",
|
|
@@ -23,7 +25,9 @@
|
|
|
23
25
|
"Flag": "Flag",
|
|
24
26
|
"Flag Message": "Flag Message",
|
|
25
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
|
+
"How about sending your first message to a friend?": "How about sending your first message to a friend?",
|
|
26
29
|
"Instant Commands": "Instant Commands",
|
|
30
|
+
"Let's start chatting!": "Let's start chatting!",
|
|
27
31
|
"Links are disabled": "Links are disabled",
|
|
28
32
|
"Loading channels...": "Loading channels...",
|
|
29
33
|
"Loading messages...": "Loading messages...",
|
|
@@ -37,6 +41,7 @@
|
|
|
37
41
|
"Nothing yet...": "Nothing yet...",
|
|
38
42
|
"Ok": "Ok",
|
|
39
43
|
"Only visible to you": "Only visible to you",
|
|
44
|
+
"Open Settings": "Open Settings",
|
|
40
45
|
"Photo": "Photo",
|
|
41
46
|
"Photos and Videos": "Photos and Videos",
|
|
42
47
|
"Pin to Conversation": "Pin to Conversation",
|
package/src/i18n/es.json
CHANGED
|
@@ -68,5 +68,10 @@
|
|
|
68
68
|
"{{ user }} is typing": "{{ user }} está escribiendo",
|
|
69
69
|
"Select More Photos": "Seleccionar más fotos",
|
|
70
70
|
"🏙 Attachment...": "🏙 Adjunto...",
|
|
71
|
-
"Maximum file size upload limit reached. Please upload a file below {{MAX_FILE_SIZE_TO_UPLOAD_IN_MB}} MB.": "El archivo supera el tamaño máximo permitido. Por favor, selecciona un archivo menor a {{MAX_FILE_SIZE_TO_UPLOAD_IN_MB}} MB."
|
|
71
|
+
"Maximum file size upload limit reached. Please upload a file below {{MAX_FILE_SIZE_TO_UPLOAD_IN_MB}} MB.": "El archivo supera el tamaño máximo permitido. Por favor, selecciona un archivo menor a {{MAX_FILE_SIZE_TO_UPLOAD_IN_MB}} MB.",
|
|
72
|
+
"Let's start chatting!": "¡Empecemos a charlar!",
|
|
73
|
+
"How about sending your first message to a friend?": "¿Qué tal enviar tu primer mensaje a un amigo?",
|
|
74
|
+
"Allow camera access in device settings": "Permitir el acceso a la cámara en la configuración del dispositivo",
|
|
75
|
+
"Device camera is used to take photos or videos.": "La cámara del dispositivo se utiliza para tomar fotografías o vídeos.",
|
|
76
|
+
"Open Settings": "Configuración abierta"
|
|
72
77
|
}
|
package/src/i18n/fr.json
CHANGED
|
@@ -1,8 +1,9 @@
|
|
|
1
1
|
{
|
|
2
|
-
"1 Reply": "
|
|
3
|
-
"1 Thread Reply": "
|
|
4
|
-
"Allow access to your Gallery": "
|
|
5
|
-
"
|
|
2
|
+
"1 Reply": "",
|
|
3
|
+
"1 Thread Reply": "",
|
|
4
|
+
"Allow access to your Gallery": "",
|
|
5
|
+
"Allow camera access in device settings": "",
|
|
6
|
+
"Also send to channel": "Envoyer également à la chaîne",
|
|
6
7
|
"Are you sure you want to permanently delete this message?": "",
|
|
7
8
|
"Block User": "",
|
|
8
9
|
"Cancel": "",
|
|
@@ -10,10 +11,11 @@
|
|
|
10
11
|
"Copy Message": "",
|
|
11
12
|
"Delete": "",
|
|
12
13
|
"Delete Message": "",
|
|
14
|
+
"Device camera is used to take photos or videos.": "",
|
|
13
15
|
"Do you want to send a copy of this message to a moderator for further investigation?": "",
|
|
14
16
|
"Edit Message": "",
|
|
15
17
|
"Editing Message": "",
|
|
16
|
-
"Emoji matching": "",
|
|
18
|
+
"Emoji matching": "Correspondance Emoji",
|
|
17
19
|
"Empty message...": "",
|
|
18
20
|
"Error loading": "",
|
|
19
21
|
"Error loading channel list...": "",
|
|
@@ -23,13 +25,15 @@
|
|
|
23
25
|
"Flag": "",
|
|
24
26
|
"Flag Message": "",
|
|
25
27
|
"Flag action failed either due to a network issue or the message is already flagged": "",
|
|
26
|
-
"
|
|
28
|
+
"How about sending your first message to a friend?": "",
|
|
29
|
+
"Instant Commands": "Commandes Instantanées",
|
|
30
|
+
"Let's start chatting!": "",
|
|
27
31
|
"Links are disabled": "",
|
|
28
32
|
"Loading channels...": "",
|
|
29
33
|
"Loading messages...": "",
|
|
30
34
|
"Loading...": "",
|
|
31
35
|
"Maximum file size upload limit reached. Please upload a file below {{MAX_FILE_SIZE_TO_UPLOAD_IN_MB}} MB.": "",
|
|
32
|
-
"Message Reactions": "
|
|
36
|
+
"Message Reactions": "",
|
|
33
37
|
"Message deleted": "",
|
|
34
38
|
"Message flagged": "",
|
|
35
39
|
"Mute User": "",
|
|
@@ -37,25 +41,26 @@
|
|
|
37
41
|
"Nothing yet...": "",
|
|
38
42
|
"Ok": "",
|
|
39
43
|
"Only visible to you": "Seulement visible par vous",
|
|
44
|
+
"Open Settings": "",
|
|
40
45
|
"Photo": "Photo",
|
|
41
|
-
"Photos and Videos": "
|
|
46
|
+
"Photos and Videos": "",
|
|
42
47
|
"Pin to Conversation": "",
|
|
43
|
-
"Pinned by": "
|
|
44
|
-
"Please enable access to your photos and videos so you can share them.": "
|
|
48
|
+
"Pinned by": "",
|
|
49
|
+
"Please enable access to your photos and videos so you can share them.": "",
|
|
45
50
|
"Please select a channel first": "",
|
|
46
51
|
"Reconnecting...": "",
|
|
47
52
|
"Reply": "",
|
|
48
53
|
"Reply to Message": "",
|
|
49
54
|
"Resend": "",
|
|
50
55
|
"Search GIFs": "",
|
|
51
|
-
"Select More Photos": "
|
|
56
|
+
"Select More Photos": "",
|
|
52
57
|
"Send a message": "",
|
|
53
58
|
"Sending links is not allowed in this conversation": "",
|
|
54
59
|
"Slow mode ON": "",
|
|
55
60
|
"The message has been reported to a moderator.": "",
|
|
56
61
|
"Thread Reply": "",
|
|
57
62
|
"Unblock User": "",
|
|
58
|
-
"Unknown User": "
|
|
63
|
+
"Unknown User": "",
|
|
59
64
|
"Unmute User": "",
|
|
60
65
|
"Unpin from Conversation": "",
|
|
61
66
|
"Unread Messages": "Messages non lus",
|
|
@@ -63,9 +68,9 @@
|
|
|
63
68
|
"You": "",
|
|
64
69
|
"You can't send messages in this channel": "",
|
|
65
70
|
"{{ firstUser }} and {{ nonSelfUserLength }} more are typing": "{{ firstUser }} et {{ nonSelfUserLength }} autres sont en train d'écrire",
|
|
66
|
-
"{{ index }} of {{ photoLength }}": "
|
|
67
|
-
"{{ replyCount }} Replies": "
|
|
68
|
-
"{{ replyCount }} Thread Replies": "
|
|
71
|
+
"{{ index }} of {{ photoLength }}": "",
|
|
72
|
+
"{{ replyCount }} Replies": "",
|
|
73
|
+
"{{ replyCount }} Thread Replies": "",
|
|
69
74
|
"{{ user }} is typing": "{{ user }} est en train d'écrire",
|
|
70
75
|
"🏙 Attachment...": ""
|
|
71
76
|
}
|
package/src/i18n/he.json
CHANGED
|
@@ -68,5 +68,10 @@
|
|
|
68
68
|
"{{ user }} is typing": "{{ user }} מקליד/ה",
|
|
69
69
|
"Select More Photos": "בחר עוד תמונות",
|
|
70
70
|
"🏙 Attachment...": "🏙 קובץ מצורף...",
|
|
71
|
-
"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}} MB"
|
|
71
|
+
"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}} MB",
|
|
72
|
+
"Let's start chatting!": "בואו נתחיל לשוחח!",
|
|
73
|
+
"How about sending your first message to a friend?": "מה דעתך לשלוח את ההודעה הראשונה שלך לחבר?",
|
|
74
|
+
"Allow camera access in device settings": "אפשר גישה למצלמה בהגדרות המכשיר",
|
|
75
|
+
"Device camera is used to take photos or videos.": "מצלמת המכשיר משמשת לצילום תמונות או סרטונים.",
|
|
76
|
+
"Open Settings": "פתח את ההגדרות"
|
|
72
77
|
}
|
package/src/i18n/hi.json
CHANGED
|
@@ -1,8 +1,9 @@
|
|
|
1
1
|
{
|
|
2
|
-
"1 Reply": "
|
|
3
|
-
"1 Thread Reply": "
|
|
4
|
-
"Allow access to your Gallery": "
|
|
5
|
-
"
|
|
2
|
+
"1 Reply": "",
|
|
3
|
+
"1 Thread Reply": "",
|
|
4
|
+
"Allow access to your Gallery": "",
|
|
5
|
+
"Allow camera access in device settings": "",
|
|
6
|
+
"Also send to channel": "चैनल को भी भेजें",
|
|
6
7
|
"Are you sure you want to permanently delete this message?": "",
|
|
7
8
|
"Block User": "",
|
|
8
9
|
"Cancel": "",
|
|
@@ -10,10 +11,11 @@
|
|
|
10
11
|
"Copy Message": "",
|
|
11
12
|
"Delete": "",
|
|
12
13
|
"Delete Message": "",
|
|
14
|
+
"Device camera is used to take photos or videos.": "",
|
|
13
15
|
"Do you want to send a copy of this message to a moderator for further investigation?": "",
|
|
14
16
|
"Edit Message": "",
|
|
15
17
|
"Editing Message": "",
|
|
16
|
-
"Emoji matching": "",
|
|
18
|
+
"Emoji matching": "इमोजी मिलान",
|
|
17
19
|
"Empty message...": "",
|
|
18
20
|
"Error loading": "",
|
|
19
21
|
"Error loading channel list...": "",
|
|
@@ -23,13 +25,15 @@
|
|
|
23
25
|
"Flag": "",
|
|
24
26
|
"Flag Message": "",
|
|
25
27
|
"Flag action failed either due to a network issue or the message is already flagged": "",
|
|
26
|
-
"
|
|
28
|
+
"How about sending your first message to a friend?": "",
|
|
29
|
+
"Instant Commands": "त्वरित कमांड",
|
|
30
|
+
"Let's start chatting!": "",
|
|
27
31
|
"Links are disabled": "",
|
|
28
32
|
"Loading channels...": "",
|
|
29
33
|
"Loading messages...": "",
|
|
30
34
|
"Loading...": "",
|
|
31
35
|
"Maximum file size upload limit reached. Please upload a file below {{MAX_FILE_SIZE_TO_UPLOAD_IN_MB}} MB.": "",
|
|
32
|
-
"Message Reactions": "
|
|
36
|
+
"Message Reactions": "",
|
|
33
37
|
"Message deleted": "",
|
|
34
38
|
"Message flagged": "",
|
|
35
39
|
"Mute User": "",
|
|
@@ -37,25 +41,26 @@
|
|
|
37
41
|
"Nothing yet...": "",
|
|
38
42
|
"Ok": "",
|
|
39
43
|
"Only visible to you": "केवल आपको दिखाई दे रहा है",
|
|
44
|
+
"Open Settings": "",
|
|
40
45
|
"Photo": "तस्वीर",
|
|
41
|
-
"Photos and Videos": "
|
|
46
|
+
"Photos and Videos": "",
|
|
42
47
|
"Pin to Conversation": "",
|
|
43
|
-
"Pinned by": "
|
|
44
|
-
"Please enable access to your photos and videos so you can share them.": "
|
|
48
|
+
"Pinned by": "",
|
|
49
|
+
"Please enable access to your photos and videos so you can share them.": "",
|
|
45
50
|
"Please select a channel first": "",
|
|
46
51
|
"Reconnecting...": "",
|
|
47
52
|
"Reply": "",
|
|
48
53
|
"Reply to Message": "",
|
|
49
54
|
"Resend": "",
|
|
50
55
|
"Search GIFs": "",
|
|
51
|
-
"Select More Photos": "
|
|
56
|
+
"Select More Photos": "",
|
|
52
57
|
"Send a message": "",
|
|
53
58
|
"Sending links is not allowed in this conversation": "",
|
|
54
59
|
"Slow mode ON": "",
|
|
55
60
|
"The message has been reported to a moderator.": "",
|
|
56
61
|
"Thread Reply": "",
|
|
57
62
|
"Unblock User": "",
|
|
58
|
-
"Unknown User": "
|
|
63
|
+
"Unknown User": "",
|
|
59
64
|
"Unmute User": "",
|
|
60
65
|
"Unpin from Conversation": "",
|
|
61
66
|
"Unread Messages": "अपठित संदेश",
|
|
@@ -63,9 +68,9 @@
|
|
|
63
68
|
"You": "",
|
|
64
69
|
"You can't send messages in this channel": "",
|
|
65
70
|
"{{ firstUser }} and {{ nonSelfUserLength }} more are typing": "{{ firstUser }} और {{ nonSelfUserLength }} अधिक टाइप कर रहे हैं",
|
|
66
|
-
"{{ index }} of {{ photoLength }}": "
|
|
67
|
-
"{{ replyCount }} Replies": "
|
|
68
|
-
"{{ replyCount }} Thread Replies": "
|
|
71
|
+
"{{ index }} of {{ photoLength }}": "",
|
|
72
|
+
"{{ replyCount }} Replies": "",
|
|
73
|
+
"{{ replyCount }} Thread Replies": "",
|
|
69
74
|
"{{ user }} is typing": "{{ user }} टाइप कर रहा है",
|
|
70
75
|
"🏙 Attachment...": ""
|
|
71
76
|
}
|