<div class="container-fluid py-4"> <app-header [account]="account" [isOwner]="isOwner"></app-header> <div class="container my-4"> <div class="row justify-content-center"> <div class="col-lg-10"> <!-- Alerte d'erreur --> <div *ngIf="error" class="alert alert-danger alert-dismissible fade show" role="alert"> {{ error }} <button type="button" class="btn-close" (click)="error = null"></button> </div> <!-- Chargement global --> <div *ngIf="loading" class="text-center my-4"> <div class="spinner-border text-primary" role="status"> <span class="visually-hidden">Chargement...</span> </div> <p class="mt-2">Traitement en cours...</p> </div> <!-- Connexion au portefeuille si déconnecté --> <div *ngIf="!isConnected" class="card"> <div class="card-body text-center p-5"> <app-connect-wallet></app-connect-wallet> </div> </div> <!-- Contenu principal si connecté --> <div *ngIf="isConnected" class="fade-in"> <!-- Statut du workflow --> <app-workflow-status [currentStatus]="currentStatus" [isOwner]="isOwner"> </app-workflow-status> <!-- Gestion des électeurs (admin uniquement, workflow 0) --> <app-voter-management *ngIf="isOwner && currentStatus === '0'" [currentStatus]="currentStatus"> </app-voter-management> <!-- Gestion des propositions (électeurs inscrits, workflow 1) --> <app-proposal-management *ngIf="isVoter && currentStatus === '1'" [currentStatus]="currentStatus"> </app-proposal-management> <!-- Session de vote (électeurs inscrits, workflow 3) --> <app-voting-session *ngIf="isVoter && (currentStatus === '3' || currentStatus === '5')" [currentStatus]="currentStatus"> </app-voting-session> <!-- Message si pas d'action disponible --> <div *ngIf="!isOwner && !isVoter" class="card"> <div class="card-body text-center p-4"> <h4>Accès limité</h4> <p>Votre adresse n'est pas enregistrée comme électeur pour cette session de vote.</p> <p>Veuillez contacter l'administrateur pour être ajouté à la liste des électeurs.</p> </div> </div> </div> </div> </div> </div> </div>