Skip to content

Commit d60c34f

Browse files
authored
Nullify props on removal (#12)
1 parent 6d1b16a commit d60c34f

File tree

3 files changed

+10
-1
lines changed

3 files changed

+10
-1
lines changed

src/Halogen/VDom/DOM/Prop.purs

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -189,4 +189,5 @@ unsafeGetProperty ∷ Fn.Fn2 String DOM.Element PropValue
189189
unsafeGetProperty = Util.unsafeGetAny
190190

191191
removeProperty eff. Fn.Fn2 String DOM.Element (Eff (dom DOM | eff) Unit)
192-
removeProperty = Util.unsafeDeleteAny
192+
removeProperty = Fn.mkFn2 \key el →
193+
Fn.runFn3 Util.unsafeSetAny key Util.jsUndefined el

src/Halogen/VDom/Util.js

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -184,3 +184,5 @@ exports.removeEventListener = function (ev, listener, el) {
184184
el.removeEventListener(ev, listener, false);
185185
};
186186
};
187+
188+
exports.jsUndefined = void 0;

src/Halogen/VDom/Util.purs

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,8 @@ module Halogen.VDom.Util
2828
, removeAttribute
2929
, addEventListener
3030
, removeEventListener
31+
, JsUndefined
32+
, jsUndefined
3133
) where
3234

3335
import Prelude
@@ -167,3 +169,7 @@ foreign import addEventListener
167169

168170
foreign import removeEventListener
169171
eff. Fn.Fn3 String (DOM.EventListener (dom DOM | eff)) DOM.Element (Eff (dom DOM | eff) Unit)
172+
173+
foreign import data JsUndefined ∷ *
174+
175+
foreign import jsUndefined JsUndefined

0 commit comments

Comments
 (0)