diff --git a/index.html b/index.html
index 8a4a956..b707d96 100644
--- a/index.html
+++ b/index.html
@@ -465,10 +465,10 @@
#app-bottom-nav .bottom-dock {
position: relative;
box-sizing: border-box;
- width: min(calc(100% - 3.6rem), 20.9rem);
+ width: min(calc(100% - 2.4rem), 24.5rem);
height: 3.34rem;
display: grid;
- grid-template-columns: repeat(4, minmax(0, 1fr));
+ grid-template-columns: repeat(5, minmax(0, 1fr));
align-items: stretch;
gap: 0.06rem;
padding: 0.22rem;
@@ -547,7 +547,7 @@
padding-inline: 0.7rem;
}
#app-bottom-nav .bottom-dock {
- width: min(calc(100% - 2.4rem), 19.7rem);
+ width: min(calc(100% - 1.6rem), 22.5rem);
height: 3.12rem;
gap: 0.05rem;
padding: 0.2rem;
diff --git a/js/app.js b/js/app.js
index 0c70179..ebd694c 100644
--- a/js/app.js
+++ b/js/app.js
@@ -13,6 +13,9 @@ let setupMealPlanner;
let getPantryHTML;
let refreshPantry;
let setupPantry;
+let getShoppingListHTML;
+let refreshShoppingList;
+let setupShoppingList;
let getMealPlanEditorHTML;
let setupMealPlanEditor;
let getBottomNavHTML;
@@ -24,6 +27,7 @@ const moduleLoadPromise = Promise.all([
import(`./views/RecipeDetailV2.js?v=${APP_ASSET_VERSION}`),
import(`./views/MealPlanner.js?v=${APP_ASSET_VERSION}`),
import(`./views/Pantry.js?v=${APP_ASSET_VERSION}`),
+ import(`./views/ShoppingList.js?v=${APP_ASSET_VERSION}`),
import(`./ui/mealPlanEditor.js?v=${APP_ASSET_VERSION}`),
import(`./ui/bottomNav.js?v=${APP_ASSET_VERSION}`),
]).then(([
@@ -32,6 +36,7 @@ const moduleLoadPromise = Promise.all([
recipeDetailModule,
mealPlannerModule,
pantryModule,
+ shoppingListModule,
mealPlanEditorModule,
bottomNavModule,
]) => {
@@ -40,6 +45,7 @@ const moduleLoadPromise = Promise.all([
({ getRecipeDetailHTML, setupRecipeDetail } = recipeDetailModule);
({ getMealPlannerHTML, setupMealPlanner } = mealPlannerModule);
({ getPantryHTML, refreshPantry, setupPantry } = pantryModule);
+ ({ getShoppingListHTML, refreshShoppingList, setupShoppingList } = shoppingListModule);
({ getMealPlanEditorHTML, setupMealPlanEditor } = mealPlanEditorModule);
({ getBottomNavHTML, setupBottomNav } = bottomNavModule);
});
@@ -82,6 +88,7 @@ async function initApp() {
${getRecipeListHTML()}
${getMealPlannerHTML()}
${getPantryHTML()}
+ ${getShoppingListHTML()}
${getBottomNavHTML()}
${getRecipeDetailHTML()}
${getFilterHTML()}
@@ -89,10 +96,11 @@ async function initApp() {
${getAppToastHTML()}
`;
- setupBottomNav({ refreshPantry });
+ setupBottomNav({ refreshPantry, refreshShoppingList });
setupRecipeList();
setupMealPlanner();
setupPantry();
+ setupShoppingList();
setupFilter();
setupMealPlanEditor();
setupRecipeDetail();
diff --git a/js/ui/bottomNav.js b/js/ui/bottomNav.js
index a709343..016dbea 100644
--- a/js/ui/bottomNav.js
+++ b/js/ui/bottomNav.js
@@ -42,6 +42,12 @@ export function getBottomNavHTML() {
+
+
+
+