Advertisement
Guest User

Untitled

a guest
Apr 10th, 2020
223
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. import React, { Component } from 'react';
  2. import { bindActionCreators } from 'redux';
  3. import { connect } from 'react-redux';
  4. import PropTypes from 'prop-types';
  5. import { list2Options, getUrlParams } from 'libs/utils';
  6.  
  7. import moment from 'moment';
  8.  
  9. import { Select, RangeSelect, Checkbox, Scrollarea, Button } from 'react-trendagent-ui';
  10.  
  11. import { OBJECT_VIEW, PAYMENTS, DELTA_PRICE } from 'constants/directories';
  12.  
  13. import { getCheckerboardFiltersValues, getCheckerboardFilters, actionCreators as CheckerboardActions } from 'redux/modules/Checkerboard';
  14. import {  getBlock } from 'redux/modules/Block';
  15.  
  16. const SelectedFilter = (props) => {
  17.     let value = '';
  18.  
  19.     switch(props.filter) {
  20.         case 'price':
  21.             if(props.value.from) value += `от ${String(props.value.from).replace(/(\d)(?=(\d{3})+(?!\d))/g, '$1 ')} `;
  22.             if(props.value.to) value += `до ${String(props.value.to).replace(/(\d)(?=(\d{3})+(?!\d))/g, '$1 ')} `;
  23.  
  24.             value += 'руб.';
  25.  
  26.             break;
  27.         case 'totalArea':
  28.             value += 'S общ. ';
  29.  
  30.             if(props.value.from) value += `от ${props.value.from} `;
  31.             if(props.value.to) value += `до ${props.value.to} `;
  32.  
  33.             value += 'м²';
  34.  
  35.             break;
  36.         case 'kitchenArea':
  37.             value += 'S кух. ';
  38.  
  39.             if(props.value.from) value += `от ${props.value.from} `;
  40.             if(props.value.to) value += `до ${props.value.to} `;
  41.  
  42.             value += 'м²';
  43.  
  44.             break;
  45.         case 'balconyArea':
  46.             value += 'S бал. ';
  47.  
  48.             if(props.value.from) value += `от ${props.value.from} `;
  49.             if(props.value.to) value += `до ${props.value.to} `;
  50.  
  51.             value += 'м²';
  52.  
  53.             break;
  54.         case 'delta_price':
  55.             if (props.value) {
  56.                 const delta = DELTA_PRICE.find(item => String(item.label) === String(props.value));
  57.  
  58.                 if (delta) value = delta.label;
  59.             }
  60.  
  61.             break;
  62.         default:
  63.             value = props.value;
  64.             break;
  65.     }
  66.  
  67.     return (
  68.         <div className='checkerboard__filters-selected-item'>
  69.             <div className='checkerboard__filters-selected-item-txt' title={value}>{value}</div>
  70.             <button type='button' className='checkerboard__filters-selected-item-remove' onClick={props.removeFilter} />
  71.         </div>
  72.     )
  73. };
  74.  
  75. const mapStateToProps = (state, { blockID }) => {
  76.     const filters = getCheckerboardFilters(state, { blockID });
  77.  
  78.     const deadlinesList = [];
  79.  
  80.     if (filters.buildings) {
  81.         const deadlines = filters.buildings.map(building => {
  82.             const date = moment(building.deadline).endOf('quarter');
  83.             const { deadline_label, deadline_short } = building;
  84.  
  85.             if(date.isBefore(moment())) {
  86.                 return { deadline_label, deadline_short, timestamp: moment().subtract(1, 'quarters').unix() };
  87.             }
  88.  
  89.             return { deadline_label, deadline_short, timestamp: date.endOf('quarter').unix() };
  90.         }).filter((val, id, self) => {
  91.             console.log('self', self, id, val);
  92.  
  93.             return self.indexOf(val.timestamp) === id;
  94.         });
  95.  
  96.         if (deadlines) {
  97.             deadlines.sort((a, b) => a.timestamp - b.timestamp);
  98.  
  99.             deadlines.forEach(item => {
  100.                 const date = moment.unix(item.timestamp);
  101.                 const label = (date.isBefore(moment()) || item.deadline_label !== item.deadline_short) ? 'Сдан' : `до ${date.format('Q кв. YYYY')}`;
  102.  
  103.                 deadlinesList.push({ label, value: date.format('Q.YYYY') });
  104.             });
  105.         }
  106.     }
  107.  
  108.     return {
  109.         block: getBlock(state, { blockID }),
  110.         filters,
  111.         filtersValues: getCheckerboardFiltersValues(state, { blockID }),
  112.         deadlinesList
  113.     }
  114. };
  115.  
  116. const mapDispatchToProps = (dispatch) => {
  117.     return {
  118.         checkerboardActions: bindActionCreators(CheckerboardActions, dispatch)
  119.     }
  120. };
  121.  
  122. @connect(mapStateToProps, mapDispatchToProps)
  123. export default class CheckerboardFilters extends Component {
  124.     static contextTypes = {
  125.         router: PropTypes.object.isRequired
  126.     };
  127.  
  128.     dropdownItemProps = {
  129.         noBorderMark: false
  130.     };
  131.  
  132.     paperProps = {
  133.         size: 'lsm'
  134.     };
  135.  
  136.     componentDidMount() {
  137.         if (window.location.search) this.fetchFilters();
  138.         else this.fetchFilteredApartments(this.props.blockID, this.props.filtersValues);
  139.     }
  140.  
  141.     componentDidUpdate(prevProps) {
  142.         if (JSON.stringify(prevProps.filtersValues) !== JSON.stringify(this.props.filtersValues) || prevProps.blockID !== this.props.blockID) {
  143.             if (this.props.blockID) this.fetchFilteredApartments(this.props.blockID, this.props.filtersValues);
  144.         }
  145.     }
  146.  
  147.     fetchFilters = () => {
  148.         const { setCheckerboardFiltersValues } = this.props.checkerboardActions;
  149.         const filters = this.getFiltersFromURL();
  150.  
  151.         if (Object.keys(filters).length === 0) this.fetchFilteredApartments(this.props.blockID, this.props.filtersValues);
  152.         setCheckerboardFiltersValues(this.props.blockID, filters);
  153.     }
  154.  
  155.     handleChange = (name, value) => {
  156.         const { setCheckerboardFiltersValues } = this.props.checkerboardActions;
  157.         const filters = { ...this.props.filtersValues };
  158.  
  159.         delete filters[name];
  160.         delete filters.deadline_over_check;
  161.  
  162.         if (value) filters[name] = value;
  163.  
  164.         if (filters.deadline && moment(filters.deadline, 'Q.YYYY').endOf('quarter').isBefore(moment().endOf('quarter'))) {
  165.             filters.deadline_over_check = 1;
  166.         }
  167.  
  168.         setCheckerboardFiltersValues(this.props.blockID, filters);
  169.     };
  170.  
  171.     handleReset = () => {
  172.         const { setCheckerboardFiltersValues } = this.props.checkerboardActions;
  173.  
  174.         setCheckerboardFiltersValues(this.props.blockID, {});
  175.     };
  176.  
  177.     removeFilter = (name, val) => {
  178.         const { setCheckerboardFiltersValues } = this.props.checkerboardActions;
  179.         const filters = { ...this.props.filtersValues };
  180.  
  181.         if(Array.isArray(filters[name])) {
  182.             filters[name] = filters[name].filter(v => String(v) !== String(val));
  183.         } else {
  184.             delete filters[name];
  185.         }
  186.  
  187.         setCheckerboardFiltersValues(this.props.blockID, filters);
  188.     };
  189.  
  190.     /**
  191.      * Получаем объект с параметрами фильтрации из строки запроса
  192.      * @returns {{}}
  193.      */
  194.     getFiltersFromURL = () => {
  195.         const filters = {};
  196.         const query = getUrlParams(this.context.router.history.location.search);
  197.  
  198.         Object.keys(query).forEach(item => {
  199.             const itemName = item.replace(/^.*_/, '');
  200.  
  201.             switch(item) {
  202.                 case 'deadline':
  203.                     filters[item] = query[item];
  204.  
  205.                     break;
  206.                 case 'price_from':
  207.                 case 'price_to':
  208.                     if (!filters.price) {
  209.                         filters.price = {};
  210.                     }
  211.  
  212.                     filters.price[itemName] = query[item];
  213.  
  214.                     break;
  215.                 case 'totalArea_from':
  216.                 case 'totalArea_to':
  217.                     if (!filters.totalArea) {
  218.                         filters.totalArea = {};
  219.                     }
  220.  
  221.                     filters.totalArea[itemName] = query[item];
  222.  
  223.                     break;
  224.                 case 'kitchenArea_from':
  225.                 case 'kitchenArea_to':
  226.                     if (!filters.kitchenArea) {
  227.                         filters.kitchenArea = {};
  228.                     }
  229.  
  230.                     filters.kitchenArea[itemName] = query[item];
  231.  
  232.                     break;
  233.                 case 'balconyArea_from':
  234.                 case 'balconyArea_to':
  235.                     if (!filters.balconyArea) {
  236.                         filters.balconyArea = {};
  237.                     }
  238.  
  239.                     filters.balconyArea[itemName] = query[item];
  240.  
  241.                     break;
  242.                 case 'room':
  243.                 case 'finishing':
  244.                 case 'bank':
  245.                 case 'wcType':
  246.                 case 'building':
  247.                 case 'premiseType':
  248.                     if (query[item] !== undefined) {
  249.                         if (!Array.isArray(query[item])) {
  250.                             filters[item] = Array(query[item]);
  251.                         } else {
  252.                             filters[item] = query[item];
  253.                         }
  254.                     }
  255.  
  256.                     break;
  257.                 case 'mortgage':
  258.                 case 'installment':
  259.                 case 'subsidy':
  260.                 case 'voen_mortgage':
  261.                     if (!filters.payment) {
  262.                         filters.payment = [];
  263.                     }
  264.  
  265.                     filters.payment.push(item);
  266.  
  267.                     break;
  268.                 case 'hide_filtered':
  269.                 case 'hide_selled':
  270.                 case 'hide_booked':
  271.                 case 'reservation':
  272.                     filters[item] = query[item];
  273.                     break;
  274.                 case 'delta_price_from':
  275.                     if (!filters.delta_price) filters.delta_price = DELTA_PRICE.find(filter => String(filter.from) === String(query[item])).value;
  276.  
  277.                     break;
  278.                 case 'delta_price_to':
  279.                     if (!filters.delta_price) filters.delta_price = DELTA_PRICE.find(filter => String(filter.to) === String(query[item])).value;
  280.  
  281.                     break;
  282.                 default:
  283.                     break;
  284.             }
  285.         });
  286.  
  287.         return filters;
  288.     };
  289.  
  290.     fetchFilteredApartments = (blockID, filters = {}) => {
  291.         const { fetchCheckerboardFilteredApartmentsID } = this.props.checkerboardActions;
  292.         const preparedFilters = {};
  293.  
  294.         if(typeof filters === 'object') {
  295.             Object.keys(filters).forEach(filter => {
  296.                 if(!filters[filter]) return false;
  297.                 if(typeof filters[filter] === 'object' && Object.keys(filters[filter]).length === 0) return false;
  298.  
  299.                 switch(filter) {
  300.                     case 'building':
  301.                     case 'hide_filtered':
  302.                     case 'hide_selled':
  303.                     case 'hide_booked':
  304.                         return false;
  305.                     case 'payment': {
  306.                         if (filters.payment.indexOf('mortgage') !== -1) preparedFilters.mortgage = '1';
  307.                         if (filters.payment.indexOf('installment') !== -1) preparedFilters.installment = '1';
  308.                         if (filters.payment.indexOf('subsidy') !== -1) preparedFilters.subsidy = '1';
  309.                         if (filters.payment.indexOf('voen_mortgage') !== -1) preparedFilters.voen_mortgage = '1';
  310.  
  311.                         break;
  312.                     }
  313.                     case 'reservation': {
  314.                         preparedFilters.reservation = '1';
  315.                         break;
  316.                     }
  317.                     case 'price': {
  318.                         if(filters.price.from) preparedFilters.price_from = filters.price.from;
  319.                         if(filters.price.to) preparedFilters.price_to = filters.price.to;
  320.  
  321.                         break;
  322.                     }
  323.                     case 'totalArea': {
  324.                         if(filters.totalArea.from) preparedFilters.totalArea_from = filters.totalArea.from;
  325.                         if(filters.totalArea.to) preparedFilters.totalArea_to = filters.totalArea.to;
  326.  
  327.                         break;
  328.                     }
  329.                     case 'kitchenArea': {
  330.                         if(filters.kitchenArea.from) preparedFilters.kitchenArea_from = filters.kitchenArea.from;
  331.                         if(filters.kitchenArea.to) preparedFilters.kitchenArea_to = filters.kitchenArea.to;
  332.  
  333.                         break;
  334.                     }
  335.                     case 'balconyArea': {
  336.                         if(filters.balconyArea.from) preparedFilters.balconyArea_from = filters.balconyArea.from;
  337.                         if(filters.balconyArea.to) preparedFilters.balconyArea_to = filters.balconyArea.to;
  338.  
  339.                         break;
  340.                     }
  341.                     case 'delta_price': {
  342.                         const deltaPrice = DELTA_PRICE.find(item => String(item.value) === String(filters[filter]));
  343.  
  344.                         if (deltaPrice && deltaPrice.from >= 0) preparedFilters.delta_price_from = deltaPrice.from;
  345.                         if (deltaPrice && deltaPrice.to) preparedFilters.delta_price_to = deltaPrice.to;
  346.  
  347.                         break;
  348.                     }
  349.                     default:
  350.                         preparedFilters[filter] = filters[filter];
  351.                         break;
  352.                 }
  353.             });
  354.         }
  355.  
  356.  
  357.         fetchCheckerboardFilteredApartmentsID(blockID, preparedFilters);
  358.     };
  359.  
  360.     renderTotalAreaValue = ({ from, to }) => {
  361.         return `S общ. ${from ? ` от ${from}` : ''}${to ? ` до ${to}` : ''}  м²`;
  362.     };
  363.  
  364.     renderKitchenValue = ({ from, to }) => {
  365.         return `S кух. ${from ? ` от ${from}` : ''}${to ? ` до ${to}` : ''}  м²`;
  366.     };
  367.  
  368.     renderBalconyValue = ({ from, to }) => {
  369.         return `S бал. ${from ? ` от ${from}` : ''}${to ? ` до ${to}` : ''}  м²`;
  370.     };
  371.  
  372.     renderPriceValue = ({ from, to }) => {
  373.         return `${from ? `от ${from} ` : ''}${to ? `до ${to}` : ''} руб.`;
  374.     }
  375.  
  376.     renderSelected(lists) {
  377.         return (
  378.             <div className='checkerboard__filters-selected'>
  379.                 {Object.keys(this.props.filtersValues).map(filter => {
  380.                     if(typeof this.props.filtersValues[filter] === 'string') {
  381.                         if(!lists[filter] || lists[filter] === undefined) return;
  382.  
  383.                         const value = lists[filter].find(listItem => String(this.props.filtersValues[filter]) === String(listItem.value));
  384.  
  385.                         if (!value) return;
  386.  
  387.                         const handleRemoveFilter = () => {
  388.                             this.removeFilter(filter);
  389.                         };
  390.  
  391.                         return <SelectedFilter key={filter} {...{ filter, value: value.label, removeFilter: handleRemoveFilter }} />
  392.                     }
  393.  
  394.                     if (Array.isArray(this.props.filtersValues[filter]) && this.props.filtersValues[filter].length > 0) {
  395.                         if(!lists[filter] || lists[filter] === undefined) return;
  396.  
  397.                         return this.props.filtersValues[filter].map((val, key) => {
  398.                             const value = lists[filter].find(listItem => String(val) === String(listItem.value));
  399.  
  400.                             if(!value) return;
  401.  
  402.                             const handleRemoveFilter = () => {
  403.                                 this.removeFilter(filter, val);
  404.                             };
  405.  
  406.                             return <SelectedFilter key={filter + key} {...{ filter, value: value.label, removeFilter: handleRemoveFilter }} />
  407.                         })
  408.                     }
  409.  
  410.                     if (typeof this.props.filtersValues[filter] === 'object' && Object.keys(this.props.filtersValues[filter]).length > 0) {
  411.                         if(!this.props.filtersValues[filter].from && !this.props.filtersValues[filter].to) return;
  412.  
  413.                         const handleRemoveFilter = () => {
  414.                             this.removeFilter(filter);
  415.                         };
  416.  
  417.                         return <SelectedFilter key={filter} {...{ filter, value: this.props.filtersValues[filter], removeFilter: handleRemoveFilter }} />
  418.                     }
  419.                 })}
  420.             </div>
  421.         )
  422.     }
  423.  
  424.     renderDeltaPriceValue = () => {
  425.         const delta = DELTA_PRICE.find(item => String(item.value) === String(this.props.filtersValues.delta_price));
  426.  
  427.         if (delta) return delta.label;
  428.         return '';
  429.     }
  430.  
  431.     render() {
  432.         const lists = {
  433.             building: list2Options(this.props.filters.buildings, 'name', 'id', (val, building) => `Корпус ${val} - Очередь ${building.queue}`),
  434.             deadline: this.props.deadlinesList,
  435.             room: list2Options(this.props.filters.rooms, 'name', 'crm_id'),
  436.             finishing: list2Options(this.props.filters.finishing, 'name', '_id'),
  437.             payment: PAYMENTS,
  438.             bank: list2Options(this.props.filters.banks, 'name', '_id'),
  439.             status: list2Options(this.props.filters.statuses, 'name', 'crm_id'),
  440.             premiseType: OBJECT_VIEW,
  441.             wcType: list2Options(this.props.filters.wc, 'name', 'crm_id'),
  442.             delta_price: list2Options(DELTA_PRICE, 'label', 'value')
  443.         };
  444.  
  445.         return (
  446.             <div className='checkerboard__filters'>
  447.                 <div className='checkerboard__filters-header'>{this.props.block.name}</div>
  448.                 <div className='checkerboard__filters-content'>
  449.                     <Scrollarea>
  450.                         <div className='checkerboard__filters-scrollarea'>
  451.                             <div className='checkerboard__filters-rows'>
  452.                                 <div className='checkerboard__filters-row'>
  453.                                     <Select
  454.                                         name='delta_price'
  455.                                         fullWidth
  456.                                         circle={false}
  457.                                         emptyText=''
  458.                                         options={DELTA_PRICE}
  459.                                         onChange={this.handleChange}
  460.                                         placeholder='Инвестиционный рост цены'
  461.                                         value={this.props.filtersValues.delta_price}
  462.                                         renderValue={this.renderDeltaPriceValue}
  463.                                     />
  464.                                 </div>
  465.                                 <div className='checkerboard__filters-row'>
  466.                                     <Select
  467.                                         name='building'
  468.                                         value={this.props.filtersValues.building}
  469.                                         placeholder='Корпус'
  470.                                         options={lists.building}
  471.                                         onChange={this.handleChange}
  472.                                         multiple
  473.                                         changeAfterClose={false}
  474.                                         fullWidth
  475.                                         circle={false}
  476.                                         dropdownItemProps={this.dropdownItemProps}
  477.                                         paperProps={this.paperProps}
  478.                                     />
  479.                                 </div>
  480.                                 <div className='checkerboard__filters-row'>
  481.                                     <Select
  482.                                         name='deadline'
  483.                                         value={this.props.filtersValues.deadline}
  484.                                         placeholder='Срок сдачи'
  485.                                         options={lists.deadline}
  486.                                         onChange={this.handleChange}
  487.                                         fullWidth
  488.                                         circle={false}
  489.                                         emptyText=''
  490.                                     />
  491.                                 </div>
  492.                                 <div className='checkerboard__filters-row'>
  493.                                     <Select
  494.                                         name='room'
  495.                                         value={this.props.filtersValues.room}
  496.                                         placeholder='Количество комнат'
  497.                                         options={lists.room}
  498.                                         onChange={this.handleChange}
  499.                                         multiple
  500.                                         changeAfterClose={false}
  501.                                         fullWidth
  502.                                         circle={false}
  503.                                         dropdownItemProps={this.dropdownItemProps}
  504.                                     />
  505.                                 </div>
  506.                                 <div className='checkerboard__filters-row'>
  507.                                     <RangeSelect
  508.                                         cleared={false}
  509.                                         name='price'
  510.                                         value={this.props.filtersValues.price}
  511.                                         placeholder='Цена от-до, руб.'
  512.                                         min={500000}
  513.                                         step={500000}
  514.                                         renderValue={this.renderPriceValue}
  515.                                         onChange={this.handleChange}
  516.                                         fullWidth
  517.                                         circle={false}
  518.                                     />
  519.                                 </div>
  520.                                 <div className='checkerboard__filters-row'>
  521.                                     <Select
  522.                                         name='finishing'
  523.                                         value={this.props.filtersValues.finishing}
  524.                                         placeholder='Отделка'
  525.                                         options={lists.finishing}
  526.                                         onChange={this.handleChange}
  527.                                         multiple
  528.                                         changeAfterClose={false}
  529.                                         fullWidth
  530.                                         circle={false}
  531.                                         dropdownItemProps={this.dropdownItemProps}
  532.                                     />
  533.                                 </div>
  534.                                 <div className='checkerboard__filters-row'>
  535.                                     <Select
  536.                                         name='payment'
  537.                                         value={this.props.filtersValues.payment}
  538.                                         placeholder='Способы оплаты'
  539.                                         options={lists.payment}
  540.                                         onChange={this.handleChange}
  541.                                         multiple
  542.                                         changeAfterClose={false}
  543.                                         fullWidth
  544.                                         circle={false}
  545.                                         dropdownItemProps={this.dropdownItemProps}
  546.                                     />
  547.                                 </div>
  548.                                 <div className='checkerboard__filters-row'>
  549.                                     <Select
  550.                                         name='bank'
  551.                                         value={this.props.filtersValues.bank}
  552.                                         placeholder='Банки'
  553.                                         options={lists.bank}
  554.                                         disabled={!lists.bank.length}
  555.                                         onChange={this.handleChange}
  556.                                         multiple
  557.                                         changeAfterClose={false}
  558.                                         fullWidth
  559.                                         circle={false}
  560.                                         dropdownItemProps={this.dropdownItemProps}
  561.                                         paperProps={this.paperProps}
  562.                                     />
  563.                                 </div>
  564.                                 <div className='checkerboard__filters-row'>
  565.                                     <RangeSelect
  566.                                         cleared={false}
  567.                                         name='totalArea'
  568.                                         value={this.props.filtersValues.totalArea}
  569.                                         placeholder='S общая'
  570.                                         min={25}
  571.                                         step={5}
  572.                                         renderValue={this.renderTotalAreaValue}
  573.                                         onChange={this.handleChange}
  574.                                         fullWidth
  575.                                         circle={false}
  576.                                     />
  577.                                 </div>
  578.                                 <div className='checkerboard__filters-row'>
  579.                                     <RangeSelect
  580.                                         cleared={false}
  581.                                         name='kitchenArea'
  582.                                         value={this.props.filtersValues.kitchenArea}
  583.                                         placeholder='S кухни'
  584.                                         min={2}
  585.                                         step={2}
  586.                                         renderValue={this.renderKitchenValue}
  587.                                         onChange={this.handleChange}
  588.                                         fullWidth
  589.                                         circle={false}
  590.                                     />
  591.                                 </div>
  592.                                 <div className='checkerboard__filters-row'>
  593.                                     <RangeSelect
  594.                                         cleared={false}
  595.                                         name='balconyArea'
  596.                                         value={this.props.filtersValues.balconyArea}
  597.                                         placeholder='S балкона'
  598.                                         min={1}
  599.                                         step={1}
  600.                                         renderValue={this.renderBalconyValue}
  601.                                         onChange={this.handleChange}
  602.                                         fullWidth
  603.                                         circle={false}
  604.                                     />
  605.                                 </div>
  606.                                 <div className='checkerboard__filters-row'>
  607.                                     <Select
  608.                                         name='wcType'
  609.                                         value={this.props.filtersValues.wcType}
  610.                                         placeholder='Санузел'
  611.                                         options={lists.wcType}
  612.                                         onChange={this.handleChange}
  613.                                         multiple
  614.                                         changeAfterClose={false}
  615.                                         fullWidth
  616.                                         circle={false}
  617.                                         dropdownItemProps={this.dropdownItemProps}
  618.                                     />
  619.                                 </div>
  620.                                 <div className='checkerboard__filters-row'>
  621.                                     <Select
  622.                                         name='premiseType'
  623.                                         multiple
  624.                                         changeAfterClose={false}
  625.                                         value={this.props.filtersValues.premiseType}
  626.                                         placeholder='Тип недвижимости'
  627.                                         options={lists.premiseType}
  628.                                         onChange={this.handleChange}
  629.                                         fullWidth
  630.                                         circle={false}
  631.                                         dropdownItemProps={this.dropdownItemProps}
  632.                                     />
  633.                                 </div>
  634.                                 <div className='checkerboard__filters-row'>
  635.                                     <Checkbox name='reservation' size='sm' checked={this.props.filtersValues.reservation} label='Показать забронированные' onChange={this.handleChange} />
  636.                                 </div>
  637.                                 {/* <div className='checkerboard__filters-row'>
  638.                                     <Select name='status' value={this.props.filtersValues.status} placeholder='Статус' options={lists.status} onChange={this.handleChange} multi />
  639.                                 </div> */}
  640.                             </div>
  641.                             {this.renderSelected(lists)}
  642.                             <div className='checkerboard__filters-reset'>
  643.                                 <Button circle={false} kind='ghost' fullWidth size='md' onClick={this.handleReset}>Сбросить всё</Button>
  644.                             </div>
  645.                         </div>
  646.                     </Scrollarea>
  647.                 </div>
  648.             </div>
  649.         )
  650.     }
  651. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement