MinCategories.js 1.27 KB
Newer Older
1 2 3 4 5 6
import React, { useState } from 'react';

import classNames from 'classnames';

import styles from './min.less';

7
const Categories = props => {
8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23
  const [currentIndex, setCurrentIndex] = useState(props.currentMenuIndex);
  const selectCategories = (event, index) => {
    event.preventDefault();
    event.stopPropagation();
    event.nativeEvent.stopImmediatePropagation();
    setCurrentIndex(index);
    // eslint-disable-next-line no-unused-expressions
    props.onChange && props.onChange(index);
  };
  return (
    <div
      className={classNames(styles['menu-categories'], {
        [styles['min-cateorites']]: props.mode,
      })}
    >
      {(props.data || [])
24
        .filter(item => !item.hideInMenu)
25 26 27 28 29 30 31
        .map((item, index) => {
          const categorieCls = classNames(
            styles['categorie-name'],
            styles.btn,
            currentIndex === index ? styles.active : '',
          );
          return (
32
            <div className={categorieCls} key={item.name} onClick={event => selectCategories(event, index)}>
33 34 35 36 37 38 39 40 41 42 43
              {/* eslint-disable-next-line jsx-a11y/alt-text */}
              <img src={item.extData.icon} />
              <span>{item.extData.label}</span>
            </div>
          );
        })}
    </div>
  );
};

export default Categories;