import React, {FC, useEffect} from "react"; import {DishType} from "@/types/DishType"; import {UserType} from "@/types/UserType"; import Link from "next/link"; 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: FC = ({dish, user, reloadDish}) => { 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)} href="#">
{isEditMode && (
)}
); } export default UserDishCard;