Skip to content

Commit aa2be37

Browse files
authored
fix: upload file/image and respect app settings (#2976)
* fix: file upload preview state refresh when state changes * fix: upload file/image and respect app settings * fix: upload file/image and respect app settings * fix: upload file/image and respect app settings
1 parent 9256498 commit aa2be37

File tree

4 files changed

+32
-5
lines changed

4 files changed

+32
-5
lines changed

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

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -61,7 +61,7 @@ export const takePhoto = ImagePicker
6161
...photo,
6262
cancelled: false,
6363
duration: photo.duration, // in milliseconds
64-
name: 'video_recording_' + date + photo.uri.split('.').pop(),
64+
name: 'video_recording_' + date + '.' + photo.uri.split('.').pop(),
6565
size: photo.fileSize,
6666
source: 'camera',
6767
type: photo.mimeType,
@@ -91,9 +91,12 @@ export const takePhoto = ImagePicker
9191
width: photo.width,
9292
};
9393
}
94-
94+
const clearFilter = new RegExp('[.:]', 'g');
95+
const date = new Date().toISOString().replace(clearFilter, '_');
9596
return {
9697
cancelled: false,
98+
mimeType: photo.mimeType,
99+
name: 'image_' + date + '.' + photo.uri.split('.').pop(),
97100
size: photo.fileSize,
98101
source: 'camera',
99102
type: photo.mimeType,

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

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -53,7 +53,8 @@ export const takePhoto = ImagePicker
5353
...asset,
5454
cancelled: false,
5555
duration: asset.duration * 1000,
56-
name: 'video_recording_' + date + asset.fileName.split('.').pop(),
56+
mimeType: asset.type,
57+
name: 'video_recording_' + date + '.' + asset.fileName.split('.').pop(),
5758
size: asset.fileSize,
5859
source: 'camera',
5960
type: asset.type,
@@ -85,8 +86,12 @@ export const takePhoto = ImagePicker
8586
width: asset.width,
8687
};
8788
}
89+
const clearFilter = new RegExp('[.:]', 'g');
90+
const date = new Date().toISOString().replace(clearFilter, '_');
8891
return {
8992
cancelled: false,
93+
mimeType: asset.type,
94+
name: 'video_recording_' + date + '.' + asset.fileName.split('.').pop(),
9095
size: asset.size,
9196
source: 'camera',
9297
type: asset.type,

package/src/contexts/messageInputContext/utils/utils.ts

Lines changed: 20 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -44,7 +44,16 @@ export const isUploadAllowed = ({ config, file }: CheckUploadPermissionsParams)
4444
}
4545

4646
if (allowed_mime_types?.length) {
47-
if (file.name) {
47+
if (file.mimeType) {
48+
const allowed = allowed_mime_types.some(
49+
(mimeType: string) =>
50+
file.mimeType && file.mimeType.toLowerCase() === mimeType.toLowerCase(),
51+
);
52+
53+
if (!allowed) {
54+
return false;
55+
}
56+
} else if (file.name) {
4857
const fileMimeType = lookup(file.name) as string;
4958
const allowed = allowed_mime_types.some(
5059
(mimeType: string) => fileMimeType.toLowerCase() === mimeType.toLowerCase(),
@@ -57,7 +66,16 @@ export const isUploadAllowed = ({ config, file }: CheckUploadPermissionsParams)
5766
}
5867

5968
if (blocked_mime_types?.length) {
60-
if (file.name) {
69+
if (file.mimeType) {
70+
const blocked = blocked_mime_types.some(
71+
(mimeType: string) =>
72+
file.mimeType && file.mimeType.toLowerCase() === mimeType.toLowerCase(),
73+
);
74+
75+
if (blocked) {
76+
return false;
77+
}
78+
} else if (file.name) {
6179
const fileMimeType = lookup(file.name) as string;
6280
const blocked = blocked_mime_types.some(
6381
(mimeType: string) => fileMimeType.toLowerCase() === mimeType.toLowerCase(),

package/src/types/types.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,7 @@ export type Asset = {
2727
uri: string;
2828
width: number;
2929
id?: string;
30+
mimeType?: string;
3031
originalUri?: string;
3132
size?: number;
3233
};

0 commit comments

Comments
 (0)