burger-online
38 строк · 1.3 Кб
1import React from 'react'
2import {useSelector} from 'react-redux'
3import {ingredientsStore} from '../../redux/ingredients/slice'
4import {isBun, isMain, isSauce} from '../../utils/constants'
5import IngredientsLoader from '../UI/ingredients-loader/ingredients-loader'
6import Categories from '../categories/categories'
7import TabList from '../tab-list/tab-list'
8import styles from './burger-ingredients.module.css'
9
10const BurgerIngredients = () => {
11const {status, items} = useSelector(ingredientsStore)
12
13const sortedCategories = React.useMemo(() => {
14return [
15{id: 1, title: 'Булки', items: items.filter(item => item.type === isBun)},
16{id: 2, title: 'Соусы', items: items.filter(item => item.type === isSauce)},
17{id: 3, title: 'Начинки', items: items.filter(item => item.type === isMain)},
18]
19}, [items])
20
21return (
22<section className={`content ${styles.content}`}>
23<TabList />
24
25<div className={`custom-scroll ${styles.scroll}`}>
26{sortedCategories.map(category =>
27status === 'LOADING' ? (
28[...Array(2)].map((_, i) => <IngredientsLoader key={i} />)
29) : (
30<Categories key={category.id} {...category} />
31)
32)}
33</div>
34</section>
35)
36}
37
38export default BurgerIngredients
39