Commit Graph

15 Commits

Author SHA1 Message Date
f161d8a15d migrate from deprecated slots to snippets and fix event handlers
- Replace deprecated <slot> syntax with modern {#snippet} and {@render} patterns
- Add TypeScript types for snippet props in Header component
- Convert on:click event handlers to onclick attribute throughout
- Update all layout files to use new snippet-based composition pattern
2025-12-27 12:24:30 +01:00
8d5d64a9bd refactor language selector into separate component
Extract language switching functionality from UserHeader into a new
LanguageSelector component. In mobile view, the selector appears in
the top bar next to the hamburger menu. In desktop view, it appears
in the navigation bar to the left of the UserHeader.

- Create LanguageSelector component with local element bindings
- Update Header component with language_selector_mobile and
  language_selector_desktop slots
- Remove language selector code from UserHeader
- Update recipe and main layouts to use new component
- Hide desktop language selector inside mobile hamburger menu
2025-12-27 09:46:04 +01:00
9cd990f1b9 make main landing page bilingual and eliminate language switcher flicker
All checks were successful
CI / update (push) Successful in 1m11s
Replace window.location.reload() with custom event dispatching to avoid
flicker when switching languages on main page. Add bilingual labels for
all content including welcome message and link grid.
2025-12-26 22:45:12 +01:00
442b2a3145 add bilingual labels to recipe components and fix language switcher
- Translate hardcoded German terms in IngredientsPage and InstructionsPage
- Migrate both components to Svelte 5 runes (, , )
- Fix language switcher to use correct short names via shared store
- Add recipeTranslationStore for recipe-specific language switching
2025-12-26 21:35:59 +01:00
6de3d76504 refactor: unify recipe routes into [recipeLang] slug with full bilingual support
Consolidate /rezepte and /recipes routes into single [recipeLang] structure to eliminate code duplication. All pages now use conditional API routing and reactive labels based on language parameter.

- Merge duplicate route structures into /[recipeLang] with 404 for invalid slugs
- Add English API endpoints for search, favorites, tags, and categories
- Implement language dropdown in header with localStorage persistence
- Convert all pages to use Svelte 5 runes (, , )
- Add German-only redirects (301) for add/edit pages
- Make all view pages (list, detail, filters, search, favorites) fully bilingual
- Remove floating language switcher in favor of header dropdown
2025-12-26 21:19:27 +01:00
605a2e0509 Implement better auth flow with direct Authentik redirects
- Create custom /login and /logout endpoints that bypass Auth.js default pages
- Use auto-submitting forms to POST to Auth.js with proper form data
- Update UserHeader links to use new custom endpoints (/login, /logout)
- Remove old login/logout page server files that are no longer needed
- Login flow: /login → auto-submit form → /auth/signin/authentik → Authentik
- Logout flow: /logout → auto-submit form → /auth/signout → Authentik logout
- Provides seamless user experience with loading spinners during redirects
- Maintains all Auth.js security features and session management
- Eliminates intermediate Auth.js pages for cleaner auth flow

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-08-31 21:58:55 +02:00
779dc96967 Correctly display user with pfp if available 2024-02-15 04:28:31 +01:00
ca62e48f7b initial OIDC setup 2024-02-14 16:07:55 +01:00
1a3d486f43 move from new.bocken.org to bocken.org 2023-10-05 10:09:50 +02:00
f918adf22a change password possible 2023-07-23 12:21:12 +02:00
f9be95b91e menu closes when clicking somwhere else 2023-07-22 13:12:45 +02:00
1b66f88e81 show username 2023-07-21 12:43:30 +02:00
eac042d39a simplify avatar setup via background-image 2023-07-20 15:41:04 +02:00
f11358bd0a mobile logout option 2023-07-20 15:05:08 +02:00
bfdc12736c user displayed in navbar with option to logout 2023-07-19 14:52:50 +02:00