mirror of
https://github.com/SECTL/SecScore.git
synced 2026-07-19 19:04:23 +08:00
适配iOS端默认竖屏并隐藏窗口控制按钮
This commit is contained in:
+22
-2
@@ -13,6 +13,7 @@ function MainContent(): React.JSX.Element {
|
||||
const location = useLocation()
|
||||
const { currentTheme } = useTheme()
|
||||
const [messageApi, contextHolder] = message.useMessage()
|
||||
const { isIosDevice, isIosPhone } = useMemo(getIosDeviceInfo, [])
|
||||
|
||||
useEffect(() => {
|
||||
const api = (window as any).api
|
||||
@@ -51,8 +52,8 @@ function MainContent(): React.JSX.Element {
|
||||
const [authVisible, setAuthVisible] = useState(false)
|
||||
const [authPassword, setAuthPassword] = useState("")
|
||||
const [authLoading, setAuthLoading] = useState(false)
|
||||
const [isPortraitMode, setIsPortraitMode] = useState(false)
|
||||
const [sidebarCollapsed, setSidebarCollapsed] = useState(false)
|
||||
const [isPortraitMode, setIsPortraitMode] = useState(isIosPhone)
|
||||
const [sidebarCollapsed, setSidebarCollapsed] = useState(isIosPhone)
|
||||
const [floatingSidebarExpanded, setFloatingSidebarExpanded] = useState(false)
|
||||
const [syncConflictVisible, setSyncConflictVisible] = useState(false)
|
||||
const [syncConflicts, setSyncConflicts] = useState<
|
||||
@@ -311,6 +312,7 @@ function MainContent(): React.JSX.Element {
|
||||
hasAnyPassword={hasAnyPassword}
|
||||
onAuthClick={() => setAuthVisible(true)}
|
||||
onLogout={logout}
|
||||
showWindowControls={!isIosDevice}
|
||||
isPortraitMode={isPortraitMode}
|
||||
sidebarCollapsed={sidebarCollapsed}
|
||||
floatingExpand={isPortraitMode}
|
||||
@@ -453,6 +455,13 @@ function getArchitecture(): string {
|
||||
|
||||
function getPlatform(): string {
|
||||
const userAgent = navigator.userAgent.toLowerCase()
|
||||
const isAppleTouchDevice = userAgent.includes("macintosh") && navigator.maxTouchPoints > 1
|
||||
|
||||
if (userAgent.includes("iphone") || userAgent.includes("ipad") || userAgent.includes("ipod") || isAppleTouchDevice) {
|
||||
return "iOS"
|
||||
} else if (userAgent.includes("android")) {
|
||||
return "Android"
|
||||
}
|
||||
|
||||
if (userAgent.includes("windows")) {
|
||||
return "Windows"
|
||||
@@ -464,6 +473,17 @@ function getPlatform(): string {
|
||||
|
||||
return "Unknown"
|
||||
}
|
||||
|
||||
function getIosDeviceInfo(): { isIosDevice: boolean; isIosPhone: boolean } {
|
||||
const userAgent = navigator.userAgent.toLowerCase()
|
||||
const isAppleTouchDevice = userAgent.includes("macintosh") && navigator.maxTouchPoints > 1
|
||||
const isIosDevice = /iphone|ipad|ipod/.test(userAgent) || isAppleTouchDevice
|
||||
const isIosTablet = userAgent.includes("ipad") || isAppleTouchDevice
|
||||
return {
|
||||
isIosDevice,
|
||||
isIosPhone: isIosDevice && !isIosTablet,
|
||||
}
|
||||
}
|
||||
function App(): React.JSX.Element {
|
||||
return (
|
||||
<ThemeProvider>
|
||||
|
||||
@@ -46,6 +46,7 @@ interface ContentAreaProps {
|
||||
hasAnyPassword: boolean
|
||||
onAuthClick: () => void
|
||||
onLogout: () => void
|
||||
showWindowControls: boolean
|
||||
isPortraitMode: boolean
|
||||
sidebarCollapsed: boolean
|
||||
floatingExpand: boolean
|
||||
@@ -59,6 +60,7 @@ export function ContentArea({
|
||||
hasAnyPassword,
|
||||
onAuthClick,
|
||||
onLogout,
|
||||
showWindowControls,
|
||||
isPortraitMode,
|
||||
sidebarCollapsed,
|
||||
floatingExpand,
|
||||
@@ -189,10 +191,12 @@ export function ContentArea({
|
||||
)}
|
||||
</Space>
|
||||
</div>
|
||||
{showWindowControls && (
|
||||
<WindowControls
|
||||
isPortraitMode={isPortraitMode}
|
||||
onToggleOrientation={onToggleOrientation}
|
||||
/>
|
||||
)}
|
||||
</div>
|
||||
|
||||
<Content style={{ flex: 1, overflowY: "auto", overflowX: "hidden" }}>
|
||||
|
||||
+2
-1
@@ -127,7 +127,8 @@ const disableTouchZoom = () => {
|
||||
disableTouchZoom()
|
||||
|
||||
const platform = navigator.userAgent.toLowerCase()
|
||||
const isIos = /iphone|ipad|ipod/.test(platform)
|
||||
const isAppleTouchDevice = platform.includes("macintosh") && navigator.maxTouchPoints > 1
|
||||
const isIos = /iphone|ipad|ipod/.test(platform) || isAppleTouchDevice
|
||||
const isMacDesktop = platform.includes("mac") && !isIos
|
||||
|
||||
if (isMacDesktop) {
|
||||
|
||||
Reference in New Issue
Block a user