import { SettingProvider } from "../../hooks/Setting"; import ThemeProvider from "../../hooks/Theme"; import DraggableResizable from "./DraggableResizable"; import Stack from "@mui/material/Stack"; import Box from "@mui/material/Box"; import Divider from "@mui/material/Divider"; import IconButton from "@mui/material/IconButton"; import DragIndicatorIcon from "@mui/icons-material/DragIndicator"; import UnfoldLessIcon from "@mui/icons-material/UnfoldLess"; import UnfoldMoreIcon from "@mui/icons-material/UnfoldMore"; import PushPinIcon from "@mui/icons-material/PushPin"; import PushPinOutlinedIcon from "@mui/icons-material/PushPinOutlined"; import LockIcon from "@mui/icons-material/Lock"; import LockOpenIcon from "@mui/icons-material/LockOpen"; import CloseIcon from "@mui/icons-material/Close"; import Typography from "@mui/material/Typography"; import { useI18n } from "../../hooks/I18n"; import { useState } from "react"; import { isMobile } from "../../libs/mobile"; import TranForm from "./TranForm.js"; function Header({ setShowBox, simpleStyle, setSimpleStyle, hideClickAway, setHideClickAway, followSelection, setFollowSelection, mouseHover, }) { const i18n = useI18n(); if (!isMobile && simpleStyle && !mouseHover) { return; } return ( e.stopPropagation()} onTouchEnd={(e) => e.stopPropagation()} > {`${process.env.REACT_APP_NAME} v${process.env.REACT_APP_VERSION}`} { setHideClickAway((pre) => !pre); }} > {hideClickAway ? ( ) : ( )} { setFollowSelection((pre) => !pre); }} > {followSelection ? ( ) : ( )} { setSimpleStyle((pre) => !pre); }} > {simpleStyle ? ( ) : ( )} { setShowBox(false); }} > ); } export default function TranBox({ showBox, text, setText, setShowBox, tranboxSetting: { enDict, enSug, apiSlugs, fromLang, toLang, toLang2, autoHeight, }, transApis, boxSize, setBoxSize, boxPosition, setBoxPosition, simpleStyle, setSimpleStyle, hideClickAway, setHideClickAway, followSelection, setFollowSelection, extStyles = "", langDetector, }) { const [mouseHover, setMouseHover] = useState(false); // todo: 这里的 SettingProvider 不应和 background 的共用 return ( {showBox && ( } onClick={(e) => e.stopPropagation()} onMouseEnter={() => setMouseHover(true)} onMouseLeave={() => setMouseHover(false)} > )} ); }