stream-chat-react-native-core 5.22.0-beta.5 → 5.22.0-beta.6

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (58) hide show
  1. package/lib/commonjs/components/AttachmentPicker/components/AttachmentSelectionBar.js +26 -11
  2. package/lib/commonjs/components/AttachmentPicker/components/AttachmentSelectionBar.js.map +1 -1
  3. package/lib/commonjs/i18n/en.json +3 -0
  4. package/lib/commonjs/i18n/es.json +4 -1
  5. package/lib/commonjs/i18n/fr.json +19 -16
  6. package/lib/commonjs/i18n/he.json +4 -1
  7. package/lib/commonjs/i18n/hi.json +19 -16
  8. package/lib/commonjs/i18n/it.json +19 -16
  9. package/lib/commonjs/i18n/ja.json +4 -1
  10. package/lib/commonjs/i18n/ko.json +4 -1
  11. package/lib/commonjs/i18n/nl.json +19 -16
  12. package/lib/commonjs/i18n/ru.json +19 -16
  13. package/lib/commonjs/i18n/tr.json +19 -16
  14. package/lib/commonjs/native.js.map +1 -1
  15. package/lib/commonjs/version.json +1 -1
  16. package/lib/module/components/AttachmentPicker/components/AttachmentSelectionBar.js +26 -11
  17. package/lib/module/components/AttachmentPicker/components/AttachmentSelectionBar.js.map +1 -1
  18. package/lib/module/i18n/en.json +3 -0
  19. package/lib/module/i18n/es.json +4 -1
  20. package/lib/module/i18n/fr.json +19 -16
  21. package/lib/module/i18n/he.json +4 -1
  22. package/lib/module/i18n/hi.json +19 -16
  23. package/lib/module/i18n/it.json +19 -16
  24. package/lib/module/i18n/ja.json +4 -1
  25. package/lib/module/i18n/ko.json +4 -1
  26. package/lib/module/i18n/nl.json +19 -16
  27. package/lib/module/i18n/ru.json +19 -16
  28. package/lib/module/i18n/tr.json +19 -16
  29. package/lib/module/native.js.map +1 -1
  30. package/lib/module/version.json +1 -1
  31. package/lib/typescript/i18n/en.json +3 -0
  32. package/lib/typescript/i18n/es.json +4 -1
  33. package/lib/typescript/i18n/fr.json +19 -16
  34. package/lib/typescript/i18n/he.json +4 -1
  35. package/lib/typescript/i18n/hi.json +19 -16
  36. package/lib/typescript/i18n/it.json +19 -16
  37. package/lib/typescript/i18n/ja.json +4 -1
  38. package/lib/typescript/i18n/ko.json +4 -1
  39. package/lib/typescript/i18n/nl.json +19 -16
  40. package/lib/typescript/i18n/ru.json +19 -16
  41. package/lib/typescript/i18n/tr.json +19 -16
  42. package/lib/typescript/native.d.ts +2 -0
  43. package/lib/typescript/utils/Streami18n.d.ts +3 -5
  44. package/package.json +1 -1
  45. package/src/components/AttachmentPicker/components/AttachmentSelectionBar.tsx +13 -1
  46. package/src/i18n/en.json +3 -0
  47. package/src/i18n/es.json +4 -1
  48. package/src/i18n/fr.json +19 -16
  49. package/src/i18n/he.json +4 -1
  50. package/src/i18n/hi.json +19 -16
  51. package/src/i18n/it.json +19 -16
  52. package/src/i18n/ja.json +4 -1
  53. package/src/i18n/ko.json +4 -1
  54. package/src/i18n/nl.json +19 -16
  55. package/src/i18n/ru.json +19 -16
  56. package/src/i18n/tr.json +19 -16
  57. package/src/native.ts +5 -1
  58. package/src/version.json +1 -1
@@ -1,8 +1,9 @@
1
1
  {
2
2
  "1 Reply": "1 Ответ",
3
- "1 Thread Reply": "1 тема Ответить",
3
+ "1 Thread Reply": "",
4
4
  "Allow access to your Gallery": "Разрешить доступ к вашей галерее",
5
- "Also send to channel": "",
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,9 +11,10 @@
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
- "Editing Message": "Редактирование сообщения",
17
+ "Editing Message": "",
16
18
  "Emoji matching": "",
17
19
  "Empty message...": "",
18
20
  "Error loading": "",
@@ -26,23 +28,24 @@
26
28
  "How about sending your first message to a friend?": "",
27
29
  "Instant Commands": "",
28
30
  "Let's start chatting!": "",
29
- "Links are disabled": "Ссылки отключены",
31
+ "Links are disabled": "",
30
32
  "Loading channels...": "",
31
33
  "Loading messages...": "",
32
34
  "Loading...": "",
33
- "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}} МБ.",
34
- "Message Reactions": "",
35
+ "Maximum file size upload limit reached. Please upload a file below {{MAX_FILE_SIZE_TO_UPLOAD_IN_MB}} MB.": "",
36
+ "Message Reactions": "Сообщения Реакции",
35
37
  "Message deleted": "",
36
38
  "Message flagged": "",
37
39
  "Mute User": "",
38
40
  "Not supported": "",
39
41
  "Nothing yet...": "",
40
42
  "Ok": "",
41
- "Only visible to you": "Видно только вам",
42
- "Photo": "Фото",
43
+ "Only visible to you": "",
44
+ "Open Settings": "Открыть настройки",
45
+ "Photo": "",
43
46
  "Photos and Videos": "Фото и видео",
44
47
  "Pin to Conversation": "",
45
- "Pinned by": "Закреплено пользователем",
48
+ "Pinned by": "",
46
49
  "Please enable access to your photos and videos so you can share them.": "Разрешите доступ к своим фотографиям и видео, чтобы вы могли ими поделиться.",
47
50
  "Please select a channel first": "Пожалуйста, сначала выберите канал",
48
51
  "Reconnecting...": "",
@@ -52,7 +55,7 @@
52
55
  "Search GIFs": "",
53
56
  "Select More Photos": "Выбрать больше фотографий",
54
57
  "Send a message": "",
55
- "Sending links is not allowed in this conversation": "Отправка ссылок недоступна в этом чате",
58
+ "Sending links is not allowed in this conversation": "",
56
59
  "Slow mode ON": "",
57
60
  "The message has been reported to a moderator.": "",
58
61
  "Thread Reply": "",
@@ -60,14 +63,14 @@
60
63
  "Unknown User": "Неизвестный пользователь",
61
64
  "Unmute User": "",
62
65
  "Unpin from Conversation": "",
63
- "Unread Messages": "",
64
- "Video": "видео",
66
+ "Unread Messages": "Непрочитанные Сообщения",
67
+ "Video": "",
65
68
  "You": "",
66
- "You can't send messages in this channel": "Вы не можете отправлять сообщения в этот канал",
67
- "{{ firstUser }} and {{ nonSelfUserLength }} more are typing": "",
69
+ "You can't send messages in this channel": "",
70
+ "{{ firstUser }} and {{ nonSelfUserLength }} more are typing": "{{ firstUser }} и еще {{ nonSelfUserLength }} пишут",
68
71
  "{{ index }} of {{ photoLength }}": "{{ index }} из {{ photoLength }}",
69
72
  "{{ replyCount }} Replies": "{{ replyCount }} Ответов",
70
- "{{ replyCount }} Thread Replies": "{{replyCount}} Ответы в темах",
71
- "{{ user }} is typing": "",
73
+ "{{ replyCount }} Thread Replies": "",
74
+ "{{ user }} is typing": "{{ user }} пишет",
72
75
  "🏙 Attachment...": ""
73
76
  }
@@ -1,8 +1,9 @@
1
1
  {
2
2
  "1 Reply": "1 Cevap",
3
- "1 Thread Reply": "1 Konu Yanıtı",
3
+ "1 Thread Reply": "",
4
4
  "Allow access to your Gallery": "Galerinize erişime izin verin",
5
- "Also send to channel": "",
5
+ "Allow camera access in device settings": "Cihaz ayarlarında kamera erişimine izin ver",
6
+ "Also send to channel": "Kanala da gönder",
6
7
  "Are you sure you want to permanently delete this message?": "",
7
8
  "Block User": "",
8
9
  "Cancel": "",
@@ -10,9 +11,10 @@
10
11
  "Copy Message": "",
11
12
  "Delete": "",
12
13
  "Delete Message": "",
14
+ "Device camera is used to take photos or videos.": "Cihaz kamerası fotoğraf veya video çekmek için kullanılır.",
13
15
  "Do you want to send a copy of this message to a moderator for further investigation?": "",
14
16
  "Edit Message": "",
15
- "Editing Message": "Mesaj Düzenleniyor",
17
+ "Editing Message": "",
16
18
  "Emoji matching": "",
17
19
  "Empty message...": "",
18
20
  "Error loading": "",
@@ -26,23 +28,24 @@
26
28
  "How about sending your first message to a friend?": "",
27
29
  "Instant Commands": "",
28
30
  "Let's start chatting!": "",
29
- "Links are disabled": "Bağlantılar devre dışı",
31
+ "Links are disabled": "",
30
32
  "Loading channels...": "",
31
33
  "Loading messages...": "",
32
34
  "Loading...": "",
33
- "Maximum file size upload limit reached. Please upload a file below {{MAX_FILE_SIZE_TO_UPLOAD_IN_MB}} MB.": "Maksimum dosya boyutu yükleme sınırına ulaşıldı. Lütfen {{MAX_FILE_SIZE_TO_UPLOAD_IN_MB}} MB'ın altında bir dosya yükleyin.",
34
- "Message Reactions": "",
35
+ "Maximum file size upload limit reached. Please upload a file below {{MAX_FILE_SIZE_TO_UPLOAD_IN_MB}} MB.": "",
36
+ "Message Reactions": "Mesaj Tepkileri",
35
37
  "Message deleted": "",
36
38
  "Message flagged": "",
37
39
  "Mute User": "",
38
40
  "Not supported": "",
39
41
  "Nothing yet...": "",
40
42
  "Ok": "",
41
- "Only visible to you": "Sadece siz görebilirsiniz",
42
- "Photo": "Fotoğraf",
43
+ "Only visible to you": "",
44
+ "Open Settings": "Ayarları aç",
45
+ "Photo": "",
43
46
  "Photos and Videos": "Fotoğraflar ve Videolar",
44
47
  "Pin to Conversation": "",
45
- "Pinned by": "Tarafından sabitlendi",
48
+ "Pinned by": "",
46
49
  "Please enable access to your photos and videos so you can share them.": "Paylaşım yapabilmek için lutfen fotoğraflarınıza ve videolarınıza erişimi etkinleştirin.",
47
50
  "Please select a channel first": "Lütfen önce bir kanal seçiniz",
48
51
  "Reconnecting...": "",
@@ -52,7 +55,7 @@
52
55
  "Search GIFs": "",
53
56
  "Select More Photos": "Daha Fazla Fotoğraf Seçin",
54
57
  "Send a message": "",
55
- "Sending links is not allowed in this conversation": "Bu konuşmada bağlantı göndermek desteklenmiyor",
58
+ "Sending links is not allowed in this conversation": "",
56
59
  "Slow mode ON": "",
57
60
  "The message has been reported to a moderator.": "",
58
61
  "Thread Reply": "",
@@ -60,14 +63,14 @@
60
63
  "Unknown User": "Bilinmeyen kullanıcı",
61
64
  "Unmute User": "",
62
65
  "Unpin from Conversation": "",
63
- "Unread Messages": "",
64
- "Video": "Video",
66
+ "Unread Messages": "Okunmamış Mesajlar",
67
+ "Video": "",
65
68
  "You": "",
66
- "You can't send messages in this channel": "Bu konuşmaya mesaj gönderemezsiniz",
67
- "{{ firstUser }} and {{ nonSelfUserLength }} more are typing": "",
69
+ "You can't send messages in this channel": "",
70
+ "{{ firstUser }} and {{ nonSelfUserLength }} more are typing": "{{ firstUser }} ve {{ nonSelfUserLength }} kişi daha yazıyor",
68
71
  "{{ index }} of {{ photoLength }}": "{{ index }} / {{ photoLength }}",
69
72
  "{{ replyCount }} Replies": "{{ replyCount }} Cevap",
70
- "{{ replyCount }} Thread Replies": "{{responseCount}} Konu Cevapı",
71
- "{{ user }} is typing": "",
73
+ "{{ replyCount }} Thread Replies": "",
74
+ "{{ user }} is typing": "{{ user }} yazıyor",
72
75
  "🏙 Attachment...": ""
73
76
  }
@@ -1 +1 @@
1
- {"version":3,"names":["_reactNative","require","fail","Error","compressImage","exports","deleteFile","getLocalAssetUri","oniOS14GalleryLibrarySelectionChange","iOS14RefreshGallerySelection","getPhotos","FlatList","DefaultFlatList","NetInfo","addEventListener","fetch","pickDocument","saveFile","setClipboardString","shareImage","takePhoto","triggerHaptic","SDK","Sound","Video","registerNativeHandlers","handlers","undefined","isVideoPackageAvailable","isAudioPackageAvailable","Player","initializeSound"],"sources":["native.ts"],"sourcesContent":["import type React from 'react';\nimport { FlatList as DefaultFlatList, StyleProp, ViewStyle } from 'react-native';\n\nimport type { NetInfoSubscription } from '@react-native-community/netinfo';\n\nimport type { Asset, File } from './types/types';\n\nconst fail = () => {\n throw Error(\n 'Native handler was not registered, you should import stream-chat-expo or stream-chat-react-native',\n );\n};\n\ntype CompressImage = ({\n compressImageQuality,\n height,\n uri,\n width,\n}: {\n compressImageQuality: number;\n height: number;\n uri: string;\n width: number;\n}) => Promise<string> | never;\nexport let compressImage: CompressImage = fail;\n\ntype DeleteFile = ({ uri }: { uri: string }) => Promise<boolean> | never;\nexport let deleteFile: DeleteFile = fail;\n\ntype GetLocalAssetUri = (uriOrAssetId: string) => Promise<string | undefined> | never;\nexport let getLocalAssetUri: GetLocalAssetUri = fail;\n\ntype OniOS14LibrarySelectionChange = (callback: () => void) => { unsubscribe: () => void };\nexport let oniOS14GalleryLibrarySelectionChange: OniOS14LibrarySelectionChange = fail;\n\ntype iOS14RefreshGallerySelection = () => Promise<void>;\nexport let iOS14RefreshGallerySelection: iOS14RefreshGallerySelection = fail;\n\ntype GetPhotos = ({ after, first }: { first: number; after?: string }) =>\n | Promise<{\n assets: Array<Omit<Asset, 'source'> & { source: 'picker' }>;\n endCursor: string;\n hasNextPage: boolean;\n iOSLimited: boolean;\n }>\n | never;\nexport let getPhotos: GetPhotos = fail;\n\ntype NetInfo = {\n addEventListener: (listener: (isConnected: boolean) => void) => NetInfoSubscription | never;\n fetch: (requestedInterface?: string | undefined) => Promise<boolean> | never;\n};\n\nexport let FlatList = DefaultFlatList;\n\nexport let NetInfo: NetInfo = {\n addEventListener: fail,\n fetch: fail,\n};\n\ntype PickDocument = ({ maxNumberOfFiles }: { maxNumberOfFiles?: number }) =>\n | Promise<{\n cancelled: boolean;\n assets?: File[];\n }>\n | never;\nexport let pickDocument: PickDocument = fail;\n\ntype SaveFileOptions = {\n fileName: string;\n fromUrl: string;\n};\ntype SaveFile = (options: SaveFileOptions) => Promise<string> | never;\nexport let saveFile: SaveFile = fail;\n\ntype SetClipboardString = (text: string) => Promise<void> | never;\nexport let setClipboardString: SetClipboardString = fail;\n\ntype ShareOptions = {\n type?: string;\n url?: string;\n};\ntype ShareImage = (options: ShareOptions) => Promise<boolean> | never;\nexport let shareImage: ShareImage = fail;\n\ntype Photo =\n | (Omit<Asset, 'source'> & {\n cancelled: false;\n source: 'camera';\n })\n | { cancelled: true };\ntype TakePhoto = (options: { compressImageQuality?: number }) => Promise<Photo> | never;\nexport let takePhoto: TakePhoto = fail;\n\ntype HapticFeedbackMethod =\n | 'impactHeavy'\n | 'impactLight'\n | 'impactMedium'\n | 'notificationError'\n | 'notificationSuccess'\n | 'notificationWarning'\n | 'selection';\ntype TriggerHaptic = (method: HapticFeedbackMethod) => void | never;\nexport let triggerHaptic: TriggerHaptic = fail;\n\nexport type PlaybackStatus = {\n didJustFinish: boolean;\n durationMillis: number;\n error: string;\n isBuffering: boolean;\n isLoaded: boolean;\n isLooping: boolean;\n isPlaying: boolean;\n positionMillis: number;\n};\n\nexport type AVPlaybackStatusToSet = {\n isLooping: boolean;\n isMuted: boolean;\n positionMillis: number;\n progressUpdateIntervalMillis: number;\n rate: number;\n shouldCorrectPitch: boolean;\n shouldPlay: boolean;\n volume: number;\n};\n\nexport let SDK: string;\n\nexport type SoundOptions = {\n basePathOrCallback?: string;\n callback?: () => void;\n filenameOrFile?: string;\n initialStatus?: Partial<AVPlaybackStatusToSet>;\n onPlaybackStatusUpdate?: (playbackStatus: PlaybackStatus) => void;\n source?: { uri: string };\n};\n\nexport type SoundReturnType = {\n paused: boolean;\n testID: string;\n getDuration?: () => number;\n isPlaying?: () => boolean;\n onBuffer?: (props: { isBuffering: boolean }) => void;\n onEnd?: () => void;\n onLoad?: (payload: VideoPayloadData) => void;\n onLoadStart?: () => void;\n onPlaybackStatusUpdate?: (playbackStatus: PlaybackStatus) => void;\n onProgress?: (data: VideoProgressData) => void;\n onReadyForDisplay?: () => void;\n pauseAsync?: () => void;\n play?: () => void;\n playAsync?: () => void;\n replayAsync?: () => void;\n resizeMode?: string;\n seek?: (progress: number) => void;\n setPositionAsync?: (millis: number) => void;\n soundRef?: React.RefObject<SoundReturnType>;\n stopAsync?: () => void;\n style?: StyleProp<ViewStyle>;\n unloadAsync?: () => void;\n uri?: string;\n};\n\nexport type SoundType = {\n initializeSound: (\n source?: { uri: string },\n initialStatus?: Partial<AVPlaybackStatusToSet>,\n onPlaybackStatusUpdate?: (playbackStatus: PlaybackStatus) => void,\n ) => Promise<SoundReturnType | null>;\n Player: React.ComponentType<SoundReturnType> | null;\n};\n\nexport let Sound: SoundType;\n\nexport type VideoProgressData = {\n currentTime: number;\n seekableDuration: number;\n playableDuration?: number;\n};\n\nexport type VideoPayloadData = {\n duration: number;\n audioTracks?: { index: number; language: string; title: string; type: string }[];\n currentPosition?: number;\n naturalSize?: { height: number; orientation: 'portrait' | 'landscape'; width: number };\n textTracks?: { index: number; language: string; title: string; type: string }[];\n videoTracks?: {\n bitrate: number;\n codecs: string;\n height: number;\n trackId: number;\n width: number;\n }[];\n};\n\nexport type VideoType = {\n paused: boolean;\n testID: string;\n uri: string;\n videoRef: React.RefObject<VideoType>;\n onBuffer?: (props: { isBuffering: boolean }) => void;\n onEnd?: () => void;\n onLoad?: (payload: VideoPayloadData) => void;\n onLoadStart?: () => void;\n onPlaybackStatusUpdate?: (playbackStatus: PlaybackStatus) => void;\n onProgress?: (data: VideoProgressData) => void;\n onReadyForDisplay?: () => void;\n repeat?: boolean;\n replayAsync?: () => void;\n resizeMode?: string;\n seek?: (progress: number) => void;\n setPositionAsync?: (position: number) => void;\n style?: StyleProp<ViewStyle>;\n};\n\nexport let Video: React.ComponentType<VideoType>;\n\ntype Handlers = {\n iOS14RefreshGallerySelection: iOS14RefreshGallerySelection;\n compressImage?: CompressImage;\n deleteFile?: DeleteFile;\n FlatList?: typeof DefaultFlatList;\n getLocalAssetUri?: GetLocalAssetUri;\n getPhotos?: GetPhotos;\n NetInfo?: NetInfo;\n oniOS14GalleryLibrarySelectionChange?: OniOS14LibrarySelectionChange;\n pickDocument?: PickDocument;\n saveFile?: SaveFile;\n SDK?: string;\n setClipboardString?: SetClipboardString;\n shareImage?: ShareImage;\n Sound?: SoundType;\n takePhoto?: TakePhoto;\n triggerHaptic?: TriggerHaptic;\n Video?: React.ComponentType<VideoType>;\n};\n\nexport const registerNativeHandlers = (handlers: Handlers) => {\n if (handlers.compressImage) {\n compressImage = handlers.compressImage;\n }\n\n if (handlers.deleteFile) {\n deleteFile = handlers.deleteFile;\n }\n\n if (handlers.FlatList) {\n FlatList = handlers.FlatList;\n }\n if (handlers.NetInfo) {\n NetInfo = handlers.NetInfo;\n }\n\n if (handlers.getLocalAssetUri) {\n getLocalAssetUri = handlers.getLocalAssetUri;\n }\n\n if (handlers.getPhotos) {\n getPhotos = handlers.getPhotos;\n }\n\n if (handlers.iOS14RefreshGallerySelection) {\n iOS14RefreshGallerySelection = handlers.iOS14RefreshGallerySelection;\n }\n\n if (handlers.oniOS14GalleryLibrarySelectionChange) {\n oniOS14GalleryLibrarySelectionChange = handlers.oniOS14GalleryLibrarySelectionChange;\n }\n\n if (handlers.pickDocument !== undefined) {\n pickDocument = handlers.pickDocument;\n }\n\n if (handlers.saveFile) {\n saveFile = handlers.saveFile;\n }\n\n if (handlers.SDK) {\n SDK = handlers.SDK;\n }\n\n if (handlers.shareImage !== undefined) {\n shareImage = handlers.shareImage;\n }\n\n if (handlers.Sound) {\n Sound = handlers.Sound;\n }\n\n if (handlers.takePhoto) {\n takePhoto = handlers.takePhoto;\n }\n\n if (handlers.triggerHaptic) {\n triggerHaptic = handlers.triggerHaptic;\n }\n\n if (handlers.Video) {\n Video = handlers.Video;\n }\n\n if (handlers.setClipboardString !== undefined) {\n setClipboardString = handlers.setClipboardString;\n }\n};\n\nexport const isVideoPackageAvailable = () => !!Video;\nexport const isAudioPackageAvailable = () => !!Sound.Player || !!Sound.initializeSound;\n"],"mappings":"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"}
1
+ {"version":3,"names":["_reactNative","require","fail","Error","compressImage","exports","deleteFile","getLocalAssetUri","oniOS14GalleryLibrarySelectionChange","iOS14RefreshGallerySelection","getPhotos","FlatList","DefaultFlatList","NetInfo","addEventListener","fetch","pickDocument","saveFile","setClipboardString","shareImage","takePhoto","triggerHaptic","SDK","Sound","Video","registerNativeHandlers","handlers","undefined","isVideoPackageAvailable","isAudioPackageAvailable","Player","initializeSound"],"sources":["native.ts"],"sourcesContent":["import type React from 'react';\nimport { FlatList as DefaultFlatList, StyleProp, ViewStyle } from 'react-native';\n\nimport type { NetInfoSubscription } from '@react-native-community/netinfo';\n\nimport type { Asset, File } from './types/types';\n\nconst fail = () => {\n throw Error(\n 'Native handler was not registered, you should import stream-chat-expo or stream-chat-react-native',\n );\n};\n\ntype CompressImage = ({\n compressImageQuality,\n height,\n uri,\n width,\n}: {\n compressImageQuality: number;\n height: number;\n uri: string;\n width: number;\n}) => Promise<string> | never;\nexport let compressImage: CompressImage = fail;\n\ntype DeleteFile = ({ uri }: { uri: string }) => Promise<boolean> | never;\nexport let deleteFile: DeleteFile = fail;\n\ntype GetLocalAssetUri = (uriOrAssetId: string) => Promise<string | undefined> | never;\nexport let getLocalAssetUri: GetLocalAssetUri = fail;\n\ntype OniOS14LibrarySelectionChange = (callback: () => void) => { unsubscribe: () => void };\nexport let oniOS14GalleryLibrarySelectionChange: OniOS14LibrarySelectionChange = fail;\n\ntype iOS14RefreshGallerySelection = () => Promise<void>;\nexport let iOS14RefreshGallerySelection: iOS14RefreshGallerySelection = fail;\n\ntype GetPhotos = ({ after, first }: { first: number; after?: string }) =>\n | Promise<{\n assets: Array<Omit<Asset, 'source'> & { source: 'picker' }>;\n endCursor: string;\n hasNextPage: boolean;\n iOSLimited: boolean;\n }>\n | never;\nexport let getPhotos: GetPhotos = fail;\n\ntype NetInfo = {\n addEventListener: (listener: (isConnected: boolean) => void) => NetInfoSubscription | never;\n fetch: (requestedInterface?: string | undefined) => Promise<boolean> | never;\n};\n\nexport let FlatList = DefaultFlatList;\n\nexport let NetInfo: NetInfo = {\n addEventListener: fail,\n fetch: fail,\n};\n\ntype PickDocument = ({ maxNumberOfFiles }: { maxNumberOfFiles?: number }) =>\n | Promise<{\n cancelled: boolean;\n assets?: File[];\n }>\n | never;\nexport let pickDocument: PickDocument = fail;\n\ntype SaveFileOptions = {\n fileName: string;\n fromUrl: string;\n};\ntype SaveFile = (options: SaveFileOptions) => Promise<string> | never;\nexport let saveFile: SaveFile = fail;\n\ntype SetClipboardString = (text: string) => Promise<void> | never;\nexport let setClipboardString: SetClipboardString = fail;\n\ntype ShareOptions = {\n type?: string;\n url?: string;\n};\ntype ShareImage = (options: ShareOptions) => Promise<boolean> | never;\nexport let shareImage: ShareImage = fail;\n\ntype Photo =\n | (Omit<Asset, 'source'> & {\n cancelled: false;\n source: 'camera';\n askToOpenSettings?: boolean;\n })\n | {\n cancelled: true;\n askToOpenSettings?: boolean;\n };\ntype TakePhoto = (options: { compressImageQuality?: number }) => Promise<Photo> | never;\nexport let takePhoto: TakePhoto = fail;\n\ntype HapticFeedbackMethod =\n | 'impactHeavy'\n | 'impactLight'\n | 'impactMedium'\n | 'notificationError'\n | 'notificationSuccess'\n | 'notificationWarning'\n | 'selection';\ntype TriggerHaptic = (method: HapticFeedbackMethod) => void | never;\nexport let triggerHaptic: TriggerHaptic = fail;\n\nexport type PlaybackStatus = {\n didJustFinish: boolean;\n durationMillis: number;\n error: string;\n isBuffering: boolean;\n isLoaded: boolean;\n isLooping: boolean;\n isPlaying: boolean;\n positionMillis: number;\n};\n\nexport type AVPlaybackStatusToSet = {\n isLooping: boolean;\n isMuted: boolean;\n positionMillis: number;\n progressUpdateIntervalMillis: number;\n rate: number;\n shouldCorrectPitch: boolean;\n shouldPlay: boolean;\n volume: number;\n};\n\nexport let SDK: string;\n\nexport type SoundOptions = {\n basePathOrCallback?: string;\n callback?: () => void;\n filenameOrFile?: string;\n initialStatus?: Partial<AVPlaybackStatusToSet>;\n onPlaybackStatusUpdate?: (playbackStatus: PlaybackStatus) => void;\n source?: { uri: string };\n};\n\nexport type SoundReturnType = {\n paused: boolean;\n testID: string;\n getDuration?: () => number;\n isPlaying?: () => boolean;\n onBuffer?: (props: { isBuffering: boolean }) => void;\n onEnd?: () => void;\n onLoad?: (payload: VideoPayloadData) => void;\n onLoadStart?: () => void;\n onPlaybackStatusUpdate?: (playbackStatus: PlaybackStatus) => void;\n onProgress?: (data: VideoProgressData) => void;\n onReadyForDisplay?: () => void;\n pauseAsync?: () => void;\n play?: () => void;\n playAsync?: () => void;\n replayAsync?: () => void;\n resizeMode?: string;\n seek?: (progress: number) => void;\n setPositionAsync?: (millis: number) => void;\n soundRef?: React.RefObject<SoundReturnType>;\n stopAsync?: () => void;\n style?: StyleProp<ViewStyle>;\n unloadAsync?: () => void;\n uri?: string;\n};\n\nexport type SoundType = {\n initializeSound: (\n source?: { uri: string },\n initialStatus?: Partial<AVPlaybackStatusToSet>,\n onPlaybackStatusUpdate?: (playbackStatus: PlaybackStatus) => void,\n ) => Promise<SoundReturnType | null>;\n Player: React.ComponentType<SoundReturnType> | null;\n};\n\nexport let Sound: SoundType;\n\nexport type VideoProgressData = {\n currentTime: number;\n seekableDuration: number;\n playableDuration?: number;\n};\n\nexport type VideoPayloadData = {\n duration: number;\n audioTracks?: { index: number; language: string; title: string; type: string }[];\n currentPosition?: number;\n naturalSize?: { height: number; orientation: 'portrait' | 'landscape'; width: number };\n textTracks?: { index: number; language: string; title: string; type: string }[];\n videoTracks?: {\n bitrate: number;\n codecs: string;\n height: number;\n trackId: number;\n width: number;\n }[];\n};\n\nexport type VideoType = {\n paused: boolean;\n testID: string;\n uri: string;\n videoRef: React.RefObject<VideoType>;\n onBuffer?: (props: { isBuffering: boolean }) => void;\n onEnd?: () => void;\n onLoad?: (payload: VideoPayloadData) => void;\n onLoadStart?: () => void;\n onPlaybackStatusUpdate?: (playbackStatus: PlaybackStatus) => void;\n onProgress?: (data: VideoProgressData) => void;\n onReadyForDisplay?: () => void;\n repeat?: boolean;\n replayAsync?: () => void;\n resizeMode?: string;\n seek?: (progress: number) => void;\n setPositionAsync?: (position: number) => void;\n style?: StyleProp<ViewStyle>;\n};\n\nexport let Video: React.ComponentType<VideoType>;\n\ntype Handlers = {\n iOS14RefreshGallerySelection: iOS14RefreshGallerySelection;\n compressImage?: CompressImage;\n deleteFile?: DeleteFile;\n FlatList?: typeof DefaultFlatList;\n getLocalAssetUri?: GetLocalAssetUri;\n getPhotos?: GetPhotos;\n NetInfo?: NetInfo;\n oniOS14GalleryLibrarySelectionChange?: OniOS14LibrarySelectionChange;\n pickDocument?: PickDocument;\n saveFile?: SaveFile;\n SDK?: string;\n setClipboardString?: SetClipboardString;\n shareImage?: ShareImage;\n Sound?: SoundType;\n takePhoto?: TakePhoto;\n triggerHaptic?: TriggerHaptic;\n Video?: React.ComponentType<VideoType>;\n};\n\nexport const registerNativeHandlers = (handlers: Handlers) => {\n if (handlers.compressImage) {\n compressImage = handlers.compressImage;\n }\n\n if (handlers.deleteFile) {\n deleteFile = handlers.deleteFile;\n }\n\n if (handlers.FlatList) {\n FlatList = handlers.FlatList;\n }\n if (handlers.NetInfo) {\n NetInfo = handlers.NetInfo;\n }\n\n if (handlers.getLocalAssetUri) {\n getLocalAssetUri = handlers.getLocalAssetUri;\n }\n\n if (handlers.getPhotos) {\n getPhotos = handlers.getPhotos;\n }\n\n if (handlers.iOS14RefreshGallerySelection) {\n iOS14RefreshGallerySelection = handlers.iOS14RefreshGallerySelection;\n }\n\n if (handlers.oniOS14GalleryLibrarySelectionChange) {\n oniOS14GalleryLibrarySelectionChange = handlers.oniOS14GalleryLibrarySelectionChange;\n }\n\n if (handlers.pickDocument !== undefined) {\n pickDocument = handlers.pickDocument;\n }\n\n if (handlers.saveFile) {\n saveFile = handlers.saveFile;\n }\n\n if (handlers.SDK) {\n SDK = handlers.SDK;\n }\n\n if (handlers.shareImage !== undefined) {\n shareImage = handlers.shareImage;\n }\n\n if (handlers.Sound) {\n Sound = handlers.Sound;\n }\n\n if (handlers.takePhoto) {\n takePhoto = handlers.takePhoto;\n }\n\n if (handlers.triggerHaptic) {\n triggerHaptic = handlers.triggerHaptic;\n }\n\n if (handlers.Video) {\n Video = handlers.Video;\n }\n\n if (handlers.setClipboardString !== undefined) {\n setClipboardString = handlers.setClipboardString;\n }\n};\n\nexport const isVideoPackageAvailable = () => !!Video;\nexport const isAudioPackageAvailable = () => !!Sound.Player || !!Sound.initializeSound;\n"],"mappings":"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"}
@@ -1,3 +1,3 @@
1
1
  {
2
- "version": "5.22.0-beta.5"
2
+ "version": "5.22.0-beta.6"
3
3
  }
@@ -11,6 +11,7 @@ var _reactNative = require("react-native");
11
11
  var _AttachmentPickerContext = require("../../../contexts/attachmentPickerContext/AttachmentPickerContext");
12
12
  var _MessageInputContext = require("../../../contexts/messageInputContext/MessageInputContext");
13
13
  var _ThemeContext = require("../../../contexts/themeContext/ThemeContext");
14
+ var _TranslationContext = require("../../../contexts/translationContext/TranslationContext");
14
15
  var _native = require("../../../native");
15
16
  var _this = this,
16
17
  _jsxFileName = "/home/runner/work/stream-chat-react-native/stream-chat-react-native/package/src/components/AttachmentPicker/components/AttachmentSelectionBar.tsx";
@@ -34,6 +35,8 @@ var AttachmentSelectionBar = function AttachmentSelectionBar() {
34
35
  selectedPicker = _useAttachmentPickerC.selectedPicker,
35
36
  setSelectedImages = _useAttachmentPickerC.setSelectedImages,
36
37
  setSelectedPicker = _useAttachmentPickerC.setSelectedPicker;
38
+ var _useTranslationContex = (0, _TranslationContext.useTranslationContext)(),
39
+ t = _useTranslationContex.t;
37
40
  var _useMessageInputConte = (0, _MessageInputContext.useMessageInputContext)(),
38
41
  compressImageQuality = _useMessageInputConte.compressImageQuality,
39
42
  hasFilePicker = _useMessageInputConte.hasFilePicker,
@@ -70,12 +73,24 @@ var AttachmentSelectionBar = function AttachmentSelectionBar() {
70
73
  });
71
74
  case 4:
72
75
  photo = _context.sent;
76
+ if (photo.askToOpenSettings) {
77
+ _reactNative.Alert.alert(t('Allow camera access in device settings'), t('Device camera is used to take photos or videos.'), [{
78
+ style: 'cancel',
79
+ text: t('Cancel')
80
+ }, {
81
+ onPress: function onPress() {
82
+ return _reactNative.Linking.openSettings();
83
+ },
84
+ style: 'default',
85
+ text: t('Open Settings')
86
+ }]);
87
+ }
73
88
  if (!photo.cancelled) {
74
89
  setSelectedImages(function (images) {
75
90
  return [].concat((0, _toConsumableArray2["default"])(images), [photo]);
76
91
  });
77
92
  }
78
- case 6:
93
+ case 7:
79
94
  case "end":
80
95
  return _context.stop();
81
96
  }
@@ -92,7 +107,7 @@ var AttachmentSelectionBar = function AttachmentSelectionBar() {
92
107
  __self: _this,
93
108
  __source: {
94
109
  fileName: _jsxFileName,
95
- lineNumber: 66,
110
+ lineNumber: 78,
96
111
  columnNumber: 5
97
112
  }
98
113
  }, _react["default"].createElement(_reactNative.TouchableOpacity, {
@@ -107,7 +122,7 @@ var AttachmentSelectionBar = function AttachmentSelectionBar() {
107
122
  __self: _this,
108
123
  __source: {
109
124
  fileName: _jsxFileName,
110
- lineNumber: 67,
125
+ lineNumber: 79,
111
126
  columnNumber: 7
112
127
  }
113
128
  }, _react["default"].createElement(_reactNative.View, {
@@ -115,7 +130,7 @@ var AttachmentSelectionBar = function AttachmentSelectionBar() {
115
130
  __self: _this,
116
131
  __source: {
117
132
  fileName: _jsxFileName,
118
- lineNumber: 72,
133
+ lineNumber: 84,
119
134
  columnNumber: 9
120
135
  }
121
136
  }, _react["default"].createElement(ImageSelectorIcon, {
@@ -124,7 +139,7 @@ var AttachmentSelectionBar = function AttachmentSelectionBar() {
124
139
  __self: _this,
125
140
  __source: {
126
141
  fileName: _jsxFileName,
127
- lineNumber: 73,
142
+ lineNumber: 85,
128
143
  columnNumber: 11
129
144
  }
130
145
  }))), hasFilePicker && _react["default"].createElement(_reactNative.TouchableOpacity, {
@@ -137,7 +152,7 @@ var AttachmentSelectionBar = function AttachmentSelectionBar() {
137
152
  __self: _this,
138
153
  __source: {
139
154
  fileName: _jsxFileName,
140
- lineNumber: 80,
155
+ lineNumber: 92,
141
156
  columnNumber: 9
142
157
  }
143
158
  }, _react["default"].createElement(_reactNative.View, {
@@ -145,7 +160,7 @@ var AttachmentSelectionBar = function AttachmentSelectionBar() {
145
160
  __self: _this,
146
161
  __source: {
147
162
  fileName: _jsxFileName,
148
- lineNumber: 85,
163
+ lineNumber: 97,
149
164
  columnNumber: 11
150
165
  }
151
166
  }, _react["default"].createElement(FileSelectorIcon, {
@@ -154,7 +169,7 @@ var AttachmentSelectionBar = function AttachmentSelectionBar() {
154
169
  __self: _this,
155
170
  __source: {
156
171
  fileName: _jsxFileName,
157
- lineNumber: 86,
172
+ lineNumber: 98,
158
173
  columnNumber: 13
159
174
  }
160
175
  }))), _react["default"].createElement(_reactNative.TouchableOpacity, {
@@ -167,7 +182,7 @@ var AttachmentSelectionBar = function AttachmentSelectionBar() {
167
182
  __self: _this,
168
183
  __source: {
169
184
  fileName: _jsxFileName,
170
- lineNumber: 93,
185
+ lineNumber: 105,
171
186
  columnNumber: 7
172
187
  }
173
188
  }, _react["default"].createElement(_reactNative.View, {
@@ -175,7 +190,7 @@ var AttachmentSelectionBar = function AttachmentSelectionBar() {
175
190
  __self: _this,
176
191
  __source: {
177
192
  fileName: _jsxFileName,
178
- lineNumber: 98,
193
+ lineNumber: 110,
179
194
  columnNumber: 9
180
195
  }
181
196
  }, _react["default"].createElement(CameraSelectorIcon, {
@@ -184,7 +199,7 @@ var AttachmentSelectionBar = function AttachmentSelectionBar() {
184
199
  __self: _this,
185
200
  __source: {
186
201
  fileName: _jsxFileName,
187
- lineNumber: 99,
202
+ lineNumber: 111,
188
203
  columnNumber: 11
189
204
  }
190
205
  }))));
@@ -1 +1 @@
1
- {"version":3,"names":["_react","_interopRequireDefault","require","_reactNative","_AttachmentPickerContext","_MessageInputContext","_ThemeContext","_native","_this","_jsxFileName","styles","StyleSheet","create","container","alignItems","flexDirection","paddingHorizontal","icon","marginHorizontal","AttachmentSelectionBar","_useAttachmentPickerC","useAttachmentPickerContext","attachmentSelectionBarHeight","CameraSelectorIcon","closePicker","FileSelectorIcon","ImageSelectorIcon","selectedPicker","setSelectedImages","setSelectedPicker","_useMessageInputConte","useMessageInputContext","compressImageQuality","hasFilePicker","imageUploads","pickFile","_useTheme","useTheme","_useTheme$theme$attac","theme","attachmentSelectionBar","setPicker","selection","undefined","openFilePicker","takeAndUploadImage","_ref","_asyncToGenerator2","_regenerator","mark","_callee","photo","wrap","_callee$","_context","prev","next","takePhoto","sent","cancelled","images","concat","_toConsumableArray2","stop","apply","arguments","createElement","View","style","height","__self","__source","fileName","lineNumber","columnNumber","TouchableOpacity","hitSlop","bottom","top","onPress","testID","numberOfImageUploads","length","exports"],"sources":["AttachmentSelectionBar.tsx"],"sourcesContent":["import React from 'react';\nimport { StyleSheet, TouchableOpacity, View } from 'react-native';\n\nimport { useAttachmentPickerContext } from '../../../contexts/attachmentPickerContext/AttachmentPickerContext';\nimport { useMessageInputContext } from '../../../contexts/messageInputContext/MessageInputContext';\nimport { useTheme } from '../../../contexts/themeContext/ThemeContext';\n\nimport { takePhoto } from '../../../native';\n\nconst styles = StyleSheet.create({\n container: {\n alignItems: 'center',\n flexDirection: 'row',\n paddingHorizontal: 6,\n },\n icon: {\n marginHorizontal: 12,\n },\n});\n\nexport const AttachmentSelectionBar: React.FC = () => {\n const {\n attachmentSelectionBarHeight,\n CameraSelectorIcon,\n closePicker,\n FileSelectorIcon,\n ImageSelectorIcon,\n selectedPicker,\n setSelectedImages,\n setSelectedPicker,\n } = useAttachmentPickerContext();\n\n const { compressImageQuality, hasFilePicker, imageUploads, pickFile } = useMessageInputContext();\n\n const {\n theme: {\n attachmentSelectionBar: { container, icon },\n },\n } = useTheme();\n\n const setPicker = (selection: 'images') => {\n if (selectedPicker === selection) {\n setSelectedPicker(undefined);\n closePicker();\n } else {\n setSelectedPicker(selection);\n }\n };\n\n const openFilePicker = () => {\n setSelectedPicker(undefined);\n closePicker();\n pickFile();\n };\n\n const takeAndUploadImage = async () => {\n setSelectedPicker(undefined);\n closePicker();\n const photo = await takePhoto({ compressImageQuality });\n if (!photo.cancelled) {\n setSelectedImages((images) => [...images, photo]);\n }\n };\n\n return (\n <View style={[styles.container, container, { height: attachmentSelectionBarHeight ?? 52 }]}>\n <TouchableOpacity\n hitSlop={{ bottom: 15, top: 15 }}\n onPress={() => setPicker('images')}\n testID='upload-photo-touchable'\n >\n <View style={[styles.icon, icon]}>\n <ImageSelectorIcon\n numberOfImageUploads={imageUploads.length}\n selectedPicker={selectedPicker}\n />\n </View>\n </TouchableOpacity>\n {hasFilePicker && (\n <TouchableOpacity\n hitSlop={{ bottom: 15, top: 15 }}\n onPress={openFilePicker}\n testID='upload-file-touchable'\n >\n <View style={[styles.icon, icon]}>\n <FileSelectorIcon\n numberOfImageUploads={imageUploads.length}\n selectedPicker={selectedPicker}\n />\n </View>\n </TouchableOpacity>\n )}\n <TouchableOpacity\n hitSlop={{ bottom: 15, top: 15 }}\n onPress={takeAndUploadImage}\n testID='take-photo-touchable'\n >\n <View style={[styles.icon, icon]}>\n <CameraSelectorIcon\n numberOfImageUploads={imageUploads.length}\n selectedPicker={selectedPicker}\n />\n </View>\n </TouchableOpacity>\n </View>\n );\n};\n"],"mappings":"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"}
1
+ {"version":3,"names":["_react","_interopRequireDefault","require","_reactNative","_AttachmentPickerContext","_MessageInputContext","_ThemeContext","_TranslationContext","_native","_this","_jsxFileName","styles","StyleSheet","create","container","alignItems","flexDirection","paddingHorizontal","icon","marginHorizontal","AttachmentSelectionBar","_useAttachmentPickerC","useAttachmentPickerContext","attachmentSelectionBarHeight","CameraSelectorIcon","closePicker","FileSelectorIcon","ImageSelectorIcon","selectedPicker","setSelectedImages","setSelectedPicker","_useTranslationContex","useTranslationContext","t","_useMessageInputConte","useMessageInputContext","compressImageQuality","hasFilePicker","imageUploads","pickFile","_useTheme","useTheme","_useTheme$theme$attac","theme","attachmentSelectionBar","setPicker","selection","undefined","openFilePicker","takeAndUploadImage","_ref","_asyncToGenerator2","_regenerator","mark","_callee","photo","wrap","_callee$","_context","prev","next","takePhoto","sent","askToOpenSettings","Alert","alert","style","text","onPress","Linking","openSettings","cancelled","images","concat","_toConsumableArray2","stop","apply","arguments","createElement","View","height","__self","__source","fileName","lineNumber","columnNumber","TouchableOpacity","hitSlop","bottom","top","testID","numberOfImageUploads","length","exports"],"sources":["AttachmentSelectionBar.tsx"],"sourcesContent":["import React from 'react';\nimport { Alert, Linking, StyleSheet, TouchableOpacity, View } from 'react-native';\n\nimport { useAttachmentPickerContext } from '../../../contexts/attachmentPickerContext/AttachmentPickerContext';\nimport { useMessageInputContext } from '../../../contexts/messageInputContext/MessageInputContext';\nimport { useTheme } from '../../../contexts/themeContext/ThemeContext';\nimport { useTranslationContext } from '../../../contexts/translationContext/TranslationContext';\n\nimport { takePhoto } from '../../../native';\n\nconst styles = StyleSheet.create({\n container: {\n alignItems: 'center',\n flexDirection: 'row',\n paddingHorizontal: 6,\n },\n icon: {\n marginHorizontal: 12,\n },\n});\n\nexport const AttachmentSelectionBar: React.FC = () => {\n const {\n attachmentSelectionBarHeight,\n CameraSelectorIcon,\n closePicker,\n FileSelectorIcon,\n ImageSelectorIcon,\n selectedPicker,\n setSelectedImages,\n setSelectedPicker,\n } = useAttachmentPickerContext();\n const { t } = useTranslationContext();\n\n const { compressImageQuality, hasFilePicker, imageUploads, pickFile } = useMessageInputContext();\n\n const {\n theme: {\n attachmentSelectionBar: { container, icon },\n },\n } = useTheme();\n\n const setPicker = (selection: 'images') => {\n if (selectedPicker === selection) {\n setSelectedPicker(undefined);\n closePicker();\n } else {\n setSelectedPicker(selection);\n }\n };\n\n const openFilePicker = () => {\n setSelectedPicker(undefined);\n closePicker();\n pickFile();\n };\n\n const takeAndUploadImage = async () => {\n setSelectedPicker(undefined);\n closePicker();\n const photo = await takePhoto({ compressImageQuality });\n if (photo.askToOpenSettings) {\n Alert.alert(\n t('Allow camera access in device settings'),\n t('Device camera is used to take photos or videos.'),\n [\n { style: 'cancel', text: t('Cancel') },\n { onPress: () => Linking.openSettings(), style: 'default', text: t('Open Settings') },\n ],\n );\n }\n if (!photo.cancelled) {\n setSelectedImages((images) => [...images, photo]);\n }\n };\n\n return (\n <View style={[styles.container, container, { height: attachmentSelectionBarHeight ?? 52 }]}>\n <TouchableOpacity\n hitSlop={{ bottom: 15, top: 15 }}\n onPress={() => setPicker('images')}\n testID='upload-photo-touchable'\n >\n <View style={[styles.icon, icon]}>\n <ImageSelectorIcon\n numberOfImageUploads={imageUploads.length}\n selectedPicker={selectedPicker}\n />\n </View>\n </TouchableOpacity>\n {hasFilePicker && (\n <TouchableOpacity\n hitSlop={{ bottom: 15, top: 15 }}\n onPress={openFilePicker}\n testID='upload-file-touchable'\n >\n <View style={[styles.icon, icon]}>\n <FileSelectorIcon\n numberOfImageUploads={imageUploads.length}\n selectedPicker={selectedPicker}\n />\n </View>\n </TouchableOpacity>\n )}\n <TouchableOpacity\n hitSlop={{ bottom: 15, top: 15 }}\n onPress={takeAndUploadImage}\n testID='take-photo-touchable'\n >\n <View style={[styles.icon, icon]}>\n <CameraSelectorIcon\n numberOfImageUploads={imageUploads.length}\n selectedPicker={selectedPicker}\n />\n </View>\n </TouchableOpacity>\n </View>\n );\n};\n"],"mappings":"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"}
@@ -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",
@@ -39,6 +41,7 @@
39
41
  "Nothing yet...": "Nothing yet...",
40
42
  "Ok": "Ok",
41
43
  "Only visible to you": "Only visible to you",
44
+ "Open Settings": "Open Settings",
42
45
  "Photo": "Photo",
43
46
  "Photos and Videos": "Photos and Videos",
44
47
  "Pin to Conversation": "Pin to Conversation",
@@ -70,5 +70,8 @@
70
70
  "🏙 Attachment...": "🏙 Adjunto...",
71
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
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?"
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"
74
77
  }
@@ -1,8 +1,9 @@
1
1
  {
2
2
  "1 Reply": "1 Réponse",
3
- "1 Thread Reply": "Réponse à 1 fil",
3
+ "1 Thread Reply": "",
4
4
  "Allow access to your Gallery": "Autoriser l'accès à votre galerie",
5
- "Also send to channel": "",
5
+ "Allow camera access in device settings": "Autoriser l'accès à la caméra dans les paramètres de l'appareil",
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,9 +11,10 @@
10
11
  "Copy Message": "",
11
12
  "Delete": "",
12
13
  "Delete Message": "",
14
+ "Device camera is used to take photos or videos.": "L'appareil photo de l'appareil est utilisé pour prendre des photos ou des vidéos.",
13
15
  "Do you want to send a copy of this message to a moderator for further investigation?": "",
14
16
  "Edit Message": "",
15
- "Editing Message": "Édite un message",
17
+ "Editing Message": "",
16
18
  "Emoji matching": "",
17
19
  "Empty message...": "",
18
20
  "Error loading": "",
@@ -26,23 +28,24 @@
26
28
  "How about sending your first message to a friend?": "",
27
29
  "Instant Commands": "",
28
30
  "Let's start chatting!": "",
29
- "Links are disabled": "Links are disabled",
31
+ "Links are disabled": "",
30
32
  "Loading channels...": "",
31
33
  "Loading messages...": "",
32
34
  "Loading...": "",
33
- "Maximum file size upload limit reached. Please upload a file below {{MAX_FILE_SIZE_TO_UPLOAD_IN_MB}} MB.": "Taille maximale de téléchargement de fichier atteinte. Veuillez télécharger un fichier inférieur à {{MAX_FILE_SIZE_TO_UPLOAD_IN_MB}} Mo.",
34
- "Message Reactions": "",
35
+ "Maximum file size upload limit reached. Please upload a file below {{MAX_FILE_SIZE_TO_UPLOAD_IN_MB}} MB.": "",
36
+ "Message Reactions": "Réactions aux messages",
35
37
  "Message deleted": "",
36
38
  "Message flagged": "",
37
39
  "Mute User": "",
38
40
  "Not supported": "",
39
41
  "Nothing yet...": "",
40
42
  "Ok": "",
41
- "Only visible to you": "Seulement visible par vous",
42
- "Photo": "Photo",
43
+ "Only visible to you": "",
44
+ "Open Settings": "Ouvrir les paramètres",
45
+ "Photo": "",
43
46
  "Photos and Videos": "Photos et vidéos",
44
47
  "Pin to Conversation": "",
45
- "Pinned by": "Épinglé par",
48
+ "Pinned by": "",
46
49
  "Please enable access to your photos and videos so you can share them.": "Veuillez autoriser l'accès à vos photos et vidéos afin de pouvoir les partager.",
47
50
  "Please select a channel first": "Veuillez d'abord selectionnez un canal",
48
51
  "Reconnecting...": "",
@@ -52,7 +55,7 @@
52
55
  "Search GIFs": "",
53
56
  "Select More Photos": "Sélectionner plus de photos",
54
57
  "Send a message": "",
55
- "Sending links is not allowed in this conversation": "Sending links is not allowed in this conversation",
58
+ "Sending links is not allowed in this conversation": "",
56
59
  "Slow mode ON": "",
57
60
  "The message has been reported to a moderator.": "",
58
61
  "Thread Reply": "",
@@ -60,14 +63,14 @@
60
63
  "Unknown User": "Utilisateur inconnu",
61
64
  "Unmute User": "",
62
65
  "Unpin from Conversation": "",
63
- "Unread Messages": "",
64
- "Video": "Vidéo",
66
+ "Unread Messages": "Messages non lus",
67
+ "Video": "",
65
68
  "You": "",
66
- "You can't send messages in this channel": "You can't send messages in this channel",
67
- "{{ firstUser }} and {{ nonSelfUserLength }} more are typing": "",
69
+ "You can't send messages in this channel": "",
70
+ "{{ firstUser }} and {{ nonSelfUserLength }} more are typing": "{{ firstUser }} et {{ nonSelfUserLength }} autres sont en train d'écrire",
68
71
  "{{ index }} of {{ photoLength }}": "{{ index }} sur {{ photoLength }}",
69
72
  "{{ replyCount }} Replies": "{{ replyCount }} Réponses",
70
- "{{ replyCount }} Thread Replies": "{{replyCount}} Réponses à la discussion",
71
- "{{ user }} is typing": "",
73
+ "{{ replyCount }} Thread Replies": "",
74
+ "{{ user }} is typing": "{{ user }} est en train d'écrire",
72
75
  "🏙 Attachment...": ""
73
76
  }
@@ -70,5 +70,8 @@
70
70
  "🏙 Attachment...": "🏙 קובץ מצורף...",
71
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
72
  "Let's start chatting!": "בואו נתחיל לשוחח!",
73
- "How about sending your first message to a friend?": "מה דעתך לשלוח את ההודעה הראשונה שלך לחבר?"
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": "פתח את ההגדרות"
74
77
  }