From 747430eaae38148465ae0ff4d1362b5fa4013525 Mon Sep 17 00:00:00 2001 From: NickGhignatti Date: Mon, 28 Jul 2025 12:57:29 +0200 Subject: [PATCH] =?UTF-8?q?=F0=9F=90=9B=20Fix=20plot=20not=20resetting?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- frontend/src/main/scala/view/ButtonBar.scala | 1 + frontend/src/main/scala/view/Modal.scala | 15 +++++++++++++-- 2 files changed, 14 insertions(+), 2 deletions(-) diff --git a/frontend/src/main/scala/view/ButtonBar.scala b/frontend/src/main/scala/view/ButtonBar.scala index 48689d5..239451c 100644 --- a/frontend/src/main/scala/view/ButtonBar.scala +++ b/frontend/src/main/scala/view/ButtonBar.scala @@ -64,6 +64,7 @@ class ButtonBar( case "Reset" => eventBus.writer.onNext(Event.ResetSimulation) canvasManager.reset() + modal.resetPlot() if (timerId.now().isDefined) { dom.window.clearInterval(timerId.now().get) } diff --git a/frontend/src/main/scala/view/Modal.scala b/frontend/src/main/scala/view/Modal.scala index 05c5fbe..7610145 100644 --- a/frontend/src/main/scala/view/Modal.scala +++ b/frontend/src/main/scala/view/Modal.scala @@ -20,12 +20,25 @@ class Modal( private val gamesBankroll: Var[List[Double]] = Var(List.empty) private val customersBankroll: Var[List[Double]] = Var(List.empty) + private val plotCanvas = Var[Option[html.Canvas]](None) + import org.nspl.canvasrenderer.given import org.nspl.given def open(): Unit = isVisible.set(true) def close(): Unit = isVisible.set(false) + def resetPlot(): Unit = + gamesBankroll.set(List.empty) + customersBankroll.set(List.empty) + + try + val newCanvas = createPlot() + plotCanvas.set(Some(newCanvas)) + catch + case e: Exception => + println(s"Error creating plot after reset: ${e.getMessage}") + private def updateBankrolls(): Unit = gamesBankroll.set( gamesBankroll.now() :+ dataManager.now().currentGamesBankroll @@ -121,8 +134,6 @@ class Modal( canvas def init(): HtmlElement = - val plotCanvas = Var[Option[html.Canvas]](None) - dom.window.setInterval( () => dataManager.set(