From f3942ae7724ff92d1949f245ddc1cb37c3dba9c8 Mon Sep 17 00:00:00 2001
From: Jean-Paul Calderone <exarkun@twistedmatrix.com>
Date: Tue, 25 Apr 2023 08:36:42 -0400
Subject: [PATCH] some explainers

---
 obelisk/frontend/src/Pages/TechDemo.hs | 12 ++++++++++--
 1 file changed, 10 insertions(+), 2 deletions(-)

diff --git a/obelisk/frontend/src/Pages/TechDemo.hs b/obelisk/frontend/src/Pages/TechDemo.hs
index 77e48b0..d565609 100644
--- a/obelisk/frontend/src/Pages/TechDemo.hs
+++ b/obelisk/frontend/src/Pages/TechDemo.hs
@@ -119,9 +119,17 @@ techDemoPage = prerender_ (pure ()) $ do
 -- | Render a "Back" button hooked up to the browser history navigation action "back".
 navigationDemo :: (Prerender t m, DomBuilder t m) => m ()
 navigationDemo = do
+    -- This renders a button into the page so there is something to see and
+    -- click on.  It returns an `Event t ()` that triggers when the button is
+    -- clicked.
     backEv <- button "Back"
-    prerender_ blank $ do
-      -- performEvent_?  Why?
+
+    -- Only do the rest of this on the client.  There's no way to look up the
+    -- browser Window or History when doing server-side rendering.
+    prerender_ blank $
+
+      -- Use performEvent_ to take an action on the Window whenever the event
+      -- triggers.
       performEvent_ . ffor backEv $ \() -> do
         windowM <- currentWindow
         case windowM of
-- 
GitLab