@@ -35,6 +35,8 @@ import Reflex.EventWriter
35import Reflex.PerformEvent.Class
35import Reflex.PerformEvent.Class
36import Reflex.PostBuild.Base
36import Reflex.PostBuild.Base
37import Reflex.Requester.Base
37import Reflex.Requester.Base
38+import Reflex.Query.Base
39+import Reflex.Query.Class
39import qualified Control.Category
41import qualified Control.Category
40import Control.Lens hiding (element)
42import Control.Lens hiding (element)
@@ -598,6 +600,27 @@ instance Reflex t => HasDomEvent t (TextAreaElement EventResult d t) en where
598instance DomBuilder t m => DomBuilder t (ReaderT r m) where
600instance DomBuilder t m => DomBuilder t (ReaderT r m) where
599 type DomBuilderSpace (ReaderT r m) = DomBuilderSpace m
601 type DomBuilderSpace (ReaderT r m) = DomBuilderSpace m
603+instance (DomBuilder t m, MonadFix m, MonadHold t m, Group q, Query q, Additive q) => DomBuilder t (QueryT t q m) where
604+ type DomBuilderSpace (QueryT t q m) = DomBuilderSpace m
605+ textNode = liftTextNode
606+ element elementTag cfg (QueryT child) = QueryT $ do
609+ { _elementConfig_eventSpec = _elementConfig_eventSpec cfg }
610+ (e, (a, newS)) <- lift $ element elementTag cfg' $ runStateT child s
614+ inputElement = lift . inputElement
615+ textAreaElement = lift . textAreaElement
616+ selectElement cfg (QueryT child) = QueryT $ do
618+ (e, (a, newS)) <- lift $ selectElement cfg $ runStateT child s
621+ placeRawElement = lift . placeRawElement
622+ wrapRawElement e = lift . wrapRawElement e
601type LiftDomBuilder t f m =
624type LiftDomBuilder t f m =
602 ( Reflex t
625 ( Reflex t
603 , MonadTransControlStateless f
626 , MonadTransControlStateless f
@@ -650,6 +673,7 @@ deriving instance DomRenderHook t m => DomRenderHook t (EventWriterT t w m)
650deriving instance DomRenderHook t m => DomRenderHook t (RequesterT t req rsp m)
673deriving instance DomRenderHook t m => DomRenderHook t (RequesterT t req rsp m)
652deriving instance DomRenderHook t m => DomRenderHook t (PostBuildT t m)
675deriving instance DomRenderHook t m => DomRenderHook t (PostBuildT t m)
676+deriving instance DomRenderHook t m => DomRenderHook t (QueryT t q m)
654{-# DEPRECATED liftElementConfig "Use 'id' instead; this function is no longer necessary" #-}
678{-# DEPRECATED liftElementConfig "Use 'id' instead; this function is no longer necessary" #-}
655liftElementConfig :: ElementConfig er t s -> ElementConfig er t s
679liftElementConfig :: ElementConfig er t s -> ElementConfig er t s