on develop help sign in
Add elDynHtml' and elDynHtmlAttr'
commita2b76b1892549f1b6834b3d81bd9bec963aa2a6f authorRyan Trinkle <ryan.trinkle@gmail.com> dateWed 10 Aug 2016, 15:49 (10 years ago) parentfa6764a
1 file changed+14
src/Reflex/Dom/Old.hs+14
src/Reflex/Dom/Old.hs+14
@@ -21,6 +21,8 @@ module Reflex.Dom.Old
2121 , buildEmptyElement
2222 , buildEmptyElementNS
2323 , deleteBetweenExclusive
24+ , elDynHtml'
25+ , elDynHtmlAttr'
2426 , elStopPropagationNS
2527 , elWith
2628 , elWith'
@@ -54,6 +56,7 @@ import Data.Set (Set)
5456import qualified Data.Set as Set
5557import Data.Text
5658import Foreign.JavaScript.TH
59+import qualified GHCJS.DOM.Element as Element
5760import GHCJS.DOM.EventM (EventM)
5861import GHCJS.DOM.NamedNodeMap as NNM
5962import GHCJS.DOM.Node (getFirstChild, getNodeName, getParentNode, getPreviousSibling, removeChild, toNode)
@@ -254,3 +257,14 @@ elStopPropagationNS ns elementTag en child = do
254257 & namespace .~ ns
255258 & elementConfig_eventSpec . ghcjsEventSpec_filters %~ DMap.insert en f
256259 snd <$> element elementTag cfg child
260+
261+elDynHtmlAttr' :: MonadWidget t m => Text -> Map Text Text -> Dynamic t Text -> m (Element EventResult GhcjsDomSpace t)
262+elDynHtmlAttr' elementTag attrs html = do
263+ let cfg = def & initialAttributes .~ Map.mapKeys ((,) Nothing) attrs
264+ (e, _) <- element elementTag cfg $ return ()
265+ postBuild <- getPostBuild
266+ performEvent_ $ Element.setInnerHTML (_element_raw e) . Just <$> leftmost [updated html, tag (current html) postBuild]
267+ return e
268+
269+elDynHtml' :: MonadWidget t m => Text -> Dynamic t Text -> m (Element EventResult GhcjsDomSpace t)
270+elDynHtml' elementTag = elDynHtmlAttr' elementTag mempty