All files / src/pages/byuser UsageByUserGraph.jsx

100% Statements 10/10
100% Branches 0/0
100% Functions 4/4
100% Lines 7/7

Press n or j to go to the next uncovered block, b, p or k for the previous block.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73                                                      3x   3x 8x   8x   8x   8x   8x                                                                    
/*
 *      Copyright (C) 2010 - 2025 VREM Software Development <VREMSoftwareDevelopment@gmail.com>
 *
 *      Licensed under the Apache License, Version 2.0 (the "License");
 *      you may not use this file except in compliance with the License.
 *      You may obtain a copy of the License at
 *
 *           http: //www.apache.org/licenses/LICENSE-2.0
 *
 *      Unless required by applicable law or agreed to in writing, software
 *      distributed under the License is distributed on an "AS IS" BASIS,
 *      WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 *      See the License for the specific language governing permissions and
 *      limitations under the License.
 *
 * Bandwidth Monitor
 */
 
import React from 'react';
import { Box, Paper } from '@mui/material';
import Grid from '@mui/material/Grid';
import DropDown from '../../components/inputs/DropDown';
import Search from '../../components/inputs/Search';
import useUsageByUserGraph from '../../hooks/byuser/UseUsageByUserGraph';
import Loading from '../../components/loading/Loading';
import Graph from '../../components/graph/Graph';
 
const options = { flexGrow: 1, m: 2, mt: 6 };
 
const UsageByUserGraph = () => {
    const { options, series, years, year, setYear, months, month, setMonth, setFilter, loading } = useUsageByUserGraph();
 
    const handleChangeYear = (event) => setYear(event.target.value);
 
    const handleChangeMonth = (event) => setMonth(event.target.value);
 
    const handleChangeFilter = (event) => setFilter(event.target.value);
 
    return (
        <Paper>
            <Loading isLoading={loading} />
            <Box sx={options}>
                <Grid container spacing={4}>
                    <Grid size={2}>
                        <DropDown
                            data-testid="user-year-graph"
                            id="user-year-graph"
                            onChange={handleChangeYear}
                            items={years}
                            value={year}
                        />
                    </Grid>
                    <Grid size={2}>
                        <DropDown
                            data-testid="user-month-graph"
                            id="user-month-graph"
                            onChange={handleChangeMonth}
                            items={months}
                            value={month}
                        />
                    </Grid>
                    <Grid size={4}>
                        <Search data-testid="user-filter-graph" id="user-filter-graph" onChange={handleChangeFilter} />
                    </Grid>
                </Grid>
            </Box>
            <Graph options={options} series={series} />
        </Paper>
    );
};
 
export default UsageByUserGraph;