Skip to content

Commit 2c461b4

Browse files
authored
fix: show proper error when dropping a too big file (#5385)
Fixes #5326
1 parent 973d9df commit 2c461b4

File tree

5 files changed

+21
-25
lines changed

5 files changed

+21
-25
lines changed

apps/builder/app/builder/shared/assets/asset-upload.tsx

Lines changed: 2 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -14,17 +14,13 @@ import { imageMimeTypes } from "./asset-utils";
1414

1515
const maxSize = toBytes(MAX_UPLOAD_SIZE);
1616

17-
const getFilesFromInput = (_type: AssetType, input: HTMLInputElement) => {
18-
const files = Array.from(input?.files ?? []);
19-
17+
export const validateFiles = (files: File[]) => {
2018
const exceedSizeFiles = files.filter((file) => file.size > maxSize);
21-
2219
for (const file of exceedSizeFiles) {
2320
toast.error(
2421
`Asset "${file.name}" cannot be bigger than ${MAX_UPLOAD_SIZE}MB`
2522
);
2623
}
27-
2824
return files.filter((file) => file.size <= maxSize);
2925
};
3026

@@ -37,7 +33,7 @@ const useUpload = (type: AssetType) => {
3733
if (input === null) {
3834
return;
3935
}
40-
const files = getFilesFromInput(type, input);
36+
const files = validateFiles(Array.from(input?.files ?? []));
4137
uploadAssets(type, files);
4238
form.reset();
4339
};

apps/builder/app/builder/shared/assets/assets-shell.tsx

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ import {
1313
Text,
1414
theme,
1515
} from "@webstudio-is/design-system";
16-
import { AssetUpload, acceptUploadType } from "./asset-upload";
16+
import { AssetUpload, acceptUploadType, validateFiles } from "./asset-upload";
1717
import { NotFound } from "./not-found";
1818
import { Separator } from "./separator";
1919
import { combine } from "@atlaskit/pragmatic-drag-and-drop/combine";
@@ -129,7 +129,7 @@ export const AssetsShell = ({
129129
)
130130
);
131131

132-
const droppedFiles = await getFiles({ source });
132+
const droppedFiles = validateFiles(getFiles({ source }));
133133

134134
const files = droppedFiles
135135
.filter((file) => file != null)

apps/builder/package.json

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -18,8 +18,8 @@
1818
"test": "vitest run"
1919
},
2020
"dependencies": {
21-
"@atlaskit/pragmatic-drag-and-drop": "^1.5.2",
22-
"@bomb.sh/args": "^0.3.0",
21+
"@atlaskit/pragmatic-drag-and-drop": "^1.7.4",
22+
"@bomb.sh/args": "^0.3.1",
2323
"@codemirror/autocomplete": "^6.18.6",
2424
"@codemirror/commands": "^6.8.0",
2525
"@codemirror/lang-css": "^6.3.1",

packages/design-system/package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@
2525
"react-dom": "18.3.0-canary-14898b6a9-20240318"
2626
},
2727
"dependencies": {
28-
"@atlaskit/pragmatic-drag-and-drop": "^1.5.2",
28+
"@atlaskit/pragmatic-drag-and-drop": "^1.7.4",
2929
"@atlaskit/pragmatic-drag-and-drop-auto-scroll": "^2.1.0",
3030
"@atlaskit/pragmatic-drag-and-drop-hitbox": "^1.0.3",
3131
"@floating-ui/dom": "^1.6.13",

pnpm-lock.yaml

Lines changed: 14 additions & 14 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

0 commit comments

Comments
 (0)