Skip to content
Snippets Groups Projects
Commit d1461e7a authored by Jean-Paul Calderone's avatar Jean-Paul Calderone
Browse files

take a stab at the Haskell side w/ jsaddle-dom (but probably wrong)

parent e253aec1
No related branches found
No related tags found
1 merge request!41Add a tech demo button showing browser history integration
Pipeline #4135 failed
......@@ -28,6 +28,7 @@ library
, base32
, cereal
, ghc-prim
, jsaddle-dom
if os(android)
-- Pull in the Android implementation of some platform-specific modules.
......
......@@ -6,6 +6,9 @@
module Pages.TechDemo (techDemoPage) where
import JSDOM
import JSDOM.Generated.History
import JSDOM.Generated.Window
import qualified Data.ByteString.Lazy as LBS
import qualified Data.Text as T
import qualified Data.Text.IO as T
......@@ -110,6 +113,24 @@ techDemoPage = prerender_ (pure ()) $ do
jump "magic-folder list" (FrontendRoute_MagicFolders :/ ())
jump "file browser" (FrontendRoute_FileBrowser :/ ["foo", "bar"])
-- Demo jsaddle-dom-based back / forward navigation
windowM <- currentWindow
historyM <- getHistory <$> windowM
case historyM of
-- No Window ... no navigation.
Nothing -> blank
Just history -> navigationButtons history
navigationButtons :: History -> m ()
navigationButtons history = do
b <- button "Back"
b' <- widgetHold blank $ ffor b (\() -> back history)
dyn_ b'
f <- button "Forward"
f' <- widgetHold blank $ ffor f (\() -> forward history)
dyn_ f'
jump :: (DomBuilder t m, SetRoute t r m) => T.Text -> r -> m ()
jump label route = do
b <- button $ "Jump to " <> label
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment