qtools_profiler-8.x-1.x-dev/react-app/src/ui/App.js

react-app/src/ui/App.js
import React, { Fragment } from 'react';
import Grid from '@material-ui/core/Grid';
import { withStyles } from '@material-ui/styles';
import { connect } from 'react-redux';

import ReportsSelectionHeader from './components/ReportsSelectionHeader'
import RequestsList from './components/RequestsList'
import SideMenu from './components/SideMenu'
import ReportDetails from './components/ReportDetails'

const styles = theme => ({
  root: {
    flexGrow: 1,
  },
  side: {
    width: 200,
    height: '100vh',
    borderRight: '1px grey solid',
    backgroundColor: '#eee'
  },
  hidden: {
    display: 'none',
  }
});

// const reports = [
//     {
//       id: 'xhprof',
//       label: 'Profile',
//       url: '/profile',
//       requestId: true
//     },
//     {
//       id: 'services',
//       label: 'Services',
//       url: '/services',
//       requestId: true
//     },
//     {
//       id: 'server',
//       label: 'Server state',
//       url: '/server',
//       requestId: false
//     }
// ];

const App = ({ reports, classes, showSummary, showRequests, requestsCount }) => {

  return (
    <div className={classes.root}>
      <ReportsSelectionHeader reports={reports} requestsCount={requestsCount} />

      <Grid container>
        <Grid item className={showSummary ? classes.side : classes.hidden}>
          <SideMenu reports={reports} requestsCount={requestsCount}/>
        </Grid>

        <Grid item {...(showSummary ? {xs: 12, sm: true} : {})} className={showSummary ? '' : (showRequests ? classes.side : classes.hidden)}>
          <RequestsList showSummary={showSummary}/>
        </Grid>

        <Grid item xs={12} sm className={showSummary ? classes.hidden : classes.side}>
          <ReportDetails />
        </Grid>

      </Grid>
    </div>
  )
}

export default connect(
  state => ({
    showSummary: (state.currentReport === '_'),
    showRequests: (state.reports[state.currentReport] && state.reports[state.currentReport].type === 'REQUEST'),
    requestsCount: state.requests.length,
    reports: state.reports
  }),
  dispatch => ({})
)(withStyles(styles)(App));

Главная | Обратная связь

drupal hosting | друпал хостинг | it patrol .inc