src
|__ components (shared components between features)
| |__ Loading
| |__ index.jsx
| |__ styles.scss
|
|__ features
| |__ Todo
| |__ components (components of feature Todo)
| |__ pages (pages of feature Todo)
| |__ index.jsx (entry point of feature Todo)
|
|__ App.js
FiltersViewer
const filters = {
isPromotion: true,
salePrice_lte: 100,
salePrice_gte: 100,
}
FILTER_LIST
- id: number
- getLabel: (filters) => string
- isActive: (filters) => true/false
- isVisible: (filters) => true/false
- isRemovable: boolean
- onRemove: func
- onToggle: func
DetailPage handleSubmit
|__ AddToCartForm (form management)
| |__ QuantityField
/products/:productId --> ProductDescription /products/:productId/additional --> ProductAdditional /products/:productId/reviews --> ProductReviews
DetailPage Click Chon Mua Open Mini Cart Go to Cart Page
Cart
- showMiniCart: true / false
- cartItems -> item (product, quantity)
State tính toán phụ thuộc vào state có sẵn
- cartItemsCount
- cartTotal --> createSelector()