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
JavaScript
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