on develop help sign in
Merge pull request #68 from sidraval/sr-ll-fix-dropdown

Cleanup dropdown lookup code

commit93db47e0a77fcc10de3fccdc67eb7a2bdbddb473 authorRyan Trinkle <ryan.trinkle@gmail.com> dateThu 23 Jun 2016, 12:21 (10 years ago) parent68886a0b320c0e
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