mi/sina/src/Model.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
)