{# components/contact_form.html.twig #}

Envoyez-nous un message

{% if isSuccess %}

Message envoyé avec succès !

Nous avons bien reçu votre demande et nous vous répondrons dans les plus brefs délais.

{% else %} {% if errorMessage %}

Une erreur est survenue

{{ errorMessage }}

Veuillez vérifier vos informations et réessayer. Si le problème persiste, n'hésitez pas à nous contacter par mail, par téléphone.

{% endif %} {{ form_start(form, {'attr': {'data-controller': 'contact_form', 'data-action': 'live#action:prevent', 'data-live-action-param': 'save'}}) }} {# Ajout du template pour les champs de formulaire #} {% macro form_field(field, attr, placeholder, fullWidth) %} {% set hasError = field.vars.errors|length > 0 %} {% set isRequired = field.vars.required %} {% set isCheckbox = field.vars.block_prefixes[1] == 'checkbox' %} {% set isRadio = field.vars.block_prefixes[1] == 'radio' %} {% set isExpanded = field.vars.expanded is defined and field.vars.expanded %} {% if isExpanded and isRadio %} {# Inclure un template spécifique pour les boutons radio si nécessaire #} {% else %}
{% if not isCheckbox %} {% endif %}
{% set defaultClass = 'block w-full rounded-md shadow-sm py-2 px-3 focus:outline-none focus:ring-2 ' ~ (hasError ? 'border-red-300 text-red-900 placeholder-red-300 focus:border-red-500 focus:ring-red-500' : 'border-gray-300 focus:border-blue-500 focus:ring-blue-500') %} {{ form_widget(field, { attr: attr|default({})|merge({ 'class': attr.class|default('') ~ ' ' ~ defaultClass, 'placeholder': placeholder|default(''), 'readonly': attr.readonly|default(false) }) }) }} {% if isCheckbox %}
{% endif %} {% if hasError %}
{% endif %}
{% if hasError %}
{{ form_errors(field) }}
{% endif %}
{% endif %} {% endmacro %} {# Utilisation du macro #} {% import _self as formMacros %}
{{ formMacros.form_field(form.firstname, {}, 'Votre prénom') }}
{{ formMacros.form_field(form.lastname, {}, 'Votre nom') }}
{{ formMacros.form_field(form.email, {}, 'Votre email') }}
{{ formMacros.form_field(form.phone, {}, 'Votre téléphone') }}
{{ formMacros.form_field(form.subject, {}, 'Objet de votre message', true) }}
{{ formMacros.form_field(form.message, {'rows': 5}, 'Votre message', true) }}
{% set hasError = form.privacyPolicy.vars.errors|length > 0 %}
{{ form_widget(form.privacyPolicy, { 'attr': { 'class': 'h-4 w-4 focus:ring-2 border-gray-300 rounded ' ~ (hasError ? 'text-red-600 focus:ring-red-500' : 'text-indigo-600 focus:ring-indigo-500') } }) }}
{% if hasError %}
{{ form_errors(form.privacyPolicy) }}
{% endif %}
{% if hasError %}
{% endif %}
{{ form_end(form) }} {% endif %}