about container
parent
39b002327f
commit
99644e5503
|
@ -1,13 +1,13 @@
|
||||||
import React, { Suspense } from "react";
|
import React, { Suspense } from "react";
|
||||||
import { Route, Switch } from "react-router-dom";
|
import { Route, Switch } from "react-router-dom";
|
||||||
import HomePage from "./home/HomePage";
|
import HomePage from "./home/HomePage";
|
||||||
import AboutPage from "./about/AboutPage";
|
|
||||||
import Header from "./layout/Header";
|
import Header from "./layout/Header";
|
||||||
import PageNotFound from "./PageNotFound";
|
import PageNotFound from "./PageNotFound";
|
||||||
import { ToastContainer } from "react-toastify";
|
import { ToastContainer } from "react-toastify";
|
||||||
import "react-toastify/dist/ReactToastify.css";
|
import "react-toastify/dist/ReactToastify.css";
|
||||||
import SessionContainer from "../features/session/components/SessionContainer";
|
import SessionContainer from "../features/session/components/SessionContainer";
|
||||||
import ReleaseNotesContainer from "../features/releaseNotes/components/ReleaseNotesContainer";
|
import ReleaseNotesContainer from "../features/releaseNotes/components/ReleaseNotesContainer";
|
||||||
|
import AboutContainer from "../features/about/components/AboutContainer";
|
||||||
|
|
||||||
function App() {
|
function App() {
|
||||||
const contentStyle = {
|
const contentStyle = {
|
||||||
|
@ -22,7 +22,7 @@ function App() {
|
||||||
<div style={contentStyle}>
|
<div style={contentStyle}>
|
||||||
<Switch>
|
<Switch>
|
||||||
<Route exact path="/" component={HomePage} />
|
<Route exact path="/" component={HomePage} />
|
||||||
<Route path="/about" component={AboutPage} />
|
<Route path="/about" component={AboutContainer} />
|
||||||
<Route path="/sessions" component={SessionContainer} />
|
<Route path="/sessions" component={SessionContainer} />
|
||||||
<Route path="/release-notes" component={ReleaseNotesContainer} />
|
<Route path="/release-notes" component={ReleaseNotesContainer} />
|
||||||
<Route component={PageNotFound} />
|
<Route component={PageNotFound} />
|
||||||
|
|
|
@ -1,13 +0,0 @@
|
||||||
import React from "react";
|
|
||||||
|
|
||||||
const AboutPage = () => (
|
|
||||||
<div>
|
|
||||||
<h2>About</h2>
|
|
||||||
<p>
|
|
||||||
This app uses React, Redux, React Router, and many other helpful
|
|
||||||
libraries.
|
|
||||||
</p>
|
|
||||||
</div>
|
|
||||||
);
|
|
||||||
|
|
||||||
export default AboutPage;
|
|
|
@ -1,5 +1,4 @@
|
||||||
import React from "react";
|
import React from "react";
|
||||||
import PropTypes from "prop-types";
|
|
||||||
import SystemContainer from "../../features/system/components/SystemContainer";
|
import SystemContainer from "../../features/system/components/SystemContainer";
|
||||||
|
|
||||||
const HomePage = () => {
|
const HomePage = () => {
|
||||||
|
@ -10,8 +9,6 @@ const HomePage = () => {
|
||||||
);
|
);
|
||||||
};
|
};
|
||||||
|
|
||||||
HomePage.propTypes = {
|
HomePage.propTypes = {};
|
||||||
actions: PropTypes.object.isRequired
|
|
||||||
};
|
|
||||||
|
|
||||||
export default HomePage;
|
export default HomePage;
|
||||||
|
|
|
@ -0,0 +1,116 @@
|
||||||
|
import React from "react";
|
||||||
|
import { makeStyles } from "@material-ui/core/styles";
|
||||||
|
import clsx from "clsx";
|
||||||
|
import Card from "@material-ui/core/Card";
|
||||||
|
import CardHeader from "@material-ui/core/CardHeader";
|
||||||
|
import CardContent from "@material-ui/core/CardContent";
|
||||||
|
import CardActions from "@material-ui/core/CardActions";
|
||||||
|
import Collapse from "@material-ui/core/Collapse";
|
||||||
|
import Avatar from "@material-ui/core/Avatar";
|
||||||
|
import IconButton from "@material-ui/core/IconButton";
|
||||||
|
import Typography from "@material-ui/core/Typography";
|
||||||
|
import FavoriteIcon from "@material-ui/icons/Favorite";
|
||||||
|
import ShareIcon from "@material-ui/icons/Share";
|
||||||
|
import ExpandMoreIcon from "@material-ui/icons/ExpandMore";
|
||||||
|
import MoreVertIcon from "@material-ui/icons/MoreVert";
|
||||||
|
|
||||||
|
const useStyles = makeStyles((theme) => ({
|
||||||
|
expand: {
|
||||||
|
transform: "rotate(0deg)",
|
||||||
|
marginLeft: "auto",
|
||||||
|
transition: theme.transitions.create("transform", {
|
||||||
|
duration: theme.transitions.duration.shortest
|
||||||
|
})
|
||||||
|
},
|
||||||
|
expandOpen: {
|
||||||
|
transform: "rotate(180deg)"
|
||||||
|
},
|
||||||
|
avatar: {
|
||||||
|
backgroundColor: "#F15B2A"
|
||||||
|
}
|
||||||
|
}));
|
||||||
|
|
||||||
|
const AboutComponent = () => {
|
||||||
|
const classes = useStyles();
|
||||||
|
const [expanded, setExpanded] = React.useState(false);
|
||||||
|
|
||||||
|
const handleExpandClick = () => {
|
||||||
|
setExpanded(!expanded);
|
||||||
|
};
|
||||||
|
|
||||||
|
return (
|
||||||
|
<Card>
|
||||||
|
<CardHeader
|
||||||
|
avatar={
|
||||||
|
<Avatar aria-label="recipe" className={classes.avatar}>
|
||||||
|
R
|
||||||
|
</Avatar>
|
||||||
|
}
|
||||||
|
action={
|
||||||
|
<IconButton aria-label="settings">
|
||||||
|
<MoreVertIcon />
|
||||||
|
</IconButton>
|
||||||
|
}
|
||||||
|
title="Shrimp and Chorizo Paella"
|
||||||
|
subheader="September 14, 2016"
|
||||||
|
/>
|
||||||
|
<CardContent>
|
||||||
|
<Typography variant="body2" color="textSecondary" component="p">
|
||||||
|
Aici se va descrie la ce e bun reverse proxy-ul asta si ce face el in
|
||||||
|
2 3 linii. Poate contine si o poza.
|
||||||
|
</Typography>
|
||||||
|
</CardContent>
|
||||||
|
<CardActions disableSpacing>
|
||||||
|
<IconButton aria-label="add to favorites">
|
||||||
|
<FavoriteIcon />
|
||||||
|
</IconButton>
|
||||||
|
<IconButton aria-label="share">
|
||||||
|
<ShareIcon />
|
||||||
|
</IconButton>
|
||||||
|
<IconButton
|
||||||
|
className={clsx(classes.expand, {
|
||||||
|
[classes.expandOpen]: expanded
|
||||||
|
})}
|
||||||
|
onClick={handleExpandClick}
|
||||||
|
aria-expanded={expanded}
|
||||||
|
aria-label="show more"
|
||||||
|
>
|
||||||
|
<ExpandMoreIcon />
|
||||||
|
</IconButton>
|
||||||
|
</CardActions>
|
||||||
|
<Collapse in={expanded} timeout="auto" unmountOnExit>
|
||||||
|
<CardContent>
|
||||||
|
<Typography paragraph>Method:</Typography>
|
||||||
|
<Typography paragraph>
|
||||||
|
Aici se va descrie tehnic si detaliat ce e un reverse proxy. Poate
|
||||||
|
contine si o poza.
|
||||||
|
</Typography>
|
||||||
|
<Typography paragraph>
|
||||||
|
Heat oil in a (14- to 16-inch) paella pan or a large, deep skillet
|
||||||
|
over medium-high heat. Add chicken, shrimp and chorizo, and cook,
|
||||||
|
stirring occasionally until lightly browned, 6 to 8 minutes.
|
||||||
|
Transfer shrimp to a large plate and set aside, leaving chicken and
|
||||||
|
chorizo in the pan. Add pimentón, bay leaves, garlic, tomatoes,
|
||||||
|
onion, salt and pepper, and cook, stirring often until thickened and
|
||||||
|
fragrant, about 10 minutes. Add saffron broth and remaining 4 1/2
|
||||||
|
cups chicken broth; bring to a boil.
|
||||||
|
</Typography>
|
||||||
|
<Typography paragraph>
|
||||||
|
Add rice and stir very gently to distribute. Top with artichokes and
|
||||||
|
peppers, and cook without stirring, until most of the liquid is
|
||||||
|
absorbed, 15 to 18 minutes. Reduce heat to medium-low, add reserved
|
||||||
|
shrimp and mussels, tucking them down into the rice, and cook again
|
||||||
|
without stirring, until mussels have opened and rice is just tender,
|
||||||
|
5 to 7 minutes more. (Discard any mussels that don’t open.)
|
||||||
|
</Typography>
|
||||||
|
<Typography>
|
||||||
|
Set aside off of the heat to let rest for 10 minutes, and then
|
||||||
|
serve.
|
||||||
|
</Typography>
|
||||||
|
</CardContent>
|
||||||
|
</Collapse>
|
||||||
|
</Card>
|
||||||
|
);
|
||||||
|
};
|
||||||
|
|
||||||
|
export default AboutComponent;
|
|
@ -0,0 +1,34 @@
|
||||||
|
import React from "react";
|
||||||
|
import { connect } from "react-redux";
|
||||||
|
import { bindActionCreators } from "redux";
|
||||||
|
import PropTypes from "prop-types";
|
||||||
|
import AboutComponent from "./AboutComponent";
|
||||||
|
import TechnologiesComponent from "./TechnologiesComponent";
|
||||||
|
|
||||||
|
const AboutContainer = () => {
|
||||||
|
return (
|
||||||
|
<>
|
||||||
|
<br />
|
||||||
|
<AboutComponent />
|
||||||
|
<br />
|
||||||
|
<br />
|
||||||
|
<TechnologiesComponent />
|
||||||
|
</>
|
||||||
|
);
|
||||||
|
};
|
||||||
|
|
||||||
|
AboutContainer.propTypes = {
|
||||||
|
actions: PropTypes.object.isRequired
|
||||||
|
};
|
||||||
|
|
||||||
|
function mapStateToProps() {
|
||||||
|
return {};
|
||||||
|
}
|
||||||
|
|
||||||
|
function mapDispatchToProps(dispatch) {
|
||||||
|
return {
|
||||||
|
actions: bindActionCreators({}, dispatch)
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
|
export default connect(mapStateToProps, mapDispatchToProps)(AboutContainer);
|
|
@ -0,0 +1,118 @@
|
||||||
|
import React from "react";
|
||||||
|
import { makeStyles } from "@material-ui/core/styles";
|
||||||
|
import clsx from "clsx";
|
||||||
|
import Card from "@material-ui/core/Card";
|
||||||
|
import CardHeader from "@material-ui/core/CardHeader";
|
||||||
|
import CardContent from "@material-ui/core/CardContent";
|
||||||
|
import CardActions from "@material-ui/core/CardActions";
|
||||||
|
import Collapse from "@material-ui/core/Collapse";
|
||||||
|
import Avatar from "@material-ui/core/Avatar";
|
||||||
|
import IconButton from "@material-ui/core/IconButton";
|
||||||
|
import Typography from "@material-ui/core/Typography";
|
||||||
|
import FavoriteIcon from "@material-ui/icons/Favorite";
|
||||||
|
import ShareIcon from "@material-ui/icons/Share";
|
||||||
|
import ExpandMoreIcon from "@material-ui/icons/ExpandMore";
|
||||||
|
import MoreVertIcon from "@material-ui/icons/MoreVert";
|
||||||
|
|
||||||
|
const useStyles = makeStyles((theme) => ({
|
||||||
|
expand: {
|
||||||
|
transform: "rotate(0deg)",
|
||||||
|
marginLeft: "auto",
|
||||||
|
transition: theme.transitions.create("transform", {
|
||||||
|
duration: theme.transitions.duration.shortest
|
||||||
|
})
|
||||||
|
},
|
||||||
|
expandOpen: {
|
||||||
|
transform: "rotate(180deg)"
|
||||||
|
},
|
||||||
|
avatar: {
|
||||||
|
backgroundColor: "#F15B2A"
|
||||||
|
}
|
||||||
|
}));
|
||||||
|
|
||||||
|
const TechnologiesComponent = () => {
|
||||||
|
const classes = useStyles();
|
||||||
|
const [expanded, setExpanded] = React.useState(false);
|
||||||
|
|
||||||
|
const handleExpandClick = () => {
|
||||||
|
setExpanded(!expanded);
|
||||||
|
};
|
||||||
|
|
||||||
|
return (
|
||||||
|
<Card>
|
||||||
|
<CardHeader
|
||||||
|
avatar={
|
||||||
|
<Avatar aria-label="recipe" className={classes.avatar}>
|
||||||
|
T
|
||||||
|
</Avatar>
|
||||||
|
}
|
||||||
|
action={
|
||||||
|
<IconButton aria-label="settings">
|
||||||
|
<MoreVertIcon />
|
||||||
|
</IconButton>
|
||||||
|
}
|
||||||
|
title="Technologies"
|
||||||
|
subheader="September 14, 2016"
|
||||||
|
/>
|
||||||
|
<CardContent>
|
||||||
|
<Typography variant="body2" color="textSecondary" component="p">
|
||||||
|
Aici se vor enumera tehnologiile folosite intr-o propozitie, gen:
|
||||||
|
Pentru construirea acestui sistem a fost utilizata o gama larga de
|
||||||
|
tehnologii, bla bla bla si enumerate: .NET Core, ProxyKit, SQL Server.
|
||||||
|
</Typography>
|
||||||
|
</CardContent>
|
||||||
|
<CardActions disableSpacing>
|
||||||
|
<IconButton aria-label="add to favorites">
|
||||||
|
<FavoriteIcon />
|
||||||
|
</IconButton>
|
||||||
|
<IconButton aria-label="share">
|
||||||
|
<ShareIcon />
|
||||||
|
</IconButton>
|
||||||
|
<IconButton
|
||||||
|
className={clsx(classes.expand, {
|
||||||
|
[classes.expandOpen]: expanded
|
||||||
|
})}
|
||||||
|
onClick={handleExpandClick}
|
||||||
|
aria-expanded={expanded}
|
||||||
|
aria-label="show more"
|
||||||
|
>
|
||||||
|
<ExpandMoreIcon />
|
||||||
|
</IconButton>
|
||||||
|
</CardActions>
|
||||||
|
<Collapse in={expanded} timeout="auto" unmountOnExit>
|
||||||
|
<CardContent>
|
||||||
|
<Typography paragraph>Method:</Typography>
|
||||||
|
<Typography paragraph>
|
||||||
|
In zona asta va fi un tabel ca si celelalte cu tehnologiile folosite
|
||||||
|
si doua trei cuvinte despre ce face fiecare. SQL Server - baza de
|
||||||
|
date, Windows service - hostat serverul, docker hostat api-ul
|
||||||
|
</Typography>
|
||||||
|
<Typography paragraph>
|
||||||
|
Heat oil in a (14- to 16-inch) paella pan or a large, deep skillet
|
||||||
|
over medium-high heat. Add chicken, shrimp and chorizo, and cook,
|
||||||
|
stirring occasionally until lightly browned, 6 to 8 minutes.
|
||||||
|
Transfer shrimp to a large plate and set aside, leaving chicken and
|
||||||
|
chorizo in the pan. Add pimentón, bay leaves, garlic, tomatoes,
|
||||||
|
onion, salt and pepper, and cook, stirring often until thickened and
|
||||||
|
fragrant, about 10 minutes. Add saffron broth and remaining 4 1/2
|
||||||
|
cups chicken broth; bring to a boil.
|
||||||
|
</Typography>
|
||||||
|
<Typography paragraph>
|
||||||
|
Add rice and stir very gently to distribute. Top with artichokes and
|
||||||
|
peppers, and cook without stirring, until most of the liquid is
|
||||||
|
absorbed, 15 to 18 minutes. Reduce heat to medium-low, add reserved
|
||||||
|
shrimp and mussels, tucking them down into the rice, and cook again
|
||||||
|
without stirring, until mussels have opened and rice is just tender,
|
||||||
|
5 to 7 minutes more. (Discard any mussels that don’t open.)
|
||||||
|
</Typography>
|
||||||
|
<Typography>
|
||||||
|
Set aside off of the heat to let rest for 10 minutes, and then
|
||||||
|
serve.
|
||||||
|
</Typography>
|
||||||
|
</CardContent>
|
||||||
|
</Collapse>
|
||||||
|
</Card>
|
||||||
|
);
|
||||||
|
};
|
||||||
|
|
||||||
|
export default TechnologiesComponent;
|
|
@ -1 +1,117 @@
|
||||||
//TO DO
|
import React from "react";
|
||||||
|
import { makeStyles } from "@material-ui/core/styles";
|
||||||
|
import clsx from "clsx";
|
||||||
|
import Card from "@material-ui/core/Card";
|
||||||
|
import CardHeader from "@material-ui/core/CardHeader";
|
||||||
|
import CardContent from "@material-ui/core/CardContent";
|
||||||
|
import CardActions from "@material-ui/core/CardActions";
|
||||||
|
import Collapse from "@material-ui/core/Collapse";
|
||||||
|
import Avatar from "@material-ui/core/Avatar";
|
||||||
|
import IconButton from "@material-ui/core/IconButton";
|
||||||
|
import Typography from "@material-ui/core/Typography";
|
||||||
|
import FavoriteIcon from "@material-ui/icons/Favorite";
|
||||||
|
import ShareIcon from "@material-ui/icons/Share";
|
||||||
|
import ExpandMoreIcon from "@material-ui/icons/ExpandMore";
|
||||||
|
import MoreVertIcon from "@material-ui/icons/MoreVert";
|
||||||
|
|
||||||
|
const useStyles = makeStyles((theme) => ({
|
||||||
|
expand: {
|
||||||
|
transform: "rotate(0deg)",
|
||||||
|
marginLeft: "auto",
|
||||||
|
transition: theme.transitions.create("transform", {
|
||||||
|
duration: theme.transitions.duration.shortest
|
||||||
|
})
|
||||||
|
},
|
||||||
|
expandOpen: {
|
||||||
|
transform: "rotate(180deg)"
|
||||||
|
},
|
||||||
|
avatar: {
|
||||||
|
backgroundColor: "#F15B2A"
|
||||||
|
}
|
||||||
|
}));
|
||||||
|
|
||||||
|
const SystemComponent = () => {
|
||||||
|
const classes = useStyles();
|
||||||
|
const [expanded, setExpanded] = React.useState(false);
|
||||||
|
|
||||||
|
const handleExpandClick = () => {
|
||||||
|
setExpanded(!expanded);
|
||||||
|
};
|
||||||
|
|
||||||
|
return (
|
||||||
|
<Card>
|
||||||
|
<CardHeader
|
||||||
|
avatar={
|
||||||
|
<Avatar aria-label="recipe" className={classes.avatar}>
|
||||||
|
R
|
||||||
|
</Avatar>
|
||||||
|
}
|
||||||
|
action={
|
||||||
|
<IconButton aria-label="settings">
|
||||||
|
<MoreVertIcon />
|
||||||
|
</IconButton>
|
||||||
|
}
|
||||||
|
title="Shrimp and Chorizo Paella"
|
||||||
|
subheader="September 14, 2016"
|
||||||
|
/>
|
||||||
|
<CardContent>
|
||||||
|
<Typography variant="body2" color="textSecondary" component="p">
|
||||||
|
This impressive paella is a perfect party dish and a fun meal to cook
|
||||||
|
together with your guests. Add 1 cup of frozen peas along with the
|
||||||
|
mussels, if you like.
|
||||||
|
</Typography>
|
||||||
|
</CardContent>
|
||||||
|
<CardActions disableSpacing>
|
||||||
|
<IconButton aria-label="add to favorites">
|
||||||
|
<FavoriteIcon />
|
||||||
|
</IconButton>
|
||||||
|
<IconButton aria-label="share">
|
||||||
|
<ShareIcon />
|
||||||
|
</IconButton>
|
||||||
|
<IconButton
|
||||||
|
className={clsx(classes.expand, {
|
||||||
|
[classes.expandOpen]: expanded
|
||||||
|
})}
|
||||||
|
onClick={handleExpandClick}
|
||||||
|
aria-expanded={expanded}
|
||||||
|
aria-label="show more"
|
||||||
|
>
|
||||||
|
<ExpandMoreIcon />
|
||||||
|
</IconButton>
|
||||||
|
</CardActions>
|
||||||
|
<Collapse in={expanded} timeout="auto" unmountOnExit>
|
||||||
|
<CardContent>
|
||||||
|
<Typography paragraph>Method:</Typography>
|
||||||
|
<Typography paragraph>
|
||||||
|
Heat 1/2 cup of the broth in a pot until simmering, add saffron and
|
||||||
|
set aside for 10 minutes.
|
||||||
|
</Typography>
|
||||||
|
<Typography paragraph>
|
||||||
|
Heat oil in a (14- to 16-inch) paella pan or a large, deep skillet
|
||||||
|
over medium-high heat. Add chicken, shrimp and chorizo, and cook,
|
||||||
|
stirring occasionally until lightly browned, 6 to 8 minutes.
|
||||||
|
Transfer shrimp to a large plate and set aside, leaving chicken and
|
||||||
|
chorizo in the pan. Add pimentón, bay leaves, garlic, tomatoes,
|
||||||
|
onion, salt and pepper, and cook, stirring often until thickened and
|
||||||
|
fragrant, about 10 minutes. Add saffron broth and remaining 4 1/2
|
||||||
|
cups chicken broth; bring to a boil.
|
||||||
|
</Typography>
|
||||||
|
<Typography paragraph>
|
||||||
|
Add rice and stir very gently to distribute. Top with artichokes and
|
||||||
|
peppers, and cook without stirring, until most of the liquid is
|
||||||
|
absorbed, 15 to 18 minutes. Reduce heat to medium-low, add reserved
|
||||||
|
shrimp and mussels, tucking them down into the rice, and cook again
|
||||||
|
without stirring, until mussels have opened and rice is just tender,
|
||||||
|
5 to 7 minutes more. (Discard any mussels that don’t open.)
|
||||||
|
</Typography>
|
||||||
|
<Typography>
|
||||||
|
Set aside off of the heat to let rest for 10 minutes, and then
|
||||||
|
serve.
|
||||||
|
</Typography>
|
||||||
|
</CardContent>
|
||||||
|
</Collapse>
|
||||||
|
</Card>
|
||||||
|
);
|
||||||
|
};
|
||||||
|
|
||||||
|
export default SystemComponent;
|
||||||
|
|
|
@ -3,6 +3,7 @@ import { connect } from "react-redux";
|
||||||
import { bindActionCreators } from "redux";
|
import { bindActionCreators } from "redux";
|
||||||
import PropTypes from "prop-types";
|
import PropTypes from "prop-types";
|
||||||
import { loadSystemDateTime, loadSystemVersion } from "../actionCreators";
|
import { loadSystemDateTime, loadSystemVersion } from "../actionCreators";
|
||||||
|
import SystemComponent from "./SystemComponent";
|
||||||
|
|
||||||
const SystemContainer = ({ actions }) => {
|
const SystemContainer = ({ actions }) => {
|
||||||
useEffect(() => {
|
useEffect(() => {
|
||||||
|
@ -10,12 +11,12 @@ const SystemContainer = ({ actions }) => {
|
||||||
actions.loadSystemVersion();
|
actions.loadSystemVersion();
|
||||||
}, []);
|
}, []);
|
||||||
|
|
||||||
return <div>TEST</div>;
|
return <SystemComponent />;
|
||||||
};
|
};
|
||||||
|
|
||||||
SystemContainer.propTypes = {
|
SystemContainer.propTypes = {
|
||||||
actions: PropTypes.object.isRequired,
|
actions: PropTypes.object.isRequired,
|
||||||
releaseNotes: PropTypes.array.isRequired
|
system: PropTypes.object.isRequired
|
||||||
};
|
};
|
||||||
|
|
||||||
function mapStateToProps(state) {
|
function mapStateToProps(state) {
|
||||||
|
|
Loading…
Reference in New Issue