github.com/muhammedhassanm/blockchain@v0.0.0-20200120143007-697261defd4d/blockapps-ba-master/ui/src/scenes/Projects/index.js (about) 1 import React, { Component } from 'react'; 2 import { browserHistory } from 'react-router'; 3 import { connect } from 'react-redux'; 4 import Button from 'react-md/lib/Buttons/Button'; 5 import Toolbar from 'react-md/lib/Toolbars'; 6 import ProjectList from './components/ProjectList'; 7 import mixpanel from 'mixpanel-browser'; 8 import {ROLES} from '../../constants.js'; 9 10 class Projects extends Component { 11 12 handleNewProjectClick = function(e) { 13 e.stopPropagation(); 14 mixpanel.track('create_project_modal_click'); 15 browserHistory.push(`/projects/create`); 16 }; 17 18 // TODO: move to common place 19 get isBuyer() { 20 return parseInt(this.props.login['role'], 10) === ROLES.BUYER 21 } 22 23 render() { 24 const actions = this.isBuyer 25 ? 26 <Button 27 flat 28 key="add_circle_outline" 29 label="Create New Project" 30 onClick={(e) => this.handleNewProjectClick(e)}> 31 add_circle_outline 32 </Button> 33 : 34 null; 35 36 const projectView = this.isBuyer 37 ? 38 <div className="md-grid"> 39 <div className="md-cell md-cell--12"> 40 <ProjectList listType="buyer" listTitle="My Projects" /> 41 </div> 42 </div> 43 : 44 <div className="md-grid"> 45 <div className="md-cell md-cell--12"> 46 <ProjectList listType="supplier" listTitle="My Bids" /> 47 </div> 48 <div className="md-cell md-cell--12"> 49 <ProjectList listType="open" listTitle="Open Projects" /> 50 </div> 51 </div>; 52 53 return ( 54 <section> 55 <Toolbar 56 themed 57 title="Projects" 58 actions={actions} 59 /> 60 {projectView} 61 </section> 62 ) 63 } 64 } 65 66 function mapStateToProps(state) { 67 return { 68 login: state.login, 69 }; 70 } 71 72 export default connect(mapStateToProps)(Projects);