import { useState, useEffect } from 'react'; import { Modal, Button, Container, Row, Col, Card, Form, Alert, Image } from 'react-bootstrap'; import AdminTemplate from "../../templates/AdminTemplate"; import DataStorage from '../../organisms/DataStorage'; import axios from 'axios'; import { useNavigate, useSearchParams } from 'react-router-dom'; export default function AdminMenuEditPage() { const navigate = useNavigate(); useEffect(() => { if (!DataStorage.get('isLoggedInAdmin')) { navigate('/admin-login'); } }, [navigate]); const [searchParams] = useSearchParams(); const selectedItem = searchParams.get('id') || null; const [error, setError] = useState(""); // const [loading, setLoading] = useState(true); const [itemDetails, setItemDetails] = useState({ id: '', item_name: '', item_type: '1', price: '', description: '', image_url: '' }); const [showDeleteModal, setShowDeleteModal] = useState(false); const handleShowDeleteModal = () => { setShowDeleteModal(true); } const handleCloseDeleteModal = () => { setShowDeleteModal(false); } const handleSubmit = async () => { itemDetails.price = Number(itemDetails.price); itemDetails.item_type = Number(itemDetails.item_type); if (selectedItem) { axios.patch(process.env.REACT_APP_API_URL + `/menu-items/${selectedItem}`, itemDetails) .then((response) => { navigate('/admin-menu'); }) .catch((error) => { setError(JSON.stringify(error)); }) } else { axios.post(process.env.REACT_APP_API_URL + `/menu-items`, itemDetails) .then((response) => { navigate('/admin-menu'); }) .catch((error) => { setError(JSON.stringify(error)); }) } } const handleChange = (e) => { const { name, value } = e.target; setItemDetails((prevDetails) => ({ ...prevDetails, [name]: value, // Sử dụng tên của field để cập nhật động })); }; const handleAvatarUrlChange = (e) => { const url = e.target.value; setItemDetails((prevData) => ({ ...prevData, image_url: url // Cập nhật URL ảnh })); console.log(url); }; const confirmDelete = async () => { if (selectedItem) { axios.delete(process.env.REACT_APP_API_URL + `/menu-items/${selectedItem}`) .then((response) => { handleCloseDeleteModal(); navigate('/admin-menu'); }) .catch((error) => { setError(JSON.stringify(error)); }) } } useEffect(() => { const fetchItemDetail = async () => { if (selectedItem) { try { const response = await axios.get(process.env.REACT_APP_API_URL + `/menu-items/${selectedItem}`); setItemDetails(response.data); // setLoading(false); } catch (error) { setError(JSON.stringify(error)); } } else { setItemDetails( { id: '', item_name: '', item_type: '1', price: '', description: '', image_url: '' } ) } } fetchItemDetail(); }, [selectedItem]) return ( {/* Modal xác nhận xóa */} Xác nhận xóa Bạn có chắc chắn muốn xóa món này khỏi menu không? {/* */} {selectedItem ? 'Chỉnh sửa thông tin chi nhánh' : 'Tạo chi nhánh'}
{error && {error}} {/* Hiển thị ảnh từ URL */} Ảnh món URL ảnh món Tên món Id món Mô tả món Chọn danh mục món ăn Nhập giá tiền {selectedItem ? () : (<>) }
{/* */}
)} /> ) }