on develop help sign in
Merge pull request #68 from sidraval/sr-ll-fix-dropdown
93db47eRyan Trinkle
src/Reflex/Dom/Widget/Input.hs+5−1
@@ -448,7 +448,11 @@ dropdown k0 options (DropdownConfig setK attrs) = do
448 elDynAttr "option" optionAttrs $ dynText v
448 elDynAttr "option" optionAttrs $ dynText v
449 let e = castToHTMLSelectElement $ _element_raw eRaw
449 let e = castToHTMLSelectElement $ _element_raw eRaw
450 performEvent_ $ fmap (HTMLSelectElement.setValue e . Just . show) $ attachDynWithMaybe (flip Bimap.lookupR) ixKeys setK
450 performEvent_ $ fmap (HTMLSelectElement.setValue e . Just . show) $ attachDynWithMaybe (flip Bimap.lookupR) ixKeys setK
451+ let lookupSelected ks value = do
452+ v <- value
453+ key <- T.readMaybe v
454+ Bimap.lookup key ks
451− eChange <- attachDynWith (\ks s -> join $ Bimap.lookup <$> join (T.readMaybe <$> s) <*> pure ks) ixKeys <$> (wrapDomEvent e (`on` Element.change) $ HTMLSelectElement.getValue e)
455+ eChange <- attachDynWith lookupSelected ixKeys <$> (wrapDomEvent e (`on` Element.change) $ HTMLSelectElement.getValue e)
452 let readKey keys mk = fromMaybe k0 $ do
456 let readKey keys mk = fromMaybe k0 $ do
453 k <- mk
457 k <- mk
454 guard $ Bimap.memberR k keys
458 guard $ Bimap.memberR k keys