Files
cunkebao_v3/Cunkebao/src/components/LayoutWrapper.tsx

43 lines
1.2 KiB
TypeScript
Raw Normal View History

2025-07-04 14:03:04 +08:00
import React from 'react';
import { useLocation } from 'react-router-dom';
import BottomNav from './BottomNav';
// 配置需要底部导航的页面路径(白名单)
const BOTTOM_NAV_CONFIG = [
'/', // 首页
'/scenarios', // 场景获客
'/workspace', // 工作台
'/profile', // 我的
2025-07-04 15:49:22 +08:00
];
2025-07-04 14:03:04 +08:00
interface LayoutWrapperProps {
children: React.ReactNode;
}
export default function LayoutWrapper({ children }: LayoutWrapperProps) {
const location = useLocation();
2025-07-04 15:49:22 +08:00
// 检查当前路径是否需要底部导航
const shouldShowBottomNav = BOTTOM_NAV_CONFIG.some(path => {
// 特殊处理首页路由 '/'
if (path === '/') {
return location.pathname === '/';
}
return location.pathname === path;
});
2025-07-04 15:49:22 +08:00
// 如果是登录页面,直接渲染内容(不显示底部导航)
if (location.pathname === '/login') {
return <>{children}</>;
}
2025-07-04 14:03:04 +08:00
// 只有在配置列表中的页面才显示底部导航
2025-07-04 14:03:04 +08:00
return (
2025-07-04 15:49:22 +08:00
<div className="flex flex-col h-screen">
2025-07-04 16:11:02 +08:00
<div className="flex-1 overflow-y-auto">
2025-07-04 14:03:04 +08:00
{children}
2025-07-04 15:49:22 +08:00
</div>
{shouldShowBottomNav && <BottomNav />}
2025-07-04 14:03:04 +08:00
</div>
);
}