From 817aeedc6f20603a41f0ed17a28cd5b6688393a8 Mon Sep 17 00:00:00 2001 From: Colin Maudry Date: Tue, 23 Jun 2026 17:42:50 +0200 Subject: [PATCH] =?UTF-8?q?fix(tableaux):=20garde=20hscrollReady=20apr?= =?UTF-8?q?=C3=A8s=20v=C3=A9rification=20dashContainer=20#82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Si la garde est posée avant de vérifier que dashContainer existe, un déclenchement prématuré de rootObs (avant le rendu Dash) marque le wrapper comme traité sans jamais injecter le scroll wrapper. Co-Authored-By: Claude Opus 4.8 --- src/assets/table_hscroll.js | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/assets/table_hscroll.js b/src/assets/table_hscroll.js index 908b2aa..29bdaf7 100644 --- a/src/assets/table_hscroll.js +++ b/src/assets/table_hscroll.js @@ -4,11 +4,14 @@ function setup(wrapper) { if (wrapper.dataset.hscrollReady === "1") return; - wrapper.dataset.hscrollReady = "1"; const dashContainer = wrapper.querySelector(".dash-spreadsheet-container"); if (!dashContainer) return; + // Garde posée après la vérification de dashContainer, avant toute manipulation DOM + // qui déclencherait rootObs et provoquerait une re-entrée dans setup(). + wrapper.dataset.hscrollReady = "1"; + // Injecter le conteneur scrollable horizontal autour du conteneur Dash const scrollWrapper = document.createElement("div"); scrollWrapper.className = "dt-scroll-wrapper";