import { LoadingPlaceholder } from "@/core/ui/LoadingWidget/LoadingWidget"; import { DashboardCard } from "@/components/Dashboard/DashboardCard"; import { EmptyCard } from "@/components/Dashboard/EmptyCard"; import { CategoryForm, MeasurementCategory, MeasurementChart, useMeasurementsCategoryQuery } from "@/components/Measurements"; import i18n from "@/i18n"; import { makeLink, WgerLink } from "@/core/lib/url"; import "slick-carousel/slick/slick.css"; import Button from "@mui/material/Button"; import Table from "@mui/material/Table"; import TableBody from "@mui/material/TableBody"; import TableCell from "@mui/material/TableCell"; import TableHead from "@mui/material/TableHead"; import TableRow from "@mui/material/TableRow"; import Typography from "@mui/material/Typography"; import React from "react"; import { useTranslation } from "react-i18next"; import Slider, { Settings } from "react-slick"; import "slick-carousel/slick/slick-theme.css"; export const MeasurementCard = () => { const { t } = useTranslation(); const categoryQuery = useMeasurementsCategoryQuery(); if (categoryQuery.isLoading) { return ; } return categoryQuery.data === null ? } modalTitle={t("add")} /> : ; }; const MeasurementCardContent = (props: { categories: MeasurementCategory[] }) => { const { t } = useTranslation(); // TODO: is there a better solution for this? // Workaround for react-slick import issue where it returns a module object // instead of the component // eslint-disable-next-line @typescript-eslint/no-explicit-any const SlickSlider = (Slider as any).default ?? Slider; const settings: Settings = { dots: true, infinite: true, speed: 500, slidesToShow: 1, slidesToScroll: 1, arrows: false, }; return (<> } >
{props.categories.map(c => )}
); }; const MeasurementCardTableContent = (props: { category: MeasurementCategory }) => { const { t } = useTranslation(); return (<> {props.category.name} {t('date')} {t('value')} {[...props.category.entries].slice(0, 5).map(entry => ( {entry.date.toLocaleDateString()} {entry.value} {props.category.unit} ))}
); };