on develop help sign in
Use a dynamic for input files in favor of an event.
752fdf9Luigy Leon
src/Reflex/Dom/Builder/Class.hs+1−1
@@ -262,7 +262,7 @@ data InputElement er d t
262 , _inputElement_hasFocus :: Dynamic t Bool
262 , _inputElement_hasFocus :: Dynamic t Bool
263 , _inputElement_element :: Element er d t
263 , _inputElement_element :: Element er d t
264 , _inputElement_raw :: RawInputElement d
264 , _inputElement_raw :: RawInputElement d
265− , _inputElement_files :: Event t [File]
265+ , _inputElement_files :: Dynamic t [File]
266 }
266 }
267
267
268data TextAreaElementConfig er t m
268data TextAreaElementConfig er t m
src/Reflex/Dom/Builder/Immediate.hs+1−3
@@ -289,9 +289,7 @@ instance SupportsImmediateDomBuilder t m => DomBuilder t (ImmediateDomBuilderT t
289 [ False <$ Reflex.select (_element_events e) (WrapArg Blur)
289 [ False <$ Reflex.select (_element_events e) (WrapArg Blur)
290 , True <$ Reflex.select (_element_events e) (WrapArg Focus)
290 , True <$ Reflex.select (_element_events e) (WrapArg Focus)
291 ]
291 ]
292− files <- wrapDomEvent domInputElement (`on` Element.change) $ do
292+ files <- holdDyn mempty <=< wrapDomEvent domInputElement (`on` Element.change) $ do
293− -- TODO emit files only for `file` input type
294− -- ghcjs-dom > 0.3 exposes Input.getType
295 mfiles <- Input.getFiles domInputElement
293 mfiles <- Input.getFiles domInputElement
296 let getMyFiles xs = fmap catMaybes . mapM (File.item xs) . flip take [0..] . fromIntegral =<< File.getLength xs
294 let getMyFiles xs = fmap catMaybes . mapM (File.item xs) . flip take [0..] . fromIntegral =<< File.getLength xs
297 maybe (return []) getMyFiles mfiles
295 maybe (return []) getMyFiles mfiles
src/Reflex/Dom/Builder/Static.hs+1−1
@@ -176,7 +176,7 @@ instance SupportsStaticDomBuilder t m => DomBuilder t (StaticDomBuilderT t m) wh
176 , _inputElement_hasFocus = hasFocus
176 , _inputElement_hasFocus = hasFocus
177 , _inputElement_element = e
177 , _inputElement_element = e
178 , _inputElement_raw = ()
178 , _inputElement_raw = ()
179− , _inputElement_files = never
179+ , _inputElement_files = constDyn mempty
180 }
180 }
181 {-# INLINABLE textAreaElement #-}
181 {-# INLINABLE textAreaElement #-}
182 textAreaElement cfg = do
182 textAreaElement cfg = do