import React, {useEffect} from "react"; import {DishType} from "~/types/DishType"; import {UserType} from "~/types/UserType"; import { Link } from "react-router"; import {PencilIcon, TrashIcon} from "@heroicons/react/24/solid"; import {removeUserFromDish} from "~/utils/api/dishApi"; import EditDishUserCardEditForm from "~/components/features/dishes/EditDishUserCardEditForm"; import {getUserDishForUserAndDish} from "~/utils/api/usersApi"; import Spinner from "~/components/Spinner"; import RecurrenceLabels from "~/components/features/dishes/RecurrenceLabels"; import {UserDishType} from "~/types/ScheduledUserDishType"; interface Props { dish: DishType user: UserType reloadDish: () => void } const UserDishCard = ({dish, user, reloadDish}: Props) => { const [userDish, setUserDish] = React.useState(null); const [userDishLoading, setUserDishLoading] = React.useState(true); const [isEditMode, setIsEditMode] = React.useState(false); useEffect(() => { getUserDishForUserAndDish(user.id, dish.id) .then((userDish) => setUserDish(userDish)) .finally(() => setUserDishLoading(false)) }, [dish, user]); const handleRemove = () => { removeUserFromDish(dish.id, user.id) .then(() => reloadDish()) .catch(() => { alert("Failed to remove user, please try again."); }); }; if (userDishLoading || !userDish) { return } const onUserCardSubmit = () => { setIsEditMode(false); reloadDish() } return (
{user.name}
setIsEditMode(!isEditMode)} to="#">
{isEditMode && (
)}
); } export default UserDishCard;