on master help sign in
Fix frontend configs in right hand side of prerender
9acd90aKen Micklas
lib/executable-config/frontend/src/Obelisk/ExecutableConfig/Frontend.hs+8−1
@@ -70,9 +70,11 @@ newtype FrontendConfigsT m a = FrontendConfigsT { unFrontendConfigsT :: ReaderT
70 , NotReady t
70 , NotReady t
71 , PerformEvent t
71 , PerformEvent t
72 , PostBuild t
72 , PostBuild t
73− , Prerender js t
74 , TriggerEvent t
73 , TriggerEvent t
75 , HasDocument
74 , HasDocument
75+ , DomRenderHook t
76+ , HasJSContext
77+ , HasJS js
76 )
78 )
77
79
78instance Adjustable t m => Adjustable t (FrontendConfigsT m) where
80instance Adjustable t m => Adjustable t (FrontendConfigsT m) where
@@ -81,6 +83,11 @@ instance Adjustable t m => Adjustable t (FrontendConfigsT m) where
81 traverseIntMapWithKeyWithAdjust f m e = FrontendConfigsT $ traverseIntMapWithKeyWithAdjust (\k v -> unFrontendConfigsT $ f k v) m e
83 traverseIntMapWithKeyWithAdjust f m e = FrontendConfigsT $ traverseIntMapWithKeyWithAdjust (\k v -> unFrontendConfigsT $ f k v) m e
82 traverseDMapWithKeyWithAdjustWithMove f m e = FrontendConfigsT $ traverseDMapWithKeyWithAdjustWithMove (\k v -> unFrontendConfigsT $ f k v) m e
84 traverseDMapWithKeyWithAdjustWithMove f m e = FrontendConfigsT $ traverseDMapWithKeyWithAdjustWithMove (\k v -> unFrontendConfigsT $ f k v) m e
83
85
86+instance Prerender js t m => Prerender js t (FrontendConfigsT m) where
87+ type Client (FrontendConfigsT m) = FrontendConfigsT (Client m)
88+ prerender server client = FrontendConfigsT $ ReaderT $ \configs ->
89+ prerender (runFrontendConfigsT configs server) (runFrontendConfigsT configs client)
90+
84instance PrimMonad m => PrimMonad (FrontendConfigsT m) where
91instance PrimMonad m => PrimMonad (FrontendConfigsT m) where
85 type PrimState (FrontendConfigsT m) = PrimState m
92 type PrimState (FrontendConfigsT m) = PrimState m
86 primitive = lift . primitive
93 primitive = lift . primitive
lib/frontend/src/Obelisk/Frontend.hs+1
@@ -82,6 +82,7 @@ type PrebuildAgnostic t route m =
82 ( SetRoute t route m
82 ( SetRoute t route m
83 , RouteToUrl route m
83 , RouteToUrl route m
84 , MonadFix m
84 , MonadFix m
85+ , HasFrontendConfigs m
85 )
86 )
86
87
87data Frontend route = Frontend
88data Frontend route = Frontend