{# Fragment Turbo Frame — ne pas étendre base.html.twig #} {# `sharedOnly` porte le mode « discussions partagées ». Valeur par défaut posée ICI et pas passée par les appelants : ce gabarit a DEUX points d'entrée — le contrôleur sessionsList() (rechargement de la frame) et l'include direct de _conversation-sidebar.html.twig au rendu initial de la page. Le défaut local évite de devoir tenir les deux à jour, et `?? false` reste correct sous strict_variables. #} {% set sharedOnly = sharedOnly ?? false %} {% if sharedOnly %} {# ================================================================== MODE « DISCUSSIONS PARTAGÉES » Liste servie par findSharedByUser() : TOUTES les discussions partagées, sans fenêtre temporelle. Pas de regroupement par date ici — le critère d'entrée dans cette liste n'est pas la fraîcheur, et des sections « Plus ancien » laisseraient croire que la liste normale a seulement été filtrée. ================================================================== #}
{% if sessions|length > 0 %}

Partagées

{% for session in sessions %} {% include '_molecules/conv-item/conv-item.html.twig' with { session: session, isActive: (currentSessionUuid ?? app.request.attributes.get('uuid')) == session.uuid } only %} {% endfor %}
{% else %} {# Cas vide EXPLICITE : une liste blanche laisserait croire à un chargement raté ou à une liste tronquée, sur la seule vue dont l'utilisateur attend qu'elle fasse le tour complet de ses partages. #}

Aucune discussion partagée.
Partagez-en une depuis son menu « … » pour la retrouver ici.

{% endif %}
{% else %} {% set today = 'now'|date('Y-m-d') %} {% set yesterday = '-1 day'|date('Y-m-d') %} {% set active = currentSessionUuid ?? app.request.attributes.get('uuid') %} {% set pinnedSessions = sessions|filter(s => s.isPinned) %} {% set todaySessions = sessions|filter(s => not s.isPinned and s.updatedAt|date('Y-m-d') == today) %} {% set yesterdaySessions = sessions|filter(s => not s.isPinned and s.updatedAt|date('Y-m-d') == yesterday) %} {% set olderSessions = sessions|filter(s => not s.isPinned and s.updatedAt|date('Y-m-d') < yesterday) %} {% if pinnedSessions|length > 0 %}

Épinglées

{% for session in pinnedSessions %} {% include '_molecules/conv-item/conv-item.html.twig' with { session: session, isActive: active == session.uuid } only %} {% endfor %}
{% endif %} {% if todaySessions|length > 0 %}

Aujourd'hui

{% for session in todaySessions %} {% include '_molecules/conv-item/conv-item.html.twig' with { session: session, isActive: active == session.uuid } only %} {% endfor %}
{% endif %} {% if yesterdaySessions|length > 0 %}

Hier

{% for session in yesterdaySessions %} {% include '_molecules/conv-item/conv-item.html.twig' with { session: session, isActive: active == session.uuid } only %} {% endfor %}
{% endif %} {% if olderSessions|length > 0 %}

Plus ancien

{% for session in olderSessions %} {% include '_molecules/conv-item/conv-item.html.twig' with { session: session, isActive: active == session.uuid } only %} {% endfor %}
{% endif %} {% if sessions|length == 0 %}

Aucune conversation

{% endif %} {% endif %}