43 lines
1.2 KiB
TypeScript
43 lines
1.2 KiB
TypeScript
import React from 'react';
|
|
import { useLocation } from 'react-router-dom';
|
|
import BottomNav from './BottomNav';
|
|
|
|
// 配置需要底部导航的页面路径(白名单)
|
|
const BOTTOM_NAV_CONFIG = [
|
|
'/', // 首页
|
|
'/scenarios', // 场景获客
|
|
'/workspace', // 工作台
|
|
'/profile', // 我的
|
|
];
|
|
|
|
interface LayoutWrapperProps {
|
|
children: React.ReactNode;
|
|
}
|
|
|
|
export default function LayoutWrapper({ children }: LayoutWrapperProps) {
|
|
const location = useLocation();
|
|
|
|
// 检查当前路径是否需要底部导航
|
|
const shouldShowBottomNav = BOTTOM_NAV_CONFIG.some(path => {
|
|
// 特殊处理首页路由 '/'
|
|
if (path === '/') {
|
|
return location.pathname === '/';
|
|
}
|
|
return location.pathname === 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>
|
|
);
|
|
}
|