Advertisement
Guest User

Untitled

a guest
Jan 4th, 2018
69
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1.  
  2. export interface IPage1Props {
  3.     appContext: AppContext,
  4.     appMode: PropTypes.numeric.isRequired,
  5.     actions: PropTypes.object.isRequired,
  6.     requestsList: PropTypes.object.isrequired,
  7. }
  8.  
  9.  
  10. class Page1 extends React.Component<IPage1Props, any> {
  11.     _columns: Object[]
  12.  
  13.     constructor(props: IPage1Props, any) {
  14.         super(props)
  15.  
  16.         this._columns = [{
  17.             Header: 'ID',
  18.             accessor: "id"
  19.         }, {
  20.             Header: 'Requestor',
  21.             accessor: "requestor"
  22.         }, {
  23.             Header: 'Request Date',
  24.             accessor: "requestDate"
  25.         }, {
  26.             Header: 'Last Updated',
  27.             accessor: "lastUpdated"
  28.         }, {
  29.             Header: 'Locked',
  30.             accessor:"lockedBy"
  31.         }]
  32.     }
  33.  
  34.     requestRaw(request, index) {
  35.         let newDate = new Date(request.lastUpdated);
  36.         let rDate = newDate.toISOString()
  37.         return <div key={index}>{request.id} | {request.requestor} | {rDate} | {request.lockedBy}</div>;
  38.     }
  39.  
  40.     render() {
  41.         var listTitle = this.props.appMode ? 'All requests' : 'My Requests'
  42.  
  43.         var currentUsername = this.props.appContext.username
  44.         let listText = "Loading..."
  45.         let objList = this.props.requestsList
  46.         let gridPageSize = Math.min(50, 5 + 5*Math.floor(objList.requests.length/5))
  47.  
  48.         let rList = this.props.appMode ? objList.requests : objList.requests.filter(request => request.requestor === currentUsername )
  49.         listText =  rList.map(this.requestRaw)
  50.  
  51.         return (
  52.             <Fabric className="page1-container">
  53.                 <Fabric className="page1-contentArea">
  54.                     <h2>{listTitle}</h2>
  55.                     {listText}
  56.  
  57.                     <ReactTable
  58.                         showPagination={false}
  59.                         className="-striped -highlight"
  60.                         defaultPageSize={gridPageSize}
  61.                         data={rList}
  62.                         columns={this._columns}
  63.                     />
  64.  
  65.                 </Fabric>
  66.             </Fabric>
  67.         )
  68.     }
  69. }
  70. //
  71.  
  72. const mapStateToProps = (state, ownProps) => {
  73.     return {
  74.         appMode: state.appMode,
  75.         requestsList: state.requestsList,
  76.     }
  77. }
  78.  
  79. const mapDispatchToProps = (dispatch) => {
  80.     return {
  81.         actions: {
  82.             appModeActions: bindActionCreators(appModeActions, dispatch),
  83.             requestsActions: bindActionCreators(requestsActions, dispatch)
  84.         }
  85.     }
  86. }
  87.  
  88. export default connect(mapStateToProps, mapDispatchToProps)(Page1)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement