Вы не можете выбрать более 25 тем Темы должны начинаться с буквы или цифры, могут содержать дефисы(-) и должны содержать не более 35 символов.

CarouselIndicators.js 1.2 KiB

3 лет назад
1234567891011121314151617181920212223242526272829303132333435363738
  1. import React from 'react';
  2. import PropTypes from 'prop-types';
  3. import classNames from 'classnames';
  4. import { mapToCssModules } from './utils';
  5. var CarouselIndicators = function CarouselIndicators(props) {
  6. var items = props.items,
  7. activeIndex = props.activeIndex,
  8. cssModule = props.cssModule,
  9. onClickHandler = props.onClickHandler,
  10. className = props.className;
  11. var listClasses = mapToCssModules(classNames(className, 'carousel-indicators'), cssModule);
  12. var indicators = items.map(function (item, idx) {
  13. var indicatorClasses = mapToCssModules(classNames({
  14. active: activeIndex === idx
  15. }), cssModule);
  16. return React.createElement("li", {
  17. key: "" + (item.key || Object.values(item).join('')),
  18. onClick: function onClick(e) {
  19. e.preventDefault();
  20. onClickHandler(idx);
  21. },
  22. className: indicatorClasses
  23. });
  24. });
  25. return React.createElement("ol", {
  26. className: listClasses
  27. }, indicators);
  28. };
  29. CarouselIndicators.propTypes = {
  30. items: PropTypes.array.isRequired,
  31. activeIndex: PropTypes.number.isRequired,
  32. cssModule: PropTypes.object,
  33. onClickHandler: PropTypes.func.isRequired,
  34. className: PropTypes.string
  35. };
  36. export default CarouselIndicators;