on develop help sign in
Make requestDomAction a class method of DomRenderHook
commit9a0c6a2d4d3f64e9b0d65a6f969e7e36e0d45a28 authorAli Abrar <aliabrar@gmail.com> dateTue 11 Apr 2017, 12:16 (10 years ago) parent3f3c61a
3 files changed+16−14
reflex-dom-core/reflex-dom-core.cabal+1−1 reflex-dom-core/src/Reflex/Dom/Builder/Class.hs+12−6 reflex-dom-core/src/Reflex/Dom/Builder/Immediate.hs+3−7
reflex-dom-core/reflex-dom-core.cabal+1−1
@@ -51,7 +51,7 @@ library
5151 dependent-map == 0.2.*,
5252 dependent-sum >= 0.3 && < 0.5,
5353 dependent-sum-template >= 0.0.0.4 && < 0.1,
54− directory == 1.2.*,
54+ directory == 1.3.*,
5555 exception-transformers == 0.4.*,
5656 ghcjs-dom >= 0.7.0.4 && < 0.8,
5757 jsaddle >=0.8.0.1 && <0.9,
reflex-dom-core/src/Reflex/Dom/Builder/Class.hs+12−6
@@ -673,15 +673,21 @@ liftTextAreaElement cfg = liftWithStateless $ \run -> textAreaElement $ fmap1 ru
673673liftWrapRawElement :: LiftDomBuilder t f m => RawElement (DomBuilderSpace m) -> RawElementConfig er t (f m) -> f m (Element er (DomBuilderSpace m) t)
674674liftWrapRawElement e es = liftWithStateless $ \run -> wrapRawElement e $ fmap1 run es
675675
676−class Monad m => DomRenderHook m where
676+class (Reflex t, Monad m) => DomRenderHook t m | m -> t where
677677 withRenderHook :: (forall x. JSM x -> JSM x) -> m a -> m a
678+ requestDomAction :: Event t (JSM a) -> m (Event t a)
679+ requestDomAction_ :: Event t (JSM a) -> m ()
678680
679−instance DomRenderHook m => DomRenderHook (ReaderT e m) where
681+instance DomRenderHook t m => DomRenderHook t (ReaderT e m) where
680682 withRenderHook hook (ReaderT a) = ReaderT $ \e -> withRenderHook hook $ a e
683+ requestDomAction = lift . requestDomAction
684+ requestDomAction_ = lift . requestDomAction_
681685
682−instance DomRenderHook m => DomRenderHook (StateT e m) where
686+instance DomRenderHook t m => DomRenderHook t (StateT e m) where
683687 withRenderHook hook (StateT a) = StateT $ \s -> withRenderHook hook $ a s
688+ requestDomAction = lift . requestDomAction
689+ requestDomAction_ = lift . requestDomAction_
684690
685−deriving instance DomRenderHook m => DomRenderHook (EventWriterT t w m)
686−deriving instance DomRenderHook m => DomRenderHook (RequesterT t req rsp m)
687−deriving instance DomRenderHook m => DomRenderHook (PostBuildT t m)
691+deriving instance DomRenderHook t m => DomRenderHook t (EventWriterT t w m)
692+deriving instance DomRenderHook t m => DomRenderHook t (RequesterT t req rsp m)
693+deriving instance DomRenderHook t m => DomRenderHook t (PostBuildT t m)
reflex-dom-core/src/Reflex/Dom/Builder/Immediate.hs+3−7
@@ -162,18 +162,14 @@ instance PrimMonad m => PrimMonad (ImmediateDomBuilderT x m) where
162162instance MonadTrans (ImmediateDomBuilderT t) where
163163 lift = ImmediateDomBuilderT . lift . lift
164164
165−instance (PerformEvent t m, PrimMonad m) => DomRenderHook (ImmediateDomBuilderT t m) where
165+instance (PerformEvent t m, PrimMonad m) => DomRenderHook t (ImmediateDomBuilderT t m) where
166166 withRenderHook hook (ImmediateDomBuilderT a) = do
167167 e <- ImmediateDomBuilderT ask
168168 ImmediateDomBuilderT $ lift $ withRequesting $ \rsp -> do
169169 (x, req) <- lift $ runRequesterT (runReaderT a e) $ runIdentity <$> rsp
170170 return (ffor req $ \rm -> hook $ DMap.traverseWithKey (\_ r -> Identity <$> r) rm, x)
171−
172−requestDomAction :: (Reflex t, Monad m, PrimMonad m) => Event t (JSM a) -> ImmediateDomBuilderT t m (Event t a)
173−requestDomAction = ImmediateDomBuilderT . lift . requestingIdentity
174−
175−requestDomAction_ :: (Reflex t, Monad m, PrimMonad m) => Event t (JSM a) -> ImmediateDomBuilderT t m ()
176−requestDomAction_ = ImmediateDomBuilderT . lift . requesting_
171+ requestDomAction = ImmediateDomBuilderT . lift . requestingIdentity
172+ requestDomAction_ = ImmediateDomBuilderT . lift . requesting_
177173
178174{-# INLINABLE runImmediateDomBuilderT #-}
179175runImmediateDomBuilderT :: (Reflex t, MonadFix m, PerformEvent t m, MonadJSM (Performable m)) => ImmediateDomBuilderT t m a -> ImmediateDomBuilderEnv t m -> m a