51 lines
1.2 KiB
TypeScript
51 lines
1.2 KiB
TypeScript
import React from 'react';
|
|
import { useLocation } from 'react-router-dom';
|
|
import BottomNav from './BottomNav';
|
|
|
|
// 不需要底部导航的页面路径
|
|
const NO_BOTTOM_NAV_PATHS = [
|
|
'/login',
|
|
'/register',
|
|
'/forgot-password',
|
|
'/reset-password',
|
|
'/devices',
|
|
'/devices/',
|
|
'/wechat-accounts',
|
|
'/wechat-accounts/',
|
|
'/scenarios/new',
|
|
'/scenarios/',
|
|
'/plans/',
|
|
'/workspace/auto-group/',
|
|
'/workspace/moments-sync/',
|
|
'/workspace/traffic-distribution/',
|
|
'/404',
|
|
'/500'
|
|
];
|
|
|
|
interface LayoutWrapperProps {
|
|
children: React.ReactNode;
|
|
}
|
|
|
|
export default function LayoutWrapper({ children }: LayoutWrapperProps) {
|
|
const location = useLocation();
|
|
|
|
// 检查当前路径是否需要底部导航
|
|
const shouldShowBottomNav = !NO_BOTTOM_NAV_PATHS.some(path =>
|
|
location.pathname.startsWith(path)
|
|
);
|
|
|
|
// 如果是登录页面,直接渲染内容(不显示底部导航)
|
|
if (location.pathname === '/login') {
|
|
return <>{children}</>;
|
|
}
|
|
|
|
// 其他页面显示底部导航
|
|
return (
|
|
<div className="flex flex-col h-screen">
|
|
<div className="flex-1 overflow-y-auto">
|
|
{children}
|
|
</div>
|
|
{shouldShowBottomNav && <BottomNav />}
|
|
</div>
|
|
);
|
|
}
|