miyamoen / select-list

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Yet another SelectList implementation

A SelectList is a non-empty list which always has exactly one element selected. It is one of zipper.

Inspired by these modules

selectedMap is the feature function in this package. Use selectedMap in view.

    view : SelectList String -> Html Msg
    view selectList =
        ul [] <|
            SelectList.selectedMap
                (\position item ->
                    li [ onClick (Set item) ]
                        [ text <| toString <| SelectList.index item
                        , text <| toString <| SelectList.selected item
                        ]
                )
                selectList

Get a focused item and index from select list. Position describes whether it is selected, or not.

Compared with List.indexedMap.

    selectedMap : (Position -> SelectList a -> b) -> SelectList a -> List b
    indexedMap : (Int -> a -> b) -> List a -> List b

Unlike indexedMap, we can get full access to all elements in the list. And set new list to Model.

If you don't use non-empty list, use selectedMapForList that receives List instead of SelectList.

List.indexedMap is replaced with selectedMapForList .

example

About

License:BSD 3-Clause "New" or "Revised" License


Languages

Language:Elm 100.0%