forgeplus-react/src/forge/Server/Index.jsx

84 lines
2.3 KiB
JavaScript
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

import React, { useEffect } from 'react';
import { Route, Switch } from 'react-router-dom';
import "./index.scss";
import Loadable from 'react-loadable';
import Loading from '../../Loading';
const List = Loadable({
loader: () => import('./List'),
loading: Loading,
})
const Data = Loadable({
loader: () => import('./data'),
loading: Loading,
})
// 跨平台代码同步服务
const Reposyncer = Loadable({
loader: () => import('./reposyncer'),
loading: Loading,
})
// 个人建站服务
const Pages = Loadable({
loader: () => import('./pages'),
loading: Loading,
})
// 开源度量工具
const Measurement = Loadable({
loader: () => import('./measurement'),
loading: Loading,
})
const MeasurementDetail = Loadable({
loader: () => import('./measurement/dimension'),
loading: Loading,
})
function ServerIndex(props){
const { projectDetail } = props;
const { owner , projectsId } = props.match.params;
useEffect(()=>{
// 非项目协作者不可进入服务tab 3397
if(projectDetail && projectDetail.permission === ""){
props.history.push(`/${owner}/${projectsId}`);
}
}, [projectDetail])
return(
<div className="panels">
<Switch {...props}>
<Route path="/:owner/:projectsId/service/measurement/:type"
render={
(p) => (<MeasurementDetail {...props} {...p}/>)
}
></Route>
<Route path="/:owner/:projectsId/service/reposyncer"
render={
() => (<Reposyncer {...props}/>)
}
></Route>
<Route path="/:owner/:projectsId/service/measurement"
render={
(p) => (<Measurement {...props} {...p}/>)
}
></Route>
<Route path="/:owner/:projectsId/service/codeanalysis"
render={
() => (<Data {...props}/>)
}
></Route>
{/* 个人建站服务 */}
{projectDetail && projectDetail.web_site && projectDetail.author.type === "User" && <Route path="/:owner/:projectsId/service/pages"
render={
() => (<Pages {...props}/>)
}
></Route>}
<Route path="/:owner/:projectsId/service"
render={
() => (<List {...props}/>)
}
></Route>
</Switch>
</div>
)
}
export default ServerIndex;