11module Halogen.VDom.DOM.Prop
22 ( Prop (..)
3- , Namespace (..)
43 , ElemRef (..)
54 , PropValue
65 , propFromString
@@ -16,16 +15,16 @@ import Control.Monad.Eff.Ref (REF)
1615import Control.Monad.Eff.Ref as Ref
1716import Data.Maybe (Maybe (..), maybe )
1817import Data.StrMap as StrMap
19- import Data.Nullable (Nullable , toNullable )
18+ import Data.Nullable (toNullable )
2019import Data.Function.Uncurried as Fn
21- import Data.Newtype (class Newtype )
2220import Data.Tuple (Tuple (..), fst , snd )
2321import DOM (DOM )
24- import DOM.Event.EventTarget (EventListener , eventListener ) as DOM
22+ import DOM.Event.EventTarget (eventListener ) as DOM
2523import DOM.Event.Types (EventType (..), Event ) as DOM
2624import DOM.HTML.Types (HTMLElement ) as DOM
2725import DOM.Node.Types (Element ) as DOM
2826import Halogen.VDom as V
27+ import Halogen.VDom.Types (Namespace (..))
2928import Halogen.VDom.Util as Util
3029import Unsafe.Coerce (unsafeCoerce )
3130
@@ -40,10 +39,6 @@ instance functorProp ∷ Functor Prop where
4039 map f (Ref g) = Ref (map f <$> g)
4140 map f p = unsafeCoerce p
4241
43- newtype Namespace = Namespace String
44-
45- derive instance newtypeNamespace ∷ Newtype Namespace _
46-
4742data ElemRef a
4843 = Created a
4944 | Removed a
@@ -106,7 +101,7 @@ buildProp emit el = render
106101 applyProp events = Fn .mkFn3 \_ _ v →
107102 case v of
108103 Attribute ns attr val → do
109- Fn .runFn4 setAttribute (toNullable ns) attr val el
104+ Fn .runFn4 Util . setAttribute (toNullable ns) attr val el
110105 pure v
111106 Property prop val → do
112107 Fn .runFn3 setProperty prop val el
@@ -118,7 +113,7 @@ buildProp emit el = render
118113 f' ← Ref .readRef ref
119114 mbEmit (f' ev)
120115 Fn .runFn3 Util .pokeMutMap ty (Tuple listener ref) events
121- Fn .runFn3 addEventListener ty listener el
116+ Fn .runFn3 Util . addEventListener ty listener el
122117 pure v
123118 Ref f → do
124119 mbEmit (f (Created (unsafeElementToHTMLElement el)))
@@ -129,7 +124,7 @@ buildProp emit el = render
129124 Attribute _ _ val1, Attribute ns2 attr2 val2 →
130125 case val1 /= val2 of
131126 true → do
132- Fn .runFn4 setAttribute (toNullable ns2) attr2 val2 el
127+ Fn .runFn4 Util . setAttribute (toNullable ns2) attr2 val2 el
133128 pure v2
134129 _ →
135130 Util .effPure v2
@@ -160,13 +155,13 @@ buildProp emit el = render
160155 removeProp prevEvents = Fn .mkFn2 \_ v →
161156 case v of
162157 Attribute ns attr _ →
163- Fn .runFn3 removeAttribute (toNullable ns) attr el
158+ Fn .runFn3 Util . removeAttribute (toNullable ns) attr el
164159 Property prop _ →
165160 Fn .runFn2 removeProperty prop el
166161 Handler (DOM.EventType ty) _ → do
167162 let
168163 handler = Fn .runFn2 Util .unsafeLookup ty prevEvents
169- Fn .runFn3 removeEventListener ty (fst handler) el
164+ Fn .runFn3 Util . removeEventListener ty (fst handler) el
170165 Ref _ →
171166 Util .effUnit
172167
@@ -189,15 +184,3 @@ unsafeGetProperty = Util.unsafeGetAny
189184
190185removeProperty ∷ ∀ eff . Fn.Fn2 String DOM.Element (Eff (dom ∷ DOM | eff ) Unit )
191186removeProperty = Util .unsafeDeleteAny
192-
193- foreign import setAttribute
194- ∷ ∀ eff . Fn.Fn4 (Nullable Namespace ) String String DOM.Element (Eff (dom ∷ DOM | eff ) Unit )
195-
196- foreign import removeAttribute
197- ∷ ∀ eff . Fn.Fn3 (Nullable Namespace ) String DOM.Element (Eff (dom ∷ DOM | eff ) Unit )
198-
199- foreign import addEventListener
200- ∷ ∀ eff . Fn.Fn3 String (DOM.EventListener (dom ∷ DOM | eff )) DOM.Element (Eff (dom ∷ DOM | eff ) Unit )
201-
202- foreign import removeEventListener
203- ∷ ∀ eff . Fn.Fn3 String (DOM.EventListener (dom ∷ DOM | eff )) DOM.Element (Eff (dom ∷ DOM | eff ) Unit )
0 commit comments