@@ -86,6 +86,7 @@ import Reflex.Host.Class
86import Reflex.PerformEvent.Class
86import Reflex.PerformEvent.Class
87import Reflex.PostBuild.Class
87import Reflex.PostBuild.Class
88import Reflex.TriggerEvent.Base hiding (askEvents)
88import Reflex.TriggerEvent.Base hiding (askEvents)
89+import qualified Reflex.TriggerEvent.Base as TriggerEventT (askEvents)
89import Reflex.TriggerEvent.Class
90import Reflex.TriggerEvent.Class
91import Control.Concurrent
92import Control.Concurrent
@@ -146,7 +147,6 @@ import Foreign.JavaScript.Internal.Utils
146data ImmediateDomBuilderEnv t m
147data ImmediateDomBuilderEnv t m
147 = ImmediateDomBuilderEnv { _immediateDomBuilderEnv_document :: Document
148 = ImmediateDomBuilderEnv { _immediateDomBuilderEnv_document :: Document
148 , _immediateDomBuilderEnv_parent :: Node
149 , _immediateDomBuilderEnv_parent :: Node
149− , _immediateDomBuilderEnv_events :: Chan [DSum (EventTriggerRef t) TriggerInvocation] -- TODO: The same chan needs to be passed to 'TriggerEventT'; this should be factored out.
152newtype ImmediateDomBuilderT t m a = ImmediateDomBuilderT { unImmediateDomBuilderT :: ReaderT (ImmediateDomBuilderEnv t m) (RequesterT t JSM Identity (TriggerEventT t m)) a }
152newtype ImmediateDomBuilderT t m a = ImmediateDomBuilderT { unImmediateDomBuilderT :: ReaderT (ImmediateDomBuilderEnv t m) (RequesterT t JSM Identity (TriggerEventT t m)) a }
@@ -186,8 +186,9 @@ runImmediateDomBuilderT
187 => ImmediateDomBuilderT t m a
187 => ImmediateDomBuilderT t m a
188 -> ImmediateDomBuilderEnv t m
188 -> ImmediateDomBuilderEnv t m
189+ -> Chan [DSum (EventTriggerRef t) TriggerInvocation]
190−runImmediateDomBuilderT (ImmediateDomBuilderT a) env = flip runTriggerEventT (_immediateDomBuilderEnv_events env) $ do
191+runImmediateDomBuilderT (ImmediateDomBuilderT a) env eventChan = flip runTriggerEventT eventChan $ do
191 win <- DOM.currentWindowUnchecked
192 win <- DOM.currentWindowUnchecked
192 rec (x, req) <- runRequesterT (runReaderT a env) rsp
193 rec (x, req) <- runRequesterT (runReaderT a env) rsp
193 rsp <- performEventAsync $ ffor req $ \rm f -> liftJSM $ runInAnimationFrame win f $
194 rsp <- performEventAsync $ ffor req $ \rm f -> liftJSM $ runInAnimationFrame win f $
@@ -212,7 +213,7 @@ askParent = ImmediateDomBuilderT $ asks _immediateDomBuilderEnv_parent
213{-# INLINABLE askEvents #-}
214{-# INLINABLE askEvents #-}
214askEvents :: Monad m => ImmediateDomBuilderT t m (Chan [DSum (EventTriggerRef t) TriggerInvocation])
215askEvents :: Monad m => ImmediateDomBuilderT t m (Chan [DSum (EventTriggerRef t) TriggerInvocation])
215−askEvents = ImmediateDomBuilderT $ asks _immediateDomBuilderEnv_events
216+askEvents = ImmediateDomBuilderT . lift . lift $ TriggerEventT.askEvents
217{-# INLINABLE append #-}
218{-# INLINABLE append #-}
218append :: (IsNode n, MonadJSM m) => n -> ImmediateDomBuilderT t m ()
219append :: (IsNode n, MonadJSM m) => n -> ImmediateDomBuilderT t m ()