blob: efba2ec476e5faf6297cf62c0307ebac0cd954d7 [file]
/*
* Licensed to the Apache Software Foundation (ASF) under one or more
* contributor license agreements. See the NOTICE file distributed with
* this work for additional information regarding copyright ownership.
* The ASF licenses this file to You 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.
*/
import {
Stack,
Typography,
Table,
TableBody,
TableRow,
TableCell
} from "@mui/material";
import moment from "moment";
const GraphCustomTooltip = ({ active, payload, label, coordinate }: any) => {
if (active && payload?.length) {
const total = payload.reduce(
(sum: number, entry: any) => sum + entry.value,
0
);
return (
<Stack
sx={{
transform: `translate(${coordinate.x}px, ${coordinate.y}px)`
}}
className="graph-custom-tooltip"
data-cy="graph-custom-tooltip"
>
<Typography variant="subtitle2" className="graph-custom-tooltip-title">
{moment(label).format("MM/DD/YYYY")}
</Typography>
<Table size="small">
<TableBody>
{payload.map((entry: any, index: number) => (
<TableRow key={index}>
<TableCell className="graph-custom-tooltip-icon">
<Stack
sx={{
width: "10px",
height: "10px",
backgroundColor: entry.color,
borderRadius: "50%"
}}
/>
</TableCell>
<TableCell
sx={{
padding: "4px",
borderBottom: "none",
color: "rgba(0, 0, 0, 0.87)"
}}
>
{entry.name}
</TableCell>
<TableCell
sx={{
padding: "4px",
borderBottom: "none",
textAlign: "right",
color: "rgba(0, 0, 0, 0.87)"
}}
>
{entry.value.toFixed(2)}
</TableCell>
</TableRow>
))}
<TableRow>
<TableCell
sx={{
padding: "4px",
borderBottom: "none"
}}
/>
<TableCell className="graph-custom-tooltip-total">
TOTAL
</TableCell>
<TableCell className="graph-custom-tooltip-total-value">
{total.toFixed(2)}
</TableCell>
</TableRow>
</TableBody>
</Table>
</Stack>
);
}
return null;
};
export default GraphCustomTooltip;