@@ -1,16 +1,19 @@
11module Main exposing (..)
22
33import Browser
4−import FFI
4+import FFI exposing (getBridge)
55import Html exposing (..)
6+import Utils exposing (..)
67
78
89type Msg
910 = RecieveMessage String
11+ | Error String
1012
1113
1214type alias Model =
1315 { messages : List String
16+ , error : Maybe String
1417 }
1518
1619
@@ -20,29 +23,34 @@ main =
2023 { init = \_ -> ( init, Cmd.none )
2124 , view = view
2225 , update = update
23− , subscriptions = \_ -> FFI.getString RecieveMessage
26+ , subscriptions = \_ -> getBridge Error (always (RecieveMessage "Got it!"))
2427 }
2528
2629
2730init : Model
2831init =
2932 { messages = []
33+ , error = Nothing
3034 }
3135
3236
3337view : Model -> Html Msg
3438view model =
3539 div []
36− [ h1 [] [ text "HELLO" ]
37− , ul [] (model.messages |> List.map (text >> List.singleton >> li []))
38− ]
40+ (maybeList model.error (text >> List.singleton >> h2 [])
41+ ++ [ h1 [] [ text "HELLO" ]
42+ , ul [] (model.messages |> List.map (text >> List.singleton >> li []))
43+ ]
44+ )
3945
4046
4147update : Msg -> Model -> ( Model, Cmd Msg )
4248update msg model =
4349 case msg of
4450 RecieveMessage x ->
45− ( { messages = x :: model.messages
46− }
51+ ( { model | messages = x :: model.messages }
4752 , Cmd.none
4853 )
54+
55+ Error err ->
56+ ( { model | error = Just err }, Cmd.none )