stream-chat-react-native-core 5.21.0-beta.2 → 5.21.0-beta.3
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/AttachmentPicker/AttachmentPicker.js +34 -17
- package/lib/commonjs/components/AttachmentPicker/AttachmentPicker.js.map +1 -1
- package/lib/commonjs/i18n/en.json +1 -0
- package/lib/commonjs/i18n/fr.json +33 -32
- package/lib/commonjs/i18n/he.json +1 -0
- package/lib/commonjs/i18n/hi.json +33 -32
- package/lib/commonjs/i18n/it.json +33 -32
- package/lib/commonjs/i18n/ja.json +1 -0
- package/lib/commonjs/i18n/ko.json +1 -0
- package/lib/commonjs/i18n/nl.json +33 -32
- package/lib/commonjs/i18n/ru.json +33 -32
- package/lib/commonjs/i18n/tr.json +33 -32
- package/lib/commonjs/native.js +6 -1
- package/lib/commonjs/native.js.map +1 -1
- package/lib/commonjs/version.json +1 -1
- package/lib/module/components/AttachmentPicker/AttachmentPicker.js +34 -17
- package/lib/module/components/AttachmentPicker/AttachmentPicker.js.map +1 -1
- package/lib/module/i18n/en.json +1 -0
- package/lib/module/i18n/fr.json +33 -32
- package/lib/module/i18n/he.json +1 -0
- package/lib/module/i18n/hi.json +33 -32
- package/lib/module/i18n/it.json +33 -32
- package/lib/module/i18n/ja.json +1 -0
- package/lib/module/i18n/ko.json +1 -0
- package/lib/module/i18n/nl.json +33 -32
- package/lib/module/i18n/ru.json +33 -32
- package/lib/module/i18n/tr.json +33 -32
- package/lib/module/native.js +6 -1
- package/lib/module/native.js.map +1 -1
- package/lib/module/version.json +1 -1
- package/lib/typescript/i18n/en.json +1 -0
- package/lib/typescript/i18n/fr.json +33 -32
- package/lib/typescript/i18n/he.json +1 -0
- package/lib/typescript/i18n/hi.json +33 -32
- package/lib/typescript/i18n/it.json +33 -32
- package/lib/typescript/i18n/ja.json +1 -0
- package/lib/typescript/i18n/ko.json +1 -0
- package/lib/typescript/i18n/nl.json +33 -32
- package/lib/typescript/i18n/ru.json +33 -32
- package/lib/typescript/i18n/tr.json +33 -32
- package/lib/typescript/native.d.ts +4 -0
- package/lib/typescript/utils/Streami18n.d.ts +1 -0
- package/package.json +1 -1
- package/src/components/AttachmentPicker/AttachmentPicker.tsx +21 -2
- package/src/i18n/en.json +1 -0
- package/src/i18n/fr.json +33 -32
- package/src/i18n/he.json +1 -0
- package/src/i18n/hi.json +33 -32
- package/src/i18n/it.json +33 -32
- package/src/i18n/ja.json +1 -0
- package/src/i18n/ko.json +1 -0
- package/src/i18n/nl.json +33 -32
- package/src/i18n/ru.json +33 -32
- package/src/i18n/tr.json +33 -32
- package/src/native.ts +9 -0
- package/src/version.json +1 -1
|
@@ -16,6 +16,7 @@ var _duration = _interopRequireDefault(require("dayjs/plugin/duration"));
|
|
|
16
16
|
var _AttachmentPickerItem = require("./components/AttachmentPickerItem");
|
|
17
17
|
var _AttachmentPickerContext = require("../../contexts/attachmentPickerContext/AttachmentPickerContext");
|
|
18
18
|
var _ThemeContext = require("../../contexts/themeContext/ThemeContext");
|
|
19
|
+
var _TranslationContext = require("../../contexts/translationContext/TranslationContext");
|
|
19
20
|
var _native = require("../../native");
|
|
20
21
|
var _utils = require("../../utils/utils");
|
|
21
22
|
var _this = this,
|
|
@@ -65,23 +66,29 @@ var AttachmentPicker = _react["default"].forwardRef(function (props, ref) {
|
|
|
65
66
|
_useState4 = (0, _slicedToArray2["default"])(_useState3, 2),
|
|
66
67
|
photoError = _useState4[0],
|
|
67
68
|
setPhotoError = _useState4[1];
|
|
68
|
-
var hasNextPageRef = (0, _react.useRef)(true);
|
|
69
69
|
var _useState5 = (0, _react.useState)(false),
|
|
70
70
|
_useState6 = (0, _slicedToArray2["default"])(_useState5, 2),
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
var
|
|
71
|
+
iOSLimited = _useState6[0],
|
|
72
|
+
setIosLimited = _useState6[1];
|
|
73
|
+
var hasNextPageRef = (0, _react.useRef)(true);
|
|
74
|
+
var _useState7 = (0, _react.useState)(false),
|
|
74
75
|
_useState8 = (0, _slicedToArray2["default"])(_useState7, 2),
|
|
75
|
-
|
|
76
|
-
|
|
76
|
+
loadingPhotos = _useState8[0],
|
|
77
|
+
setLoadingPhotos = _useState8[1];
|
|
78
|
+
var _useState9 = (0, _react.useState)([]),
|
|
79
|
+
_useState10 = (0, _slicedToArray2["default"])(_useState9, 2),
|
|
80
|
+
photos = _useState10[0],
|
|
81
|
+
setPhotos = _useState10[1];
|
|
77
82
|
var attemptedToLoadPhotosOnOpenRef = (0, _react.useRef)(false);
|
|
83
|
+
var _useTranslationContex = (0, _TranslationContext.useTranslationContext)(),
|
|
84
|
+
t = _useTranslationContex.t;
|
|
78
85
|
var getMorePhotos = (0, _react.useCallback)((0, _asyncToGenerator2["default"])(_regenerator["default"].mark(function _callee() {
|
|
79
86
|
var endCursor, results;
|
|
80
87
|
return _regenerator["default"].wrap(function _callee$(_context) {
|
|
81
88
|
while (1) switch (_context.prev = _context.next) {
|
|
82
89
|
case 0:
|
|
83
90
|
if (!(hasNextPageRef.current && !loadingPhotos && currentIndex > -1 && selectedPicker === 'images')) {
|
|
84
|
-
_context.next =
|
|
91
|
+
_context.next = 18;
|
|
85
92
|
break;
|
|
86
93
|
}
|
|
87
94
|
setPhotoError(false);
|
|
@@ -99,20 +106,21 @@ var AttachmentPicker = _react["default"].forwardRef(function (props, ref) {
|
|
|
99
106
|
setPhotos(function (prevPhotos) {
|
|
100
107
|
return endCursor ? [].concat((0, _toConsumableArray2["default"])(prevPhotos), (0, _toConsumableArray2["default"])(results.assets)) : results.assets;
|
|
101
108
|
});
|
|
109
|
+
setIosLimited(results.iOSLimited);
|
|
102
110
|
hasNextPageRef.current = !!results.hasNextPage;
|
|
103
|
-
_context.next =
|
|
111
|
+
_context.next = 17;
|
|
104
112
|
break;
|
|
105
|
-
case
|
|
106
|
-
_context.prev =
|
|
113
|
+
case 14:
|
|
114
|
+
_context.prev = 14;
|
|
107
115
|
_context.t0 = _context["catch"](4);
|
|
108
116
|
setPhotoError(true);
|
|
109
|
-
case 16:
|
|
110
|
-
setLoadingPhotos(false);
|
|
111
117
|
case 17:
|
|
118
|
+
setLoadingPhotos(false);
|
|
119
|
+
case 18:
|
|
112
120
|
case "end":
|
|
113
121
|
return _context.stop();
|
|
114
122
|
}
|
|
115
|
-
}, _callee, null, [[4,
|
|
123
|
+
}, _callee, null, [[4, 14]]);
|
|
116
124
|
})), [currentIndex, selectedPicker, loadingPhotos]);
|
|
117
125
|
var getMorePhotosRef = (0, _react.useRef)(getMorePhotos);
|
|
118
126
|
getMorePhotosRef.current = getMorePhotos;
|
|
@@ -235,10 +243,19 @@ var AttachmentPicker = _react["default"].forwardRef(function (props, ref) {
|
|
|
235
243
|
__self: _this,
|
|
236
244
|
__source: {
|
|
237
245
|
fileName: _jsxFileName,
|
|
238
|
-
lineNumber:
|
|
246
|
+
lineNumber: 302,
|
|
239
247
|
columnNumber: 9
|
|
240
248
|
}
|
|
241
|
-
}, _react["default"].createElement(
|
|
249
|
+
}, iOSLimited && _react["default"].createElement(_reactNative.Button, {
|
|
250
|
+
onPress: _native.iOS14RefreshGallerySelection,
|
|
251
|
+
title: t('Select More Photos'),
|
|
252
|
+
__self: _this,
|
|
253
|
+
__source: {
|
|
254
|
+
fileName: _jsxFileName,
|
|
255
|
+
lineNumber: 319,
|
|
256
|
+
columnNumber: 13
|
|
257
|
+
}
|
|
258
|
+
}), _react["default"].createElement(_bottomSheet.BottomSheetFlatList, {
|
|
242
259
|
contentContainerStyle: [styles.container, {
|
|
243
260
|
backgroundColor: white
|
|
244
261
|
}, bottomSheetContentContainer, {
|
|
@@ -254,7 +271,7 @@ var AttachmentPicker = _react["default"].forwardRef(function (props, ref) {
|
|
|
254
271
|
__self: _this,
|
|
255
272
|
__source: {
|
|
256
273
|
fileName: _jsxFileName,
|
|
257
|
-
lineNumber:
|
|
274
|
+
lineNumber: 321,
|
|
258
275
|
columnNumber: 11
|
|
259
276
|
}
|
|
260
277
|
})), selectedPicker === 'images' && photoError && _react["default"].createElement(AttachmentPickerError, {
|
|
@@ -265,7 +282,7 @@ var AttachmentPicker = _react["default"].forwardRef(function (props, ref) {
|
|
|
265
282
|
__self: _this,
|
|
266
283
|
__source: {
|
|
267
284
|
fileName: _jsxFileName,
|
|
268
|
-
lineNumber:
|
|
285
|
+
lineNumber: 336,
|
|
269
286
|
columnNumber: 11
|
|
270
287
|
}
|
|
271
288
|
}));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_react","_interopRequireWildcard","require","_reactNative","_bottomSheet","_dayjs","_interopRequireDefault","_duration","_AttachmentPickerItem","_AttachmentPickerContext","_ThemeContext","_native","_utils","_this","_jsxFileName","_getRequireWildcardCache","nodeInterop","WeakMap","cacheBabelInterop","cacheNodeInterop","obj","__esModule","_typeof","cache","has","get","newObj","hasPropertyDescriptor","Object","defineProperty","getOwnPropertyDescriptor","key","prototype","hasOwnProperty","call","desc","set","dayjs","extend","duration","styles","StyleSheet","create","container","flexGrow","screenHeight","vh","fullScreenHeight","Dimensions","height","AttachmentPicker","React","forwardRef","props","ref","AttachmentPickerBottomSheetHandle","attachmentPickerBottomSheetHandleHeight","attachmentPickerBottomSheetHeight","AttachmentPickerError","attachmentPickerErrorButtonText","AttachmentPickerErrorImage","attachmentPickerErrorText","ImageOverlaySelectedComponent","numberOfAttachmentImagesToLoadPerCall","numberOfAttachmentPickerImageColumns","translucentStatusBar","_useTheme","useTheme","_useTheme$theme","theme","bottomSheetContentContainer","attachmentPicker","white","colors","_useAttachmentPickerC","useAttachmentPickerContext","closePicker","maxNumberOfFiles","selectedFiles","selectedImages","selectedPicker","setSelectedFiles","setSelectedImages","setSelectedPicker","topInset","_useState","useState","_useState2","_slicedToArray2","currentIndex","setCurrentIndex","endCursorRef","useRef","_useState3","_useState4","photoError","setPhotoError","hasNextPageRef","_useState5","_useState6","loadingPhotos","setLoadingPhotos","_useState7","_useState8","photos","setPhotos","attemptedToLoadPhotosOnOpenRef","getMorePhotos","useCallback","_asyncToGenerator2","_regenerator","mark","_callee","endCursor","results","wrap","_callee$","_context","prev","next","current","getPhotos","after","first","sent","prevPhotos","concat","_toConsumableArray2","assets","hasNextPage","t0","stop","getMorePhotosRef","useEffect","_oniOS14GalleryLibrar","oniOS14GalleryLibrarySelectionChange","undefined","unsubscribe","backAction","backHandler","BackHandler","addEventListener","remove","keyboardShowEvent","Platform","OS","keyboardSubscription","Keyboard","addListener","removeListener","selectedPhotos","map","asset","numberOfUploads","length","selected","some","image","id","uri","file","handleHeight","getAndroidBottomBarHeightAdjustment","_StatusBar$currentHei","statusBarHeight","StatusBar","currentHeight","bottomBarHeight","getInitialSnapPoint","initialSnapPoint","finalSnapPoint","snapPoints","useMemo","createElement","Fragment","containerHeight","enablePanDownToClose","handleComponent","index","onChange","__self","__source","fileName","lineNumber","columnNumber","BottomSheetFlatList","contentContainerStyle","backgroundColor","opacity","data","keyExtractor","item","numColumns","onEndReached","renderItem","renderAttachmentPickerItem","exports","displayName"],"sources":["AttachmentPicker.tsx"],"sourcesContent":["import React, { useCallback, useEffect, useMemo, useRef, useState } from 'react';\nimport { BackHandler, Dimensions, Keyboard, Platform, StatusBar, StyleSheet } from 'react-native';\n\nimport BottomSheet, { BottomSheetFlatList, BottomSheetHandleProps } from '@gorhom/bottom-sheet';\nimport dayjs from 'dayjs';\nimport duration from 'dayjs/plugin/duration';\n\nimport type { AttachmentPickerErrorProps } from './components/AttachmentPickerError';\n\nimport { renderAttachmentPickerItem } from './components/AttachmentPickerItem';\n\nimport { useAttachmentPickerContext } from '../../contexts/attachmentPickerContext/AttachmentPickerContext';\nimport { useTheme } from '../../contexts/themeContext/ThemeContext';\nimport { getPhotos, oniOS14GalleryLibrarySelectionChange } from '../../native';\nimport type { Asset } from '../../types/types';\nimport { vh } from '../../utils/utils';\n\ndayjs.extend(duration);\n\nconst styles = StyleSheet.create({\n container: {\n flexGrow: 1,\n },\n});\n\nconst screenHeight = vh(100);\nconst fullScreenHeight = Dimensions.get('window').height;\n\nexport type AttachmentPickerProps = {\n /**\n * Custom UI component to render [draggable handle](https://github.com/GetStream/stream-chat-react-native/blob/main/screenshots/docs/1.png) of attachment picker.\n *\n * **Default** [AttachmentPickerBottomSheetHandle](https://github.com/GetStream/stream-chat-react-native/blob/main/package/src/components/AttachmentPicker/components/AttachmentPickerBottomSheetHandle.tsx)\n */\n AttachmentPickerBottomSheetHandle: React.FC<BottomSheetHandleProps>;\n /**\n * Custom UI component to render error component while opening attachment picker.\n *\n * **Default** [AttachmentPickerError](https://github.com/GetStream/stream-chat-react-native/blob/main/package/src/components/AttachmentPicker/components/AttachmentPickerError.tsx)\n */\n AttachmentPickerError: React.ComponentType<AttachmentPickerErrorProps>;\n /**\n * Custom UI component to render error image for attachment picker\n *\n * **Default** [AttachmentPickerErrorImage](https://github.com/GetStream/stream-chat-react-native/blob/main/package/src/components/AttachmentPicker/components/AttachmentPickerErrorImage.tsx)\n */\n AttachmentPickerErrorImage: React.ComponentType;\n /**\n * Custom UI component to render overlay component, that shows up on top of [selected image](https://github.com/GetStream/stream-chat-react-native/blob/main/screenshots/docs/1.png) (with tick mark)\n *\n * **Default** [ImageOverlaySelectedComponent](https://github.com/GetStream/stream-chat-react-native/blob/main/package/src/components/AttachmentPicker/components/ImageOverlaySelectedComponent.tsx)\n */\n ImageOverlaySelectedComponent: React.ComponentType;\n attachmentPickerBottomSheetHandleHeight?: number;\n attachmentPickerBottomSheetHeight?: number;\n attachmentPickerErrorButtonText?: string;\n attachmentPickerErrorText?: string;\n numberOfAttachmentImagesToLoadPerCall?: number;\n numberOfAttachmentPickerImageColumns?: number;\n translucentStatusBar?: boolean;\n};\n\nexport const AttachmentPicker = React.forwardRef(\n (props: AttachmentPickerProps, ref: React.ForwardedRef<BottomSheet>) => {\n const {\n AttachmentPickerBottomSheetHandle,\n attachmentPickerBottomSheetHandleHeight,\n attachmentPickerBottomSheetHeight,\n AttachmentPickerError,\n attachmentPickerErrorButtonText,\n AttachmentPickerErrorImage,\n attachmentPickerErrorText,\n ImageOverlaySelectedComponent,\n numberOfAttachmentImagesToLoadPerCall,\n numberOfAttachmentPickerImageColumns,\n translucentStatusBar,\n } = props;\n\n const {\n theme: {\n attachmentPicker: { bottomSheetContentContainer },\n colors: { white },\n },\n } = useTheme();\n const {\n closePicker,\n maxNumberOfFiles,\n selectedFiles,\n selectedImages,\n selectedPicker,\n setSelectedFiles,\n setSelectedImages,\n setSelectedPicker,\n topInset,\n } = useAttachmentPickerContext();\n\n const [currentIndex, setCurrentIndex] = useState(-1);\n const endCursorRef = useRef<string>();\n const [photoError, setPhotoError] = useState(false);\n const hasNextPageRef = useRef(true);\n const [loadingPhotos, setLoadingPhotos] = useState(false);\n const [photos, setPhotos] = useState<Asset[]>([]);\n const attemptedToLoadPhotosOnOpenRef = useRef(false);\n\n const getMorePhotos = useCallback(async () => {\n if (\n hasNextPageRef.current &&\n !loadingPhotos &&\n currentIndex > -1 &&\n selectedPicker === 'images'\n ) {\n setPhotoError(false);\n setLoadingPhotos(true);\n const endCursor = endCursorRef.current;\n try {\n const results = await getPhotos({\n after: endCursor,\n first: numberOfAttachmentImagesToLoadPerCall ?? 60,\n });\n endCursorRef.current = results.endCursor;\n setPhotos((prevPhotos) =>\n endCursor ? [...prevPhotos, ...results.assets] : results.assets,\n );\n hasNextPageRef.current = !!results.hasNextPage;\n } catch (error) {\n setPhotoError(true);\n }\n setLoadingPhotos(false);\n }\n }, [currentIndex, selectedPicker, loadingPhotos]);\n\n // we need to use ref here to avoid running effect when getMorePhotos changes\n const getMorePhotosRef = useRef(getMorePhotos);\n getMorePhotosRef.current = getMorePhotos;\n\n useEffect(() => {\n if (selectedPicker !== 'images') return;\n // ios 14 library selection change event is fired when user reselects the images that are permitted to be readable by the app\n const { unsubscribe } = oniOS14GalleryLibrarySelectionChange(() => {\n // we reset the cursor and has next page to true to facilitate fetching of the first page of photos again\n hasNextPageRef.current = true;\n endCursorRef.current = undefined;\n // fetch the first page of photos again\n getMorePhotosRef.current();\n });\n return unsubscribe;\n }, [selectedPicker]);\n\n useEffect(() => {\n const backAction = () => {\n if (selectedPicker) {\n setSelectedPicker(undefined);\n closePicker();\n return true;\n }\n\n return false;\n };\n\n const backHandler = BackHandler.addEventListener('hardwareBackPress', backAction);\n\n return () => backHandler.remove();\n }, [selectedPicker, closePicker]);\n\n useEffect(() => {\n const keyboardShowEvent = Platform.OS === 'ios' ? 'keyboardWillShow' : 'keyboardDidShow';\n const keyboardSubscription = Keyboard.addListener(keyboardShowEvent, closePicker);\n\n return () => {\n if (keyboardSubscription?.remove) {\n keyboardSubscription.remove();\n return;\n }\n\n // To keep compatibility with older versions of React Native, where `remove()` is not available\n Keyboard.removeListener(keyboardShowEvent, closePicker);\n };\n }, [closePicker]);\n\n useEffect(() => {\n if (currentIndex < 0) {\n setSelectedPicker(undefined);\n if (!loadingPhotos) {\n endCursorRef.current = undefined;\n hasNextPageRef.current = true;\n attemptedToLoadPhotosOnOpenRef.current = false;\n setPhotoError(false);\n }\n }\n }, [currentIndex, loadingPhotos]);\n\n useEffect(() => {\n if (\n !attemptedToLoadPhotosOnOpenRef.current &&\n selectedPicker === 'images' &&\n endCursorRef.current === undefined &&\n currentIndex > -1 &&\n !loadingPhotos\n ) {\n getMorePhotos();\n // we do this only once on open for avoiding to request permissions in rationale dialog again and again on Android\n attemptedToLoadPhotosOnOpenRef.current = true;\n }\n }, [currentIndex, selectedPicker, getMorePhotos, loadingPhotos]);\n\n const selectedPhotos = photos.map((asset) => ({\n asset,\n ImageOverlaySelectedComponent,\n maxNumberOfFiles,\n numberOfAttachmentPickerImageColumns,\n numberOfUploads: selectedFiles.length + selectedImages.length,\n // `id` is available for Expo MediaLibrary while Cameraroll doesn't share id therefore we use `uri`\n selected:\n selectedImages.some((image) =>\n image.id ? image.id === asset.id : image.uri === asset.uri,\n ) ||\n selectedFiles.some((file) => (file.id ? file.id === asset.id : file.uri === asset.uri)),\n selectedFiles,\n selectedImages,\n setSelectedFiles,\n setSelectedImages,\n }));\n\n const handleHeight = attachmentPickerBottomSheetHandleHeight || 20;\n\n /**\n * This is to handle issues with Android measurements coming back incorrect.\n * If the StatusBar height is perfectly 1/2 of the difference between the two\n * dimensions for screen and window, it is incorrect and we need to account for\n * this. If you use a translucent header bar more adjustments are needed.\n */\n const getAndroidBottomBarHeightAdjustment = (): number => {\n if (Platform.OS === 'android') {\n const statusBarHeight = StatusBar.currentHeight ?? 0;\n const bottomBarHeight = fullScreenHeight - screenHeight - statusBarHeight;\n if (bottomBarHeight === statusBarHeight) {\n return translucentStatusBar ? 0 : statusBarHeight;\n } else {\n if (translucentStatusBar) {\n if (bottomBarHeight > statusBarHeight) {\n return -bottomBarHeight + statusBarHeight;\n } else {\n return bottomBarHeight > 0 ? -statusBarHeight : 0;\n }\n } else {\n return bottomBarHeight > 0 ? 0 : statusBarHeight;\n }\n }\n }\n return 0;\n };\n\n const getInitialSnapPoint = (): number => {\n if (attachmentPickerBottomSheetHeight !== undefined) {\n return attachmentPickerBottomSheetHeight;\n }\n if (Platform.OS === 'android') {\n return (\n 308 +\n (fullScreenHeight - screenHeight + getAndroidBottomBarHeightAdjustment()) -\n handleHeight\n );\n } else {\n return 308 + (fullScreenHeight - screenHeight);\n }\n };\n\n const initialSnapPoint = getInitialSnapPoint();\n\n const finalSnapPoint =\n Platform.OS === 'android'\n ? fullScreenHeight - topInset - handleHeight\n : fullScreenHeight - topInset;\n\n /**\n * Snap points changing cause a rerender of the position,\n * this is an issue if you are calling close on the bottom sheet.\n */\n const snapPoints = useMemo(\n () => [initialSnapPoint, finalSnapPoint],\n [initialSnapPoint, finalSnapPoint],\n );\n\n return (\n <>\n <BottomSheet\n containerHeight={fullScreenHeight}\n enablePanDownToClose={true}\n handleComponent={\n /**\n * using `null` here instead of `style={{ opacity: photoError ? 0 : 1 }}`\n * as opacity is not an allowed style\n */\n photoError ? null : AttachmentPickerBottomSheetHandle\n }\n handleHeight={handleHeight}\n index={-1}\n onChange={setCurrentIndex}\n ref={ref}\n snapPoints={snapPoints}\n >\n <BottomSheetFlatList\n contentContainerStyle={[\n styles.container,\n { backgroundColor: white },\n bottomSheetContentContainer,\n { opacity: photoError ? 0 : 1 },\n ]}\n data={selectedPhotos}\n keyExtractor={(item) => item.asset.uri}\n numColumns={numberOfAttachmentPickerImageColumns ?? 3}\n onEndReached={photoError ? undefined : getMorePhotos}\n renderItem={renderAttachmentPickerItem}\n />\n </BottomSheet>\n {selectedPicker === 'images' && photoError && (\n <AttachmentPickerError\n attachmentPickerBottomSheetHeight={initialSnapPoint}\n attachmentPickerErrorButtonText={attachmentPickerErrorButtonText}\n AttachmentPickerErrorImage={AttachmentPickerErrorImage}\n attachmentPickerErrorText={attachmentPickerErrorText}\n />\n )}\n </>\n );\n },\n);\n\nAttachmentPicker.displayName = 'AttachmentPicker';\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"names":["_react","_interopRequireWildcard","require","_reactNative","_bottomSheet","_dayjs","_interopRequireDefault","_duration","_AttachmentPickerItem","_AttachmentPickerContext","_ThemeContext","_TranslationContext","_native","_utils","_this","_jsxFileName","_getRequireWildcardCache","nodeInterop","WeakMap","cacheBabelInterop","cacheNodeInterop","obj","__esModule","_typeof","cache","has","get","newObj","hasPropertyDescriptor","Object","defineProperty","getOwnPropertyDescriptor","key","prototype","hasOwnProperty","call","desc","set","dayjs","extend","duration","styles","StyleSheet","create","container","flexGrow","screenHeight","vh","fullScreenHeight","Dimensions","height","AttachmentPicker","React","forwardRef","props","ref","AttachmentPickerBottomSheetHandle","attachmentPickerBottomSheetHandleHeight","attachmentPickerBottomSheetHeight","AttachmentPickerError","attachmentPickerErrorButtonText","AttachmentPickerErrorImage","attachmentPickerErrorText","ImageOverlaySelectedComponent","numberOfAttachmentImagesToLoadPerCall","numberOfAttachmentPickerImageColumns","translucentStatusBar","_useTheme","useTheme","_useTheme$theme","theme","bottomSheetContentContainer","attachmentPicker","white","colors","_useAttachmentPickerC","useAttachmentPickerContext","closePicker","maxNumberOfFiles","selectedFiles","selectedImages","selectedPicker","setSelectedFiles","setSelectedImages","setSelectedPicker","topInset","_useState","useState","_useState2","_slicedToArray2","currentIndex","setCurrentIndex","endCursorRef","useRef","_useState3","_useState4","photoError","setPhotoError","_useState5","_useState6","iOSLimited","setIosLimited","hasNextPageRef","_useState7","_useState8","loadingPhotos","setLoadingPhotos","_useState9","_useState10","photos","setPhotos","attemptedToLoadPhotosOnOpenRef","_useTranslationContex","useTranslationContext","t","getMorePhotos","useCallback","_asyncToGenerator2","_regenerator","mark","_callee","endCursor","results","wrap","_callee$","_context","prev","next","current","getPhotos","after","first","sent","prevPhotos","concat","_toConsumableArray2","assets","hasNextPage","t0","stop","getMorePhotosRef","useEffect","_oniOS14GalleryLibrar","oniOS14GalleryLibrarySelectionChange","undefined","unsubscribe","backAction","backHandler","BackHandler","addEventListener","remove","keyboardShowEvent","Platform","OS","keyboardSubscription","Keyboard","addListener","removeListener","selectedPhotos","map","asset","numberOfUploads","length","selected","some","image","id","uri","file","handleHeight","getAndroidBottomBarHeightAdjustment","_StatusBar$currentHei","statusBarHeight","StatusBar","currentHeight","bottomBarHeight","getInitialSnapPoint","initialSnapPoint","finalSnapPoint","snapPoints","useMemo","createElement","Fragment","containerHeight","enablePanDownToClose","handleComponent","index","onChange","__self","__source","fileName","lineNumber","columnNumber","Button","onPress","iOS14RefreshGallerySelection","title","BottomSheetFlatList","contentContainerStyle","backgroundColor","opacity","data","keyExtractor","item","numColumns","onEndReached","renderItem","renderAttachmentPickerItem","exports","displayName"],"sources":["AttachmentPicker.tsx"],"sourcesContent":["import React, { useCallback, useEffect, useMemo, useRef, useState } from 'react';\nimport {\n BackHandler,\n Button,\n Dimensions,\n Keyboard,\n Platform,\n StatusBar,\n StyleSheet,\n} from 'react-native';\n\nimport BottomSheet, { BottomSheetFlatList, BottomSheetHandleProps } from '@gorhom/bottom-sheet';\nimport dayjs from 'dayjs';\nimport duration from 'dayjs/plugin/duration';\n\nimport type { AttachmentPickerErrorProps } from './components/AttachmentPickerError';\n\nimport { renderAttachmentPickerItem } from './components/AttachmentPickerItem';\n\nimport { useAttachmentPickerContext } from '../../contexts/attachmentPickerContext/AttachmentPickerContext';\nimport { useTheme } from '../../contexts/themeContext/ThemeContext';\nimport { useTranslationContext } from '../../contexts/translationContext/TranslationContext';\nimport {\n getPhotos,\n iOS14RefreshGallerySelection,\n oniOS14GalleryLibrarySelectionChange,\n} from '../../native';\nimport type { Asset } from '../../types/types';\nimport { vh } from '../../utils/utils';\n\ndayjs.extend(duration);\n\nconst styles = StyleSheet.create({\n container: {\n flexGrow: 1,\n },\n});\n\nconst screenHeight = vh(100);\nconst fullScreenHeight = Dimensions.get('window').height;\n\nexport type AttachmentPickerProps = {\n /**\n * Custom UI component to render [draggable handle](https://github.com/GetStream/stream-chat-react-native/blob/main/screenshots/docs/1.png) of attachment picker.\n *\n * **Default** [AttachmentPickerBottomSheetHandle](https://github.com/GetStream/stream-chat-react-native/blob/main/package/src/components/AttachmentPicker/components/AttachmentPickerBottomSheetHandle.tsx)\n */\n AttachmentPickerBottomSheetHandle: React.FC<BottomSheetHandleProps>;\n /**\n * Custom UI component to render error component while opening attachment picker.\n *\n * **Default** [AttachmentPickerError](https://github.com/GetStream/stream-chat-react-native/blob/main/package/src/components/AttachmentPicker/components/AttachmentPickerError.tsx)\n */\n AttachmentPickerError: React.ComponentType<AttachmentPickerErrorProps>;\n /**\n * Custom UI component to render error image for attachment picker\n *\n * **Default** [AttachmentPickerErrorImage](https://github.com/GetStream/stream-chat-react-native/blob/main/package/src/components/AttachmentPicker/components/AttachmentPickerErrorImage.tsx)\n */\n AttachmentPickerErrorImage: React.ComponentType;\n /**\n * Custom UI component to render overlay component, that shows up on top of [selected image](https://github.com/GetStream/stream-chat-react-native/blob/main/screenshots/docs/1.png) (with tick mark)\n *\n * **Default** [ImageOverlaySelectedComponent](https://github.com/GetStream/stream-chat-react-native/blob/main/package/src/components/AttachmentPicker/components/ImageOverlaySelectedComponent.tsx)\n */\n ImageOverlaySelectedComponent: React.ComponentType;\n attachmentPickerBottomSheetHandleHeight?: number;\n attachmentPickerBottomSheetHeight?: number;\n attachmentPickerErrorButtonText?: string;\n attachmentPickerErrorText?: string;\n numberOfAttachmentImagesToLoadPerCall?: number;\n numberOfAttachmentPickerImageColumns?: number;\n translucentStatusBar?: boolean;\n};\n\nexport const AttachmentPicker = React.forwardRef(\n (props: AttachmentPickerProps, ref: React.ForwardedRef<BottomSheet>) => {\n const {\n AttachmentPickerBottomSheetHandle,\n attachmentPickerBottomSheetHandleHeight,\n attachmentPickerBottomSheetHeight,\n AttachmentPickerError,\n attachmentPickerErrorButtonText,\n AttachmentPickerErrorImage,\n attachmentPickerErrorText,\n ImageOverlaySelectedComponent,\n numberOfAttachmentImagesToLoadPerCall,\n numberOfAttachmentPickerImageColumns,\n translucentStatusBar,\n } = props;\n\n const {\n theme: {\n attachmentPicker: { bottomSheetContentContainer },\n colors: { white },\n },\n } = useTheme();\n const {\n closePicker,\n maxNumberOfFiles,\n selectedFiles,\n selectedImages,\n selectedPicker,\n setSelectedFiles,\n setSelectedImages,\n setSelectedPicker,\n topInset,\n } = useAttachmentPickerContext();\n\n const [currentIndex, setCurrentIndex] = useState(-1);\n const endCursorRef = useRef<string>();\n const [photoError, setPhotoError] = useState(false);\n const [iOSLimited, setIosLimited] = useState(false);\n const hasNextPageRef = useRef(true);\n const [loadingPhotos, setLoadingPhotos] = useState(false);\n const [photos, setPhotos] = useState<Asset[]>([]);\n const attemptedToLoadPhotosOnOpenRef = useRef(false);\n const { t } = useTranslationContext();\n\n const getMorePhotos = useCallback(async () => {\n if (\n hasNextPageRef.current &&\n !loadingPhotos &&\n currentIndex > -1 &&\n selectedPicker === 'images'\n ) {\n setPhotoError(false);\n setLoadingPhotos(true);\n const endCursor = endCursorRef.current;\n try {\n const results = await getPhotos({\n after: endCursor,\n first: numberOfAttachmentImagesToLoadPerCall ?? 60,\n });\n endCursorRef.current = results.endCursor;\n setPhotos((prevPhotos) =>\n endCursor ? [...prevPhotos, ...results.assets] : results.assets,\n );\n setIosLimited(results.iOSLimited);\n hasNextPageRef.current = !!results.hasNextPage;\n } catch (error) {\n setPhotoError(true);\n }\n setLoadingPhotos(false);\n }\n }, [currentIndex, selectedPicker, loadingPhotos]);\n\n // we need to use ref here to avoid running effect when getMorePhotos changes\n const getMorePhotosRef = useRef(getMorePhotos);\n getMorePhotosRef.current = getMorePhotos;\n\n useEffect(() => {\n if (selectedPicker !== 'images') return;\n // ios 14 library selection change event is fired when user reselects the images that are permitted to be readable by the app\n const { unsubscribe } = oniOS14GalleryLibrarySelectionChange(() => {\n // we reset the cursor and has next page to true to facilitate fetching of the first page of photos again\n hasNextPageRef.current = true;\n endCursorRef.current = undefined;\n // fetch the first page of photos again\n getMorePhotosRef.current();\n });\n return unsubscribe;\n }, [selectedPicker]);\n\n useEffect(() => {\n const backAction = () => {\n if (selectedPicker) {\n setSelectedPicker(undefined);\n closePicker();\n return true;\n }\n\n return false;\n };\n\n const backHandler = BackHandler.addEventListener('hardwareBackPress', backAction);\n\n return () => backHandler.remove();\n }, [selectedPicker, closePicker]);\n\n useEffect(() => {\n const keyboardShowEvent = Platform.OS === 'ios' ? 'keyboardWillShow' : 'keyboardDidShow';\n const keyboardSubscription = Keyboard.addListener(keyboardShowEvent, closePicker);\n\n return () => {\n if (keyboardSubscription?.remove) {\n keyboardSubscription.remove();\n return;\n }\n\n // To keep compatibility with older versions of React Native, where `remove()` is not available\n Keyboard.removeListener(keyboardShowEvent, closePicker);\n };\n }, [closePicker]);\n\n useEffect(() => {\n if (currentIndex < 0) {\n setSelectedPicker(undefined);\n if (!loadingPhotos) {\n endCursorRef.current = undefined;\n hasNextPageRef.current = true;\n attemptedToLoadPhotosOnOpenRef.current = false;\n setPhotoError(false);\n }\n }\n }, [currentIndex, loadingPhotos]);\n\n useEffect(() => {\n if (\n !attemptedToLoadPhotosOnOpenRef.current &&\n selectedPicker === 'images' &&\n endCursorRef.current === undefined &&\n currentIndex > -1 &&\n !loadingPhotos\n ) {\n getMorePhotos();\n // we do this only once on open for avoiding to request permissions in rationale dialog again and again on Android\n attemptedToLoadPhotosOnOpenRef.current = true;\n }\n }, [currentIndex, selectedPicker, getMorePhotos, loadingPhotos]);\n\n const selectedPhotos = photos.map((asset) => ({\n asset,\n ImageOverlaySelectedComponent,\n maxNumberOfFiles,\n numberOfAttachmentPickerImageColumns,\n numberOfUploads: selectedFiles.length + selectedImages.length,\n // `id` is available for Expo MediaLibrary while Cameraroll doesn't share id therefore we use `uri`\n selected:\n selectedImages.some((image) =>\n image.id ? image.id === asset.id : image.uri === asset.uri,\n ) ||\n selectedFiles.some((file) => (file.id ? file.id === asset.id : file.uri === asset.uri)),\n selectedFiles,\n selectedImages,\n setSelectedFiles,\n setSelectedImages,\n }));\n\n const handleHeight = attachmentPickerBottomSheetHandleHeight || 20;\n\n /**\n * This is to handle issues with Android measurements coming back incorrect.\n * If the StatusBar height is perfectly 1/2 of the difference between the two\n * dimensions for screen and window, it is incorrect and we need to account for\n * this. If you use a translucent header bar more adjustments are needed.\n */\n const getAndroidBottomBarHeightAdjustment = (): number => {\n if (Platform.OS === 'android') {\n const statusBarHeight = StatusBar.currentHeight ?? 0;\n const bottomBarHeight = fullScreenHeight - screenHeight - statusBarHeight;\n if (bottomBarHeight === statusBarHeight) {\n return translucentStatusBar ? 0 : statusBarHeight;\n } else {\n if (translucentStatusBar) {\n if (bottomBarHeight > statusBarHeight) {\n return -bottomBarHeight + statusBarHeight;\n } else {\n return bottomBarHeight > 0 ? -statusBarHeight : 0;\n }\n } else {\n return bottomBarHeight > 0 ? 0 : statusBarHeight;\n }\n }\n }\n return 0;\n };\n\n const getInitialSnapPoint = (): number => {\n if (attachmentPickerBottomSheetHeight !== undefined) {\n return attachmentPickerBottomSheetHeight;\n }\n if (Platform.OS === 'android') {\n return (\n 308 +\n (fullScreenHeight - screenHeight + getAndroidBottomBarHeightAdjustment()) -\n handleHeight\n );\n } else {\n return 308 + (fullScreenHeight - screenHeight);\n }\n };\n\n const initialSnapPoint = getInitialSnapPoint();\n\n const finalSnapPoint =\n Platform.OS === 'android'\n ? fullScreenHeight - topInset - handleHeight\n : fullScreenHeight - topInset;\n\n /**\n * Snap points changing cause a rerender of the position,\n * this is an issue if you are calling close on the bottom sheet.\n */\n const snapPoints = useMemo(\n () => [initialSnapPoint, finalSnapPoint],\n [initialSnapPoint, finalSnapPoint],\n );\n\n return (\n <>\n <BottomSheet\n containerHeight={fullScreenHeight}\n enablePanDownToClose={true}\n handleComponent={\n /**\n * using `null` here instead of `style={{ opacity: photoError ? 0 : 1 }}`\n * as opacity is not an allowed style\n */\n photoError ? null : AttachmentPickerBottomSheetHandle\n }\n handleHeight={handleHeight}\n index={-1}\n onChange={setCurrentIndex}\n ref={ref}\n snapPoints={snapPoints}\n >\n {iOSLimited && (\n <Button onPress={iOS14RefreshGallerySelection} title={t('Select More Photos')} />\n )}\n <BottomSheetFlatList\n contentContainerStyle={[\n styles.container,\n { backgroundColor: white },\n bottomSheetContentContainer,\n { opacity: photoError ? 0 : 1 },\n ]}\n data={selectedPhotos}\n keyExtractor={(item) => item.asset.uri}\n numColumns={numberOfAttachmentPickerImageColumns ?? 3}\n onEndReached={photoError ? undefined : getMorePhotos}\n renderItem={renderAttachmentPickerItem}\n />\n </BottomSheet>\n {selectedPicker === 'images' && photoError && (\n <AttachmentPickerError\n attachmentPickerBottomSheetHeight={initialSnapPoint}\n attachmentPickerErrorButtonText={attachmentPickerErrorButtonText}\n AttachmentPickerErrorImage={AttachmentPickerErrorImage}\n attachmentPickerErrorText={attachmentPickerErrorText}\n />\n )}\n </>\n );\n },\n);\n\nAttachmentPicker.displayName = 'AttachmentPicker';\n"],"mappings":"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"}
|
|
@@ -48,6 +48,7 @@
|
|
|
48
48
|
"Reply to Message": "Reply to Message",
|
|
49
49
|
"Resend": "Resend",
|
|
50
50
|
"Search GIFs": "Search GIFs",
|
|
51
|
+
"Select More Photos": "Select More Photos",
|
|
51
52
|
"Send a message": "Send a message",
|
|
52
53
|
"Sending links is not allowed in this conversation": "Sending links is not allowed in this conversation",
|
|
53
54
|
"Slow mode ON": "Slow mode ON",
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
{
|
|
2
2
|
"1 Reply": "1 Réponse",
|
|
3
|
-
"1 Thread Reply": "
|
|
4
|
-
"Allow access to your Gallery": "",
|
|
5
|
-
"Also send to channel": "
|
|
3
|
+
"1 Thread Reply": "",
|
|
4
|
+
"Allow access to your Gallery": "Autoriser l'accès à votre galerie",
|
|
5
|
+
"Also send to channel": "",
|
|
6
6
|
"Are you sure you want to permanently delete this message?": "",
|
|
7
7
|
"Block User": "",
|
|
8
8
|
"Cancel": "",
|
|
@@ -14,57 +14,58 @@
|
|
|
14
14
|
"Edit Message": "",
|
|
15
15
|
"Editing Message": "",
|
|
16
16
|
"Emoji matching": "Correspondance Emoji",
|
|
17
|
-
"Empty message...": "
|
|
18
|
-
"Error loading": "
|
|
19
|
-
"Error loading channel list...": "
|
|
20
|
-
"Error loading messages for this channel...": "
|
|
21
|
-
"Error while loading, please reload/refresh": "
|
|
22
|
-
"File type not supported": "
|
|
17
|
+
"Empty message...": "",
|
|
18
|
+
"Error loading": "",
|
|
19
|
+
"Error loading channel list...": "",
|
|
20
|
+
"Error loading messages for this channel...": "",
|
|
21
|
+
"Error while loading, please reload/refresh": "",
|
|
22
|
+
"File type not supported": "",
|
|
23
23
|
"Flag": "",
|
|
24
24
|
"Flag Message": "",
|
|
25
25
|
"Flag action failed either due to a network issue or the message is already flagged": "",
|
|
26
26
|
"Instant Commands": "Commandes Instantanées",
|
|
27
|
-
"Links are disabled": "
|
|
27
|
+
"Links are disabled": "",
|
|
28
28
|
"Loading channels...": "",
|
|
29
29
|
"Loading messages...": "",
|
|
30
30
|
"Loading...": "",
|
|
31
|
-
"Maximum file size upload limit reached. Please upload a file below {{MAX_FILE_SIZE_TO_UPLOAD_IN_MB}} MB.": "
|
|
31
|
+
"Maximum file size upload limit reached. Please upload a file below {{MAX_FILE_SIZE_TO_UPLOAD_IN_MB}} MB.": "",
|
|
32
32
|
"Message Reactions": "Réactions aux messages",
|
|
33
|
-
"Message deleted": "
|
|
33
|
+
"Message deleted": "",
|
|
34
34
|
"Message flagged": "",
|
|
35
35
|
"Mute User": "",
|
|
36
|
-
"Not supported": "",
|
|
37
|
-
"Nothing yet...": "
|
|
36
|
+
"Not supported": "Non pris en charge",
|
|
37
|
+
"Nothing yet...": "",
|
|
38
38
|
"Ok": "",
|
|
39
|
-
"Only visible to you": "
|
|
39
|
+
"Only visible to you": "",
|
|
40
40
|
"Photo": "Photo",
|
|
41
|
-
"Photos and Videos": "",
|
|
41
|
+
"Photos and Videos": "Photos et vidéos",
|
|
42
42
|
"Pin to Conversation": "",
|
|
43
|
-
"Pinned by": "
|
|
44
|
-
"Please enable access to your photos and videos so you can share them.": "",
|
|
45
|
-
"Please select a channel first": "
|
|
46
|
-
"Reconnecting...": "
|
|
43
|
+
"Pinned by": "",
|
|
44
|
+
"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.",
|
|
45
|
+
"Please select a channel first": "",
|
|
46
|
+
"Reconnecting...": "",
|
|
47
47
|
"Reply": "",
|
|
48
|
-
"Reply to Message": "
|
|
48
|
+
"Reply to Message": "",
|
|
49
49
|
"Resend": "",
|
|
50
|
-
"Search GIFs": "
|
|
51
|
-
"
|
|
52
|
-
"
|
|
53
|
-
"
|
|
50
|
+
"Search GIFs": "",
|
|
51
|
+
"Select More Photos": "Sélectionner plus de photos",
|
|
52
|
+
"Send a message": "",
|
|
53
|
+
"Sending links is not allowed in this conversation": "",
|
|
54
|
+
"Slow mode ON": "",
|
|
54
55
|
"The message has been reported to a moderator.": "",
|
|
55
56
|
"Thread Reply": "",
|
|
56
57
|
"Unblock User": "",
|
|
57
|
-
"Unknown User": "",
|
|
58
|
+
"Unknown User": "Utilisateur inconnu",
|
|
58
59
|
"Unmute User": "",
|
|
59
60
|
"Unpin from Conversation": "",
|
|
60
|
-
"Unread Messages": "
|
|
61
|
+
"Unread Messages": "",
|
|
61
62
|
"Video": "Vidéo",
|
|
62
|
-
"You": "
|
|
63
|
-
"You can't send messages in this channel": "
|
|
63
|
+
"You": "",
|
|
64
|
+
"You can't send messages in this channel": "",
|
|
64
65
|
"{{ firstUser }} and {{ nonSelfUserLength }} more are typing": "",
|
|
65
|
-
"{{ index }} of {{ photoLength }}": "",
|
|
66
|
+
"{{ index }} of {{ photoLength }}": "{{ index }} sur {{ photoLength }}",
|
|
66
67
|
"{{ replyCount }} Replies": "{{ replyCount }} Réponses",
|
|
67
|
-
"{{ replyCount }} Thread Replies": "
|
|
68
|
+
"{{ replyCount }} Thread Replies": "",
|
|
68
69
|
"{{ user }} is typing": "",
|
|
69
|
-
"🏙 Attachment...": "
|
|
70
|
+
"🏙 Attachment...": ""
|
|
70
71
|
}
|
|
@@ -66,6 +66,7 @@
|
|
|
66
66
|
"{{ replyCount }} Replies": "{{ replyCount }} תגובות",
|
|
67
67
|
"{{ replyCount }} Thread Replies": "{{ replyCount }} תגובות שרשור",
|
|
68
68
|
"{{ user }} is typing": "{{ user }} מקליד/ה",
|
|
69
|
+
"Select More Photos": "בחר עוד תמונות",
|
|
69
70
|
"🏙 Attachment...": "🏙 קובץ מצורף...",
|
|
70
71
|
"Maximum file size upload limit reached. Please upload a file below {{MAX_FILE_SIZE_TO_UPLOAD_IN_MB}} MB.": "הגעת למגבלת העלאת גודל הקובץ המקסימלית. אנא העלה קובץ מתחת ל-{{MAX_FILE_SIZE_TO_UPLOAD_IN_MB}} MB"
|
|
71
72
|
}
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
{
|
|
2
2
|
"1 Reply": "1 रिप्लाई",
|
|
3
|
-
"1 Thread Reply": "
|
|
4
|
-
"Allow access to your Gallery": "",
|
|
5
|
-
"Also send to channel": "
|
|
3
|
+
"1 Thread Reply": "",
|
|
4
|
+
"Allow access to your Gallery": "अपनी गैलरी तक पहुँचने की अनुमति दें",
|
|
5
|
+
"Also send to channel": "",
|
|
6
6
|
"Are you sure you want to permanently delete this message?": "",
|
|
7
7
|
"Block User": "",
|
|
8
8
|
"Cancel": "",
|
|
@@ -14,57 +14,58 @@
|
|
|
14
14
|
"Edit Message": "",
|
|
15
15
|
"Editing Message": "",
|
|
16
16
|
"Emoji matching": "इमोजी मिलान",
|
|
17
|
-
"Empty message...": "
|
|
18
|
-
"Error loading": "
|
|
19
|
-
"Error loading channel list...": "
|
|
20
|
-
"Error loading messages for this channel...": "
|
|
21
|
-
"Error while loading, please reload/refresh": "
|
|
22
|
-
"File type not supported": "
|
|
17
|
+
"Empty message...": "",
|
|
18
|
+
"Error loading": "",
|
|
19
|
+
"Error loading channel list...": "",
|
|
20
|
+
"Error loading messages for this channel...": "",
|
|
21
|
+
"Error while loading, please reload/refresh": "",
|
|
22
|
+
"File type not supported": "",
|
|
23
23
|
"Flag": "",
|
|
24
24
|
"Flag Message": "",
|
|
25
25
|
"Flag action failed either due to a network issue or the message is already flagged": "",
|
|
26
26
|
"Instant Commands": "त्वरित कमांड",
|
|
27
|
-
"Links are disabled": "
|
|
27
|
+
"Links are disabled": "",
|
|
28
28
|
"Loading channels...": "",
|
|
29
29
|
"Loading messages...": "",
|
|
30
30
|
"Loading...": "",
|
|
31
|
-
"Maximum file size upload limit reached. Please upload a file below {{MAX_FILE_SIZE_TO_UPLOAD_IN_MB}} MB.": "
|
|
31
|
+
"Maximum file size upload limit reached. Please upload a file below {{MAX_FILE_SIZE_TO_UPLOAD_IN_MB}} MB.": "",
|
|
32
32
|
"Message Reactions": "संदेश प्रतिक्रियाएँ",
|
|
33
|
-
"Message deleted": "
|
|
33
|
+
"Message deleted": "",
|
|
34
34
|
"Message flagged": "",
|
|
35
35
|
"Mute User": "",
|
|
36
|
-
"Not supported": "",
|
|
37
|
-
"Nothing yet...": "
|
|
36
|
+
"Not supported": "समर्थित नहीं",
|
|
37
|
+
"Nothing yet...": "",
|
|
38
38
|
"Ok": "",
|
|
39
|
-
"Only visible to you": "
|
|
39
|
+
"Only visible to you": "",
|
|
40
40
|
"Photo": "तस्वीर",
|
|
41
|
-
"Photos and Videos": "",
|
|
41
|
+
"Photos and Videos": "तस्वीरें और वीडियों",
|
|
42
42
|
"Pin to Conversation": "",
|
|
43
|
-
"Pinned by": "
|
|
44
|
-
"Please enable access to your photos and videos so you can share them.": "",
|
|
45
|
-
"Please select a channel first": "
|
|
46
|
-
"Reconnecting...": "
|
|
43
|
+
"Pinned by": "",
|
|
44
|
+
"Please enable access to your photos and videos so you can share them.": "कृपया अपनी फ़ोटो और वीडियो तक पहुंच सक्षम करें ताकि आप उन्हें साझा कर सकें।",
|
|
45
|
+
"Please select a channel first": "",
|
|
46
|
+
"Reconnecting...": "",
|
|
47
47
|
"Reply": "",
|
|
48
|
-
"Reply to Message": "
|
|
48
|
+
"Reply to Message": "",
|
|
49
49
|
"Resend": "",
|
|
50
|
-
"Search GIFs": "
|
|
51
|
-
"
|
|
52
|
-
"
|
|
53
|
-
"
|
|
50
|
+
"Search GIFs": "",
|
|
51
|
+
"Select More Photos": "अधिक फ़ोटो चुनें",
|
|
52
|
+
"Send a message": "",
|
|
53
|
+
"Sending links is not allowed in this conversation": "",
|
|
54
|
+
"Slow mode ON": "",
|
|
54
55
|
"The message has been reported to a moderator.": "",
|
|
55
56
|
"Thread Reply": "",
|
|
56
57
|
"Unblock User": "",
|
|
57
|
-
"Unknown User": "",
|
|
58
|
+
"Unknown User": "अज्ञात उपयोगकर्ता",
|
|
58
59
|
"Unmute User": "",
|
|
59
60
|
"Unpin from Conversation": "",
|
|
60
|
-
"Unread Messages": "
|
|
61
|
+
"Unread Messages": "",
|
|
61
62
|
"Video": "वीडियो",
|
|
62
|
-
"You": "
|
|
63
|
-
"You can't send messages in this channel": "
|
|
63
|
+
"You": "",
|
|
64
|
+
"You can't send messages in this channel": "",
|
|
64
65
|
"{{ firstUser }} and {{ nonSelfUserLength }} more are typing": "",
|
|
65
|
-
"{{ index }} of {{ photoLength }}": "",
|
|
66
|
+
"{{ index }} of {{ photoLength }}": "{{ index }} / {{ photoLength }}",
|
|
66
67
|
"{{ replyCount }} Replies": "{{ replyCount }} रिप्लाई",
|
|
67
|
-
"{{ replyCount }} Thread Replies": "
|
|
68
|
+
"{{ replyCount }} Thread Replies": "",
|
|
68
69
|
"{{ user }} is typing": "",
|
|
69
|
-
"🏙 Attachment...": "
|
|
70
|
+
"🏙 Attachment...": ""
|
|
70
71
|
}
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
{
|
|
2
2
|
"1 Reply": "1 Risposta",
|
|
3
|
-
"1 Thread Reply": "
|
|
4
|
-
"Allow access to your Gallery": "",
|
|
5
|
-
"Also send to channel": "
|
|
3
|
+
"1 Thread Reply": "",
|
|
4
|
+
"Allow access to your Gallery": "Consenti l'accesso alla tua galleria",
|
|
5
|
+
"Also send to channel": "",
|
|
6
6
|
"Are you sure you want to permanently delete this message?": "",
|
|
7
7
|
"Block User": "",
|
|
8
8
|
"Cancel": "",
|
|
@@ -14,57 +14,58 @@
|
|
|
14
14
|
"Edit Message": "",
|
|
15
15
|
"Editing Message": "",
|
|
16
16
|
"Emoji matching": "Abbinamento emoji",
|
|
17
|
-
"Empty message...": "
|
|
18
|
-
"Error loading": "
|
|
19
|
-
"Error loading channel list...": "
|
|
20
|
-
"Error loading messages for this channel...": "
|
|
21
|
-
"Error while loading, please reload/refresh": "
|
|
22
|
-
"File type not supported": "
|
|
17
|
+
"Empty message...": "",
|
|
18
|
+
"Error loading": "",
|
|
19
|
+
"Error loading channel list...": "",
|
|
20
|
+
"Error loading messages for this channel...": "",
|
|
21
|
+
"Error while loading, please reload/refresh": "",
|
|
22
|
+
"File type not supported": "",
|
|
23
23
|
"Flag": "",
|
|
24
24
|
"Flag Message": "",
|
|
25
25
|
"Flag action failed either due to a network issue or the message is already flagged": "",
|
|
26
26
|
"Instant Commands": "Comandi Istantanei",
|
|
27
|
-
"Links are disabled": "
|
|
27
|
+
"Links are disabled": "",
|
|
28
28
|
"Loading channels...": "",
|
|
29
29
|
"Loading messages...": "",
|
|
30
30
|
"Loading...": "",
|
|
31
|
-
"Maximum file size upload limit reached. Please upload a file below {{MAX_FILE_SIZE_TO_UPLOAD_IN_MB}} MB.": "
|
|
31
|
+
"Maximum file size upload limit reached. Please upload a file below {{MAX_FILE_SIZE_TO_UPLOAD_IN_MB}} MB.": "",
|
|
32
32
|
"Message Reactions": "Reazioni ai Messaggi",
|
|
33
|
-
"Message deleted": "
|
|
33
|
+
"Message deleted": "",
|
|
34
34
|
"Message flagged": "",
|
|
35
35
|
"Mute User": "",
|
|
36
|
-
"Not supported": "",
|
|
37
|
-
"Nothing yet...": "
|
|
36
|
+
"Not supported": "non supportato",
|
|
37
|
+
"Nothing yet...": "",
|
|
38
38
|
"Ok": "",
|
|
39
|
-
"Only visible to you": "
|
|
39
|
+
"Only visible to you": "",
|
|
40
40
|
"Photo": "Foto",
|
|
41
|
-
"Photos and Videos": "",
|
|
41
|
+
"Photos and Videos": "Foto e Video",
|
|
42
42
|
"Pin to Conversation": "",
|
|
43
|
-
"Pinned by": "
|
|
44
|
-
"Please enable access to your photos and videos so you can share them.": "",
|
|
45
|
-
"Please select a channel first": "
|
|
46
|
-
"Reconnecting...": "
|
|
43
|
+
"Pinned by": "",
|
|
44
|
+
"Please enable access to your photos and videos so you can share them.": "Abilita l'accesso alle tue foto e ai tuoi video in modo da poterli condividere.",
|
|
45
|
+
"Please select a channel first": "",
|
|
46
|
+
"Reconnecting...": "",
|
|
47
47
|
"Reply": "",
|
|
48
|
-
"Reply to Message": "
|
|
48
|
+
"Reply to Message": "",
|
|
49
49
|
"Resend": "",
|
|
50
|
-
"Search GIFs": "
|
|
51
|
-
"
|
|
52
|
-
"
|
|
53
|
-
"
|
|
50
|
+
"Search GIFs": "",
|
|
51
|
+
"Select More Photos": "Seleziona Altre foto",
|
|
52
|
+
"Send a message": "",
|
|
53
|
+
"Sending links is not allowed in this conversation": "",
|
|
54
|
+
"Slow mode ON": "",
|
|
54
55
|
"The message has been reported to a moderator.": "",
|
|
55
56
|
"Thread Reply": "",
|
|
56
57
|
"Unblock User": "",
|
|
57
|
-
"Unknown User": "",
|
|
58
|
+
"Unknown User": "Utente sconosciuto",
|
|
58
59
|
"Unmute User": "",
|
|
59
60
|
"Unpin from Conversation": "",
|
|
60
|
-
"Unread Messages": "
|
|
61
|
+
"Unread Messages": "",
|
|
61
62
|
"Video": "Video",
|
|
62
|
-
"You": "
|
|
63
|
-
"You can't send messages in this channel": "
|
|
63
|
+
"You": "",
|
|
64
|
+
"You can't send messages in this channel": "",
|
|
64
65
|
"{{ firstUser }} and {{ nonSelfUserLength }} more are typing": "",
|
|
65
|
-
"{{ index }} of {{ photoLength }}": "",
|
|
66
|
+
"{{ index }} of {{ photoLength }}": "{{ index }} di {{ photoLength }}",
|
|
66
67
|
"{{ replyCount }} Replies": "{{ replyCount }} Risposte",
|
|
67
|
-
"{{ replyCount }} Thread Replies": "
|
|
68
|
+
"{{ replyCount }} Thread Replies": "",
|
|
68
69
|
"{{ user }} is typing": "",
|
|
69
|
-
"🏙 Attachment...": "
|
|
70
|
+
"🏙 Attachment...": ""
|
|
70
71
|
}
|
|
@@ -69,6 +69,7 @@
|
|
|
69
69
|
"Reply to Message": "メッセージに返信",
|
|
70
70
|
"🏙 Attachment...": "🏙 アタッチメント...",
|
|
71
71
|
"Not supported": "サポートしていません",
|
|
72
|
+
"Select More Photos": "さらに写真を選択",
|
|
72
73
|
"File type not supported": "サポートされていないファイルです",
|
|
73
74
|
"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 以下のファイルをアップロードしてください"
|
|
74
75
|
}
|
|
@@ -68,6 +68,7 @@
|
|
|
68
68
|
"Reply to Message": "메시지에 답장",
|
|
69
69
|
"🏙 Attachment...": "🏙 부착...",
|
|
70
70
|
"File type not supported": "지원하지 않는 파일입니다.",
|
|
71
|
+
"Select More Photos": "추가 사진 선택",
|
|
71
72
|
"Not supported": "지원하지 않습니다",
|
|
72
73
|
"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 미만의 파일을 업로드하세요."
|
|
73
74
|
}
|