UNPKG

stream-chat-react-native-core

Version:

The official React Native and Expo components for Stream Chat, a service for building chat applications

70 lines 2.78 kB
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); Object.defineProperty(exports, "__esModule", { value: true }); exports.useEditChannelImage = void 0; var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator")); var _react = require("react"); var _reactNative = require("react-native"); var _ChannelEditDetailsContext = require("../../../contexts/channelEditDetailsContext/ChannelEditDetailsContext"); var _TranslationContext = require("../../../contexts/translationContext/TranslationContext"); var _native = require("../../../native"); var _compressImage = require("../../../utils/compressImage"); var useEditChannelImage = () => { var _useChannelEditDetail = (0, _ChannelEditDetailsContext.useChannelEditDetailsContext)(), compressImageQuality = _useChannelEditDetail.compressImageQuality; var _useTranslationContex = (0, _TranslationContext.useTranslationContext)(), t = _useTranslationContex.t; var takePhoto = (0, _react.useCallback)((0, _asyncToGenerator2.default)(function* () { var file = yield _native.NativeHandlers.takePhoto({ compressImageQuality: compressImageQuality ?? 1, mediaType: 'image' }); if (file.askToOpenSettings) { _reactNative.Alert.alert(t('Allow camera access in device settings'), t('Device camera is used to take photos or videos.'), [{ style: 'cancel', text: t('Cancel') }, { onPress: () => _reactNative.Linking.openSettings(), style: 'default', text: t('Open Settings') }]); return undefined; } if (file.cancelled) { return undefined; } return file; }), [compressImageQuality, t]); var pickImageFromNativePicker = (0, _react.useCallback)((0, _asyncToGenerator2.default)(function* () { var result = yield _native.NativeHandlers.pickImage({ maxNumberOfFiles: 1 }); if (result.askToOpenSettings) { _reactNative.Alert.alert(t('Allow access to your Gallery'), t('Device gallery permissions is used to take photos or videos.'), [{ style: 'cancel', text: t('Cancel') }, { onPress: () => _reactNative.Linking.openSettings(), style: 'default', text: t('Open Settings') }]); return undefined; } if (result.cancelled || !result.assets?.length) { return undefined; } var asset = result.assets[0]; var compressedUri = yield (0, _compressImage.compressedImageURI)(asset, compressImageQuality); return { ...asset, uri: compressedUri }; }), [compressImageQuality, t]); return { pickImageFromNativePicker, takePhoto }; }; exports.useEditChannelImage = useEditChannelImage; //# sourceMappingURL=useEditChannelImage.js.map