diff options
Diffstat (limited to 'scratch/habit-screens/client/src/Utils.elm')
-rw-r--r-- | scratch/habit-screens/client/src/Utils.elm | 37 |
1 files changed, 37 insertions, 0 deletions
diff --git a/scratch/habit-screens/client/src/Utils.elm b/scratch/habit-screens/client/src/Utils.elm new file mode 100644 index 000000000000..23b13c224c68 --- /dev/null +++ b/scratch/habit-screens/client/src/Utils.elm @@ -0,0 +1,37 @@ +module Utils exposing (..) + +import Html exposing (..) +import Html.Attributes exposing (..) +import Maybe.Extra + + +type Strategy + = Always String + | When Bool String + | If Bool String String + + +class : List Strategy -> Attribute msg +class classes = + classes + |> List.map + (\strategy -> + case strategy of + Always x -> + Just x + + When True x -> + Just x + + When False _ -> + Nothing + + If True x _ -> + Just x + + If False _ x -> + Just x + ) + |> Maybe.Extra.values + |> String.join " " + |> Html.Attributes.class |