import React, { useState } from 'react'; import { Swiper, SwiperSlide } from 'swiper/react'; import { Autoplay, Navigation, Pagination } from 'swiper/modules'; import 'swiper/css'; import { ComboSet, ComboProduct, ComboGroup } from '@/types'; import { ItemComboSet } from './ItemComboset'; import { ChangeProductPopup } from './ChangeProductPopup'; interface ComboProps { combo_set: ComboSet[]; } interface PopupGroup { title: string; products: ComboProduct[]; } export const ComboSetBox: React.FC = ({ combo_set }) => { const [openPopup, setOpenPopup] = useState(false); const [popupGroup, setPopupGroup] = useState({ title: '', products: [], }); const [selectedProduct, setSelectedProduct] = useState(null); const handleOpenPopup = ( titleGroup: string, products: ComboProduct[], currentItem: ComboProduct, ) => { setPopupGroup({ title: titleGroup, products }); setSelectedProduct(currentItem); // lưu sản phẩm đang hiển thị setOpenPopup(true); }; const handleReplaceProduct = (newProduct: ComboProduct) => { // cập nhật selectedProduct bằng sản phẩm mới setSelectedProduct(newProduct); setOpenPopup(false); }; const getDisplayedProduct = (group: ComboGroup) => { // Nếu selectedProduct thuộc group này thì hiển thị nó if (selectedProduct && group.product_list.some((p) => p.id === selectedProduct.id)) { return selectedProduct; } // Ngược lại lấy sản phẩm mặc định return group.product_list.find((p) => p.is_first === 'yes') || group.product_list[0]; }; if (!combo_set || combo_set.length === 0) return null; const setInfo = combo_set[0]; return (

Mua theo combo

{setInfo.group_list.map((group, index) => { // lấy sản phẩm đầu tiên theo logic "is_first" hoặc mặc định const firstProduct = group.product_list.find((p) => p.is_first === 'yes') || group.product_list[0]; return ( ); })}

Tạm tính:

{/* giả sử lấy giá từ product_info */} 3.050.000 đ

Tiết kiệm thêm 215.000đ

Mua thêm 0 sản phẩm

setOpenPopup(false)} onSelect={handleReplaceProduct} />
); };