diff --git a/frontend/messages/de.json b/frontend/messages/de.json index 3f85c3c2..704425d5 100644 --- a/frontend/messages/de.json +++ b/frontend/messages/de.json @@ -1170,7 +1170,7 @@ "journey_selector_journey_desc": "Eine kuratierte Auswahl von Briefen mit Notizen.", "journey_selector_next_btn": "Weiter", "journey_placeholder_back": "andere Auswahl", - "journey_placeholder_heading": "Lesereise-Editor folgt in #753", + "journey_create_submit": "Lesereise erstellen", "journey_item_open_aria": "Brief vom {date} öffnen", "journey_item_open_aria_undated": "Brief öffnen", "journey_empty_state": "Diese Lesereise ist noch leer.", diff --git a/frontend/messages/en.json b/frontend/messages/en.json index 82823a73..24856bd1 100644 --- a/frontend/messages/en.json +++ b/frontend/messages/en.json @@ -1170,7 +1170,7 @@ "journey_selector_journey_desc": "A curated selection of letters with notes.", "journey_selector_next_btn": "Continue", "journey_placeholder_back": "different selection", - "journey_placeholder_heading": "Reading Journey editor coming in #753", + "journey_create_submit": "Create reading journey", "journey_item_open_aria": "Open letter from {date}", "journey_item_open_aria_undated": "Open letter", "journey_empty_state": "This reading journey is still empty.", diff --git a/frontend/messages/es.json b/frontend/messages/es.json index 5a69f309..74b45118 100644 --- a/frontend/messages/es.json +++ b/frontend/messages/es.json @@ -1170,7 +1170,7 @@ "journey_selector_journey_desc": "Una selección curada de cartas con notas.", "journey_selector_next_btn": "Continuar", "journey_placeholder_back": "otra selección", - "journey_placeholder_heading": "Editor de viaje de lectura próximamente en #753", + "journey_create_submit": "Crear viaje de lectura", "journey_item_open_aria": "Abrir carta del {date}", "journey_item_open_aria_undated": "Abrir carta", "journey_empty_state": "Este viaje de lectura está vacío.", diff --git a/frontend/src/routes/geschichten/new/+page.svelte b/frontend/src/routes/geschichten/new/+page.svelte index 0eff0a68..fe03ae66 100644 --- a/frontend/src/routes/geschichten/new/+page.svelte +++ b/frontend/src/routes/geschichten/new/+page.svelte @@ -4,6 +4,7 @@ import { m } from '$lib/paraglide/messages.js'; import BackButton from '$lib/shared/primitives/BackButton.svelte'; import TypeSelector from './TypeSelector.svelte'; import StoryCreate from './StoryCreate.svelte'; +import JourneyCreate from './JourneyCreate.svelte'; import type { PageData } from './$types'; let { data }: { data: PageData } = $props(); @@ -19,12 +20,7 @@ let { data }: { data: PageData } = $props(); {#if data.selectedType === 'STORY'} {:else if data.selectedType === 'JOURNEY'} -
-

{m.journey_placeholder_heading()}

- - {m.journey_placeholder_back()} - -
+ {:else} goto(`/geschichten/new?type=${type}`)} /> {/if} diff --git a/frontend/src/routes/geschichten/new/JourneyCreate.svelte b/frontend/src/routes/geschichten/new/JourneyCreate.svelte new file mode 100644 index 00000000..f6f54395 --- /dev/null +++ b/frontend/src/routes/geschichten/new/JourneyCreate.svelte @@ -0,0 +1,85 @@ + + +
+ {#if errorMessage} + + {/if} + +
+ (titleTouched = true)} + placeholder={m.geschichte_editor_title_placeholder()} + aria-invalid={showTitleError} + class="block w-full rounded border px-3 py-2 font-serif text-lg text-ink placeholder:text-ink-3 focus:outline-none focus-visible:ring-2 focus-visible:ring-focus-ring {showTitleError + ? 'border-danger' + : 'border-line'}" + /> + {#if showTitleError} +

{m.geschichte_editor_title_required()}

+ {/if} +
+ +
+ + + {m.journey_placeholder_back()} + +
+
diff --git a/frontend/src/routes/geschichten/new/page.svelte.test.ts b/frontend/src/routes/geschichten/new/page.svelte.test.ts index 26a0ad49..ccf76f8d 100644 --- a/frontend/src/routes/geschichten/new/page.svelte.test.ts +++ b/frontend/src/routes/geschichten/new/page.svelte.test.ts @@ -73,14 +73,13 @@ describe('geschichten/new page', () => { await expect.element(page.getByRole('radiogroup')).toBeVisible(); }); - it('shows JOURNEY placeholder when selectedType is JOURNEY', async () => { + it('shows JourneyCreate form when selectedType is JOURNEY', async () => { render(GeschichtenNewPage, { props: { data: baseData({ selectedType: 'JOURNEY' }) } }); - const placeholder = document.querySelector('[data-testid="journey-placeholder"]'); - expect(placeholder).not.toBeNull(); + await expect.element(page.getByRole('button', { name: /Lesereise erstellen/i })).toBeVisible(); }); - it('JOURNEY placeholder offers a return-to-selection link', async () => { + it('JOURNEY create form offers a return-to-selection link', async () => { render(GeschichtenNewPage, { props: { data: baseData({ selectedType: 'JOURNEY' }) } }); const backLink = page.getByRole('link', { name: /andere Auswahl/i });