75 lines
1.5 KiB
Elm

port module Ports exposing
( getUiSettings
, loadUiSettings
, onUiSettingsSaved
, removeAccount
, scrollToElem
, setAccount
, setAllProgress
, setProgress
, storeUiSettings
)
import Api.Model.AuthResult exposing (AuthResult)
import Data.Flags exposing (Flags)
import Data.UiSettings exposing (StoredUiSettings, UiSettings)
{-| Save the result of authentication to local storage.
-}
port setAccount : AuthResult -> Cmd msg
port removeAccount : () -> Cmd msg
port setProgress : ( String, Int ) -> Cmd msg
port setAllProgress : ( String, Int ) -> Cmd msg
port scrollToElem : String -> Cmd msg
port saveUiSettings : ( AuthResult, UiSettings ) -> Cmd msg
port receiveUiSettings : (StoredUiSettings -> msg) -> Sub msg
port requestUiSettings : ( AuthResult, UiSettings ) -> Cmd msg
port uiSettingsSaved : (() -> msg) -> Sub msg
onUiSettingsSaved : msg -> Sub msg
onUiSettingsSaved m =
uiSettingsSaved (\_ -> m)
storeUiSettings : Flags -> UiSettings -> Cmd msg
storeUiSettings flags settings =
case flags.account of
Just ar ->
saveUiSettings ( ar, settings )
Nothing ->
Cmd.none
loadUiSettings : (UiSettings -> msg) -> Sub msg
loadUiSettings tagger =
receiveUiSettings (Data.UiSettings.mergeDefaults >> tagger)
getUiSettings : Flags -> Cmd msg
getUiSettings flags =
case flags.account of
Just ar ->
requestUiSettings ( ar, Data.UiSettings.defaults )
Nothing ->
Cmd.none