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);