С сервера приходят категории вида
{
id: 1,
title: "category",
products: [
id: 1,
title: "product",
subproducts: [
id: 1,
title: "subproduct",
]
]
}
В категории может быть продукты, в продукте - субпродукты.
Как управлять этим через Vuex? Например, локальное добавление продукта будет выглядеть так:
ADD_PRODUCT(state, { categoryName, price, title, subproducts = [] }) {
let categories = state.categories
if (!categories) return
let category = _.find(categories, { title: categoryName })
if (!category) return
category.products.push({ price, title, subproducts })
},
Удаление субпродукта так:
REMOVE_SUBPRODUCT(state, { categoryId, productId, id }) {
let categories = [...state.categories]
let category = _.find(categories, { id: categoryId })
if (!category) return
let product = _.find(category.products, { id: productId })
if (!product) return
_.remove(product.subproducts, { id })
state.categories = categories
},
Как можно это сократить и упростить?