import { useTheme } from '@mui/material/styles';
import PropTypes from 'prop-types';
import Box from '@mui/material/Box';
import Card from '@mui/material/Card';
import CardContent from '@mui/material/CardContent';
import Chip from '@mui/material/Chip';
import Stack from '@mui/material/Stack';
import Typography from '@mui/material/Typography';
import { SparkLineChart } from '@mui/x-charts/SparkLineChart';
import { areaElementClasses } from '@mui/x-charts/LineChart';
function getDaysInMonth(month, year) {
const date = new Date(year, month, 0);
const monthName = date.toLocaleDateString('en-US', {
month: 'short',
});
const daysInMonth = date.getDate();
const days = [];
let i = 1;
while (days.length < daysInMonth) {
days.push(`${monthName} ${i}`);
i += 1;
}
return days;
}
function AreaGradient({ color, id }) {
return (
);
}
AreaGradient.propTypes = {
color: PropTypes.string.isRequired,
id: PropTypes.string.isRequired,
};
function StatCard({ title, value, interval, trend, data }) {
const theme = useTheme();
const daysInWeek = getDaysInMonth(4, 2024);
const trendColors = {
up:
theme.palette.mode === 'light'
? theme.palette.success.main
: theme.palette.success.dark,
down:
theme.palette.mode === 'light'
? theme.palette.error.main
: theme.palette.error.dark,
neutral:
theme.palette.mode === 'light'
? theme.palette.grey[400]
: theme.palette.grey[700],
};
const labelColors = {
up: 'success',
down: 'error',
neutral: 'default',
};
const color = labelColors[trend];
const chartColor = trendColors[trend];
const trendValues = { up: '+25%', down: '-25%', neutral: '+5%' };
return (
{title}
{value}
{interval}
);
}
StatCard.propTypes = {
data: PropTypes.arrayOf(PropTypes.number).isRequired,
interval: PropTypes.string.isRequired,
title: PropTypes.string.isRequired,
trend: PropTypes.oneOf(['down', 'neutral', 'up']).isRequired,
value: PropTypes.string.isRequired,
};
export default StatCard;