@sassoftware/cra-template-viya-app-quickstart
Version:
Template for typical SAS Viya Applications
47 lines (39 loc) • 1.33 kB
JavaScript
/*
* Copyright © 2019, SAS Institute Inc., Cary, NC, USA. All Rights Reserved.
* SPDX-License-Identifier: Apache-2.0
*/
import React from 'react';
import { BrowserRouter as Router, Route, Switch, Redirect } from 'react-router-dom';
import viewers from './components/viewers';
import appMenus from './appMenus';
import Header from './components/helpers/Header';
function AppRouter(props) {
// const [setRef, dimensions] = useParentSize();
let title;
let homeState = {};
console.log(viewers);
let switches = appMenus.map((m, key) => {
let Comp = viewers[m.component];
let path = `/${m.component}`;
if (m.component === 'Home') {
title = m.props.title;
m.props.appMenus = appMenus;
homeState = m.props;
return (
<Route path={path} key={key} render={(match) => <Comp appProps={m.props} {...props} match={match} />} />
);
} else {
return <Route path={path} key={key} render={(match) => <Comp {...props} match={match} />} />;
}
});
switches.push(<Redirect key="redirect" to={{ pathname: '/Home', state: homeState }} />);
return (
<Router>
<div id="App" className="sm-navy w-100 h-100">
<Header title={title} menu={appMenus} {...props}></Header>
<Switch>{switches}</Switch>
</div>
</Router>
);
}
export default AppRouter;