on develop help sign in
Add checkbox_change
commit48a33983a59dae4056487ecd54f690f2e16bfa6d authorRyan Trinkle <ryan.trinkle@gmail.com> dateSun 7 Aug 2016, 11:42 (10 years ago) parent43af70e
4 files changed+19−3
src/Reflex/Dom/Builder/Class.hs+1 src/Reflex/Dom/Builder/Immediate.hs+8−1 src/Reflex/Dom/Builder/Static.hs+8−1 src/Reflex/Dom/Widget/Input.hs+2−1
src/Reflex/Dom/Builder/Class.hs+1
@@ -182,6 +182,7 @@ instance (Reflex t, er ~ EventResult, DomBuilder t m) => Default (InputElementCo
182182data InputElement er d t
183183 = InputElement { _inputElement_value :: Dynamic t Text
184184 , _inputElement_checked :: Dynamic t Bool
185+ , _inputElement_checkedChange :: Event t Bool
185186 , _inputElement_input :: Event t Text
186187 , _inputElement_hasFocus :: Dynamic t Bool
187188 , _inputElement_element :: Element er d t
src/Reflex/Dom/Builder/Immediate.hs+8−1
@@ -251,7 +251,14 @@ instance SupportsImmediateDomBuilder t m => DomBuilder t (ImmediateDomBuilderT t
251251 [ False <$ Reflex.select (_element_events e) (WrapArg Blur)
252252 , True <$ Reflex.select (_element_events e) (WrapArg Focus)
253253 ]
254− return $ InputElement v (uniqDyn c) valueChangedByUI hasFocus e
254+ return $ InputElement
255+ { _inputElement_value = v
256+ , _inputElement_checked = uniqDyn c
257+ , _inputElement_checkedChange = checkedChangedByUI
258+ , _inputElement_input = valueChangedByUI
259+ , _inputElement_hasFocus = hasFocus
260+ , _inputElement_element = e
261+ }
255262 {-# INLINABLE textAreaElement #-}
256263 textAreaElement cfg = do --TODO
257264 ((e, _), domElement) <- makeElement "textarea" (cfg ^. textAreaElementConfig_elementConfig) $ return ()
src/Reflex/Dom/Builder/Static.hs+8−1
@@ -152,7 +152,14 @@ instance SupportsStaticDomBuilder t m => DomBuilder t (StaticDomBuilderT t m) wh
152152 let v0 = constDyn $ cfg ^. inputElementConfig_initialValue
153153 let c0 = constDyn $ cfg ^. inputElementConfig_initialChecked
154154 let hasFocus = constDyn False -- TODO should this be coming from initialAtttributes
155− return $ InputElement v0 c0 never hasFocus e
155+ return $ InputElement
156+ { _inputElement_value = v0
157+ , _inputElement_checked = c0
158+ , _inputElement_checkedChange = never
159+ , _inputElement_input = never
160+ , _inputElement_hasFocus = hasFocus
161+ , _inputElement_element = e
162+ }
156163
157164 {-# INLINABLE textAreaElement #-}
158165 textAreaElement cfg = do
src/Reflex/Dom/Widget/Input.hs+2−1
@@ -194,7 +194,7 @@ instance Reflex t => Default (CheckboxConfig t) where
194194
195195data Checkbox t
196196 = Checkbox { _checkbox_value :: Dynamic t Bool
197−-- , _checkbox_change :: Event t Bool
197+ , _checkbox_change :: Event t Bool
198198 }
199199
200200-- | Create an editable checkbox
@@ -212,6 +212,7 @@ checkbox checked config = do
212212 & inputElementConfig_elementConfig . elementConfig_modifyAttributes .~ modifyAttrs
213213 return $ Checkbox
214214 { _checkbox_value = _inputElement_checked i
215+ , _checkbox_change = _inputElement_checkedChange i
215216 }
216217
217218type family CheckboxViewEventResultType (en :: EventTag) :: * where