BUG: Dialog lightbox SnapshotsPage — bouton Fermer inopérant (MudDialog dans @if) #94

Closed
opened 2026-08-12 10:30:07 +02:00 by nonobis · 1 comment
Owner

Contexte

Certains boutons Fermer de popups ne répondent pas. Cause racine connue et déjà corrigée ailleurs (commit c266f26, pattern documenté dans heimdall-dev) : un MudDialog enveloppé dans un @if. Quand on passe Visible=false, le @if détruit le composant au lieu de le cacher → le dialog reste affiché par le MudDialogProvider mais orphelin, plus aucun bouton ne répond.

État actuel

  • SnapshotsPage.razor lignes 58-81 : @if (_lightboxEvent is not null) { <MudDialog @bind-Visible="_showLightbox"> ... <MudButton OnClick="(() => _showLightbox = false)">Fermer</MudButton> } → pattern défectueux (constat code, 12/08/2026). Ouvrir un snapshot puis cliquer Fermer → le dialog ne se ferme pas (ou se fige).
  • Les autres pages (UsersPage, SitesPage, EventsPage, CameraDetail...) utilisent déjà @bind-Visible sans @if → OK.

À faire

  1. SnapshotsPage.razor : sortir le MudDialog du @if ; garder le dialog toujours rendu, piloté uniquement par @bind-Visible="_showLightbox" ; protéger le contenu avec @if (_lightboxEvent is not null) à l'intérieur du DialogContent.
  2. Vérifier DiscoveriesPage.razor, SiteDetail.razor, AgentDetail.razor, SettingsPage.razor pour le même pattern.
  3. Audit rapide : chercher tous les @if précédant un <MudDialog dans src/Heimdall.Web/ (le script de la skill heimdall-dev le fait).

Critères d'acceptation

  • Le bouton Fermer (et la croix CloseButton=true) ferment le lightbox snapshot à coup sûr.
  • Aucun <MudDialog> ne reste sous un @if dans le code.

Fichiers concernés

  • src/Heimdall.Web/Components/Pages/SnapshotsPage.razor
  • (à auditer) DiscoveriesPage.razor, SiteDetail.razor, AgentDetail.razor, SettingsPage.razor


Maquette

Maquette

Description

Le lightbox snapshot doit être TOUJOURS rendu (MudDialog @bind-Visible sans @if autour), avec un bouton « Fermer » ET une croix « ✕ » fonct


Maquette

Maquette

## Contexte Certains boutons Fermer de popups ne répondent pas. Cause racine connue et déjà corrigée ailleurs (commit c266f26, pattern documenté dans heimdall-dev) : **un `MudDialog` enveloppé dans un `@if`**. Quand on passe `Visible=false`, le `@if` détruit le composant au lieu de le cacher → le dialog reste affiché par le MudDialogProvider mais orphelin, plus aucun bouton ne répond. ## État actuel - `SnapshotsPage.razor` lignes 58-81 : `@if (_lightboxEvent is not null) { <MudDialog @bind-Visible="_showLightbox"> ... <MudButton OnClick="(() => _showLightbox = false)">Fermer</MudButton> }` → **pattern défectueux** (constat code, 12/08/2026). Ouvrir un snapshot puis cliquer Fermer → le dialog ne se ferme pas (ou se fige). - Les autres pages (UsersPage, SitesPage, EventsPage, CameraDetail...) utilisent déjà `@bind-Visible` sans `@if` → OK. ## À faire 1. `SnapshotsPage.razor` : sortir le `MudDialog` du `@if` ; garder le dialog toujours rendu, piloté uniquement par `@bind-Visible="_showLightbox"` ; protéger le contenu avec `@if (_lightboxEvent is not null)` **à l'intérieur** du DialogContent. 2. Vérifier `DiscoveriesPage.razor`, `SiteDetail.razor`, `AgentDetail.razor`, `SettingsPage.razor` pour le même pattern. 3. Audit rapide : chercher tous les `@if` précédant un `<MudDialog` dans `src/Heimdall.Web/` (le script de la skill heimdall-dev le fait). ## Critères d'acceptation - Le bouton Fermer (et la croix `CloseButton=true`) ferment le lightbox snapshot à coup sûr. - Aucun `<MudDialog>` ne reste sous un `@if` dans le code. ## Fichiers concernés - `src/Heimdall.Web/Components/Pages/SnapshotsPage.razor` - (à auditer) DiscoveriesPage.razor, SiteDetail.razor, AgentDetail.razor, SettingsPage.razor --- --- ## Maquette - **Lien Penpot** : [nonobis-design-system › page snapshots](https://penpot.tordais.cc/?page=127dfd1c-12b5-80f7-8008-79c8ea06e42b) ![Maquette](https://forgejo.tordais.cc/attachments/903ccd62-c51a-421f-8530-c69e215b9e2b) - [Détails / composants MudBlazor (README)](https://forgejo.tordais.cc/attachments/12057658-178c-4076-8d97-d7a4ea837941) - Statut : maquette appliquée dans Penpot ✓ ## Description Le lightbox snapshot doit être TOUJOURS rendu (MudDialog @bind-Visible sans @if autour), avec un bouton « Fermer » ET une croix « ✕ » fonct --- ## Maquette - **Lien Penpot** : [nonobis-design-system › page snapshots](https://penpot.tordais.cc/?page=127dfd1c-12b5-80f7-8008-79c8ea06e42b) ![Maquette](https://forgejo.tordais.cc/attachments/903ccd62-c51a-421f-8530-c69e215b9e2b) - [Détails / composants MudBlazor (README)](https://forgejo.tordais.cc/attachments/12057658-178c-4076-8d97-d7a4ea837941) - Statut : maquette appliquée dans Penpot ✓
Author
Owner

Maquette the-designer intégrée (14/08/2026) :

Maquette the-designer intégrée (14/08/2026) : - Aperçu (PNG) : https://forgejo.tordais.cc/attachments/903ccd62-c51a-421f-8530-c69e215b9e2b - Détails / composants MudBlazor (README) : https://forgejo.tordais.cc/attachments/12057658-178c-4076-8d97-d7a4ea837941 - Statut : application Penpot différée (plugin MCP non connecté) — maquette locale consultable
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set

Reference
nonobis/Heimdall#94
No description provided.