From df449b0e4283ae5fe5f32ef72d1f9b4c44100571 Mon Sep 17 00:00:00 2001 From: GZTime Date: Sun, 12 May 2024 12:20:50 +0800 Subject: [PATCH] fix: remove svg (again) from image mime types --- src/GZCTF/ClientApp/src/components/TeamEditModal.tsx | 5 +++-- src/GZCTF/ClientApp/src/pages/account/Profile.tsx | 5 +++-- src/GZCTF/ClientApp/src/pages/admin/games/[id]/Info.tsx | 5 +++-- src/GZCTF/ClientApp/src/utils/Shared.tsx | 9 +++++++++ 4 files changed, 18 insertions(+), 6 deletions(-) diff --git a/src/GZCTF/ClientApp/src/components/TeamEditModal.tsx b/src/GZCTF/ClientApp/src/components/TeamEditModal.tsx index d6e7c0c1b..d328f7988 100644 --- a/src/GZCTF/ClientApp/src/components/TeamEditModal.tsx +++ b/src/GZCTF/ClientApp/src/components/TeamEditModal.tsx @@ -18,7 +18,7 @@ import { Tooltip, useMantineTheme, } from '@mantine/core' -import { Dropzone, IMAGE_MIME_TYPE } from '@mantine/dropzone' +import { Dropzone } from '@mantine/dropzone' import { useClipboard } from '@mantine/hooks' import { useModals } from '@mantine/modals' import { notifications, showNotification, updateNotification } from '@mantine/notifications' @@ -27,6 +27,7 @@ import { Icon } from '@mdi/react' import { FC, useEffect, useState } from 'react' import { useTranslation } from 'react-i18next' import { showErrorNotification, tryGetErrorMsg } from '@Utils/ApiHelper' +import { IMAGE_MIME_TYPES } from '@Utils/Shared' import api, { TeamInfoModel, TeamUserInfoModel } from '@Api' interface TeamEditModalProps extends ModalProps { @@ -467,7 +468,7 @@ const TeamEditModal: FC = (props) => { mih={220} disabled={disabled} maxSize={3 * 1024 * 1024} - accept={IMAGE_MIME_TYPE} + accept={IMAGE_MIME_TYPES} > {avatarFile ? ( diff --git a/src/GZCTF/ClientApp/src/pages/account/Profile.tsx b/src/GZCTF/ClientApp/src/pages/account/Profile.tsx index 4fc1f5df5..7b0b64097 100644 --- a/src/GZCTF/ClientApp/src/pages/account/Profile.tsx +++ b/src/GZCTF/ClientApp/src/pages/account/Profile.tsx @@ -16,7 +16,7 @@ import { TextInput, Title, } from '@mantine/core' -import { Dropzone, IMAGE_MIME_TYPE } from '@mantine/dropzone' +import { Dropzone } from '@mantine/dropzone' import { notifications, showNotification, updateNotification } from '@mantine/notifications' import { mdiCheck, mdiClose } from '@mdi/js' import { Icon } from '@mdi/react' @@ -25,6 +25,7 @@ import { Trans, useTranslation } from 'react-i18next' import PasswordChangeModal from '@Components/PasswordChangeModal' import WithNavBar from '@Components/WithNavbar' import { showErrorNotification, tryGetErrorMsg } from '@Utils/ApiHelper' +import { IMAGE_MIME_TYPES } from '@Utils/Shared' import { useIsMobile } from '@Utils/ThemeOverride' import { usePageTitle } from '@Utils/usePageTitle' import { useUser } from '@Utils/useUser' @@ -327,7 +328,7 @@ const Profile: FC = () => { miw={220} mih={220} maxSize={3 * 1024 * 1024} - accept={IMAGE_MIME_TYPE} + accept={IMAGE_MIME_TYPES} > {avatarFile ? ( diff --git a/src/GZCTF/ClientApp/src/pages/admin/games/[id]/Info.tsx b/src/GZCTF/ClientApp/src/pages/admin/games/[id]/Info.tsx index ac4ccdef8..2719035b3 100644 --- a/src/GZCTF/ClientApp/src/pages/admin/games/[id]/Info.tsx +++ b/src/GZCTF/ClientApp/src/pages/admin/games/[id]/Info.tsx @@ -16,7 +16,7 @@ import { TextInput, } from '@mantine/core' import { DatePickerInput, TimeInput } from '@mantine/dates' -import { Dropzone, IMAGE_MIME_TYPE } from '@mantine/dropzone' +import { Dropzone } from '@mantine/dropzone' import { useClipboard, useInputState } from '@mantine/hooks' import { useModals } from '@mantine/modals' import { notifications, showNotification, updateNotification } from '@mantine/notifications' @@ -36,6 +36,7 @@ import { useNavigate, useParams } from 'react-router-dom' import { SwitchLabel } from '@Components/admin/SwitchLabel' import WithGameEditTab from '@Components/admin/WithGameEditTab' import { showErrorNotification, tryGetErrorMsg } from '@Utils/ApiHelper' +import { IMAGE_MIME_TYPES } from '@Utils/Shared' import { OnceSWRConfig } from '@Utils/useConfig' import api, { GameInfoModel } from '@Api' @@ -466,7 +467,7 @@ const GameInfoEdit: FC = () => { }) }} maxSize={3 * 1024 * 1024} - accept={IMAGE_MIME_TYPE} + accept={IMAGE_MIME_TYPES} disabled={disabled} styles={{ root: { diff --git a/src/GZCTF/ClientApp/src/utils/Shared.tsx b/src/GZCTF/ClientApp/src/utils/Shared.tsx index a1b20a500..8c9f19527 100644 --- a/src/GZCTF/ClientApp/src/utils/Shared.tsx +++ b/src/GZCTF/ClientApp/src/utils/Shared.tsx @@ -474,6 +474,15 @@ export const HunamizeSize = (size: number) => { } } +export const IMAGE_MIME_TYPES = [ + 'image/png', + 'image/gif', + 'image/jpeg', + 'image/webp', + 'image/avif', + 'image/heic', +] + /** 系统错误信息 */ export const enum ErrorCodes { /**