101 lines
2.3 KiB
JavaScript
101 lines
2.3 KiB
JavaScript
function getFlashProducts(products) {
|
|
return products.filter(item => item.sale === true).slice(0, 8);
|
|
}
|
|
|
|
function getFeaturedProducts(products) {
|
|
return products.filter(item => item.sale === true).slice(0, 12);
|
|
}
|
|
|
|
function totalPrice(items) {
|
|
return items.reduce((itemAcc, item) => {
|
|
return itemAcc += (item.price * item.qty);
|
|
}, 0);
|
|
}
|
|
|
|
function isWishListed(productId, wishList) {
|
|
return wishList.findIndex(product => product.id === productId) !== -1;
|
|
}
|
|
|
|
function getCompareList(items) {
|
|
return items.slice(0, 4);
|
|
}
|
|
|
|
function searchFilter(row, search) {
|
|
return row.title.toLowerCase().includes(search.toLowerCase()) || !search;
|
|
}
|
|
|
|
// short helper function
|
|
function checkLengNull(data) {
|
|
if (data !== null) {
|
|
return data.length > 0;
|
|
}
|
|
return false;
|
|
}
|
|
|
|
function isEquals(a, b) {
|
|
if (a !== null && b !== null) {
|
|
return a.toLowerCase() === b.toLowerCase();
|
|
}
|
|
return a === b
|
|
}
|
|
|
|
function minValueOne(qty) {
|
|
if (qty < 1) {
|
|
return 1;
|
|
}
|
|
return qty;
|
|
}
|
|
|
|
// filter function
|
|
function filterProductByCategory(product, selected_category) {
|
|
if (checkLengNull(selected_category)) {
|
|
return product.category.toLowerCase() === selected_category.toLowerCase();
|
|
}
|
|
return true
|
|
}
|
|
|
|
function filterProductByPrice(product, price) {
|
|
if (checkLengNull(price)) {
|
|
return product.price >= price[0] && product.price <= price[1];
|
|
}
|
|
return true
|
|
}
|
|
|
|
function filterProductByColor(product, color) {
|
|
if (checkLengNull(color)) {
|
|
for (var i = 0; i < product.colors.length; i++) {
|
|
if (product.colors[i].toLowerCase() === color.toLowerCase()) {
|
|
return true
|
|
}
|
|
}
|
|
return false;
|
|
}
|
|
return true
|
|
}
|
|
|
|
function filterProductBySize(product, size) {
|
|
if (checkLengNull(size)) {
|
|
for (var i = 0; i < product.size.length; i++) {
|
|
if (product.size[i].toLowerCase() === size.toLowerCase()) {
|
|
return true
|
|
}
|
|
}
|
|
return false;
|
|
}
|
|
return true
|
|
}
|
|
|
|
export {
|
|
getFlashProducts,
|
|
getFeaturedProducts,
|
|
totalPrice,
|
|
isWishListed,
|
|
filterProductByCategory,
|
|
filterProductByPrice,
|
|
filterProductByColor,
|
|
filterProductBySize,
|
|
isEquals,
|
|
minValueOne,
|
|
getCompareList,
|
|
searchFilter
|
|
}; |