// Copyright (C) 2020 Intel Corporation // // SPDX-License-Identifier: MIT import React from 'react'; import { useSelector, useDispatch } from 'react-redux'; import { Row, Col } from 'antd/lib/grid'; import Pagination from 'antd/lib/pagination'; import { getProjectsAsync } from 'actions/projects-actions'; import { CombinedState } from 'reducers/interfaces'; import ProjectItem from './project-item'; export default function ProjectListComponent(): JSX.Element { const dispatch = useDispatch(); const projectsCount = useSelector((state: CombinedState) => state.projects.count); const { page } = useSelector((state: CombinedState) => state.projects.gettingQuery); let projectInstances = useSelector((state: CombinedState) => state.projects.current); const gettingQuery = useSelector((state: CombinedState) => state.projects.gettingQuery); function changePage(p: number): void { dispatch( getProjectsAsync({ ...gettingQuery, page: p, }), ); } projectInstances = projectInstances.reduce((rows, key, index) => { if (index % 4 === 0) { rows.push([key]); } else { rows[rows.length - 1].push(key); } return rows; }, []); return ( <> {projectInstances.map( (row: any[]): JSX.Element => ( {row.map((instance: any) => ( ))} ), )} ); }