{% extends 'layout_booking.html.twig' %} {% macro stepFormField(form) %}
{{ form.vars.label_room }}
{{ form.vars.label_price }}
{{ form_row(form, { 'attr': { 'hx-post': path('app_booking_create_step_1_refresh'), 'hx-swap': 'none', 'hx-trigger': 'change delay:300ms', } }) }}
{% endmacro %} {% block content %} {{ form_start(form, { 'attr': { 'class': 'flex-1 flex flex-col min-h-0', 'hx-post': path('app_booking_create_step_1'), 'hx-target': '#form-wrapper', 'hx-swap': 'innerHTML' } }) }} {# Pagination - mobile only (above summary) #}
{% include 'booking/_pagination.html.twig' with { 'current_step': 1 } %}
{% block booking_summary %}
{% include 'booking/_summary.html.twig' with { 'bookingCreateDto': bookingCreateDto, 'summaryData': summaryData } %}
{% endblock %} {% block form %}
{# Flash messages - must be inside form-wrapper for HTMX swap to display them #} {% include '_partials/_flashes.html.twig' %} {# Pagination - desktop only (fixed above scrollable content) #}

Unterkunft

{% do form.roomSelections.setRendered %} {% block room_selection_form %}
{{ form_errors(form) }} {% if groupedRooms.by_room is not empty %}

Zimmer

{% for roomId, room in groupedRooms.by_room %} {{ _self.stepFormField(form.roomSelections[roomId]) }} {% endfor %} {% endif %} {% if groupedRooms.by_pax is not empty %}

Betten

{% for roomId, room in groupedRooms.by_pax %} {{ _self.stepFormField(form.roomSelections[roomId]) }} {% endfor %} {% endif %}
{% endblock %}
{% endblock %}
{{ form_rest(form) }} {{ form_end(form) }} {% endblock %}