feat: make shopping list and pantry nav links configurable via settings#357
Open
romainhild wants to merge 1 commit into
Open
feat: make shopping list and pantry nav links configurable via settings#357romainhild wants to merge 1 commit into
romainhild wants to merge 1 commit into
Conversation
Shopping List and Pantry nav links were removed from the nav bar and replaced with per-user toggles in Preferences. Both features are shown by default; users opt out to hide them. Settings persist via cookies refreshed on every request. Includes translations for all 7 supported languages and E2E test coverage.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Goal
Let users choose which features appear in the nav bar via the Preferences page. Shopping List and Pantry are shown by default (opt-out). Recipes is always the home page and cannot be hidden. If only Recipes is enabled, no nav links are shown at all (the bar still shows search, preferences, and theme toggle).
This implements #327
Approach: Cookie-based, server-side rendering
Feature flags are stored as cookies, read in middleware, and injected as an Axum extension — exactly mirroring how the
langcookie andLanguageIdentifierextension work today. Askama templates render conditionally; no JS is needed for the nav itself.Specs and implementation plans have been added in docs/
Disclaimer: The implementation has been done using Claude Code. I made the designs decisions and have reviewed the code.