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
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;