import AddCircleIcon from '@mui/icons-material/AddCircle'; import { Box, Button, Card, CardActions, CardMedia } from "@mui/material"; import { FormQueryErrorsSnackbar } from "@/core/ui/Widgets/FormError"; import { ImageFormModal } from "@/components/Exercises/forms/ImageModal"; import { ImageFormData } from "@/components/Exercises/models/exercise"; import { ExerciseImage, ImageStyle } from "@/components/Exercises/models/image"; import { useAddExerciseImageQuery, useDeleteExerciseImageQuery } from "@/components/Exercises/queries"; import React, { useState } from "react"; import { useTranslation } from "react-i18next"; type ImageCardProps = { exerciseId: number; image: ExerciseImage; canDelete: boolean onEdit: (image: ExerciseImage) => void; }; export const ImageEditCard = ({ exerciseId, image, canDelete, onEdit }: ImageCardProps) => { const [t] = useTranslation(); const deleteImageQuery = useDeleteExerciseImageQuery(exerciseId); return {canDelete && } {canDelete && } ; }; type AddImageCardProps = { exerciseId: number; }; const emptyImageFormData = (): ImageFormData => ({ url: '', file: undefined, author: '', authorUrl: '', title: '', objectUrl: '', derivativeSourceUrl: '', style: ImageStyle.PHOTO, isAi: false, }); export const AddImageCard = ({ exerciseId }: AddImageCardProps) => { const [t] = useTranslation(); const addImageQuery = useAddExerciseImageQuery(); const [openModal, setOpenModal] = useState(false); const handleSubmit = (values: ImageFormData) => { if (!values.file) { return; } addImageQuery.mutate({ exerciseId: exerciseId, image: values.file, imageData: values, }); setOpenModal(false); }; return <> setOpenModal(false)} image={openModal ? emptyImageFormData() : null} onSubmit={handleSubmit} submitLabel={t('add')} /> {addImageQuery.isError && } ; };