MetaPhase-Consulting/State-TalentMAP

View on GitHub
src/Components/AdministratorPage/AdministratorPage.jsx

Summary

Maintainability
A
0 mins
Test Coverage
F
27%
import PropTypes from 'prop-types';
import { Route, Switch } from 'react-router-dom';
import BidCycles from 'Containers/BidCycles';
import { EMPTY_FUNCTION } from 'Constants/PropTypes';
import CycleManagement from 'Components/CycleManagement';
import CyclePositionSearch from 'Components/CycleManagement/CyclePositionSearch';
import AssignmentCycleEdit from 'Components/CycleManagement/AssignmentCycleEdit';
import CycleClassifications from 'Components/CycleManagement/CycleClassifications';
import Dashboard from './Dashboard';
import BureauExceptions from './BureauExceptions/';
import Logs from './Logs';
import Stats from './Stats';
import UserRoles from './UserRoles';
import FeatureFlags from './FeatureFlags';
import PanelAdmin from './PanelAdmin';
import ManageBidSeasons from './ManageBidSeasons/ManageBidSeasons';
import BidAudit from './bidAudit/BidAudit';
import BidAuditCategory from './bidAudit/BidAuditCategory';
import BidAuditGrade from './bidAudit/BidAuditGrade';
import BidAuditData from './bidAudit/BidAuditData';
import CycleJobCategories from './CycleJobCategories/CycleJobCategories';
import ManageEntryLevel from './ManageEntryLevel/ManageEntryLevel';
import JobCategories from './JobCategories/JobCategories';
import OrgStats from './OrgStats/OrgStats';
import BiddingTool from '../BiddingFunctionsPage/BiddingTool/BiddingTool';

const AdministratorPage = (props) => {
  const {
    isLoading,
    logsList,
    logsListIsLoading,
    logsListHasErrored,
    log,
    logIsLoading,
    logHasErrored,
    getLog,
    onDownloadOne,
    totalUsers,
    featureFlags,
  } = props;

  const dashboardProps = {
    isLoading,
  };

  const logsProps = {
    logsList,
    logsListIsLoading,
    logsListHasErrored,
    log,
    logIsLoading,
    logHasErrored,
    getLog,
    onDownloadOne,
  };

  const userProps = {
    totalUsers,
  };

  const featureFlagsProps = {
    featureFlags,
  };

  return (
    <div className="usa-grid-full profile-content-container">
      <Switch>
        <Route path="/profile/administrator/dashboard" render={() => <Dashboard {...dashboardProps} />} />
        <Route path="/profile/administrator/bureauexceptions" render={() => <BureauExceptions />} />
        <Route path="/profile/administrator/logs" render={() => <Logs {...logsProps} />} />
        <Route path="/profile/administrator/stats" render={() => <Stats />} />
        <Route path="/profile/administrator/userroles" render={() => <UserRoles {...userProps} />} />
        <Route path="/profile/administrator/featureflags" render={() => <FeatureFlags {...featureFlagsProps} />} />
        <Route path="/profile/administrator/cycles" render={() => <BidCycles />} />
        <Route path="/profile/administrator/managebidseasons" render={() => <ManageBidSeasons />} />
        <Route path="/profile/administrator/bidaudit/category/:cycleId/:auditId" render={() => <BidAuditCategory />} />
        <Route path="/profile/administrator/bidaudit/grade/:cycleId/:auditId" render={() => <BidAuditGrade />} />
        <Route path="/profile/administrator/bidaudit/data/:cycleId/:auditId" render={() => <BidAuditData />} />
        <Route path="/profile/administrator/bidaudit/" render={() => <BidAudit />} />
        <Route path="/profile/administrator/panel/:pmSeqNum" render={() => <PanelAdmin />} />
        <Route path="/profile/administrator/panel/" render={() => <PanelAdmin />} />
        <Route path="/profile/administrator/cyclejobcategories/" render={() => <CycleJobCategories />} />
        <Route path="/profile/administrator/manageentrylevel/" render={() => <ManageEntryLevel />} />
        <Route path="/profile/administrator/jobcategories/" render={() => <JobCategories />} />
        <Route path="/profile/administrator/orgstats" render={() => <OrgStats />} />
        <Route path="/profile/administrator/biddingtool/:id" render={() => <BiddingTool />} />
        <Route path="/profile/administrator/biddingtool/" render={() => <BiddingTool />} />
        <Route path="/profile/administrator/cyclemanagement" render={() => <CycleManagement />} />
        <Route path="/profile/administrator/assignmentcycle/:id" render={() => <AssignmentCycleEdit />} />
        <Route path="/profile/administrator/cyclepositionsearch/:id" render={() => <CyclePositionSearch />} />
        <Route path="/profile/administrator/cycleclassifications/" render={() => <CycleClassifications />} />
      </Switch>
    </div>
  );
};

AdministratorPage.propTypes = {
  isLoading: PropTypes.bool,
  logsIsLoading: PropTypes.bool,
  onDownloadClick: PropTypes.func,
  logsList: PropTypes.arrayOf(PropTypes.string),
  logsListIsLoading: PropTypes.bool,
  logsListHasErrored: PropTypes.bool,
  log: PropTypes.arrayOf(PropTypes.string),
  logIsLoading: PropTypes.bool,
  logHasErrored: PropTypes.bool,
  getLog: PropTypes.func,
  onDownloadOne: PropTypes.func,
  syncJobs: PropTypes.arrayOf(PropTypes.shape({})),
  syncJobsIsLoading: PropTypes.bool,
  runAllJobs: PropTypes.func,
  patchSyncIsLoading: PropTypes.bool,
  patchSyncJob: PropTypes.func,
  totalUsers: PropTypes.number,
  featureFlags: PropTypes.shape({}),
};

AdministratorPage.defaultProps = {
  isLoading: false,
  logsIsLoading: false,
  onDownloadClick: EMPTY_FUNCTION,
  logsList: [],
  logsListIsLoading: false,
  logsListHasErrored: false,
  log: [],
  logIsLoading: false,
  logHasErrored: false,
  getLog: EMPTY_FUNCTION,
  onDownloadOne: EMPTY_FUNCTION,
  syncJobs: [],
  syncJobsIsLoading: false,
  runAllJobs: EMPTY_FUNCTION,
  patchSyncIsLoading: false,
  patchSyncJob: EMPTY_FUNCTION,
  totalUsers: 0,
  featureFlags: {},
};

export default AdministratorPage;