diff --git a/.eslintrc.json b/.eslintrc.json index c5632633..b4fffd45 100644 --- a/.eslintrc.json +++ b/.eslintrc.json @@ -64,6 +64,8 @@ "class-methods-use-this": "warn", "prefer-promise-reject-errors": "warn", "react/jsx-one-expression-per-line": "off", + "react/destructuring-assignment": "off", + "no-unused-expressions": "warn", "camelcase": [1, { "properties": "never" }] } } diff --git a/src/components/CardsSlider/CardsSlider.css b/src/components/CardsSlider/CardsSlider.css deleted file mode 100644 index 5f848d29..00000000 --- a/src/components/CardsSlider/CardsSlider.css +++ /dev/null @@ -1,4 +0,0 @@ -@import url('./styles/cards-slider.css'); -@import url('./styles/__buttons/cards-slider__buttons.css'); -@import url('./styles/__button/cards-slider__button.css'); -@import url('./styles/__button/_next/cards-slider__button_next.css'); diff --git a/src/components/CardsSlider/CardsSlider.jsx b/src/components/CardsSlider/CardsSlider.jsx index 896d0b2d..63ffcb79 100644 --- a/src/components/CardsSlider/CardsSlider.jsx +++ b/src/components/CardsSlider/CardsSlider.jsx @@ -1,35 +1,27 @@ import React, { useRef } from 'react'; -import './CardsSlider.css'; +import './CardsSlider.scss'; -const CardsSlider = ({ - children, listLength, columnGap = 24, cardWidth = 200, -}) => { - const slider = useRef(null); // элемент слайдера +const CardsSlider = ({ children, isButtonsHidden = false }) => { + const defaultScrollPixelsAmount = 350; - let position = 0; // смещение карточек в слайдере при листании + const sliderContainerRef = useRef(null); - const handlePrev = () => { // показать предыдущие карточки - if (position < 0) position += 200; - slider.current.childNodes.forEach((element) => { - element.style = `transform: translateX(${position}px)`; - }); - }; + const handleSliderScroll = (direction) => { + return () => { + const scrollPixelsAmount = direction === 'left' ? -defaultScrollPixelsAmount : defaultScrollPixelsAmount; - const handleNext = () => { // показать следующие карточки - if (position >= (-(listLength - 7) * (columnGap + cardWidth))) position -= (columnGap + cardWidth); - slider.current.childNodes.forEach((element) => { - element.style = `transform: translateX(${position}px)`; - }); + sliderContainerRef.current.scrollBy({ behavior: 'smooth', left: scrollPixelsAmount }); + }; }; return ( <> -