feat(register): Rezept-hinzufügen-Dropdown mit URL-Import + Manuell
All checks were successful
Build & Publish Docker Image / build-and-push (push) Successful in 1m15s

Der bisherige immer sichtbare URL-Importbalken ist durch einen
"Rezept hinzufügen"-Button rechts im Register-Head ersetzt. Klick
öffnet ein kleines Dropdown mit zwei Optionen:

  • Von URL importieren — öffnet einen Modal-Dialog zur URL-Eingabe
    und leitet wie bisher nach /preview weiter.
  • Leeres Rezept — POST /api/recipes/blank, Weiterleitung nach
    /recipes/{id}?edit=1; die Detailseite erkennt den Param und
    startet direkt im Editor, entfernt ihn nach Aktivierung wieder
    aus der URL.

Der neue Blank-Endpoint legt ein Rezept mit Platzhalter-Titel
"Neues Rezept", Portions-Default 4 und leeren Listen an. Der User
füllt direkt im Edit-Modus aus und speichert wie gewohnt.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
hsiegeln
2026-04-18 14:40:57 +02:00
parent a10ebefb75
commit 60d0cd7659
3 changed files with 319 additions and 50 deletions

View File

@@ -1,5 +1,6 @@
<script lang="ts">
import { onMount, onDestroy, tick } from 'svelte';
import { page } from '$app/stores';
import { goto } from '$app/navigation';
import {
Heart,
@@ -315,6 +316,15 @@
}
onMount(() => {
// Wenn wir über "Manuell anlegen" hier landen, ist ?edit=1 gesetzt
// und wir starten direkt im Editor. Den Param danach aus der URL
// entfernen, damit Refresh nicht automatisch wieder edit-Mode ist.
if ($page.url.searchParams.get('edit') === '1') {
editMode = true;
const url = new URL(window.location.href);
url.searchParams.delete('edit');
history.replaceState(history.state, '', url.toString());
}
const stored = localStorage.getItem('kochwas.wakeLock');
if (stored !== null) wakeLockEnabled = stored === '1';
if (wakeLockEnabled) void acquireWakeLock();