diff --git a/src/component/Admin/Settings/SiteInformation/GeneralImagePreview.tsx b/src/component/Admin/Settings/SiteInformation/GeneralImagePreview.tsx index a2a53f0..96f38a0 100644 --- a/src/component/Admin/Settings/SiteInformation/GeneralImagePreview.tsx +++ b/src/component/Admin/Settings/SiteInformation/GeneralImagePreview.tsx @@ -1,18 +1,29 @@ import { Box } from "@mui/material"; -import React from "react"; +import { useState, useEffect } from "react"; import { useTranslation } from "react-i18next"; import useMediaQuery from "@mui/material/useMediaQuery"; import { useTheme } from "@mui/material/styles"; export interface GeneralImagePreviewProps { src: string; + debounce?: number; // (可选) 防抖时间 } -const GeneralImagePreview = ({ src }: GeneralImagePreviewProps) => { +const GeneralImagePreview = ({ src, debounce = 0 }: GeneralImagePreviewProps) => { const { t } = useTranslation("dashboard"); const theme = useTheme(); const isMobile = useMediaQuery(theme.breakpoints.down("sm")); + const [debouncedSrc, setDebouncedSrc] = useState(src); + + useEffect(() => { + const handler = setTimeout(() => { + setDebouncedSrc(src); + }, debounce); + + return () => clearTimeout(handler); + }, [src, debounce]); + return ( { > { spacing={3} secondary={ - + + + } > @@ -164,7 +166,9 @@ const SiteInformation = () => { spacing={3} secondary={ - + + + } > @@ -184,7 +188,9 @@ const SiteInformation = () => { spacing={3} secondary={ - + + + } >