Advertisement
Guest User

Untitled

a guest
Feb 20th, 2020
86
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. import React from 'react';
  2. import PropTypes from 'prop-types';
  3. import { Select } from 'nhh-styles';
  4. import SelectWrapper from './components';
  5. import connect from './connect';
  6. // import { MY_CASES_SEL, CASE_PATCH_SEL } from '../../constants/dropdownValues';
  7.  
  8. export class CaseFilterComponent extends React.Component {
  9.   componentWillMount() {
  10.     this.props.loadTypes();
  11.   }
  12.  
  13.   setShowCaseTypeFilter = e => {
  14.     if(e.id === 'CASES_STUF'){
  15.         this.props.loadFilteredCasesSummary({ showType: e.id });
  16.     } else {
  17.         this.props.getTasksSummary({ selectCasesFilter: e.id });
  18.     }
  19.  
  20.     this.props.setSelectCasesFilter(e.id);
  21.     this.props.updatePageHeader(e.name);
  22.   };
  23.   setTypeFilter = e => {
  24.     //This one is based on the showcaseType
  25.     //Which is stored here: selectedShowTypeFilter && selectedShowTypeFilter.name
  26.     if(selectedShowTypeFilter && selectedShowTypeFilter.name === 'CASES_STUFF'){
  27.         this.props.getTasksSummary({ caseSubTypeFilter: e.id });
  28.     } else {
  29.         this.props.loadFilteredCasesSummary({ typeFilter: e.id });
  30.     }
  31.    
  32.     this.props.setCaseSubTypeFilter(e.id);
  33.    
  34.    
  35.   };
  36.   render() {
  37.     const selectedCaseTypeFilter = this.props.types.find(
  38.       filter => filter.id === this.props.caseSubTypeFilter
  39.     );
  40.     const selectedShowTypeFilter = this.props.showTypes.find(
  41.       filter => filter.id === this.props.selectCasesFilter
  42.     );
  43.  
  44.     return (
  45.       <React.Fragment>
  46.         <div className="row">
  47.           <SelectWrapper data-bdd="CasesFilters-ShowFilters">
  48.             <Select
  49.               inline
  50.               isFullWidth
  51.               labelText={this.props.showTypeLabel}
  52.               items={this.props.showTypes}
  53.               itemToString={item => (item ? item.name : '')}
  54.               onChange={e => this.setShowCaseTypeFilter(e)}
  55.               inputValue={selectedShowTypeFilter && selectedShowTypeFilter.name}
  56.             />
  57.           </SelectWrapper>
  58.         </div>
  59.  
  60.         <div className="row">
  61.           <SelectWrapper data-bdd="CasesFilters-CasesFilters">
  62.             <Select
  63.               inline
  64.               isFullWidth
  65.               labelText={this.props.caseTypesLabel}
  66.               items={this.props.types}
  67.               itemToString={item => (item ? item.name : '')}
  68.               onChange={e => this.setTypeFilter(e)}
  69.               inputValue={selectedCaseTypeFilter && selectedCaseTypeFilter.name}
  70.             />
  71.           </SelectWrapper>
  72.         </div>
  73.       </React.Fragment>
  74.     );
  75.   }
  76. }
  77.  
  78. CaseFilterComponent.propTypes = {
  79.   caseSubTypeFilter: PropTypes.string.isRequired,
  80.   caseTypesLabel: PropTypes.string.isRequired,
  81.   getTasksSummary: PropTypes.func.isRequired,
  82.   loadFilteredCasesSummary: PropTypes.func.isRequired,
  83.   loadTypes: PropTypes.func.isRequired,
  84.   selectCasesFilter: PropTypes.string.isRequired,
  85.   setCaseSubTypeFilter: PropTypes.func.isRequired,
  86.   setSelectCasesFilter: PropTypes.func.isRequired,
  87.   showTypeLabel: PropTypes.string.isRequired,
  88.   showTypes: PropTypes.arrayOf(
  89.     PropTypes.shape({
  90.       id: PropTypes.string.isRequired,
  91.       name: PropTypes.string.isRequired,
  92.     })
  93.   ).isRequired,
  94.   types: PropTypes.arrayOf(
  95.     PropTypes.shape({
  96.       id: PropTypes.string.isRequired,
  97.       name: PropTypes.string.isRequired,
  98.     })
  99.   ).isRequired,
  100.   updatePageHeader: PropTypes.func.isRequired,
  101. };
  102.  
  103. export default connect(CaseFilterComponent);
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement