[WEB-4137] chore: restrict SVG file selection (#7095)

* chore: update accepted file mime types

* chore: update accepted file mime types
This commit is contained in:
Aaryan Khandelwal 2025-05-23 15:33:56 +05:30 committed by GitHub
parent cd200169b6
commit 6eb0b5ddb0
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
4 changed files with 19 additions and 12 deletions

View file

@ -1 +1,14 @@
export const MAX_FILE_SIZE = 5 * 1024 * 1024; // 5MB
export const ACCEPTED_AVATAR_IMAGE_MIME_TYPES_FOR_REACT_DROPZONE = {
"image/jpeg": [],
"image/jpg": [],
"image/png": [],
"image/webp": [],
};
export const ACCEPTED_COVER_IMAGE_MIME_TYPES_FOR_REACT_DROPZONE = {
"image/jpeg": [],
"image/jpg": [],
"image/png": [],
"image/webp": [],
};

View file

@ -9,7 +9,7 @@ import { Control, Controller } from "react-hook-form";
import useSWR from "swr";
import { Tab, Popover } from "@headlessui/react";
// plane imports
import { MAX_FILE_SIZE } from "@plane/constants";
import { ACCEPTED_COVER_IMAGE_MIME_TYPES_FOR_REACT_DROPZONE, MAX_FILE_SIZE } from "@plane/constants";
import { useOutsideClickDetector } from "@plane/hooks";
// plane types
import { EFileAssetType } from "@plane/types/src/enums";
@ -88,9 +88,7 @@ export const ImagePickerPopover: React.FC<Props> = observer((props) => {
const { getRootProps, getInputProps, isDragActive, fileRejections } = useDropzone({
onDrop,
accept: {
"image/*": [".png", ".jpg", ".jpeg", ".webp"],
},
accept: ACCEPTED_COVER_IMAGE_MIME_TYPES_FOR_REACT_DROPZONE,
maxSize: MAX_FILE_SIZE,
});

View file

@ -6,7 +6,7 @@ import { useDropzone } from "react-dropzone";
import { UserCircle2 } from "lucide-react";
import { Transition, Dialog } from "@headlessui/react";
// plane imports
import { MAX_FILE_SIZE } from "@plane/constants";
import { ACCEPTED_AVATAR_IMAGE_MIME_TYPES_FOR_REACT_DROPZONE, MAX_FILE_SIZE } from "@plane/constants";
import { EFileAssetType } from "@plane/types/src/enums";
import { Button, TOAST_TYPE, setToast } from "@plane/ui";
// helpers
@ -35,9 +35,7 @@ export const UserImageUploadModal: React.FC<Props> = observer((props) => {
const { getRootProps, getInputProps, isDragActive, fileRejections } = useDropzone({
onDrop,
accept: {
"image/*": [".png", ".jpg", ".jpeg", ".webp"],
},
accept: ACCEPTED_AVATAR_IMAGE_MIME_TYPES_FOR_REACT_DROPZONE,
maxSize: MAX_FILE_SIZE,
multiple: false,
});

View file

@ -6,7 +6,7 @@ import { useDropzone } from "react-dropzone";
import { UserCircle2 } from "lucide-react";
import { Transition, Dialog } from "@headlessui/react";
// plane imports
import { MAX_FILE_SIZE } from "@plane/constants";
import { ACCEPTED_AVATAR_IMAGE_MIME_TYPES_FOR_REACT_DROPZONE, MAX_FILE_SIZE } from "@plane/constants";
import { EFileAssetType } from "@plane/types/src/enums";
import { Button } from "@plane/ui";
// helpers
@ -43,9 +43,7 @@ export const WorkspaceImageUploadModal: React.FC<Props> = observer((props) => {
const { getRootProps, getInputProps, isDragActive, fileRejections } = useDropzone({
onDrop,
accept: {
"image/*": [".png", ".jpg", ".jpeg", ".webp"],
},
accept: ACCEPTED_AVATAR_IMAGE_MIME_TYPES_FOR_REACT_DROPZONE,
maxSize: MAX_FILE_SIZE,
multiple: false,
});