@@ -257,6 +257,12 @@ dropdown' k0 ks = do
257257 dValue <- mapDyn readKey =<< holdDyn (Just k0) eChange
258258 return $ Dropdown dValue
259259
260+listDropdown :: (MonadWidget t m) => Dynamic t [a] -> (a -> String) -> Dynamic t (Map String String) -> String -> m (Dynamic t (Maybe a))
261+listDropdown xs f attrs defS = do
262+ m <- mapDyn (Map.fromList . zip [(1::Int)..]) xs
263+ sel <- liftM _dropdown_value $ dropdownDynAttr attrs 0 never =<< mapDyn ((Map.insert 0 defS) . Map.map f) m
264+ combineDyn Map.lookup sel m
265+
260266--TODO Remove CSS Classes
261267searchInputResult :: forall t m a. MonadWidget t m => Dynamic t (String, a) -> m (Event t (String, a))
262268searchInputResult r = el "li" $ do