Skip to content

Commit 9fcb716

Browse files
committed
add error message if file is too large
1 parent e4f5767 commit 9fcb716

File tree

6 files changed

+21
-113
lines changed

6 files changed

+21
-113
lines changed

.eslintignore

Lines changed: 0 additions & 5 deletions
This file was deleted.

.eslintrc.js

Lines changed: 0 additions & 101 deletions
This file was deleted.

src/App.vue

Lines changed: 9 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -18,11 +18,15 @@ const isZipCompressing = ref(false);
1818
const anyUncompressed = computed(() => files.value.some((file) => !file.isCompressed));
1919
2020
async function editFileObj(fileObj: FileObj) {
21-
const compressedFile = await useImageCompression(fileObj.file);
22-
const item = files.value.find((item) => item.id === fileObj.id);
23-
if (!item) return;
24-
item.file = compressedFile;
25-
item.isCompressed = true;
21+
try {
22+
const compressedFile = await useImageCompression(fileObj.file);
23+
const item = files.value.find((item) => item.id === fileObj.id);
24+
if (!item) return;
25+
item.file = compressedFile;
26+
item.isCompressed = true;
27+
} catch {
28+
fileObj.isTooLarge = true;
29+
}
2630
}
2731
2832
async function compressFiles() {

src/components/FileItem.vue

Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -41,8 +41,12 @@ const computeFileSize = (size: number) =>
4141
<div>
4242
<div><span class="field-title">Name:</span> {{ fileObj.file.name }}</div>
4343
<div><span class="field-title">Original Size:</span> {{ computeFileSize(orgSize) }}MB</div>
44-
<div v-if="compSize">
45-
<span class="field-title">Compressed Size:</span> {{ computeFileSize(compSize) }}MB
44+
<div v-if="compSize"><span class="field-title">Compressed Size:</span> {{ computeFileSize(compSize) }}MB</div>
45+
<div
46+
v-if="fileObj.isTooLarge"
47+
class="error"
48+
>
49+
<span class="field-title">Error:</span> File is too large!
4650
</div>
4751
</div>
4852
<a
@@ -78,6 +82,10 @@ const computeFileSize = (size: number) =>
7882
font-weight: bold;
7983
}
8084
85+
.error {
86+
color: red;
87+
}
88+
8189
.delete-button {
8290
width: auto;
8391
margin: 0;

src/components/FileUpload.vue

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,7 @@ function addFiles(uploadedFiles: FileList) {
2929
const fileObj: FileObj = {
3030
id: id++,
3131
isCompressed: false,
32+
isTooLarge: false,
3233
file,
3334
};
3435
files.value.push(fileObj);

src/types/file.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
export interface FileObj {
22
id: number;
33
isCompressed: boolean;
4+
isTooLarge: boolean;
45
file: File;
56
}

0 commit comments

Comments
 (0)