git.iko.soy/typeable/reflex-dom-nested-routing
on master help sign in
Update for newer reflex, add more instances
commit5b246bd3d0d891cdde8e21584ab7db5463a0c900 authorTom Smalley <tfsmalley@gmail.com> dateWed 4 Sep 2019, 08:51 (7 years ago) parentc49c75c
2 files changed+21−2
Reflex/Dom/Routing/Nested.hs+11−1 Reflex/Dom/Routing/Writer.hs+10−1
Reflex/Dom/Routing/Nested.hs+11−1
@@ -133,7 +133,7 @@ instance HasRoute t segment m => HasRoute t segment (DynamicWriterT t w m) where
133133 routeContext = lift routeContext
134134 withSegments f (DynamicWriterT a) = DynamicWriterT $ StrictState.mapStateT (withSegments f) a
135135
136−instance MonadDynamicWriter t w m => MonadDynamicWriter t w (RouteT t segment m) where
136+instance DynamicWriter t w m => DynamicWriter t w (RouteT t segment m) where
137137 tellDyn = lift . tellDyn
138138
139139instance HasDocument m => HasDocument (RouteT t segment m)
@@ -144,6 +144,16 @@ instance HasJSContext m => HasJSContext (RouteT t segment m) where
144144instance MonadJSM m => MonadJSM (RouteT t segment m)
145145#endif
146146
147+deriving instance DomRenderHook t m => DomRenderHook t (RouteT t segment m)
148+
149+instance HasJS x m => HasJS x (RouteT t segment m) where
150+ type JSX (RouteT t segment m) = JSX m
151+ liftJS = lift . liftJS
152+
153+instance (Prerender js t m, Monad m, Reflex t) => Prerender js t (RouteT t segment m) where
154+ type Client (RouteT t segment m) = RouteT t segment (Client m)
155+ prerender (RouteT a) (RouteT b) = RouteT $ prerender a b
156+
147157
148158instance PrimMonad m => PrimMonad (RouteT t segment m) where
149159 type PrimState (RouteT t segment m) = PrimState m
Reflex/Dom/Routing/Writer.hs+10−1
@@ -43,6 +43,15 @@ newtype RouteWriterT t segment m a = RouteWriterT { unRouteWriterT :: EventWrite
4343instance (MonadWidget t m) => RouteWriter t segment (RouteWriterT t segment m) where
4444 tellRoute = RouteWriterT . tellEvent
4545
46+deriving instance DomRenderHook t m => DomRenderHook t (RouteWriterT t segment m)
47+
48+instance HasJS x m => HasJS x (RouteWriterT t segment m) where
49+ type JSX (RouteWriterT t segment m) = JSX m
50+ liftJS = lift . liftJS
51+
52+instance (Prerender js t m, Monad m, Reflex t) => Prerender js t (RouteWriterT t segment m) where
53+ type Client (RouteWriterT t segment m) = RouteWriterT t segment (Client m)
54+ prerender (RouteWriterT a) (RouteWriterT b) = RouteWriterT $ prerender a b
4655
4756instance Requester t m => Requester t (RouteWriterT t segment m) where
4857 type Request (RouteWriterT t segment m) = Request m
@@ -102,7 +111,7 @@ instance EventWriter t w m => EventWriter t w (RouteWriterT t segment m) where
102111
103112instance RouteWriter t segment m => RouteWriter t segment (DynamicWriterT t w m) where
104113 tellRoute = lift . tellRoute
105−instance MonadDynamicWriter t w m => MonadDynamicWriter t w (RouteWriterT t segment m) where
114+instance DynamicWriter t w m => DynamicWriter t w (RouteWriterT t segment m) where
106115 tellDyn = lift . tellDyn
107116
108117