Files
fateverse-react/src/router/RouteInterception.tsx
2023-11-10 14:31:25 +08:00

28 lines
760 B
TypeScript

import { Navigate } from "react-router-dom"
import { getToken } from "../utils/auth"
const Views = import.meta.glob('../view/**/*.tsx')
// 判断是否有对应路径的映射文件
const hasMapFile = (filePath: string): boolean => {
return Views[`../view/${filePath}.tsx`] ? true : false
}
/**
* @author {温华}
* @description 路由拦截组件
* @param {children: ReactDOM, filePath: string(文件路径)}
*/
export default function RouteInterception({ children, filePath = "" }: any) {
if (getToken()) {
if (filePath !== "") {
if (hasMapFile(filePath)) {
return children
} else {
return <Navigate to='/404' />
}
}
return children
} else {
return <Navigate to='/login' replace={true} />
}
}