Skip to content

Commit b7d1fa6

Browse files
authored
fix: issue with picking files through filePicker with recent version of expo-document-picker (#2203)
* fix: issue with picking files through filePicker with recent version of expo-document-picker * fix: type in FileAttachmentGroup.tsx * fix: add changes of pickDocument.ts for expo * fix: add changes of pickDocument.ts for expo * fix: add changes of pickDocument.ts for expo
1 parent 88dca0c commit b7d1fa6

File tree

16 files changed

+91
-73
lines changed

16 files changed

+91
-73
lines changed

examples/ExpoMessaging/package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@
1515
"expo-av": "~13.2.1",
1616
"expo-clipboard": "^4.1.2",
1717
"expo-constants": "~14.2.1",
18-
"expo-document-picker": "~11.2.2",
18+
"expo-document-picker": "~11.5.4",
1919
"expo-file-system": "~15.2.2",
2020
"expo-haptics": "~12.2.1",
2121
"expo-image-manipulator": "~11.1.1",

examples/ExpoMessaging/yarn.lock

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -3513,10 +3513,10 @@ expo-constants@~14.2.0, expo-constants@~14.2.1:
35133513
"@expo/config" "~8.0.0"
35143514
uuid "^3.3.2"
35153515

3516-
expo-document-picker@~11.2.2:
3517-
version "11.2.2"
3518-
resolved "https://registry.yarnpkg.com/expo-document-picker/-/expo-document-picker-11.2.2.tgz#707ff994a1c0b38505e12b2c9fe6b67715e6f41c"
3519-
integrity sha512-EeonRKxkK9E20LEAh93IvlwFjNkUCJKnhBEama9PmIDYWW7RyANZ8eP9C2PupThTDbivzRDNp7Ec7dIeyDAWjw==
3516+
expo-document-picker@~11.5.4:
3517+
version "11.5.4"
3518+
resolved "https://registry.yarnpkg.com/expo-document-picker/-/expo-document-picker-11.5.4.tgz#11c274d1a2f4aa1f0ca7c0403ca02017a20d832e"
3519+
integrity sha512-4lpRixi33kjoQQy9lfrGs48yFRMOgBgdnqjYWVFe85WFy/WkEoFC2E8usxcFdrIigtfy9Z+HY3/je4lHEYqyLg==
35203520

35213521
expo-file-system@~15.2.0, expo-file-system@~15.2.2:
35223522
version "15.2.2"

examples/TypeScriptMessaging/ios/Podfile.lock

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -708,7 +708,7 @@ EXTERNAL SOURCES:
708708
:path: "../node_modules/react-native/ReactCommon/yoga"
709709

710710
SPEC CHECKSUMS:
711-
boost: a7c83b31436843459a1961bfd74b96033dc77234
711+
boost: 57d2868c099736d80fcd648bf211b4431e51a558
712712
CocoaAsyncSocket: 065fd1e645c7abab64f7a6a2007a48038fdc6a99
713713
DoubleConversion: 5189b271737e1565bdce30deb4a08d647e3f5f54
714714
FBLazyVector: a89a0525bc7ca174675045c2b492b5280d5a2470
@@ -729,7 +729,7 @@ SPEC CHECKSUMS:
729729
OpenSSL-Universal: ebc357f1e6bc71fa463ccb2fe676756aff50e88c
730730
PromisesObjC: 09985d6d70fbe7878040aa746d78236e6946d2ef
731731
PromisesSwift: cf9eb58666a43bbe007302226e510b16c1e10959
732-
RCT-Folly: 0080d0a6ebf2577475bda044aa59e2ca1f909cda
732+
RCT-Folly: 424b8c9a7a0b9ab2886ffe9c3b041ef628fd4fb1
733733
RCTRequired: 5a4a30ac20c86eeadd6844a9328f78d4168cf9b2
734734
RCTTypeSafety: 279fc5861a89f0f37db3a585f27f971485b4b734
735735
React: 88307a9be3bd0e71a6822271cf28b84a587fb97f

package/expo-package/src/optionalDependencies/pickDocument.ts

Lines changed: 24 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -15,15 +15,37 @@ if (!DocumentPicker) {
1515
export const pickDocument = DocumentPicker
1616
? async () => {
1717
try {
18-
const { type, ...rest } = await DocumentPicker.getDocumentAsync();
18+
const result = await DocumentPicker.getDocumentAsync();
19+
20+
// New data from latest version of expo-document-picker
21+
const { assets, canceled } = result;
22+
23+
// Old data from older version of expo-document-picker
24+
const { type, ...rest } = result;
25+
26+
// Applicable to latest version of expo-document-picker
27+
if (canceled) {
28+
return {
29+
cancelled: true,
30+
};
31+
}
32+
// Applicable to older version of expo-document-picker
1933
if (type === 'cancel') {
2034
return {
2135
cancelled: true,
2236
};
2337
}
38+
// Applicable to latest version of expo-document-picker
39+
if (assets) {
40+
return {
41+
assets,
42+
cancelled: false,
43+
};
44+
}
45+
// Applicable to older version of expo-document-picker
2446
return {
47+
assets: [rest],
2548
cancelled: false,
26-
docs: [rest],
2749
};
2850
} catch (err) {
2951
return {

package/native-package/src/optionalDependencies/pickDocument.ts

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -37,13 +37,13 @@ export const pickDocument = DocumentPicker
3737
}
3838

3939
return {
40-
cancelled: false,
41-
docs: res.map(({ name, size, type, uri }) => ({
40+
assets: res.map(({ name, size, type, uri }) => ({
41+
mimeType: type,
4242
name,
4343
size,
44-
type,
4544
uri,
4645
})),
46+
cancelled: false,
4747
};
4848
} catch (err) {
4949
return {

package/src/components/Attachment/FileAttachmentGroup.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -104,7 +104,7 @@ const FileAttachmentGroupWithContext = <
104104
setFilesToDisplay((prevFileUploads) =>
105105
prevFileUploads.map((fileUpload, id) => ({
106106
...fileUpload,
107-
paused: id.toString() === index ? false : true,
107+
paused: id.toString() !== index,
108108
})),
109109
);
110110
} else {

package/src/components/Channel/Channel.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1324,7 +1324,7 @@ const ChannelWithContext = <
13241324
) {
13251325
const response = doDocUploadRequest
13261326
? await doDocUploadRequest(file, channel)
1327-
: await channel.sendFile(file.uri, file.name, file.type);
1327+
: await channel.sendFile(file.uri, file.name, file.mimeType);
13281328
attachment.asset_url = response.file;
13291329
if (response.thumb_url) {
13301330
attachment.thumb_url = response.thumb_url;

package/src/components/MessageInput/FileUploadPreview.tsx

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -183,7 +183,7 @@ const FileUploadPreviewWithContext = <
183183
setFileUploads((prevFileUploads) =>
184184
prevFileUploads.map((fileUpload) => ({
185185
...fileUpload,
186-
paused: fileUpload.id === index ? false : true,
186+
paused: fileUpload.id !== index,
187187
})),
188188
);
189189
} else {
@@ -228,7 +228,7 @@ const FileUploadPreviewWithContext = <
228228
style={styles.overlay}
229229
type={indicatorType}
230230
>
231-
{item.file.type?.startsWith('audio/') && isAudioPackageAvailable() ? (
231+
{item.file.mimeType?.startsWith('audio/') && isAudioPackageAvailable() ? (
232232
<View
233233
style={[
234234
{ marginBottom: item.state === FileState.UPLOADED ? 8 : 0 },
@@ -279,7 +279,7 @@ const FileUploadPreviewWithContext = <
279279
>
280280
<View style={[styles.fileContentContainer, fileContentContainer]}>
281281
<View style={styles.fileIcon}>
282-
<FileAttachmentIcon mimeType={item.file.type} />
282+
<FileAttachmentIcon mimeType={item.file.mimeType} />
283283
</View>
284284
<View style={[styles.fileTextContainer, fileTextContainer]}>
285285
<Text

package/src/components/MessageInput/MessageInput.tsx

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -406,15 +406,15 @@ const MessageInputWithContext = <
406406
} else if (fileUploadsLength > selectedFilesLength) {
407407
/**
408408
* User is editing some message which contains video attachments OR
409-
* video attachment is added from custom image picker (other than the default bottomsheet image picker)
409+
* video attachment is added from custom image picker (other than the default bottom-sheet image picker)
410410
* using `uploadNewFile` function from `MessageInputContext`.
411411
**/
412412
setSelectedFiles(
413413
fileUploads.map((fileUpload) => ({
414414
duration: fileUpload.file.duration,
415+
mimeType: fileUpload.file.mimeType,
415416
name: fileUpload.file.name,
416417
size: fileUpload.file.size,
417-
type: fileUpload.file.type,
418418
uri: fileUpload.file.uri,
419419
})),
420420
);

package/src/components/MessageInput/__tests__/FileUploadPreview.test.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -318,8 +318,8 @@ describe('FileUploadPreview', () => {
318318
const fileUploads = [
319319
generateFileUploadPreview({
320320
id: 'file-upload-id-1',
321+
mimeType: 'audio/mp3',
321322
state: FileState.UPLOADED,
322-
type: 'audio/mp3',
323323
}),
324324
];
325325
const removeFile = jest.fn();

0 commit comments

Comments
 (0)