123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960 |
- import {pizzaList} from '../data/pizzaList.js';
- import {renderCards} from '../view/pizza.render.js'
- export default class PizzaService {
- constructor() {
- }
- // search by name
- get initialList () {
- return [...pizzaList];
- }
- filterByName() {
-
- const searchInputValue = document.querySelector('#search').value;
- const searchResult = [...pizzaList].filter(pizza => {
- const searchedName = pizza.name.toLocaleLowerCase().includes(searchInputValue.toLocaleLowerCase());;
- const searchedIngredients = pizza.composition.join(', ').toLocaleLowerCase().includes(searchInputValue.toLocaleLowerCase());
- return searchedName || searchedIngredients;
- })
- renderCards(searchResult);
- }
- sortPizzas(resultArr, dir = "default"){
-
- resultArr = [...pizzaList].sort((a, b) => {
- if (dir === 'default') return this.initialList;
- if (dir === 'less') return b.price - a.price;
- if (dir === 'more') return a.price - b.price;
- })
-
- return resultArr;
- }
- filterByPrice(e) {
- e.preventDefault();
-
- let small = [...pizzaList].reduce((acc, current) => acc.price < current.price ? acc : current);
- let big = [...pizzaList].reduce((acc, current) => acc.price > current.price ? acc : current);
- smallPrice.placeholder = small.price;
- bigPrice.placeholder = big.price;
- const smallPriceAmount = smallPrice.value ? smallPrice.value : small.price;
- const bigPriceAmount = bigPrice.value ? bigPrice.value : big.price;
- const neededPizzas = [...pizzaList].filter(goods => goods.price >= smallPriceAmount && goods.price <= bigPriceAmount)
- renderCards(neededPizzas);
- }
- filterByCaloricity(e) {
- e.preventDefault();
-
- let small = [...pizzaList].reduce((acc, current) => acc.caloricity < current.caloricity ? acc : current);
- let big = [...pizzaList].reduce((acc, current) => acc.caloricity > current.caloricity ? acc : current);
- smallCaloricity.placeholder = small.caloricity;
- bigCaloricity.placeholder = big.caloricity;
- const smallCaloricityAmount = smallCaloricity.value ? smallCaloricity.value : small.caloricity;
- const bigCaloricityAmount = bigCaloricity.value ? bigCaloricity.value : big.caloricity;
- const searchedCaloricity = [...pizzaList].filter(goods => goods.caloricity >= smallCaloricityAmount && goods.caloricity <= bigCaloricityAmount)
- renderCards(searchedCaloricity);
- }
- }
-
|