UNPKG

@sendbird/uikit-react-native

Version:

Sendbird UIKit for React Native: A feature-rich and customizable chat UI kit with messaging, channel management, and user authentication.

164 lines (160 loc) 4.92 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.default = void 0; var _normalizeFile = _interopRequireDefault(require("./normalizeFile")); function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; } // Legacy expo-file-system API types (before SDK 54) // New expo-file-system API types (SDK 54+) // Union type for both legacy and new expo-file-system const expoBackwardUtils = { imagePicker: { isCanceled(result) { // @ts-expect-error backward compatibility return result.canceled ?? result.cancelled; }, async toFilePickerResponses(result, fsModule) { if (result.assets) { const assets = result.assets || []; const promises = assets.map(({ fileName: name, fileSize: size, mimeType, uri }) => (0, _normalizeFile.default)({ uri, size, name, type: mimeType })); return Promise.all(promises); } else if ('uri' in result && typeof result.uri === 'string') { const fileInfo = await fsModule.getInfoAsync(result.uri); const response = await (0, _normalizeFile.default)({ uri: result.uri, size: expoBackwardUtils.toFileSize(fileInfo) }); return [response]; } else { return []; } } }, documentPicker: { isCanceled(result) { // @ts-expect-error backward compatibility return result.canceled ?? result.type === 'cancel'; }, async toFilePickerResponses(result) { if (result.assets) { const assets = result.assets || []; const promises = assets.map(({ name, size, mimeType, uri }) => (0, _normalizeFile.default)({ uri, size, name, type: mimeType })); return Promise.all(promises); } else if ('uri' in result && typeof result.uri === 'string') { // @ts-expect-error backward compatibility const { mimeType, uri, size, name } = result; const response = await (0, _normalizeFile.default)({ uri, size, name, type: mimeType }); return [response]; } else { return []; } } }, expoAV: { isLegacyAVModule(module) { try { return 'Video' in module && 'Audio' in module && typeof module.Video === 'function'; } catch { return false; } }, isAudioModule(module) { try { return 'useAudioRecorder' in module && typeof module.useAudioRecorder === 'function'; } catch { return false; } }, isVideoModule(module) { try { return 'VideoView' in module && 'useVideoPlayer' in module && typeof module.useVideoPlayer === 'function'; } catch { return false; } } }, toFileSize(info) { if ('size' in info && info.size !== undefined) { return info.size; } else { return 0; } }, fileSystem: { isLegacyModule(fsModule) { try { return 'documentDirectory' in fsModule || 'cacheDirectory' in fsModule; } catch { return false; } }, async getFileInfo(fsModule, uri) { if (expoBackwardUtils.fileSystem.isLegacyModule(fsModule)) { return await fsModule.getInfoAsync(uri); } else { const file = new fsModule.File(uri); return file.info(); } }, getDocumentDirectory(fsModule) { if (expoBackwardUtils.fileSystem.isLegacyModule(fsModule)) { return fsModule.documentDirectory || null; } else { var _fsModule$Paths; return ((_fsModule$Paths = fsModule.Paths) === null || _fsModule$Paths === void 0 || (_fsModule$Paths = _fsModule$Paths.document) === null || _fsModule$Paths === void 0 ? void 0 : _fsModule$Paths.uri) || null; } }, getCacheDirectory(fsModule) { if (expoBackwardUtils.fileSystem.isLegacyModule(fsModule)) { return fsModule.cacheDirectory || null; } else { var _fsModule$Paths2; return ((_fsModule$Paths2 = fsModule.Paths) === null || _fsModule$Paths2 === void 0 || (_fsModule$Paths2 = _fsModule$Paths2.cache) === null || _fsModule$Paths2 === void 0 ? void 0 : _fsModule$Paths2.uri) || null; } }, async downloadFile(fsModule, url, localUri) { if (expoBackwardUtils.fileSystem.isLegacyModule(fsModule)) { return await fsModule.downloadAsync(url, localUri); } else { const destination = new fsModule.File(localUri); const result = await fsModule.File.downloadFileAsync(url, destination); return { uri: result.uri }; } } } }; var _default = exports.default = expoBackwardUtils; //# sourceMappingURL=expoBackwardUtils.js.map