const PromotionProductList=(props)=>{ const { config, setBaskets, display,scrollToFirstPage, isMobile=false, userInfo, member} = props const {Row, Col} = ReactBootstrap const defaultFilter={ 'promotion_type':'LD', 'region':'', 'condition_value':'' } const [filters, setFilters] = useState(defaultFilter) const [loading, setLoading] = useState(false) const page = Number (1) const per_page = Number(10) const [currentPage, setCurrentPage] = useState(page); const [pageSize, setPageSize] = useState(per_page); // Số sản phẩm trên mỗi trang mặc định là 10 //const totalPages = Number (productObject?.total_items || 0)/per_page +1; //const totalItems = productObject?.total_items || 0; const [totalPages, setTotalPages] = useState() const [totalItems, setTotalItems] = useState() const [promotionType, setPromotionType] =useState() const [region, setRegion] =useState() const [conditionValue, setConditionValue] =useState() const promotionTypeList=[ { "id": "VO", "name": "Value off after quantity reached" }, { "id": "LD", "name": "Lowest priced item discounted once quantity reached" }, { "id": "FP", "name": "Fixed price per item once quantity reached" }, { "id": "TD", "name": "Sale Total Discount" }, { "id": "GP", "name": "Pay fixed priced for a group of items" }, { "id": "GD", "name": "Buy a group of items and get one item discounted" }, { "id": "ST", "name": "Sale Total dollar discount" }, { "id": "PO", "name": "Percent off after quantity reached" } ] const regionList=[ {'id':"CH MEDiCARE 997 E-STORE", "name":"Online"} ] const conditionList=[ {'id':"45", "name":"Member"}, {'id':"", "name":"None Member"} ] useEffect(()=>{ if ((filters) && display==true){ fetchProductPromotion() } },[filters, display, pageSize, currentPage]) const [productObject, setProductObject]=useState() const [products, setProducts] = useState([]) const fetchProductPromotion = async () => { try { setLoading(true) const url =`/api/all-promotions?page=${currentPage}&per_page=${pageSize}&promotion_type=${filters?.promotion_type || 'GP'}®ion=${filters?.region||''}&condition_value=${filters?.condition_value||''}` const resultObj = await commonApi.APIGETByURL(url, config) if (resultObj.status == 200){ let dataTmp = resultObj?.data setProductObject(dataTmp) setProducts(dataTmp?.items); setTotalItems(dataTmp?.total_items) setTotalPages(Number(dataTmp?.total_items/pageSize)+1) }else{ setProducts([]) setProductObject(null) } //console.log(dataInit ) } catch (e) { console.log("ERROR get-promotion-products" ) }finally{ setLoading(false) } }; const handleSearch=()=>{ const newFilter={ 'promotion_type':promotionType, 'region':region, 'condition_value':conditionValue } setFilters(newFilter) } return( <> {setPromotionType(e.target.value); setCurrentPage(1)}} valueFieldName='id' labelFieldName='name' size="sm" required={false} feedback={null} /> setRegion(e.target.value)} valueFieldName='id' labelFieldName='name' size="sm" required={false} feedback={null} /> setConditionValue(e.target.value)} valueFieldName='id' labelFieldName='name' size="sm" required={false} feedback={null} />
{ products?.map ((product, index) =>( <> )) } ) }