From 8aa174e70c01631ae4e00a6d208966fcd77cf972 Mon Sep 17 00:00:00 2001 From: Georgios Andreadis Date: Fri, 10 Jul 2020 10:21:46 +0200 Subject: Add implementation of portfolio and scenario UI structure --- .../app/sidebars/project/PortfolioListComponent.js | 59 ++++++++++++++++++++++ 1 file changed, 59 insertions(+) create mode 100644 frontend/src/components/app/sidebars/project/PortfolioListComponent.js (limited to 'frontend/src/components/app/sidebars/project/PortfolioListComponent.js') diff --git a/frontend/src/components/app/sidebars/project/PortfolioListComponent.js b/frontend/src/components/app/sidebars/project/PortfolioListComponent.js new file mode 100644 index 00000000..a31f11cf --- /dev/null +++ b/frontend/src/components/app/sidebars/project/PortfolioListComponent.js @@ -0,0 +1,59 @@ +import PropTypes from 'prop-types' +import React from 'react' +import Shapes from '../../../../shapes' +import { Link } from 'react-router-dom' +import FontAwesome from 'react-fontawesome' +import ScenarioListContainer from '../../../../containers/app/sidebars/project/ScenarioListContainer' + +class PortfolioListComponent extends React.Component { + static propTypes = { + portfolios: PropTypes.arrayOf(Shapes.Portfolio), + currentProjectId: PropTypes.string.isRequired, + currentPortfolioId: PropTypes.string, + onNewPortfolio: PropTypes.func.isRequired, + onChoosePortfolio: PropTypes.func.isRequired, + onDeletePortfolio: PropTypes.func.isRequired, + } + + onDelete(id) { + this.props.onDeletePortfolio(id) + } + + render() { + return ( +
+

+ Portfolios + +

+ + {this.props.portfolios.map((portfolio, idx) => ( +
+
+
+ {portfolio.name} +
+
+ this.props.onChoosePortfolio(portfolio._id)} + /> + this.onDelete(portfolio._id)} + /> +
+
+ +
+ ))} +
+ ) + } +} + +export default PortfolioListComponent -- cgit v1.2.3