@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.
84 lines • 2.12 kB
JavaScript
import normalizeFile from './normalizeFile';
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,
type,
uri
}) => normalizeFile({
uri,
size,
name,
type
}));
return Promise.all(promises);
} else if ('uri' in result && typeof result.uri === 'string') {
const fileInfo = await fsModule.getInfoAsync(result.uri);
const response = await normalizeFile({
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
}) => normalizeFile({
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 normalizeFile({
uri,
size,
name,
type: mimeType
});
return [response];
} else {
return [];
}
}
},
toFileSize(info) {
if ('size' in info) {
return info.size;
} else {
return 0;
}
}
};
export default expoBackwardUtils;
//# sourceMappingURL=expoBackwardUtils.js.map