import React from "react"; import { Box, Typography } from "@mui/material"; import Card from "@mui/material/Card"; import Menu from "@mui/material/Menu"; import MenuItem from "@mui/material/MenuItem"; import IconButton from "@mui/material/IconButton"; import MoreHorizIcon from "@mui/icons-material/MoreHoriz"; import PropTypes from "prop-types"; import { useTheme } from "@mui/material/styles"; import Table from "@mui/material/Table"; import TableHead from "@mui/material/TableHead"; import TableBody from "@mui/material/TableBody"; import TableCell from "@mui/material/TableCell"; import TableContainer from "@mui/material/TableContainer"; import TableFooter from "@mui/material/TableFooter"; import TablePagination from "@mui/material/TablePagination"; import TableRow from "@mui/material/TableRow"; import Paper from "@mui/material/Paper"; import FirstPageIcon from "@mui/icons-material/FirstPage"; import KeyboardArrowLeft from "@mui/icons-material/KeyboardArrowLeft"; import KeyboardArrowRight from "@mui/icons-material/KeyboardArrowRight"; import LastPageIcon from "@mui/icons-material/LastPage"; import ProgressBar from "@ramonak/react-progress-bar"; function BrowserUsedTrafficReport(props) { const theme = useTheme(); const { count, page, rowsPerPage, onPageChange } = props; const handleFirstPageButtonClick = (event) => { onPageChange(event, 0); }; const handleBackButtonClick = (event) => { onPageChange(event, page - 1); }; const handleNextButtonClick = (event) => { onPageChange(event, page + 1); }; const handleLastPageButtonClick = (event) => { onPageChange(event, Math.max(0, Math.ceil(count / rowsPerPage) - 1)); }; return ( {theme.direction === "rtl" ? : } {theme.direction === "rtl" ? ( ) : ( )} = Math.ceil(count / rowsPerPage) - 1} aria-label="next page" > {theme.direction === "rtl" ? ( ) : ( )} = Math.ceil(count / rowsPerPage) - 1} aria-label="last page" > {theme.direction === "rtl" ? : } ); } BrowserUsedTrafficReport.propTypes = { count: PropTypes.number.isRequired, onPageChange: PropTypes.func.isRequired, page: PropTypes.number.isRequired, rowsPerPage: PropTypes.number.isRequired, }; function createData( browser, users, usersProgress, transactions, transactionsProgress, change, iconName, badgeClass ) { return { browser, users, usersProgress, transactions, transactionsProgress, change, iconName, badgeClass, }; } const rows = [ createData( "Safari Browser", "1051", "18", "43080", "(35%)", "14.80%", "ri-arrow-up-s-fill", "successBadge" ), createData( "UC Browser", "8075", "13", "5466", "(12%)", "11.50%", "ri-arrow-up-s-fill", "successBadge" ), createData( "Google Chrome", "59802", "38", "17654", "(19%)", "8.69%", "ri-arrow-down-s-fill", "dangerBadge" ), createData( "Mozilla Firefox", "21854", "24", "87759", "(52%)", "22.06%", "ri-arrow-up-s-fill", "successBadge" ), createData( "Opera Mini", "853", "35", "566", "(52%)", "52.80%", "ri-arrow-up-s-fill", "successBadge" ), createData( "Microsoft Edge", "1844", "10", "399", "(60%)", "60.00%", "ri-arrow-down-s-fill", "dangerBadge" ), createData( "Brave", "15844", "55", "455", "(55%)", "55.00%", "ri-arrow-up-s-fill", "successBadge" ), createData( "Vivaldi", "11844", "50", "655", "(50%)", "50.00%", "ri-arrow-up-s-fill", "successBadge" ), createData( "Other Browser", "5907", "7", "4576", "(10%)", "16.25%", "ri-arrow-up-s-fill", "successBadge" ), ].sort((a, b) => (a.browser < b.browser ? -1 : 1)); const BrowserUsedTrafficReports = () => { const [anchorEl, setAnchorEl] = React.useState(null); const open = Boolean(anchorEl); const handleClick = (event) => { setAnchorEl(event.currentTarget); }; const handleClose = () => { setAnchorEl(null); }; // Table const [page, setPage] = React.useState(0); const [rowsPerPage, setRowsPerPage] = React.useState(4); // Avoid a layout jump when reaching the last page with empty rows. const emptyRows = page > 0 ? Math.max(0, (1 + page) * rowsPerPage - rows.length) : 0; const handleChangePage = (event, newPage) => { setPage(newPage); }; const handleChangeRowsPerPage = (event) => { setRowsPerPage(parseInt(event.target.value, 10)); setPage(0); }; return ( <> Browser Used & Traffic Reports Last 15 Days Last Month Last Year Browser Users Transactions % Change {(rowsPerPage > 0 ? rows.slice( page * rowsPerPage, page * rowsPerPage + rowsPerPage ) : rows ).map((row) => ( {row.browser} {row.users} {row.usersProgress}% {row.transactions}{" "} {row.transactionsProgress} {row.change}{" "} ))} {emptyRows > 0 && ( )}
); }; export default BrowserUsedTrafficReports;