import React from "react"; import { useSelector, useDispatch } from "react-redux"; import PropTypes from "prop-types"; import { Link } from "react-router-dom"; import PaginationFooter from "../PaginationFooter/PaginationFooter"; const Groups = (props) => { var user_data = useSelector((state) => state.user_data), groups_data = useSelector((state) => state.groups_data), groups_page = useSelector((state) => state.groups_page), limit = useSelector((state) => state.limit), dispatch = useDispatch(), page = parseInt(new URLSearchParams(props.location.search).get("page")); page = isNaN(page) ? 0 : page; var slice = [page * limit, limit]; var { updateGroups, history } = props; if (!groups_data || !user_data) { return
; } const dispatchPageChange = (data, page) => { dispatch({ type: "GROUPS_PAGE", value: { data: data, page: page, }, }); }; if (groups_page != page) { updateGroups(...slice).then((data) => { dispatchPageChange(data, page); }); } return (

Groups

    {groups_data.length > 0 ? ( groups_data.map((e, i) => (
  • {e.users.length + " users"} {e.name}
  • )) ) : (

    no groups created...

    )}
); }; Groups.propTypes = { user_data: PropTypes.array, groups_data: PropTypes.array, updateUsers: PropTypes.func, updateGroups: PropTypes.func, history: PropTypes.shape({ push: PropTypes.func, }), location: PropTypes.shape({ search: PropTypes.string, }), }; export default Groups;