import { RenderLoadingQuery } from "@/core/ui/Widgets/RenderLoadingQuery"; import { ExerciseImageAvatar, getLanguageByShortName, Language, useLanguageQuery } from "@/components/Exercises"; import { getDayName } from "@/components/Routines/models/Day"; import { RoutineDayData } from "@/components/Routines/models/RoutineDayData"; import { SetConfigData } from "@/components/Routines/models/SetConfigData"; import { SlotData } from "@/components/Routines/models/SlotData"; import { useRoutineDetailQuery } from "@/components/Routines/queries"; import { isSameDay } from "@/core/lib/date"; import { makeLink, WgerLink } from "@/core/lib/url"; import { Addchart } from "@mui/icons-material"; import TodayIcon from '@mui/icons-material/Today'; import { Box, Card, CardContent, CardHeader, Chip, Container, Divider, IconButton, Stack, Typography, useTheme } from "@mui/material"; import Grid from '@mui/material/Grid'; import Tooltip from "@mui/material/Tooltip"; import React from "react"; import { useTranslation } from "react-i18next"; import { useParams } from "react-router-dom"; export const RoutineDetailsCard = () => { const params = useParams<{ routineId: string }>(); const routineId = parseInt(params.routineId ?? ''); if (Number.isNaN(routineId)) { return

Please pass an integer as the routine id.

; } // eslint-disable-next-line react-hooks/rules-of-hooks const routineQuery = useRoutineDetailQuery(routineId); return {routineQuery.data?.description !== '' && {routineQuery.data?.description} } {routineQuery.data!.dayDataCurrentIterationFiltered.map((dayData) => )} } /> ; }; export function SetConfigDataDetails(props: { setConfigData: SetConfigData, rowHeight?: undefined | string, marginBottom?: undefined | string, showExercise: boolean, }) { const { t, i18n } = useTranslation(); const languageQuery = useLanguageQuery(); let language: Language | undefined = undefined; if (languageQuery.isSuccess) { language = getLanguageByShortName( i18n.language, languageQuery.data! ); } return ( {props.showExercise && (props.setConfigData.exercise ? props.setConfigData.exercise.getTranslation(language).name : t('routines.exerciseNotAvailable'))}
{props.setConfigData.textRepr} {props.setConfigData.isSpecialType && }
{props.setConfigData.comment}
); } function SlotDataList(props: { slotData: SlotData }) { return ( }> {props.slotData.exercises.map((exercise) => )} {props.slotData.setConfigs.map((setConfig, index) => { const showExercise = index === 0 || setConfig.exerciseId !== props.slotData.setConfigs[index - 1]?.exerciseId; return ; })} ); } export const DayDetailsCard = (props: { dayData: RoutineDayData, routineId: number, readOnly?: boolean }) => { const readOnly = (props.readOnly ?? false) || props.dayData.day === null || props.dayData.day.isRest; const theme = useTheme(); const [t, i18n] = useTranslation(); const isToday = isSameDay(props.dayData.date, new Date()); const subheader = {props.dayData.day?.description}; return ( } title={{getDayName(props.dayData.day)}} avatar={isToday ? : null} subheader={subheader} /> {props.dayData.slots.length > 0 && {props.dayData.slots.map((slotData, index) => (
))}
}
); };