Helpers for simple data tables. Define how a list of items can be
rendered as a table. The definition is a List
of (column-title,
column-value-accessor)
pairs.
I find this approach works well for simple tables, but breaks down as soon as you need much customisation. Use it to get you started quickly, but be ready to rewrite when this 80% case no longer suits.
( Html msg, a -> Html msg )
A table definition looks something like:
[(text "Name", .name >> text)
,(text "Name", .age >> toString >> text)]
List (CellDef a msg)
simpleTable : TableDef a msg -> List a -> Html msg
Given a table definition, render a list of elements as HTML.
simpleTableRow : TableDef a msg -> a -> Html msg
Given a table definition, render an element to a
simpleTable
instead.
titleGroup : List String -> Html msg
titleGroup and valueGroup are used to create columns that stack multiple pairs. For example:
[(titleGroup ["Latitude", "Longitude"]
,valueGroup [.location >> .lat >> toString >> text
,.location >> .lng >> toString >> text])
valueGroup : List (a -> Html msg) -> a -> Html msg