Skip to content

Commit bcababe

Browse files
authored
experimental: Video uploads fixes accept support (#5153)
## Description Now Video elelment shows only video files. <img width="1016" alt="image" src="https://github.com/user-attachments/assets/0c846430-1e6d-4acd-8a1a-aa0111d39292" /> ## Steps for reproduction 1. click button 2. expect xyz ## Code Review - [ ] hi @kof, I need you to do - conceptual review (architecture, feature-correctness) - detailed review (read every line) - test it on preview ## Before requesting a review - [ ] made a self-review - [ ] added inline comments where things may be not obvious (the "why", not "what") ## Before merging - [ ] tested locally and on preview environment (preview dev login: 0000) - [ ] updated [test cases](https://github.com/webstudio-is/webstudio/blob/main/apps/builder/docs/test-cases.md) document - [ ] added tests - [ ] if any new env variables are added, added them to `.env` file
1 parent 1ac1d46 commit bcababe

2 files changed

Lines changed: 9 additions & 1 deletion

File tree

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -71,7 +71,7 @@ export const acceptUploadType = (
7171
file: File
7272
) => {
7373
if (accept !== undefined) {
74-
acceptFileTypeSpecifier(accept, file);
74+
return acceptFileTypeSpecifier(accept, file);
7575
}
7676

7777
return acceptFileTypeSpecifier(acceptMap[assetType], file);

apps/builder/app/builder/shared/image-manager/image-manager.tsx

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -55,11 +55,19 @@ const useLogic = ({
5555
const filteredItems = useMemo(() => {
5656
let acceptable = assetContainers;
5757
const patterns = acceptToMimePatterns(accept ?? "");
58+
5859
if (patterns !== "*") {
5960
acceptable = assetContainers.filter((item) =>
6061
doesAssetMatchMimePatterns(item.asset, patterns)
6162
);
63+
} else if (accept !== undefined) {
64+
// Filter by file extension
65+
const extensions = accept.split(",").map((ext) => ext.trim());
66+
acceptable = assetContainers.filter((item) =>
67+
extensions.some((ext) => item.asset.name.endsWith(ext))
68+
);
6269
}
70+
6371
if (searchProps.value === "") {
6472
return acceptable;
6573
}

0 commit comments

Comments
 (0)