Advertisement
Guest User

Untitled

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