From 41244e5354fd05ef92d94fda0ceab36b2c23e88d Mon Sep 17 00:00:00 2001 From: Anton Tananaev Date: Sat, 14 May 2022 16:58:54 -0700 Subject: Improve report filter --- modern/src/reports/components/ReportFilter.js | 122 +++++++++++++++----------- 1 file changed, 70 insertions(+), 52 deletions(-) (limited to 'modern/src/reports/components/ReportFilter.js') diff --git a/modern/src/reports/components/ReportFilter.js b/modern/src/reports/components/ReportFilter.js index 739d5e47..30a49c81 100644 --- a/modern/src/reports/components/ReportFilter.js +++ b/modern/src/reports/components/ReportFilter.js @@ -1,23 +1,42 @@ import React, { useState } from 'react'; import { - FormControl, InputLabel, Select, MenuItem, Button, TextField, Grid, Typography, makeStyles, + FormControl, InputLabel, Select, MenuItem, Button, TextField, Typography, makeStyles, } from '@material-ui/core'; import { useSelector } from 'react-redux'; import moment from 'moment'; import { useTranslation } from '../../common/components/LocalizationProvider'; +import dimensions from '../../common/theme/dimensions'; -const useStyles = makeStyles((theme) => ({ +export const useFilterStyles = makeStyles((theme) => ({ filter: { + display: 'flex', + flexWrap: 'wrap', + gap: theme.spacing(1), padding: theme.spacing(2), }, + item: { + flex: `1 1 ${dimensions.filterFormWidth}`, + }, + buttons: { + display: 'flex', + gap: theme.spacing(1), + flex: `1 1 ${dimensions.filterFormWidth}`, + }, + button: { + flexGrow: 1, + }, })); -const ReportFilter = ({ children, handleSubmit, showOnly }) => { - const classes = useStyles(); +const ReportFilter = ({ + children, handleSubmit, showOnly, ignoreDevice, +}) => { + const classes = useFilterStyles(); const t = useTranslation(); const devices = useSelector((state) => state.devices.items); - const [deviceId, setDeviceId] = useState(); + const selectedDeviceId = useSelector((state) => state.devices.selectedId); + + const [deviceId, setDeviceId] = useState(selectedDeviceId); const [period, setPeriod] = useState('today'); const [from, setFrom] = useState(moment().subtract(1, 'hour')); const [to, setTo] = useState(moment()); @@ -67,18 +86,20 @@ const ReportFilter = ({ children, handleSubmit, showOnly }) => { }; return ( - - - - {t('reportDevice')} - - - - +
+ {!ignoreDevice && ( +
+ + {t('reportDevice')} + + +
+ )} +
{t('reportPeriod')} - +
{period === 'custom' && ( - - setFrom(moment(e.target.value, moment.HTML5_FMT.DATETIME_LOCAL))} - fullWidth - /> - +
+ setFrom(moment(e.target.value, moment.HTML5_FMT.DATETIME_LOCAL))} + fullWidth + /> +
)} {period === 'custom' && ( - - setTo(moment(e.target.value, moment.HTML5_FMT.DATETIME_LOCAL))} - fullWidth - /> - +
+ setTo(moment(e.target.value, moment.HTML5_FMT.DATETIME_LOCAL))} + fullWidth + /> +
)} {children} - +
- - {!showOnly - && ( - + {!showOnly && ( - )} - {!showOnly - && ( - + {!showOnly && ( - )} - +
+
); }; -- cgit v1.2.3