{{-- * VUE : Fil d'actualité (Homepage) --}} {{-- ? Pattern Alpine.js API-First : feedComponent() gère 100% de la dynamique --}} {{-- ! Cloisonnement magasin strict : un vendeur ne voit QUE les posts de son magasin --}} @extends('layouts.base') @section('title', 'Fil d\'actualités - Animation Vendeurs') @section('x-data', "feedComponent({ canPin: " . json_encode(optional(auth()->user())->isAdmin()) . " })") @section('content') {{-- * Conteneur principal avec détection scroll infini --}}
{{-- * Widget Bienvenue + compteur expirations/épinglés --}} {{-- ? Ton "Pro, Simple, Sympa" de la charte : personnalisation avec prénom --}}
{{-- Header compact toujours visible --}}
{{ strtoupper(substr(optional(auth()->user())->first_name ?? 'M', 0, 1)) }}

{{ optional(auth()->user())->first_name ?? 'Mous' }} 👋

Filtres & infos Masquer les filtres

{{-- Compteurs rapides --}}
{{-- Chevron --}}
{{-- * Filtres rapides par catégorie (Prime, Zimm, Nouveauté, Vie Mag) --}} {{-- ? Arrondis généreux (rounded-full) selon charte B-Bloc --}}
{{-- Gradient fade edges pour affordance scroll --}}
{{-- Scroll container avec snap --}}
{{-- * Zone épinglée : Posts forcés en haut par les admins --}} {{-- ? Bordure dashed pour différenciation visuelle selon charte --}} {{-- ! Les posts épinglés restent visibles même après expiration --}} {{-- * Zone épinglée : Carrousel de posts forcés en haut par les admins --}} {{-- ? Bordure dashed pour différenciation visuelle selon charte --}} {{-- ! Les posts épinglés restent visibles même après expiration --}}

Posts épinglés (admin)

{{-- * Skeleton Loading enrichi : simule la structure réelle des posts --}} {{-- ? UX Senior : skeleton reflète le contenu pour éviter le layout shift --}} {{-- * Gestion d'erreur avec feedback utilisateur --}} {{-- ? Ton "Sympa" : message d'erreur friendly avec action de retry --}} {{-- * Posts réels avec cloisonnement magasin --}} {{-- ! CRITIQUE : Ne jamais afficher les posts d'un autre magasin (sauf nationaux) --}}
{{-- * Modal de création de post --}} @include('components.post-create-modal') {{-- * Modal d'édition de post --}}
{{-- * Modal vue détail post avec galerie --}} @include('components.post-detail-modal') @endsection