40 lines
823 B
Elm
40 lines
823 B
Elm
module Model exposing (Model, Msg(..), init)
|
|
|
|
import Browser exposing (UrlRequest(..))
|
|
import Browser.Navigation as Nav
|
|
import Http
|
|
import Mi
|
|
import Route exposing (Route, routeParser)
|
|
import Url exposing (Url)
|
|
import Url.Parser as UrlParser
|
|
|
|
|
|
type alias Model =
|
|
{ navKey : Nav.Key
|
|
, route : Maybe Route
|
|
, token : Maybe String
|
|
, tokenData : Maybe Mi.TokenData
|
|
, error : Maybe String
|
|
}
|
|
|
|
|
|
type Msg
|
|
= ChangeUrl Url
|
|
| ClickLink UrlRequest
|
|
| UpdateToken String
|
|
| SubmitToken
|
|
| ValidateToken (Result Http.Error Mi.TokenData)
|
|
| ClearError
|
|
|
|
|
|
init : () -> Url -> Nav.Key -> ( Model, Cmd msg )
|
|
init _ url key =
|
|
( { navKey = key
|
|
, route = UrlParser.parse routeParser url
|
|
, token = Nothing
|
|
, tokenData = Nothing
|
|
, error = Nothing
|
|
}
|
|
, Cmd.none
|
|
)
|