feat: 添加设备检测功能
This commit is contained in:
22
src/App.js
22
src/App.js
@@ -28,6 +28,7 @@ import { useGlobalErrorHandler } from './hooks/useGlobalErrorHandler';
|
||||
|
||||
// Redux
|
||||
import { initializePostHog } from './store/slices/posthogSlice';
|
||||
import { updateScreenSize } from './store/slices/deviceSlice';
|
||||
|
||||
// Utils
|
||||
import { logger } from './utils/logger';
|
||||
@@ -63,6 +64,27 @@ function AppContent() {
|
||||
performanceMonitor.mark('react-ready');
|
||||
}, []);
|
||||
|
||||
// 📱 设备检测:监听窗口尺寸变化
|
||||
useEffect(() => {
|
||||
let resizeTimer;
|
||||
const handleResize = () => {
|
||||
// 防抖:避免频繁触发
|
||||
clearTimeout(resizeTimer);
|
||||
resizeTimer = setTimeout(() => {
|
||||
dispatch(updateScreenSize());
|
||||
}, 150);
|
||||
};
|
||||
|
||||
window.addEventListener('resize', handleResize);
|
||||
window.addEventListener('orientationchange', handleResize);
|
||||
|
||||
return () => {
|
||||
clearTimeout(resizeTimer);
|
||||
window.removeEventListener('resize', handleResize);
|
||||
window.removeEventListener('orientationchange', handleResize);
|
||||
};
|
||||
}, [dispatch]);
|
||||
|
||||
// ✅ 首次访问追踪
|
||||
useEffect(() => {
|
||||
const hasVisited = localStorage.getItem('has_visited');
|
||||
|
||||
Reference in New Issue
Block a user