/
SOFG1
/
generic
Обзор
Документация
Войти
/
SOFG1
/
generic
Код
Запросы
0
Задачи
Пакеты
0
Релизы
0
Аналитика
Безопасность
master
src/components/RawDataComponents/TableFooterComponent.tsx
58 строк
2 KB
Eddy
use selectors
25 июл 2024, 18:31
25 июл 2024, 18:31
25bde51
Код
Авторство
О чём код?
import { useCallback, forwardRef } from "react" import { StyledScrollBtn, StyledTableActions } from "../../UI/StyledTable" import { ChevronLeftIcon, ChevronRightIcon } from "../../UI/Svg"; import { Pagination } from "../common/Pagination/Pagination"; import { useRawDataActions } from "../../store/rawData"; import { RAW_DATA_TABLE_LIMIT } from "../../store/rawData/reducer"; import { useSelector } from "react-redux"; import { rawDataCountSelector, rawDataCurrentPageSelector } from "../../store/rawData/selectors"; const TableFooterComponent = forwardRef((props: {}, ref: any) => { const isRtl = document.body.dir === "rtl"; const currentPage = useSelector(rawDataCurrentPageSelector) const count = useSelector(rawDataCountSelector) const { onSelectPage, } = useRawDataActions(); const handleScrollTable = useCallback( (dir: "left" | "right") => { let scrollValue = dir === "right" ? 300 : -300; ref?.current?.scrollBy(scrollValue, 0); }, [ref] ); return <StyledTableActions> <StyledScrollBtn onClick={() => handleScrollTable(isRtl ? "right" : "left")} > {isRtl ? ( <ChevronRightIcon height="16px" /> ) : ( <ChevronLeftIcon height="16px" /> )} </StyledScrollBtn> <Pagination onSelectPage={onSelectPage} limit={RAW_DATA_TABLE_LIMIT} count={count} currentPage={currentPage} /> <StyledScrollBtn onClick={() => handleScrollTable(isRtl ? "left" : "right")} > {isRtl ? ( <ChevronLeftIcon height="16px" /> ) : ( <ChevronRightIcon height="16px" /> )} </StyledScrollBtn> </StyledTableActions> }) export default TableFooterComponent