stream-chat-react-native-core 9.0.2-beta.1 → 9.1.0-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/Attachment/Attachment.js +38 -10
- package/lib/commonjs/components/Attachment/Attachment.js.map +1 -1
- package/lib/commonjs/components/Attachment/AttachmentFileUploadProgressIndicator.js +97 -0
- package/lib/commonjs/components/Attachment/AttachmentFileUploadProgressIndicator.js.map +1 -0
- package/lib/commonjs/components/Attachment/AttachmentUploadIndicator.js +97 -0
- package/lib/commonjs/components/Attachment/AttachmentUploadIndicator.js.map +1 -0
- package/lib/commonjs/components/Attachment/CircularProgressIndicator.js +141 -0
- package/lib/commonjs/components/Attachment/CircularProgressIndicator.js.map +1 -0
- package/lib/commonjs/components/Attachment/FileAttachment.js +18 -4
- package/lib/commonjs/components/Attachment/FileAttachment.js.map +1 -1
- package/lib/commonjs/components/Attachment/Gallery.js +7 -1
- package/lib/commonjs/components/Attachment/Gallery.js.map +1 -1
- package/lib/commonjs/components/Attachment/MediaUploadProgressOverlay.js +59 -0
- package/lib/commonjs/components/Attachment/MediaUploadProgressOverlay.js.map +1 -0
- package/lib/commonjs/components/Attachment/VideoThumbnail.js +18 -8
- package/lib/commonjs/components/Attachment/VideoThumbnail.js.map +1 -1
- package/lib/commonjs/components/Attachment/utils/buildGallery/buildThumbnail.js +2 -0
- package/lib/commonjs/components/Attachment/utils/buildGallery/buildThumbnail.js.map +1 -1
- package/lib/commonjs/components/AttachmentPicker/components/AttachmentMediaPicker/AttachmentPickerItem.js +6 -2
- package/lib/commonjs/components/AttachmentPicker/components/AttachmentMediaPicker/AttachmentPickerItem.js.map +1 -1
- package/lib/commonjs/components/Channel/Channel.js +94 -92
- package/lib/commonjs/components/Channel/Channel.js.map +1 -1
- package/lib/commonjs/components/Chat/Chat.js +10 -1
- package/lib/commonjs/components/Chat/Chat.js.map +1 -1
- package/lib/commonjs/components/Indicators/EmptyStateIndicator.js +1 -1
- package/lib/commonjs/components/Indicators/EmptyStateIndicator.js.map +1 -1
- package/lib/commonjs/components/MessageInput/components/AttachmentPreview/AttachmentUploadProgressIndicator.js +50 -57
- package/lib/commonjs/components/MessageInput/components/AttachmentPreview/AttachmentUploadProgressIndicator.js.map +1 -1
- package/lib/commonjs/components/MessageInput/components/AttachmentPreview/AudioAttachmentUploadPreview.js +10 -6
- package/lib/commonjs/components/MessageInput/components/AttachmentPreview/AudioAttachmentUploadPreview.js.map +1 -1
- package/lib/commonjs/components/MessageInput/components/AttachmentPreview/FileAttachmentUploadPreview.js +12 -6
- package/lib/commonjs/components/MessageInput/components/AttachmentPreview/FileAttachmentUploadPreview.js.map +1 -1
- package/lib/commonjs/components/MessageInput/components/AttachmentPreview/ImageAttachmentUploadPreview.js +13 -7
- package/lib/commonjs/components/MessageInput/components/AttachmentPreview/ImageAttachmentUploadPreview.js.map +1 -1
- package/lib/commonjs/components/MessageInput/components/AttachmentPreview/VideoAttachmentUploadPreview.js +6 -2
- package/lib/commonjs/components/MessageInput/components/AttachmentPreview/VideoAttachmentUploadPreview.js.map +1 -1
- package/lib/commonjs/components/Poll/CreatePollContent.js +3 -3
- package/lib/commonjs/components/Poll/CreatePollContent.js.map +1 -1
- package/lib/commonjs/components/index.js +33 -0
- package/lib/commonjs/components/index.js.map +1 -1
- package/lib/commonjs/contexts/componentsContext/defaultComponents.js +6 -0
- package/lib/commonjs/contexts/componentsContext/defaultComponents.js.map +1 -1
- package/lib/commonjs/contexts/messageInputContext/hooks/useCreateMessageInputContext.js +3 -1
- package/lib/commonjs/contexts/messageInputContext/hooks/useCreateMessageInputContext.js.map +1 -1
- package/lib/commonjs/contexts/messageInputContext/hooks/useMessageComposerHasSendableData.js +4 -1
- package/lib/commonjs/contexts/messageInputContext/hooks/useMessageComposerHasSendableData.js.map +1 -1
- package/lib/commonjs/contexts/themeContext/utils/theme.js +5 -0
- 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/usePendingAttachmentUpload.js +106 -0
- package/lib/commonjs/hooks/usePendingAttachmentUpload.js.map +1 -0
- package/lib/commonjs/i18n/en.json +8 -0
- package/lib/commonjs/i18n/es.json +8 -0
- package/lib/commonjs/i18n/fr.json +8 -0
- package/lib/commonjs/i18n/he.json +8 -0
- package/lib/commonjs/i18n/hi.json +8 -0
- package/lib/commonjs/i18n/it.json +8 -0
- package/lib/commonjs/i18n/ja.json +8 -0
- package/lib/commonjs/i18n/ko.json +8 -0
- package/lib/commonjs/i18n/nl.json +8 -0
- package/lib/commonjs/i18n/pt-br.json +8 -0
- package/lib/commonjs/i18n/ru.json +8 -0
- package/lib/commonjs/i18n/tr.json +8 -0
- package/lib/commonjs/index.js +12 -0
- package/lib/commonjs/index.js.map +1 -1
- package/lib/commonjs/middlewares/attachments.js +2 -0
- package/lib/commonjs/middlewares/attachments.js.map +1 -1
- package/lib/commonjs/native.js +8 -1
- package/lib/commonjs/native.js.map +1 -1
- package/lib/commonjs/nativeMultipartUpload.js +237 -0
- package/lib/commonjs/nativeMultipartUpload.js.map +1 -0
- package/lib/commonjs/types/types.js.map +1 -1
- package/lib/commonjs/utils/installNativeMultipartAdapter.js +223 -0
- package/lib/commonjs/utils/installNativeMultipartAdapter.js.map +1 -0
- package/lib/commonjs/utils/utils.js +2 -2
- package/lib/commonjs/utils/utils.js.map +1 -1
- package/lib/commonjs/version.json +1 -1
- package/lib/module/components/Attachment/Attachment.js +38 -10
- package/lib/module/components/Attachment/Attachment.js.map +1 -1
- package/lib/module/components/Attachment/AttachmentFileUploadProgressIndicator.js +97 -0
- package/lib/module/components/Attachment/AttachmentFileUploadProgressIndicator.js.map +1 -0
- package/lib/module/components/Attachment/AttachmentUploadIndicator.js +97 -0
- package/lib/module/components/Attachment/AttachmentUploadIndicator.js.map +1 -0
- package/lib/module/components/Attachment/CircularProgressIndicator.js +141 -0
- package/lib/module/components/Attachment/CircularProgressIndicator.js.map +1 -0
- package/lib/module/components/Attachment/FileAttachment.js +18 -4
- package/lib/module/components/Attachment/FileAttachment.js.map +1 -1
- package/lib/module/components/Attachment/Gallery.js +7 -1
- package/lib/module/components/Attachment/Gallery.js.map +1 -1
- package/lib/module/components/Attachment/MediaUploadProgressOverlay.js +59 -0
- package/lib/module/components/Attachment/MediaUploadProgressOverlay.js.map +1 -0
- package/lib/module/components/Attachment/VideoThumbnail.js +18 -8
- package/lib/module/components/Attachment/VideoThumbnail.js.map +1 -1
- package/lib/module/components/Attachment/utils/buildGallery/buildThumbnail.js +2 -0
- package/lib/module/components/Attachment/utils/buildGallery/buildThumbnail.js.map +1 -1
- package/lib/module/components/AttachmentPicker/components/AttachmentMediaPicker/AttachmentPickerItem.js +6 -2
- package/lib/module/components/AttachmentPicker/components/AttachmentMediaPicker/AttachmentPickerItem.js.map +1 -1
- package/lib/module/components/Channel/Channel.js +94 -92
- package/lib/module/components/Channel/Channel.js.map +1 -1
- package/lib/module/components/Chat/Chat.js +10 -1
- package/lib/module/components/Chat/Chat.js.map +1 -1
- package/lib/module/components/Indicators/EmptyStateIndicator.js +1 -1
- package/lib/module/components/Indicators/EmptyStateIndicator.js.map +1 -1
- package/lib/module/components/MessageInput/components/AttachmentPreview/AttachmentUploadProgressIndicator.js +50 -57
- package/lib/module/components/MessageInput/components/AttachmentPreview/AttachmentUploadProgressIndicator.js.map +1 -1
- package/lib/module/components/MessageInput/components/AttachmentPreview/AudioAttachmentUploadPreview.js +10 -6
- package/lib/module/components/MessageInput/components/AttachmentPreview/AudioAttachmentUploadPreview.js.map +1 -1
- package/lib/module/components/MessageInput/components/AttachmentPreview/FileAttachmentUploadPreview.js +12 -6
- package/lib/module/components/MessageInput/components/AttachmentPreview/FileAttachmentUploadPreview.js.map +1 -1
- package/lib/module/components/MessageInput/components/AttachmentPreview/ImageAttachmentUploadPreview.js +13 -7
- package/lib/module/components/MessageInput/components/AttachmentPreview/ImageAttachmentUploadPreview.js.map +1 -1
- package/lib/module/components/MessageInput/components/AttachmentPreview/VideoAttachmentUploadPreview.js +6 -2
- package/lib/module/components/MessageInput/components/AttachmentPreview/VideoAttachmentUploadPreview.js.map +1 -1
- package/lib/module/components/Poll/CreatePollContent.js +3 -3
- package/lib/module/components/Poll/CreatePollContent.js.map +1 -1
- package/lib/module/components/index.js +33 -0
- package/lib/module/components/index.js.map +1 -1
- package/lib/module/contexts/componentsContext/defaultComponents.js +6 -0
- package/lib/module/contexts/componentsContext/defaultComponents.js.map +1 -1
- package/lib/module/contexts/messageInputContext/hooks/useCreateMessageInputContext.js +3 -1
- package/lib/module/contexts/messageInputContext/hooks/useCreateMessageInputContext.js.map +1 -1
- package/lib/module/contexts/messageInputContext/hooks/useMessageComposerHasSendableData.js +4 -1
- package/lib/module/contexts/messageInputContext/hooks/useMessageComposerHasSendableData.js.map +1 -1
- package/lib/module/contexts/themeContext/utils/theme.js +5 -0
- 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/usePendingAttachmentUpload.js +106 -0
- package/lib/module/hooks/usePendingAttachmentUpload.js.map +1 -0
- package/lib/module/i18n/en.json +8 -0
- package/lib/module/i18n/es.json +8 -0
- package/lib/module/i18n/fr.json +8 -0
- package/lib/module/i18n/he.json +8 -0
- package/lib/module/i18n/hi.json +8 -0
- package/lib/module/i18n/it.json +8 -0
- package/lib/module/i18n/ja.json +8 -0
- package/lib/module/i18n/ko.json +8 -0
- package/lib/module/i18n/nl.json +8 -0
- package/lib/module/i18n/pt-br.json +8 -0
- package/lib/module/i18n/ru.json +8 -0
- package/lib/module/i18n/tr.json +8 -0
- package/lib/module/index.js +12 -0
- package/lib/module/index.js.map +1 -1
- package/lib/module/middlewares/attachments.js +2 -0
- package/lib/module/middlewares/attachments.js.map +1 -1
- package/lib/module/native.js +8 -1
- package/lib/module/native.js.map +1 -1
- package/lib/module/nativeMultipartUpload.js +237 -0
- package/lib/module/nativeMultipartUpload.js.map +1 -0
- package/lib/module/types/types.js.map +1 -1
- package/lib/module/utils/installNativeMultipartAdapter.js +223 -0
- package/lib/module/utils/installNativeMultipartAdapter.js.map +1 -0
- package/lib/module/utils/utils.js +2 -2
- package/lib/module/utils/utils.js.map +1 -1
- package/lib/module/version.json +1 -1
- package/lib/typescript/components/Attachment/Attachment.d.ts.map +1 -1
- package/lib/typescript/components/Attachment/AttachmentFileUploadProgressIndicator.d.ts +14 -0
- package/lib/typescript/components/Attachment/AttachmentFileUploadProgressIndicator.d.ts.map +1 -0
- package/lib/typescript/components/Attachment/AttachmentUploadIndicator.d.ts +18 -0
- package/lib/typescript/components/Attachment/AttachmentUploadIndicator.d.ts.map +1 -0
- package/lib/typescript/components/Attachment/CircularProgressIndicator.d.ts +18 -0
- package/lib/typescript/components/Attachment/CircularProgressIndicator.d.ts.map +1 -0
- package/lib/typescript/components/Attachment/FileAttachment.d.ts.map +1 -1
- package/lib/typescript/components/Attachment/Gallery.d.ts.map +1 -1
- package/lib/typescript/components/Attachment/MediaUploadProgressOverlay.d.ts +12 -0
- package/lib/typescript/components/Attachment/MediaUploadProgressOverlay.d.ts.map +1 -0
- package/lib/typescript/components/Attachment/VideoThumbnail.d.ts +4 -0
- package/lib/typescript/components/Attachment/VideoThumbnail.d.ts.map +1 -1
- package/lib/typescript/components/Attachment/utils/buildGallery/buildThumbnail.d.ts.map +1 -1
- package/lib/typescript/components/Attachment/utils/buildGallery/types.d.ts +2 -0
- package/lib/typescript/components/Attachment/utils/buildGallery/types.d.ts.map +1 -1
- package/lib/typescript/components/AttachmentPicker/components/AttachmentMediaPicker/AttachmentPickerItem.d.ts.map +1 -1
- package/lib/typescript/components/Channel/Channel.d.ts.map +1 -1
- package/lib/typescript/components/Chat/Chat.d.ts +10 -0
- package/lib/typescript/components/Chat/Chat.d.ts.map +1 -1
- package/lib/typescript/components/Indicators/EmptyStateIndicator.d.ts.map +1 -1
- package/lib/typescript/components/MessageInput/components/AttachmentPreview/AttachmentUploadProgressIndicator.d.ts +7 -2
- package/lib/typescript/components/MessageInput/components/AttachmentPreview/AttachmentUploadProgressIndicator.d.ts.map +1 -1
- package/lib/typescript/components/MessageInput/components/AttachmentPreview/AudioAttachmentUploadPreview.d.ts.map +1 -1
- package/lib/typescript/components/MessageInput/components/AttachmentPreview/FileAttachmentUploadPreview.d.ts.map +1 -1
- package/lib/typescript/components/MessageInput/components/AttachmentPreview/ImageAttachmentUploadPreview.d.ts.map +1 -1
- package/lib/typescript/components/MessageInput/components/AttachmentPreview/VideoAttachmentUploadPreview.d.ts.map +1 -1
- package/lib/typescript/components/Poll/CreatePollContent.d.ts.map +1 -1
- package/lib/typescript/components/index.d.ts +3 -0
- package/lib/typescript/components/index.d.ts.map +1 -1
- package/lib/typescript/contexts/componentsContext/defaultComponents.d.ts +5 -2
- package/lib/typescript/contexts/componentsContext/defaultComponents.d.ts.map +1 -1
- package/lib/typescript/contexts/messageInputContext/hooks/useCreateMessageInputContext.d.ts +1 -1
- package/lib/typescript/contexts/messageInputContext/hooks/useCreateMessageInputContext.d.ts.map +1 -1
- package/lib/typescript/contexts/messageInputContext/hooks/useMessageComposerHasSendableData.d.ts.map +1 -1
- package/lib/typescript/contexts/themeContext/ThemeContext.d.ts +5 -0
- package/lib/typescript/contexts/themeContext/ThemeContext.d.ts.map +1 -1
- package/lib/typescript/contexts/themeContext/utils/theme.d.ts +5 -0
- package/lib/typescript/contexts/themeContext/utils/theme.d.ts.map +1 -1
- package/lib/typescript/hooks/index.d.ts +1 -0
- package/lib/typescript/hooks/index.d.ts.map +1 -1
- package/lib/typescript/hooks/usePendingAttachmentUpload.d.ts +14 -0
- package/lib/typescript/hooks/usePendingAttachmentUpload.d.ts.map +1 -0
- package/lib/typescript/i18n/en.json +8 -0
- package/lib/typescript/i18n/es.json +8 -0
- package/lib/typescript/i18n/fr.json +8 -0
- package/lib/typescript/i18n/he.json +8 -0
- package/lib/typescript/i18n/hi.json +8 -0
- package/lib/typescript/i18n/it.json +8 -0
- package/lib/typescript/i18n/ja.json +8 -0
- package/lib/typescript/i18n/ko.json +8 -0
- package/lib/typescript/i18n/nl.json +8 -0
- package/lib/typescript/i18n/pt-br.json +8 -0
- package/lib/typescript/i18n/ru.json +8 -0
- package/lib/typescript/i18n/tr.json +8 -0
- package/lib/typescript/index.d.ts +1 -0
- package/lib/typescript/index.d.ts.map +1 -1
- package/lib/typescript/middlewares/attachments.d.ts.map +1 -1
- package/lib/typescript/native.d.ts +5 -2
- package/lib/typescript/native.d.ts.map +1 -1
- package/lib/typescript/nativeMultipartUpload.d.ts +98 -0
- package/lib/typescript/nativeMultipartUpload.d.ts.map +1 -0
- package/lib/typescript/types/types.d.ts +2 -0
- package/lib/typescript/types/types.d.ts.map +1 -1
- package/lib/typescript/utils/i18n/Streami18n.d.ts +8 -0
- package/lib/typescript/utils/i18n/Streami18n.d.ts.map +1 -1
- package/lib/typescript/utils/installNativeMultipartAdapter.d.ts +8 -0
- package/lib/typescript/utils/installNativeMultipartAdapter.d.ts.map +1 -0
- package/lib/typescript/utils/utils.d.ts +1 -1
- package/lib/typescript/utils/utils.d.ts.map +1 -1
- package/package.json +2 -2
- package/src/__tests__/nativeMultipartUpload.test.ts +267 -0
- package/src/components/Attachment/Attachment.tsx +54 -5
- package/src/components/Attachment/AttachmentFileUploadProgressIndicator.tsx +108 -0
- package/src/components/Attachment/AttachmentUploadIndicator.tsx +112 -0
- package/src/components/Attachment/CircularProgressIndicator.tsx +161 -0
- package/src/components/Attachment/FileAttachment.tsx +22 -6
- package/src/components/Attachment/Gallery.tsx +9 -1
- package/src/components/Attachment/MediaUploadProgressOverlay.tsx +77 -0
- package/src/components/Attachment/VideoThumbnail.tsx +17 -9
- package/src/components/Attachment/__tests__/Attachment.test.tsx +63 -16
- package/src/components/Attachment/utils/buildGallery/buildThumbnail.ts +3 -0
- package/src/components/Attachment/utils/buildGallery/types.ts +2 -0
- package/src/components/AttachmentPicker/components/AttachmentMediaPicker/AttachmentPickerItem.tsx +4 -2
- package/src/components/Channel/Channel.tsx +65 -61
- package/src/components/Chat/Chat.tsx +20 -0
- package/src/components/Indicators/EmptyStateIndicator.tsx +3 -1
- package/src/components/MessageInput/__tests__/AttachmentUploadPreviewList.test.tsx +51 -6
- package/src/components/MessageInput/__tests__/AudioAttachmentUploadPreview.test.tsx +31 -1
- package/src/components/MessageInput/components/AttachmentPreview/AttachmentUploadProgressIndicator.tsx +38 -47
- package/src/components/MessageInput/components/AttachmentPreview/AudioAttachmentUploadPreview.tsx +11 -5
- package/src/components/MessageInput/components/AttachmentPreview/FileAttachmentUploadPreview.tsx +20 -5
- package/src/components/MessageInput/components/AttachmentPreview/ImageAttachmentUploadPreview.tsx +20 -9
- package/src/components/MessageInput/components/AttachmentPreview/VideoAttachmentUploadPreview.tsx +7 -1
- package/src/components/Poll/CreatePollContent.tsx +5 -3
- package/src/components/index.ts +3 -0
- package/src/contexts/componentsContext/defaultComponents.ts +6 -0
- package/src/contexts/messageInputContext/hooks/useCreateMessageInputContext.ts +3 -1
- package/src/contexts/messageInputContext/hooks/useMessageComposerHasSendableData.ts +5 -1
- package/src/contexts/themeContext/utils/theme.ts +10 -0
- package/src/hooks/__tests__/usePendingAttachmentUpload.test.tsx +106 -0
- package/src/hooks/index.ts +1 -0
- package/src/hooks/usePendingAttachmentUpload.ts +131 -0
- package/src/i18n/en.json +8 -0
- package/src/i18n/es.json +8 -0
- package/src/i18n/fr.json +8 -0
- package/src/i18n/he.json +8 -0
- package/src/i18n/hi.json +8 -0
- package/src/i18n/it.json +8 -0
- package/src/i18n/ja.json +8 -0
- package/src/i18n/ko.json +8 -0
- package/src/i18n/nl.json +8 -0
- package/src/i18n/pt-br.json +8 -0
- package/src/i18n/ru.json +8 -0
- package/src/i18n/tr.json +8 -0
- package/src/index.ts +1 -0
- package/src/middlewares/attachments.ts +2 -0
- package/src/native.ts +28 -0
- package/src/nativeMultipartUpload.ts +384 -0
- package/src/types/types.ts +2 -0
- package/src/utils/__tests__/installNativeMultipartAdapter.test.ts +437 -0
- package/src/utils/installNativeMultipartAdapter.ts +302 -0
- package/src/utils/utils.ts +3 -3
- package/src/version.json +1 -1
|
@@ -0,0 +1,131 @@
|
|
|
1
|
+
import { useCallback, useEffect, useRef, useState } from 'react';
|
|
2
|
+
|
|
3
|
+
import type { UploadManagerState } from 'stream-chat';
|
|
4
|
+
|
|
5
|
+
import { useStateStore } from './useStateStore';
|
|
6
|
+
|
|
7
|
+
import { useChatContext } from '../contexts/chatContext/ChatContext';
|
|
8
|
+
|
|
9
|
+
export type PendingAttachmentUpload = {
|
|
10
|
+
/** True when `client.uploadManager` has an in-flight upload for this attachment local id. */
|
|
11
|
+
isUploading: boolean;
|
|
12
|
+
/**
|
|
13
|
+
* Upload percent **0–100** from `client.uploadManager` (same scale as `attachmentManager`
|
|
14
|
+
* `onProgress` / `localMetadata.uploadProgress`). `undefined` when not computable or not uploading.
|
|
15
|
+
*/
|
|
16
|
+
uploadProgress: number | undefined;
|
|
17
|
+
};
|
|
18
|
+
|
|
19
|
+
const idle: PendingAttachmentUpload = {
|
|
20
|
+
isUploading: false,
|
|
21
|
+
uploadProgress: undefined,
|
|
22
|
+
};
|
|
23
|
+
|
|
24
|
+
const completed: PendingAttachmentUpload = {
|
|
25
|
+
isUploading: true,
|
|
26
|
+
uploadProgress: 100,
|
|
27
|
+
};
|
|
28
|
+
|
|
29
|
+
const COMPLETION_HOLD_MS = 350;
|
|
30
|
+
const COMPLETION_READY_PROGRESS = 90;
|
|
31
|
+
|
|
32
|
+
const now = () => Date.now();
|
|
33
|
+
|
|
34
|
+
/**
|
|
35
|
+
* Subscribes to `client.uploadManager` for the pending attachment identified by `localId`.
|
|
36
|
+
*/
|
|
37
|
+
export function usePendingAttachmentUpload(localId: string | undefined): PendingAttachmentUpload {
|
|
38
|
+
const { client } = useChatContext();
|
|
39
|
+
const [, setRenderTick] = useState(0);
|
|
40
|
+
const completedHoldUntilRef = useRef(0);
|
|
41
|
+
const holdTimeoutRef = useRef<ReturnType<typeof setTimeout> | undefined>(undefined);
|
|
42
|
+
const lastUploadProgressRef = useRef<number | undefined>(undefined);
|
|
43
|
+
const previousLocalIdRef = useRef<string | undefined>(localId);
|
|
44
|
+
const wasUploadingRef = useRef(false);
|
|
45
|
+
|
|
46
|
+
const selector = useCallback(
|
|
47
|
+
(state: UploadManagerState): PendingAttachmentUpload => {
|
|
48
|
+
if (!localId) {
|
|
49
|
+
return idle;
|
|
50
|
+
}
|
|
51
|
+
const record = state.uploads[localId];
|
|
52
|
+
if (!record) {
|
|
53
|
+
return idle;
|
|
54
|
+
}
|
|
55
|
+
return {
|
|
56
|
+
isUploading: true,
|
|
57
|
+
uploadProgress: record.uploadProgress,
|
|
58
|
+
};
|
|
59
|
+
},
|
|
60
|
+
[localId],
|
|
61
|
+
);
|
|
62
|
+
|
|
63
|
+
const result = useStateStore(localId ? client.uploadManager.state : undefined, selector);
|
|
64
|
+
const isUploading = result?.isUploading ?? false;
|
|
65
|
+
const uploadProgress = result?.uploadProgress;
|
|
66
|
+
|
|
67
|
+
if (previousLocalIdRef.current !== localId) {
|
|
68
|
+
previousLocalIdRef.current = localId;
|
|
69
|
+
completedHoldUntilRef.current = 0;
|
|
70
|
+
wasUploadingRef.current = false;
|
|
71
|
+
lastUploadProgressRef.current = undefined;
|
|
72
|
+
}
|
|
73
|
+
|
|
74
|
+
let pendingAttachmentUpload = result ?? idle;
|
|
75
|
+
if (localId && isUploading) {
|
|
76
|
+
completedHoldUntilRef.current = 0;
|
|
77
|
+
wasUploadingRef.current = true;
|
|
78
|
+
if (typeof uploadProgress === 'number') {
|
|
79
|
+
lastUploadProgressRef.current = uploadProgress;
|
|
80
|
+
}
|
|
81
|
+
} else if (localId && completedHoldUntilRef.current > now()) {
|
|
82
|
+
pendingAttachmentUpload = completed;
|
|
83
|
+
} else if (localId) {
|
|
84
|
+
const shouldStartCompletionHold =
|
|
85
|
+
wasUploadingRef.current &&
|
|
86
|
+
typeof lastUploadProgressRef.current === 'number' &&
|
|
87
|
+
lastUploadProgressRef.current >= COMPLETION_READY_PROGRESS;
|
|
88
|
+
|
|
89
|
+
wasUploadingRef.current = false;
|
|
90
|
+
lastUploadProgressRef.current = undefined;
|
|
91
|
+
|
|
92
|
+
if (shouldStartCompletionHold) {
|
|
93
|
+
completedHoldUntilRef.current = now() + COMPLETION_HOLD_MS;
|
|
94
|
+
pendingAttachmentUpload = completed;
|
|
95
|
+
} else {
|
|
96
|
+
completedHoldUntilRef.current = 0;
|
|
97
|
+
}
|
|
98
|
+
} else {
|
|
99
|
+
completedHoldUntilRef.current = 0;
|
|
100
|
+
wasUploadingRef.current = false;
|
|
101
|
+
lastUploadProgressRef.current = undefined;
|
|
102
|
+
}
|
|
103
|
+
|
|
104
|
+
useEffect(() => {
|
|
105
|
+
if (holdTimeoutRef.current) {
|
|
106
|
+
clearTimeout(holdTimeoutRef.current);
|
|
107
|
+
holdTimeoutRef.current = undefined;
|
|
108
|
+
}
|
|
109
|
+
|
|
110
|
+
const holdForMs = completedHoldUntilRef.current - now();
|
|
111
|
+
if (holdForMs <= 0) {
|
|
112
|
+
return;
|
|
113
|
+
}
|
|
114
|
+
|
|
115
|
+
holdTimeoutRef.current = setTimeout(() => {
|
|
116
|
+
holdTimeoutRef.current = undefined;
|
|
117
|
+
setRenderTick((tick) => tick + 1);
|
|
118
|
+
}, holdForMs);
|
|
119
|
+
}, [localId, pendingAttachmentUpload]);
|
|
120
|
+
|
|
121
|
+
useEffect(
|
|
122
|
+
() => () => {
|
|
123
|
+
if (holdTimeoutRef.current) {
|
|
124
|
+
clearTimeout(holdTimeoutRef.current);
|
|
125
|
+
}
|
|
126
|
+
},
|
|
127
|
+
[],
|
|
128
|
+
);
|
|
129
|
+
|
|
130
|
+
return pendingAttachmentUpload;
|
|
131
|
+
}
|
package/src/i18n/en.json
CHANGED
|
@@ -5,7 +5,9 @@
|
|
|
5
5
|
"1 Reply": "1 Reply",
|
|
6
6
|
"1 Thread Reply": "1 Thread Reply",
|
|
7
7
|
"Add a comment": "Add a comment",
|
|
8
|
+
"Add a comment to the poll": "Add a comment to the poll",
|
|
8
9
|
"Add an option": "Add an option",
|
|
10
|
+
"Add more": "Add more",
|
|
9
11
|
"Allow access to your Gallery": "Allow access to your Gallery",
|
|
10
12
|
"Allow camera access in device settings": "Allow camera access in device settings",
|
|
11
13
|
"Also send to channel": "Also send to channel",
|
|
@@ -42,15 +44,18 @@
|
|
|
42
44
|
"Error marking message unread. Cannot mark unread messages older than the newest 100 channel messages.": "Error marking message unread. Cannot mark unread messages older than the newest 100 channel messages.",
|
|
43
45
|
"Error while loading, please reload/refresh": "Error while loading, please reload/refresh",
|
|
44
46
|
"File is too large: {{ size }}, maximum upload size is {{ limit }}": "File is too large: {{ size }}, maximum upload size is {{ limit }}",
|
|
47
|
+
"File too large": "File too large",
|
|
45
48
|
"File type not supported": "File type not supported",
|
|
46
49
|
"Flag": "Flag",
|
|
47
50
|
"Flag Message": "Flag Message",
|
|
48
51
|
"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.",
|
|
49
52
|
"Generating...": "Generating...",
|
|
50
53
|
"Giphy": "Giphy",
|
|
54
|
+
"Hide who voted": "Hide who voted",
|
|
51
55
|
"Hold to start recording.": "Hold to start recording.",
|
|
52
56
|
"How about sending your first message to a friend?": "How about sending your first message to a friend?",
|
|
53
57
|
"Instant Commands": "Instant Commands",
|
|
58
|
+
"Let others add options": "Let others add options",
|
|
54
59
|
"Let's start chatting!": "Let's start chatting!",
|
|
55
60
|
"Links are disabled": "Links are disabled",
|
|
56
61
|
"Live Location": "Live Location",
|
|
@@ -65,11 +70,13 @@
|
|
|
65
70
|
"Message deleted": "Message deleted",
|
|
66
71
|
"Message flagged": "Message flagged",
|
|
67
72
|
"Multiple votes": "Multiple votes",
|
|
73
|
+
"Network error": "Network error",
|
|
68
74
|
"Select more than one option": "Select more than one option",
|
|
69
75
|
"Limit votes per person": "Limit votes per person",
|
|
70
76
|
"Choose between 2–10 options": "Choose between 2–10 options",
|
|
71
77
|
"Mute User": "Mute User",
|
|
72
78
|
"No chats here yet…": "No chats here yet…",
|
|
79
|
+
"No items exist": "No items exist",
|
|
73
80
|
"No threads here yet": "No threads here yet",
|
|
74
81
|
"Not supported": "Not supported",
|
|
75
82
|
"Nothing yet...": "Nothing yet...",
|
|
@@ -96,6 +103,7 @@
|
|
|
96
103
|
"Reply to {{name}}": "Reply to {{name}}",
|
|
97
104
|
"Reply to Message": "Reply to Message",
|
|
98
105
|
"Resend": "Resend",
|
|
106
|
+
"Retry Upload": "Retry Upload",
|
|
99
107
|
"SEND": "SEND",
|
|
100
108
|
"Search": "Search",
|
|
101
109
|
"Select More Photos": "Select More Photos",
|
package/src/i18n/es.json
CHANGED
|
@@ -5,7 +5,9 @@
|
|
|
5
5
|
"1 Reply": "1 respuesta",
|
|
6
6
|
"1 Thread Reply": "1 respuesta de hilo",
|
|
7
7
|
"Add a comment": "Agregar un comentario",
|
|
8
|
+
"Add a comment to the poll": "Añadir un comentario a la encuesta",
|
|
8
9
|
"Add an option": "Agregar una opción",
|
|
10
|
+
"Add more": "Añadir más",
|
|
9
11
|
"Allow access to your Gallery": "Permitir acceso a tu galería",
|
|
10
12
|
"Allow camera access in device settings": "Permitir el acceso a la cámara en la configuración del dispositivo",
|
|
11
13
|
"Also send to channel": "También enviar al canal",
|
|
@@ -42,15 +44,18 @@
|
|
|
42
44
|
"Error marking message unread. Cannot mark unread messages older than the newest 100 channel messages.": "Error al marcar el mensaje como no leído. No se pueden marcar mensajes no leídos más antiguos que los 100 mensajes más recientes del canal.",
|
|
43
45
|
"Error while loading, please reload/refresh": "Error al cargar, por favor recarga/actualiza",
|
|
44
46
|
"File is too large: {{ size }}, maximum upload size is {{ limit }}": "El archivo es demasiado grande: {{ size }}, el tamaño máximo de carga es de {{ limit }}",
|
|
47
|
+
"File too large": "Archivo demasiado grande",
|
|
45
48
|
"File type not supported": "Tipo de archivo no admitido",
|
|
46
49
|
"Flag": "Reportar",
|
|
47
50
|
"Flag Message": "Reportar mensaje",
|
|
48
51
|
"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.",
|
|
49
52
|
"Generating...": "Generando...",
|
|
50
53
|
"Giphy": "Giphy",
|
|
54
|
+
"Hide who voted": "Ocultar quién votó",
|
|
51
55
|
"Hold to start recording.": "Mantén presionado para comenzar a grabar.",
|
|
52
56
|
"How about sending your first message to a friend?": "¿Qué tal enviar tu primer mensaje a un amigo?",
|
|
53
57
|
"Instant Commands": "Comandos instantáneos",
|
|
58
|
+
"Let others add options": "Permitir que otros añadan opciones",
|
|
54
59
|
"Let's start chatting!": "¡Empecemos a charlar!",
|
|
55
60
|
"Links are disabled": "Los enlaces están desactivados",
|
|
56
61
|
"Live Location": "Ubicación en vivo",
|
|
@@ -65,11 +70,13 @@
|
|
|
65
70
|
"Message deleted": "Mensaje eliminado",
|
|
66
71
|
"Message flagged": "Mensaje reportado",
|
|
67
72
|
"Multiple votes": "Votos múltiples",
|
|
73
|
+
"Network error": "Error de red",
|
|
68
74
|
"Select more than one option": "Selecciona más de una opción",
|
|
69
75
|
"Limit votes per person": "Limita los votos por persona",
|
|
70
76
|
"Choose between 2–10 options": "Elige entre 2 y 10 opciones",
|
|
71
77
|
"Mute User": "Silenciar usuario",
|
|
72
78
|
"No chats here yet…": "No hay chats aquí todavía...",
|
|
79
|
+
"No items exist": "No hay elementos",
|
|
73
80
|
"No threads here yet": "Aún no hay hilos aquí",
|
|
74
81
|
"Not supported": "No admitido",
|
|
75
82
|
"Nothing yet...": "Aún no hay nada...",
|
|
@@ -96,6 +103,7 @@
|
|
|
96
103
|
"Reply to {{name}}": "Responder a {{name}}",
|
|
97
104
|
"Reply to Message": "Responder al mensaje",
|
|
98
105
|
"Resend": "Reenviar",
|
|
106
|
+
"Retry Upload": "Reintentar carga",
|
|
99
107
|
"SEND": "ENVIAR",
|
|
100
108
|
"Search": "Buscar",
|
|
101
109
|
"Select More Photos": "Seleccionar más fotos",
|
package/src/i18n/fr.json
CHANGED
|
@@ -5,7 +5,9 @@
|
|
|
5
5
|
"1 Reply": "1 Réponse",
|
|
6
6
|
"1 Thread Reply": "Réponse à 1 fil",
|
|
7
7
|
"Add a comment": "Ajouter un commentaire",
|
|
8
|
+
"Add a comment to the poll": "Ajouter un commentaire au sondage",
|
|
8
9
|
"Add an option": "Ajouter une option",
|
|
10
|
+
"Add more": "Ajouter plus",
|
|
9
11
|
"Allow access to your Gallery": "Autoriser l'accès à votre galerie",
|
|
10
12
|
"Allow camera access in device settings": "Autoriser l'accès à la caméra dans les paramètres de l'appareil",
|
|
11
13
|
"Also send to channel": "Envoyer également à la chaîne",
|
|
@@ -42,15 +44,18 @@
|
|
|
42
44
|
"Error marking message unread. Cannot mark unread messages older than the newest 100 channel messages.": "Erreur lors du marquage du message comme non lu. Impossible de marquer les messages non lus plus anciens que les 100 derniers messages du canal.",
|
|
43
45
|
"Error while loading, please reload/refresh": "Erreur lors du chargement, veuillez recharger/rafraîchir",
|
|
44
46
|
"File is too large: {{ size }}, maximum upload size is {{ limit }}": "Le fichier est trop volumineux : {{ size }}, la taille de téléchargement maximale est de {{ limit }}",
|
|
47
|
+
"File too large": "Fichier trop volumineux",
|
|
45
48
|
"File type not supported": "Le type de fichier n'est pas pris en charge",
|
|
46
49
|
"Flag": "Signaler",
|
|
47
50
|
"Flag Message": "Signaler le message",
|
|
48
51
|
"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é.",
|
|
49
52
|
"Generating...": "Génération...",
|
|
50
53
|
"Giphy": "Giphy",
|
|
54
|
+
"Hide who voted": "Masquer qui a voté",
|
|
51
55
|
"Hold to start recording.": "Hold to start recording.",
|
|
52
56
|
"How about sending your first message to a friend?": "Et si vous envoyiez votre premier message à un ami ?",
|
|
53
57
|
"Instant Commands": "Commandes Instantanées",
|
|
58
|
+
"Let others add options": "Autoriser d'autres à ajouter des options",
|
|
54
59
|
"Let's start chatting!": "Commençons à discuter !",
|
|
55
60
|
"Links are disabled": "Links are disabled",
|
|
56
61
|
"Live Location": "Position en direct",
|
|
@@ -65,11 +70,13 @@
|
|
|
65
70
|
"Message deleted": "Message supprimé",
|
|
66
71
|
"Message flagged": "Message signalé",
|
|
67
72
|
"Multiple votes": "Votes multiples",
|
|
73
|
+
"Network error": "Erreur réseau",
|
|
68
74
|
"Select more than one option": "Sélectionnez plus d’une option",
|
|
69
75
|
"Limit votes per person": "Limiter les votes par personne",
|
|
70
76
|
"Choose between 2–10 options": "Choisissez entre 2 et 10 options",
|
|
71
77
|
"Mute User": "Utilisateur muet",
|
|
72
78
|
"No chats here yet…": "Pas de discussions ici pour le moment…",
|
|
79
|
+
"No items exist": "Aucun élément",
|
|
73
80
|
"No threads here yet": "Aucun fil ici pour le moment",
|
|
74
81
|
"Not supported": "Non pris en charge",
|
|
75
82
|
"Nothing yet...": "Aucun message...",
|
|
@@ -96,6 +103,7 @@
|
|
|
96
103
|
"Reply to {{name}}": "Répondre à {{name}}",
|
|
97
104
|
"Reply to Message": "Répondre au message",
|
|
98
105
|
"Resend": "Renvoyer",
|
|
106
|
+
"Retry Upload": "Réessayer l'envoi",
|
|
99
107
|
"SEND": "ENVOYER",
|
|
100
108
|
"Search": "Rechercher",
|
|
101
109
|
"Select More Photos": "Sélectionner plus de photos",
|
package/src/i18n/he.json
CHANGED
|
@@ -5,7 +5,9 @@
|
|
|
5
5
|
"1 Reply": "תגובה אחת",
|
|
6
6
|
"1 Thread Reply": "תגובה אחת לשרשור",
|
|
7
7
|
"Add a comment": "הוסף תגובה",
|
|
8
|
+
"Add a comment to the poll": "הוסף תגובה לסקר",
|
|
8
9
|
"Add an option": "הוסף אפשרות",
|
|
10
|
+
"Add more": "הוסף עוד",
|
|
9
11
|
"Allow access to your Gallery": "אפשר גישה לגלריה שלך",
|
|
10
12
|
"Allow camera access in device settings": "אפשר גישה למצלמה בהגדרות המכשיר",
|
|
11
13
|
"Also send to channel": "שלח/י הודעה לשיחה",
|
|
@@ -42,15 +44,18 @@
|
|
|
42
44
|
"Error marking message unread. Cannot mark unread messages older than the newest 100 channel messages.": "שגיאה ארעה בסימון ההודעה כלא נקרא. אין אפשרות לסמן הודעות כלא נקראות שהן ישנות מה-100 ההודעות האחרונות בשיחה.",
|
|
43
45
|
"Error while loading, please reload/refresh": "שגיאה ארעה בזמן הטעינה, אנא טען מחדש/רענן",
|
|
44
46
|
"File is too large: {{ size }}, maximum upload size is {{ limit }}": "הקובץ גדול מדי: {{ size }}, גודל העלאה מקסימלי הוא {{ limit }}",
|
|
47
|
+
"File too large": "הקובץ גדול מדי",
|
|
45
48
|
"File type not supported": "סוג הקובץ אינו נתמך",
|
|
46
49
|
"Flag": "סמן",
|
|
47
50
|
"Flag Message": "סמן הודעה",
|
|
48
51
|
"Flag action failed either due to a network issue or the message is already flagged": "פעולת הסימון נכשלה בגלל בעיית רשת או שההודעה כבר סומנה.",
|
|
49
52
|
"Generating...": "מייצר...",
|
|
50
53
|
"Giphy": "Giphy",
|
|
54
|
+
"Hide who voted": "הסתר מי הצביע",
|
|
51
55
|
"Hold to start recording.": "לחץ והחזק כדי להתחיל להקליט.",
|
|
52
56
|
"How about sending your first message to a friend?": "מה דעתך לשלוח את ההודעה הראשונה שלך לחבר?",
|
|
53
57
|
"Instant Commands": "פעולות מיידיות",
|
|
58
|
+
"Let others add options": "אפשר לאחרים להוסיף אפשרויות",
|
|
54
59
|
"Let's start chatting!": "בואו נתחיל לשוחח!",
|
|
55
60
|
"Links are disabled": "הקישורים מבוטלים",
|
|
56
61
|
"Live Location": "מיקום חי",
|
|
@@ -65,11 +70,13 @@
|
|
|
65
70
|
"Message deleted": "ההודעה נמחקה",
|
|
66
71
|
"Message flagged": "ההודעה סומנה",
|
|
67
72
|
"Multiple votes": "הצבעות מרובות",
|
|
73
|
+
"Network error": "שגיאת רשת",
|
|
68
74
|
"Select more than one option": "בחר/י יותר מאפשרות אחת",
|
|
69
75
|
"Limit votes per person": "הגבל/י את מספר ההצבעות לאדם",
|
|
70
76
|
"Choose between 2–10 options": "בחר/י בין 2 ל-10 אפשרויות",
|
|
71
77
|
"Mute User": "השתק/י משתמש",
|
|
72
78
|
"No chats here yet…": "אין צ'אטים כאן עדיין...",
|
|
79
|
+
"No items exist": "אין פריטים",
|
|
73
80
|
"No threads here yet": "אין שרשורים כאן עדיין",
|
|
74
81
|
"Not supported": "לא נתמך",
|
|
75
82
|
"Nothing yet...": "אינפורמציה תתקבל בהמשך...",
|
|
@@ -96,6 +103,7 @@
|
|
|
96
103
|
"Reply to {{name}}": "השב/י ל-{{name}}",
|
|
97
104
|
"Reply to Message": "השב/י להודעה",
|
|
98
105
|
"Resend": "שלח/י שוב",
|
|
106
|
+
"Retry Upload": "נסה להעלות שוב",
|
|
99
107
|
"SEND": "שלח",
|
|
100
108
|
"Search": "חפש/י",
|
|
101
109
|
"Select More Photos": "בחר עוד תמונות",
|
package/src/i18n/hi.json
CHANGED
|
@@ -5,7 +5,9 @@
|
|
|
5
5
|
"1 Reply": "1 रिप्लाई",
|
|
6
6
|
"1 Thread Reply": "1 धागा उत्तर",
|
|
7
7
|
"Add a comment": "एक टिप्पणी जोड़ें",
|
|
8
|
+
"Add a comment to the poll": "पोल में टिप्पणी जोड़ें",
|
|
8
9
|
"Add an option": "एक विकल्प जोड़ें",
|
|
10
|
+
"Add more": "और जोड़ें",
|
|
9
11
|
"Allow access to your Gallery": "अपनी गैलरी तक पहुँचने की अनुमति दें",
|
|
10
12
|
"Allow camera access in device settings": "डिवाइस सेटिंग्स में कैमरा एक्सेस की अनुमति दें",
|
|
11
13
|
"Also send to channel": "चैनल को भी भेजें",
|
|
@@ -42,15 +44,18 @@
|
|
|
42
44
|
"Error marking message unread. Cannot mark unread messages older than the newest 100 channel messages.": "संदेश को अनरीड चिह्नित करने में त्रुटि। चैनल के नवीनतम 100 संदेशों से पुराने संदेशों को अनरीड चिह्नित नहीं किया जा सकता।",
|
|
43
45
|
"Error while loading, please reload/refresh": "एरर, रिफ्रेश करे",
|
|
44
46
|
"File is too large: {{ size }}, maximum upload size is {{ limit }}": "फ़ाइल बहुत बड़ी है: {{ size }}, अधिकतम अपलोड साइज़ {{ limit }} है",
|
|
47
|
+
"File too large": "फ़ाइल बहुत बड़ी है",
|
|
45
48
|
"File type not supported": "फ़ाइल प्रकार समर्थित नहीं है",
|
|
46
49
|
"Flag": "झंडा",
|
|
47
50
|
"Flag Message": "झंडा संदेश",
|
|
48
51
|
"Flag action failed either due to a network issue or the message is already flagged": "फ़्लैग कार्रवाई या तो नेटवर्क समस्या के कारण विफल हो गई या संदेश पहले से फ़्लैग किया गया है।",
|
|
49
52
|
"Generating...": "जनरेट कर रहा है...",
|
|
50
53
|
"Giphy": "Giphy",
|
|
54
|
+
"Hide who voted": "वोट करने वालों को छुपाएँ",
|
|
51
55
|
"Hold to start recording.": "रिकॉर्डिंग शुरू करने के लिए दबाएं।",
|
|
52
56
|
"How about sending your first message to a friend?": "किसी मित्र को अपना पहला संदेश भेजने के बारे में क्या ख़याल है?",
|
|
53
57
|
"Instant Commands": "त्वरित कमांड",
|
|
58
|
+
"Let others add options": "दूसरों को विकल्प जोड़ने दें",
|
|
54
59
|
"Let's start chatting!": "आइए चैट करना शुरू करें!",
|
|
55
60
|
"Links are disabled": "लिंक अक्षम हैं",
|
|
56
61
|
"Live Location": "लाइव लोकेशन",
|
|
@@ -65,11 +70,13 @@
|
|
|
65
70
|
"Message deleted": "मैसेज हटा दिया गया",
|
|
66
71
|
"Message flagged": "संदेश को ध्वजांकित किया गया",
|
|
67
72
|
"Multiple votes": "एकाधिक वोट",
|
|
73
|
+
"Network error": "नेटवर्क त्रुटि",
|
|
68
74
|
"Select more than one option": "एक से अधिक विकल्प चुनें",
|
|
69
75
|
"Limit votes per person": "प्रति व्यक्ति वोट सीमित करें",
|
|
70
76
|
"Choose between 2–10 options": "2–10 विकल्प चुनें",
|
|
71
77
|
"Mute User": "उपयोगकर्ता को म्यूट करें",
|
|
72
78
|
"No chats here yet…": "अभी तक यहाँ कोई चैट नहीं है...",
|
|
79
|
+
"No items exist": "कोई आइटम मौजूद नहीं",
|
|
73
80
|
"No threads here yet": "यहाँ अभी तक कोई थ्रेड्स नहीं हैं",
|
|
74
81
|
"Not supported": "समर्थित नहीं",
|
|
75
82
|
"Nothing yet...": "कोई मैसेज नहीं है...",
|
|
@@ -96,6 +103,7 @@
|
|
|
96
103
|
"Reply to {{name}}": "{{name}} को जवाब दें",
|
|
97
104
|
"Reply to Message": "संदेश का जवाब दें",
|
|
98
105
|
"Resend": "पुन: भेजें",
|
|
106
|
+
"Retry Upload": "अपलोड पुनः प्रयास करें",
|
|
99
107
|
"SEND": "भेजें",
|
|
100
108
|
"Search": "खोजें",
|
|
101
109
|
"Select More Photos": "अधिक फ़ोटो चुनें",
|
package/src/i18n/it.json
CHANGED
|
@@ -5,7 +5,9 @@
|
|
|
5
5
|
"1 Reply": "1 Risposta",
|
|
6
6
|
"1 Thread Reply": "1 Risposta alla Discussione",
|
|
7
7
|
"Add a comment": "Aggiungi un commento",
|
|
8
|
+
"Add a comment to the poll": "Aggiungi un commento al sondaggio",
|
|
8
9
|
"Add an option": "Aggiungi un'opzione",
|
|
10
|
+
"Add more": "Aggiungi altri",
|
|
9
11
|
"Allow access to your Gallery": "Consenti l'accesso alla tua galleria",
|
|
10
12
|
"Allow camera access in device settings": "Consenti l'accesso alla fotocamera nelle impostazioni del dispositivo",
|
|
11
13
|
"Also send to channel": "Invia anche al canale",
|
|
@@ -42,15 +44,18 @@
|
|
|
42
44
|
"Error marking message unread. Cannot mark unread messages older than the newest 100 channel messages.": "Errore durante il contrassegno del messaggio come non letto. Non è possibile contrassegnare i messaggi non letti più vecchi dei 100 messaggi più recenti del canale.",
|
|
43
45
|
"Error while loading, please reload/refresh": "Errore durante il caricamento, per favore ricarica la pagina",
|
|
44
46
|
"File is too large: {{ size }}, maximum upload size is {{ limit }}": "Il file è troppo grande: {{ size }}, la dimensione massima di caricamento è {{ limit }}",
|
|
47
|
+
"File too large": "File troppo grande",
|
|
45
48
|
"File type not supported": "Tipo di file non supportato",
|
|
46
49
|
"Flag": "Contrassegna",
|
|
47
50
|
"Flag Message": "Contrassegna Messaggio",
|
|
48
51
|
"Flag action failed either due to a network issue or the message is already flagged": "L'azione di segnalazione non è riuscita a causa di un problema di rete o il messaggio è già segnalato.",
|
|
49
52
|
"Generating...": "Generando...",
|
|
50
53
|
"Giphy": "Giphy",
|
|
54
|
+
"Hide who voted": "Nascondi chi ha votato",
|
|
51
55
|
"Hold to start recording.": "Tieni premuto per avviare la registrazione.",
|
|
52
56
|
"How about sending your first message to a friend?": "Che ne dici di inviare il tuo primo messaggio ad un amico?",
|
|
53
57
|
"Instant Commands": "Comandi Istantanei",
|
|
58
|
+
"Let others add options": "Permetti ad altri di aggiungere opzioni",
|
|
54
59
|
"Let's start chatting!": "Iniziamo a chattare!",
|
|
55
60
|
"Links are disabled": "I link sono disabilitati",
|
|
56
61
|
"Live Location": "Posizione in tempo reale",
|
|
@@ -65,11 +70,13 @@
|
|
|
65
70
|
"Message deleted": "Messaggio cancellato",
|
|
66
71
|
"Message flagged": "Messaggio contrassegnato",
|
|
67
72
|
"Multiple votes": "Voti multipli",
|
|
73
|
+
"Network error": "Errore di rete",
|
|
68
74
|
"Select more than one option": "Seleziona più di un'opzione",
|
|
69
75
|
"Limit votes per person": "Limita i voti per persona",
|
|
70
76
|
"Choose between 2–10 options": "Scegli tra 2 e 10 opzioni",
|
|
71
77
|
"Mute User": "Utente Muto",
|
|
72
78
|
"No chats here yet…": "Non ci sono ancora chat qui...",
|
|
79
|
+
"No items exist": "Nessun elemento",
|
|
73
80
|
"No threads here yet": "Nessun thread qui ancora",
|
|
74
81
|
"Not supported": "non supportato",
|
|
75
82
|
"Nothing yet...": "Ancora niente...",
|
|
@@ -96,6 +103,7 @@
|
|
|
96
103
|
"Reply to {{name}}": "Rispondi a {{name}}",
|
|
97
104
|
"Reply to Message": "Rispondi al messaggio",
|
|
98
105
|
"Resend": "Invia di nuovo",
|
|
106
|
+
"Retry Upload": "Riprova caricamento",
|
|
99
107
|
"SEND": "INVIA",
|
|
100
108
|
"Search": "Cerca",
|
|
101
109
|
"Select More Photos": "Seleziona Altre foto",
|
package/src/i18n/ja.json
CHANGED
|
@@ -5,7 +5,9 @@
|
|
|
5
5
|
"1 Reply": "1件の返信",
|
|
6
6
|
"1 Thread Reply": "1件のスレッド返信",
|
|
7
7
|
"Add a comment": "コメントを追加",
|
|
8
|
+
"Add a comment to the poll": "投票にコメントを追加",
|
|
8
9
|
"Add an option": "オプションを追加",
|
|
10
|
+
"Add more": "さらに追加",
|
|
9
11
|
"Allow access to your Gallery": "ギャラリーへのアクセスを許可する",
|
|
10
12
|
"Allow camera access in device settings": "デバイス設定でカメラへのアクセスを許可する",
|
|
11
13
|
"Also send to channel": "チャンネルにも送信",
|
|
@@ -42,15 +44,18 @@
|
|
|
42
44
|
"Error marking message unread. Cannot mark unread messages older than the newest 100 channel messages.": "メッセージを未読にする際にエラーが発生しました。最新の100件のチャネルメッセージより古い未読メッセージはマークできません。",
|
|
43
45
|
"Error while loading, please reload/refresh": "ロード中にエラーが発生しました。更新してください",
|
|
44
46
|
"File is too large: {{ size }}, maximum upload size is {{ limit }}": "ファイルが大きすぎます:{{ size }}、最大アップロードサイズは{{ limit }}です",
|
|
47
|
+
"File too large": "ファイルが大きすぎます",
|
|
45
48
|
"File type not supported": "サポートされていないファイルです",
|
|
46
49
|
"Flag": "フラグ",
|
|
47
50
|
"Flag Message": "メッセージをフラグする",
|
|
48
51
|
"Flag action failed either due to a network issue or the message is already flagged": "ネットワーク接続に問題があるか、すでにフラグが設定されているため、フラグが失敗しました。",
|
|
49
52
|
"Generating...": "生成中...",
|
|
50
53
|
"Giphy": "Giphy",
|
|
54
|
+
"Hide who voted": "投票者を非表示",
|
|
51
55
|
"Hold to start recording.": "録音を開始するには押し続けてください。",
|
|
52
56
|
"How about sending your first message to a friend?": "初めてのメッセージを友達に送ってみてはいかがでしょうか?",
|
|
53
57
|
"Instant Commands": "インスタントコマンド",
|
|
58
|
+
"Let others add options": "他の人が選択肢を追加できるようにする",
|
|
54
59
|
"Let's start chatting!": "チャットを始めましょう!",
|
|
55
60
|
"Links are disabled": "リンク機能が無効になっています",
|
|
56
61
|
"Live Location": "ライブ位置情報",
|
|
@@ -65,11 +70,13 @@
|
|
|
65
70
|
"Message deleted": "メッセージが削除されました",
|
|
66
71
|
"Message flagged": "メッセージにフラグが付けられました",
|
|
67
72
|
"Multiple votes": "複数投票",
|
|
73
|
+
"Network error": "ネットワークエラー",
|
|
68
74
|
"Select more than one option": "2つ以上のオプションを選択",
|
|
69
75
|
"Limit votes per person": "1人あたりの投票数を制限",
|
|
70
76
|
"Choose between 2–10 options": "2~10個のオプションから選択",
|
|
71
77
|
"Mute User": "ユーザーをミュートする",
|
|
72
78
|
"No chats here yet…": "まだチャットはありません…",
|
|
79
|
+
"No items exist": "項目がありません",
|
|
73
80
|
"No threads here yet": "まだスレッドがありません",
|
|
74
81
|
"Not supported": "サポートしていません",
|
|
75
82
|
"Nothing yet...": "まだ何もありません...",
|
|
@@ -96,6 +103,7 @@
|
|
|
96
103
|
"Reply to {{name}}": "{{name}}に返信",
|
|
97
104
|
"Reply to Message": "メッセージに返信",
|
|
98
105
|
"Resend": "再送",
|
|
106
|
+
"Retry Upload": "アップロードを再試行",
|
|
99
107
|
"SEND": "送信",
|
|
100
108
|
"Search": "検索",
|
|
101
109
|
"Select More Photos": "さらに写真を選択",
|
package/src/i18n/ko.json
CHANGED
|
@@ -5,7 +5,9 @@
|
|
|
5
5
|
"1 Reply": "답장 1개",
|
|
6
6
|
"1 Thread Reply": "1개의 스레드 답글",
|
|
7
7
|
"Add a comment": "댓글 추가",
|
|
8
|
+
"Add a comment to the poll": "투표에 의견 추가",
|
|
8
9
|
"Add an option": "옵션 추가",
|
|
10
|
+
"Add more": "더 추가",
|
|
9
11
|
"Allow access to your Gallery": "갤러리에 대한 액세스를 허용",
|
|
10
12
|
"Allow camera access in device settings": "기기 설정에서 카메라 액세스를 허용하세요.",
|
|
11
13
|
"Also send to channel": "채널에도 전송",
|
|
@@ -42,15 +44,18 @@
|
|
|
42
44
|
"Error marking message unread. Cannot mark unread messages older than the newest 100 channel messages.": "메시지를 읽지 않음으로 표시하는 중 오류가 발생했습니다. 최신 100개의 채널 메시지보다 오래된 읽지 않은 메시지는 표시할 수 없습니다.",
|
|
43
45
|
"Error while loading, please reload/refresh": "로드하는 동안 오류가 발생했습니다. 다시로드하십시오",
|
|
44
46
|
"File is too large: {{ size }}, maximum upload size is {{ limit }}": "파일이 너무 큽니다: {{ size }}, 최대 업로드 크기는 {{ limit }}입니다",
|
|
47
|
+
"File too large": "파일이 너무 큽니다",
|
|
45
48
|
"File type not supported": "지원하지 않는 파일입니다.",
|
|
46
49
|
"Flag": "플래그",
|
|
47
50
|
"Flag Message": "메시지를 플래그하기",
|
|
48
51
|
"Flag action failed either due to a network issue or the message is already flagged": "네트워크 연결에 문제가 있거나 이미 플래그 되어서 플래그에 실패했습니다.",
|
|
49
52
|
"Generating...": "생성 중...",
|
|
50
53
|
"Giphy": "Giphy",
|
|
54
|
+
"Hide who voted": "투표한 사람 숨기기",
|
|
51
55
|
"Hold to start recording.": "녹음을 시작하려면 눌러주세요.",
|
|
52
56
|
"How about sending your first message to a friend?": "친구에게 첫 번째 메시지를 보내는 것은 어떻습니까?",
|
|
53
57
|
"Instant Commands": "인스턴트 명령",
|
|
58
|
+
"Let others add options": "다른 사람이 옵션을 추가하도록 허용",
|
|
54
59
|
"Let's start chatting!": "채팅을 시작합시다!",
|
|
55
60
|
"Links are disabled": "링크 기능이 비활성화되었습니다",
|
|
56
61
|
"Live Location": "실시간 위치",
|
|
@@ -65,11 +70,13 @@
|
|
|
65
70
|
"Message deleted": "메시지가 삭제되었습니다.",
|
|
66
71
|
"Message flagged": "메시지에 플래그가 지정되었습니다",
|
|
67
72
|
"Multiple votes": "복수 투표",
|
|
73
|
+
"Network error": "네트워크 오류",
|
|
68
74
|
"Select more than one option": "두 개 이상의 옵션을 선택하세요",
|
|
69
75
|
"Limit votes per person": "1인당 투표 수 제한",
|
|
70
76
|
"Choose between 2–10 options": "2~10개의 옵션 중에서 선택하세요",
|
|
71
77
|
"Mute User": "사용자를 음소거",
|
|
72
78
|
"No chats here yet…": "아직 여기에 채팅이 없어요…",
|
|
79
|
+
"No items exist": "항목이 없습니다",
|
|
73
80
|
"No threads here yet": "아직 스레드가 없습니다",
|
|
74
81
|
"Not supported": "지원하지 않습니다",
|
|
75
82
|
"Nothing yet...": "아직 아무것도...",
|
|
@@ -96,6 +103,7 @@
|
|
|
96
103
|
"Reply to {{name}}": "{{name}}님에게 답장",
|
|
97
104
|
"Reply to Message": "메시지에 답장",
|
|
98
105
|
"Resend": "재전송",
|
|
106
|
+
"Retry Upload": "업로드 재시도",
|
|
99
107
|
"SEND": "보내기",
|
|
100
108
|
"Search": "검색",
|
|
101
109
|
"Select More Photos": "추가 사진 선택",
|
package/src/i18n/nl.json
CHANGED
|
@@ -5,7 +5,9 @@
|
|
|
5
5
|
"1 Reply": "1 Antwoord",
|
|
6
6
|
"1 Thread Reply": "1 thread antwoord",
|
|
7
7
|
"Add a comment": "Voeg een reactie toe",
|
|
8
|
+
"Add a comment to the poll": "Voeg een reactie toe aan de poll",
|
|
8
9
|
"Add an option": "Voeg een optie toe",
|
|
10
|
+
"Add more": "Meer toevoegen",
|
|
9
11
|
"Allow access to your Gallery": "Geef toegang tot uw galerij",
|
|
10
12
|
"Allow camera access in device settings": "Sta cameratoegang toe in de apparaatinstellingen",
|
|
11
13
|
"Also send to channel": "Stuur ook naar kanaal",
|
|
@@ -42,15 +44,18 @@
|
|
|
42
44
|
"Error marking message unread. Cannot mark unread messages older than the newest 100 channel messages.": "Fout bij markeren als ongelezen. Kan ongelezen berichten ouder dan de nieuwste 100 kanaalberichten niet markeren.",
|
|
43
45
|
"Error while loading, please reload/refresh": "Probleem bij het laden, probeer opnieuw",
|
|
44
46
|
"File is too large: {{ size }}, maximum upload size is {{ limit }}": "Bestand is te groot: {{ size }}, maximale uploadgrootte is {{ limit }}",
|
|
47
|
+
"File too large": "Bestand te groot",
|
|
45
48
|
"File type not supported": "Bestandstype niet ondersteund",
|
|
46
49
|
"Flag": "Markeer",
|
|
47
50
|
"Flag Message": "Markeer bericht",
|
|
48
51
|
"Flag action failed either due to a network issue or the message is already flagged": "Rapporteren mislukt door een netwerk fout of het berich is al gerapporteerd",
|
|
49
52
|
"Generating...": "Aan het genereren...",
|
|
50
53
|
"Giphy": "Giphy",
|
|
54
|
+
"Hide who voted": "Verberg wie heeft gestemd",
|
|
51
55
|
"Hold to start recording.": "Houd vast om opname te starten.",
|
|
52
56
|
"How about sending your first message to a friend?": "Wat dacht je ervan om je eerste bericht naar een vriend te sturen?",
|
|
53
57
|
"Instant Commands": "Directe Opdrachten",
|
|
58
|
+
"Let others add options": "Laat anderen opties toevoegen",
|
|
54
59
|
"Let's start chatting!": "Laten we beginnen met chatten!",
|
|
55
60
|
"Links are disabled": "Het versturen van links staat uit",
|
|
56
61
|
"Live Location": "Live locatie",
|
|
@@ -65,11 +70,13 @@
|
|
|
65
70
|
"Message deleted": "Bericht verwijderd",
|
|
66
71
|
"Message flagged": "Bericht gemarkeerd",
|
|
67
72
|
"Multiple votes": "Meerdere stemmen",
|
|
73
|
+
"Network error": "Netwerkfout",
|
|
68
74
|
"Select more than one option": "Selecteer meer dan één optie",
|
|
69
75
|
"Limit votes per person": "Beperk stemmen per persoon",
|
|
70
76
|
"Choose between 2–10 options": "Kies tussen 2 en 10 opties",
|
|
71
77
|
"Mute User": "Gebruiker dempen",
|
|
72
78
|
"No chats here yet…": "Nog geen chats hier…",
|
|
79
|
+
"No items exist": "Er zijn geen items",
|
|
73
80
|
"No threads here yet": "Hier zijn nog geen threads",
|
|
74
81
|
"Not supported": "niet ondersteund",
|
|
75
82
|
"Nothing yet...": "Nog niets...",
|
|
@@ -96,6 +103,7 @@
|
|
|
96
103
|
"Reply to {{name}}": "Antwoord aan {{name}}",
|
|
97
104
|
"Reply to Message": "Beantwoord bericht",
|
|
98
105
|
"Resend": "Opnieuw versturen",
|
|
106
|
+
"Retry Upload": "Uploaden opnieuw proberen",
|
|
99
107
|
"SEND": "VERZENDEN",
|
|
100
108
|
"Search": "Zoeken",
|
|
101
109
|
"Select More Photos": "Selecteer Meer foto's",
|
package/src/i18n/pt-br.json
CHANGED
|
@@ -5,7 +5,9 @@
|
|
|
5
5
|
"1 Reply": "1 Resposta",
|
|
6
6
|
"1 Thread Reply": "1 Resposta de Thread",
|
|
7
7
|
"Add a comment": "Adicionar um comentário",
|
|
8
|
+
"Add a comment to the poll": "Adicionar um comentário à enquete",
|
|
8
9
|
"Add an option": "Adicionar uma opção",
|
|
10
|
+
"Add more": "Adicionar mais",
|
|
9
11
|
"Allow access to your Gallery": "Permitir acesso à sua Galeria",
|
|
10
12
|
"Allow camera access in device settings": "Permitir acesso à câmera nas configurações do dispositivo",
|
|
11
13
|
"Also send to channel": "Também enviar para o canal",
|
|
@@ -42,15 +44,18 @@
|
|
|
42
44
|
"Error marking message unread. Cannot mark unread messages older than the newest 100 channel messages.": "Erro ao marcar mensagem como não lida. Não é possível marcar mensagens não lidas mais antigas que as 100 mensagens mais recentes do canal.",
|
|
43
45
|
"Error while loading, please reload/refresh": "Erro ao carregar, por favor recarregue/atualize",
|
|
44
46
|
"File is too large: {{ size }}, maximum upload size is {{ limit }}": "O arquivo é muito grande: {{ size }}, o tamanho máximo de upload é {{ limit }}",
|
|
47
|
+
"File too large": "Arquivo muito grande",
|
|
45
48
|
"File type not supported": "Tipo de arquivo não suportado",
|
|
46
49
|
"Flag": "Reportar",
|
|
47
50
|
"Flag Message": "Reportar Mensagem",
|
|
48
51
|
"Flag action failed either due to a network issue or the message is already flagged": "A ação para reportar a mensagem falhou devido a um problema de rede ou a mensagem já foi reportada.",
|
|
49
52
|
"Generating...": "Gerando...",
|
|
50
53
|
"Giphy": "Giphy",
|
|
54
|
+
"Hide who voted": "Ocultar quem votou",
|
|
51
55
|
"Hold to start recording.": "Mantenha pressionado para começar a gravar.",
|
|
52
56
|
"How about sending your first message to a friend?": "Que tal enviar sua primeira mensagem para um amigo?",
|
|
53
57
|
"Instant Commands": "Comandos Instantâneos",
|
|
58
|
+
"Let others add options": "Permitir que outros adicionem opções",
|
|
54
59
|
"Let's start chatting!": "Vamos começar a conversar!",
|
|
55
60
|
"Links are disabled": "Links estão desabilitados",
|
|
56
61
|
"Live Location": "Localização ao vivo",
|
|
@@ -65,11 +70,13 @@
|
|
|
65
70
|
"Message deleted": "Mensagem excluída",
|
|
66
71
|
"Message flagged": "Mensagem sinalizada",
|
|
67
72
|
"Multiple votes": "Votos múltiplos",
|
|
73
|
+
"Network error": "Erro de rede",
|
|
68
74
|
"Select more than one option": "Selecione mais de uma opção",
|
|
69
75
|
"Limit votes per person": "Limite os votos por pessoa",
|
|
70
76
|
"Choose between 2–10 options": "Escolha entre 2 e 10 opções",
|
|
71
77
|
"Mute User": "Silenciar Usuário",
|
|
72
78
|
"No chats here yet…": "Ainda não há chats aqui...",
|
|
79
|
+
"No items exist": "Nenhum item",
|
|
73
80
|
"No threads here yet": "Ainda não há tópicos aqui",
|
|
74
81
|
"Not supported": "Não suportado",
|
|
75
82
|
"Nothing yet...": "Nada ainda...",
|
|
@@ -96,6 +103,7 @@
|
|
|
96
103
|
"Reply to {{name}}": "Responder a {{name}}",
|
|
97
104
|
"Reply to Message": "Responder à Mensagem",
|
|
98
105
|
"Resend": "Reenviar",
|
|
106
|
+
"Retry Upload": "Tentar upload novamente",
|
|
99
107
|
"SEND": "ENVIAR",
|
|
100
108
|
"Search": "Pesquisar",
|
|
101
109
|
"Select More Photos": "Selecionar Mais Fotos",
|