on develop help sign in
Cleanup dropdown lookup code
commitb320c0ed76698e5eeddf9a2e176b75a314f204e1 authorLuigy Leon <luigy@outlook.com> dateThu 23 Jun 2016, 12:16 (10 years ago) parent5810afc
1 file changed+5−1
src/Reflex/Dom/Widget/Input.hs+5−1
src/Reflex/Dom/Widget/Input.hs+5−1
@@ -448,7 +448,11 @@ dropdown k0 options (DropdownConfig setK attrs) = do
448448 elDynAttr "option" optionAttrs $ dynText v
449449 let e = castToHTMLSelectElement $ _element_raw eRaw
450450 performEvent_ $ fmap (HTMLSelectElement.setValue e . Just . show) $ attachDynWithMaybe (flip Bimap.lookupR) ixKeys setK
451− eChange <- attachDynWith (\ks s -> join $ Bimap.lookup <$> join (T.readMaybe <$> s) <*> pure ks) ixKeys <$> (wrapDomEvent e (`on` Element.change) $ HTMLSelectElement.getValue e)
451+ let lookupSelected ks value = do
452+ v <- value
453+ key <- T.readMaybe v
454+ Bimap.lookup key ks
455+ eChange <- attachDynWith lookupSelected ixKeys <$> (wrapDomEvent e (`on` Element.change) $ HTMLSelectElement.getValue e)
452456 let readKey keys mk = fromMaybe k0 $ do
453457 k <- mk
454458 guard $ Bimap.memberR k keys