import { useState, useEffect } from 'react'; import { Button, Container, Row, Col, Tab, Tabs, Alert } from 'react-bootstrap'; import AdminTemplate from "../../templates/AdminTemplate"; import DataStorage from '../../organisms/DataStorage'; import axios from 'axios'; import MenuItem from '../../molecules/MenuItem'; import { useNavigate } from 'react-router-dom'; const categoryMapper = [ { itemType: 1, category: 'Món chính' }, { itemType: 2, category: 'Đồ uống' }, { itemType: 3, category: 'Tráng miệng' }, ]; export default function AdminMenuPage() { const navigate = useNavigate(); useEffect(() => { if (!DataStorage.get('isLoggedInAdmin')) { navigate('/admin-login'); } }, [navigate]); const [error, setError] = useState(""); const [loading, setLoading] = useState(true); const [menuItems, setMenuItems] = useState({}); const [key, setKey] = useState(0); function organizeMenuItemsByType(menuData) { // Lấy ra tất cả menu_item từ array ban đầu const menuItems = menuData.map(item => item); // Tạo một object để nhóm menu_item theo item_type, khởi tạo các mảng rỗng cho mỗi item_type từ categoryMapper const organizedItems = categoryMapper.reduce((acc, { itemType }) => { acc[itemType] = []; return acc; }, {}); // Thêm menu_item vào organizedItems theo item_type menuItems.forEach(menuItem => { const type = menuItem.item_type; // Đưa menu_item vào array của item_type tương ứng if (organizedItems[type]) { organizedItems[type].push(menuItem); } }); return organizedItems; } useEffect(() => { const fetchMenuItems = async () => { try { let menuItemsByType = {}; // Gọi API để lấy món theo itemType const response = await axios.get(process.env.REACT_APP_API_URL + `/menu-items?limit=100`); // Lưu danh sách món theo itemType console.log('Response', response.data.data); menuItemsByType = organizeMenuItemsByType(response.data.data); console.log(menuItemsByType); setMenuItems(menuItemsByType); setLoading(false); } catch (error) { setError(JSON.stringify(error)); setLoading(false); } } fetchMenuItems() }, []) let menuContent; if (loading) { menuContent = (
Đang tải thực đơn...
); } else { menuContent = (