| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364 | /* eslint-disable jsx-a11y/click-events-have-key-events *//* eslint-disable jsx-a11y/no-static-element-interactions */import React, { ReactNode } from "react";import cls from 'classnames';import { cssClasses } from '@douyinfe/semi-foundation/carousel/constants';import { CarouselArrowProps } from "./interface";import { IconChevronLeft, IconChevronRight } from "@douyinfe/semi-icons";import { get } from 'lodash';class CarouselArrow extends React.PureComponent<CarouselArrowProps> {    renderLeftIcon = () => {        return get(this.props, 'arrowProps.leftArrow.children', <IconChevronLeft aria-label="Previous index" size="inherit"/>);    }    renderRightIcon = () => {        return get(this.props, 'arrowProps.rightArrow.children', <IconChevronRight aria-label="Next index" size="inherit"/>);    }    render(): ReactNode {        const { type, theme, prev, next } = this.props;        const classNames = cls( {            [cssClasses.CAROUSEL_ARROW]: true,            [`${cssClasses.CAROUSEL_ARROW}-${theme}`]: theme,            [`${cssClasses.CAROUSEL_ARROW}-hover`]: type === 'hover',        });        const leftClassNames = cls( {            [`${cssClasses.CAROUSEL_ARROW}-prev`]: true,            [`${cssClasses.CAROUSEL_ARROW}-${theme}`]: theme,        });        const rightClassNames = cls( {            [`${cssClasses.CAROUSEL_ARROW}-next`]: true,            [`${cssClasses.CAROUSEL_ARROW}-${theme}`]: theme,        });        return (            <div className={classNames}>                <div                     // role='button'                    className={leftClassNames}                     onClick={prev}                    {...get(this.props, 'arrowProps.leftArrow.props')}                    x-semi-prop="arrowProps.leftArrow.children"                >                    {this.renderLeftIcon()}                </div>                <div                     // role='button'                    // tabIndex={0}                     className={rightClassNames}                     onClick={next}                    {...get(this.props, 'arrowProps.rightArrow.props')}                    x-semi-prop="arrowProps.rightArrow.children"                >                    {this.renderRightIcon()}                </div>            </div>        );    }}export default CarouselArrow;
 |