diff --git a/apps/app_order_box/kits/motion_reminder/components/RunnerModal.tsx b/apps/app_order_box/kits/motion_reminder/components/RunnerModal.tsx index 03e24c2..2fce660 100644 --- a/apps/app_order_box/kits/motion_reminder/components/RunnerModal.tsx +++ b/apps/app_order_box/kits/motion_reminder/components/RunnerModal.tsx @@ -1,12 +1,11 @@ -import React, { useCallback, useEffect, useMemo, useState } from 'react'; +import React, { useCallback, useEffect, useMemo } from 'react'; import { Alert, - Dimensions, Modal, - ScaledSize, StyleSheet, Text, TouchableOpacity, + useWindowDimensions, View, } from 'react-native'; import { useKeepAwake } from 'expo-keep-awake'; @@ -33,22 +32,9 @@ export const RunnerModal: React.FC = ({ runner, onClose }) => // 保持屏幕常亮 useKeepAwake(); - const [windowSize, setWindowSize] = useState(() => Dimensions.get('window')); - useEffect(() => { - const listener = ({ window }: { window: ScaledSize }) => setWindowSize(window); - const subscription = Dimensions.addEventListener('change', listener); - return () => { - if (subscription && typeof subscription.remove === 'function') { - subscription.remove(); - } else { - try { - Dimensions.removeEventListener('change', listener); - } catch (e) { /* noop */ } - } - }; - }, []); - const isLandscape = useMemo(() => windowSize.width > windowSize.height, [windowSize]); - const isWide = windowSize.width >= 900; + const { width: windowWidth, height: windowHeight } = useWindowDimensions(); + const isLandscape = useMemo(() => windowWidth > windowHeight, [windowWidth, windowHeight]); + const isWide = windowWidth >= 900; const splitMode = isLandscape || isWide; // 进入后台时保存状态