window.ingredientsStrandObj = {
isPopulated: false,
addIngredientsDiv: [],
display: function(){
if(!this.isPopulated){
this.populateIngredients();
this.isPopulated = true;
}
},
populateIngredients: function(){
let categories = categorizeIngredients(merchant.inventory);
let ingredientStrand = document.querySelector("#categoryList");
while(ingredientStrand.children.length > 0){
ingredientStrand.removeChild(ingredientStrand.firstChild);
}
for(let category of categories){
let categoryDiv = document.createElement("div");
categoryDiv.classList = "categoryDiv"
ingredientStrand.appendChild(categoryDiv);
let headerDiv = document.createElement("div");
categoryDiv.appendChild(headerDiv);
let headerTitle = document.createElement("p");
headerTitle.innerText = category.name;
headerDiv.appendChild(headerTitle);
let ingredientsDiv = document.createElement("div");
ingredientsDiv.classList = "ingredientsDiv";
ingredientsDiv.style.display = "none";
categoryDiv.appendChild(ingredientsDiv);
let headerButton = document.createElement("button");
headerButton.innerHTML = '';
headerButton.onclick = ()=>{this.toggleCategory(ingredientsDiv, headerButton)};
headerDiv.appendChild(headerButton);
for(let ingredient of category.ingredients){
let ingredientDiv = document.createElement("div");
ingredientDiv.classList = "ingredient";
ingredientDiv.onclick = ()=>{ingredientDetailsComp.display(ingredient, category)};
ingredientsDiv.appendChild(ingredientDiv);
let ingredientName = document.createElement("p");
ingredientName.innerText = ingredient.name;
ingredientDiv.appendChild(ingredientName);
let spacer = document.createElement("hr");
spacer.classList = "ingredientSpacer";
ingredientDiv.appendChild(spacer);
let ingredientData = document.createElement("p");
ingredientData.innerText = `${ingredient.quantity} ${ingredient.unit}`;
ingredientDiv.appendChild(ingredientData);
}
}
},
//Open or close the list of ingredients for a category
toggleCategory: function(div, button){
if(div.style.display === "none"){
button.innerHTML = '';
div.style.display = "flex";
}else if(div.style.display === "flex"){
button.innerHTML = '';
div.style.display = "none";
}
}
}