git.iko.soy/reflex-route-simple
on master help sign in
4 files changed+16−3
since splitsnapshots
unifiedsplit
Readme.md+1−1 default.nix+1 reflex-route-simple.cabal+8−2 src/Reflex/Dom/Route/Simple/Internal/MonadRoute.hs+6
Readme.md+1−1
@@ -75,7 +75,7 @@ The `Proxy`s are useful because you can over over them in a sufficiently smart e
7575We can now run our routes, supplying a lambda that looks through all possible routes and decides what page should be displayed. You can pattern-match on the exact same structures we used earlier to create the routes:
7676
7777```haskell
78−bodyW :: MonadWidget t m => Model -> m ()
78+bodyW :: MonadWidget t m => m ()
7979bodyW = runRouteT' \case
8080 Nothing -> articlesW
8181 Just IndexR -> articlesW
default.nix+1
@@ -56,6 +56,7 @@ let
5656 ./cabal.project
5757 ];
5858 };
59+ flags.example = true;
5960 };
6061 }
6162 ];
reflex-route-simple.cabal+8−2
@@ -4,6 +4,10 @@ version: 0.1.0.0
44author: Ilya Kostyuchenko
55maintainer: ilyakooo0@gmail.com
66
7+flag example
8+ default: False
9+ manual: True
10+
711library
812 exposed-modules:
913 Reflex.Dom.Route.Simple,
@@ -90,8 +94,10 @@ executable reflex-route-simple-example
9094 reflex-dom,
9195 reflex-route-simple,
9296 text,
93− containers,
94− lorem
97+ containers
98+ if flag(example)
99+ build-depends:
100+ lorem
95101 hs-source-dirs: app
96102 default-language: Haskell2010
97103 ghc-options:
src/Reflex/Dom/Route/Simple/Internal/MonadRoute.hs+6
@@ -67,6 +67,12 @@ instance HasJSContext m => HasJSContext (RouteT t r m) where
6767
6868instance (Monad m, MonadRoute r t m) => MonadRoute r t (ReaderT r' m)
6969
70+instance (Monad m, MonadRoute r t m) => MonadRoute r t (EventWriterT t w m)
71+
72+instance (Monad m, MonadReader r m) => MonadReader r (RouteT t u m) where
73+ ask = lift ask
74+ local f (RouteT m) = RouteT $ local f m
75+
7076instance Requester t m => Requester t (RouteT t r m) where
7177 type Request (RouteT t r m) = Request m
7278 type Response (RouteT t r m) = Response m