diff --git a/client/src/assets/style.css b/client/src/assets/style.css index ada3b5b..fbc47b5 100644 --- a/client/src/assets/style.css +++ b/client/src/assets/style.css @@ -142,14 +142,15 @@ form.horizontal .input label { margin-right: 0.25rem; } -.filters .inner { +.dashboard-head .inner { display: flex; align-items: center; + justify-content: flex-end; padding: 0.5rem 0.5rem; background-color: #fff; } -.filters .shadow { +.dashboard-head .shadow { position: absolute; background: linear-gradient(0deg, rgba(255,255,255,0) 5%, rgba(190,190,190,1) 100%); width: 100%; @@ -157,12 +158,6 @@ form.horizontal .input label { z-index: 1; } -.filters .actions { - margin-left: auto; - display: flex; - align-items: center; -} - .checkbox-label { display: inline-flex; align-items: center; @@ -251,6 +246,12 @@ form.horizontal .input label { display: flex; align-items: center; padding-right: 0.4rem; + opacity: 0; + transition: opacity 0.1s; +} + +.grid-sensors .grid-box .box:hover .header .actions { + opacity: 1; } .grid-sensors .grid-box .box .header .actions .action { diff --git a/client/src/pages/dashboard/components/BoxDialContent.tsx b/client/src/pages/dashboard/components/BoxDialContent.tsx index 5347dce..46cbcfe 100644 --- a/client/src/pages/dashboard/components/BoxDialContent.tsx +++ b/client/src/pages/dashboard/components/BoxDialContent.tsx @@ -1,5 +1,6 @@ import { getLatestSensorValue } from '@/api/sensorValues' import { DashboardDialData } from '@/utils/parseDashboard' +import { useMemo } from 'preact/hooks' import { useQuery } from 'react-query' import { useDashboardContext } from '../contexts/DashboardContext' import { BoxDefinition } from '../types' @@ -21,12 +22,29 @@ export const BoxDialContent = ({ box, data }: Props) => { getLatestSensorValue(valuesQuery) ) + const displayValue = useMemo(() => { + if (!value.data) { + return '' + } + + const decimals = parseInt(data.decimals ?? '', 10) + const multiplier = parseFloat(data.multiplier ?? '') + + const numericValue = value.data.value * (isNaN(multiplier) ? 1 : multiplier) + + if (!isNaN(decimals)) { + return numericValue.toFixed(decimals) + } + + return numericValue + }, [value.data, data]) + return (