mirror of
https://github.com/NoRedInk/noredink-ui.git
synced 2024-12-15 17:02:51 +03:00
8f344774c3
This is probably better then relying on more deprecated elm css functionality, like we were before.
100 lines
2.9 KiB
Elm
100 lines
2.9 KiB
Elm
module Examples.Table exposing (Msg, State, example, init, update)
|
|
|
|
{- \
|
|
@docs Msg, State, example, init, update
|
|
-}
|
|
|
|
import Css exposing (..)
|
|
import Html
|
|
import Html.Styled
|
|
import ModuleExample as ModuleExample exposing (Category(..), ModuleExample)
|
|
import Nri.Ui.Button.V1 as Button
|
|
import Nri.Ui.Table.V2 as Table
|
|
|
|
|
|
{-| -}
|
|
type Msg
|
|
= NoOp
|
|
|
|
|
|
{-| -}
|
|
type alias State =
|
|
()
|
|
|
|
|
|
{-| -}
|
|
example : (Msg -> msg) -> State -> ModuleExample msg
|
|
example parentMessage state =
|
|
{ filename = "Nri/Table.elm"
|
|
, category = Layout
|
|
, content =
|
|
let
|
|
columns =
|
|
[ Table.string
|
|
{ header = "First Name"
|
|
, value = .firstName
|
|
, width = calc (pct 50) minus (px 125)
|
|
}
|
|
, Table.string
|
|
{ header = "Last Name"
|
|
, value = .lastName
|
|
, width = calc (pct 50) minus (px 125)
|
|
}
|
|
, Table.custom
|
|
{ header =
|
|
Html.text "Actions"
|
|
|> Html.Styled.fromUnstyled
|
|
, width = px 250
|
|
, view =
|
|
\_ ->
|
|
Button.button
|
|
{ size = Button.Small
|
|
, style = Button.Primary
|
|
, onClick = NoOp
|
|
}
|
|
{ label = "Action"
|
|
, state = Button.Enabled
|
|
}
|
|
|> Html.Styled.fromUnstyled
|
|
}
|
|
]
|
|
|
|
data =
|
|
[ { firstName = "First1", lastName = "Last1" }
|
|
, { firstName = "First2", lastName = "Last2" }
|
|
, { firstName = "First3", lastName = "Last3" }
|
|
, { firstName = "First4", lastName = "Last4" }
|
|
, { firstName = "First5", lastName = "Last5" }
|
|
]
|
|
in
|
|
[ Html.Styled.toUnstyled Table.keyframeStyles
|
|
, Html.h4 [] [ Html.text "With header" ]
|
|
, Table.view columns data
|
|
|> Html.Styled.toUnstyled
|
|
, Html.h4 [] [ Html.text "Without header" ]
|
|
, Table.viewWithoutHeader columns data
|
|
|> Html.Styled.toUnstyled
|
|
, Html.h4 [] [ Html.text "Loading" ]
|
|
, Table.viewLoading columns
|
|
|> Html.Styled.toUnstyled
|
|
, Html.h4 [] [ Html.text "Loading without header" ]
|
|
, Table.viewLoadingWithoutHeader columns
|
|
|> Html.Styled.toUnstyled
|
|
]
|
|
|> List.map (Html.map parentMessage)
|
|
}
|
|
|
|
|
|
{-| -}
|
|
init : State
|
|
init =
|
|
()
|
|
|
|
|
|
{-| -}
|
|
update : Msg -> State -> ( State, Cmd Msg )
|
|
update msg state =
|
|
case msg of
|
|
NoOp ->
|
|
( state, Cmd.none )
|