dillonkearns / elm-pages / Pages.Internal.Platform

Exposed for internal use only (used in generated code).


type alias Flags =
Json.Decode.Value


type alias Model userModel pageData actionData sharedData =
{ key : Maybe Browser.Navigation.Key
, url : Url
, currentPath : String
, ariaNavigationAnnouncement : String
, pageData : Result String { userModel : userModel
, pageData : pageData
, sharedData : sharedData
, actionData : Maybe actionData }
, notFound : Maybe { reason : Pages.Internal.NotFoundReason.NotFoundReason
, path : UrlPath }
, userFlags : Json.Decode.Value
, transition : Maybe ( Basics.Int
, Pages.Navigation.Navigation )
, nextTransitionKey : Basics.Int
, inFlightFetchers : Dict String ( Basics.Int
, Pages.ConcurrentSubmission.ConcurrentSubmission actionData )
, pageFormState : Form.Model
, pendingRedirect : Basics.Bool
, pendingData : Maybe ( pageData
, sharedData
, Maybe actionData ) 
}


type Msg userMsg pageData actionData sharedData errorPage
    = LinkClicked Browser.UrlRequest
    | UrlChanged Url
    | UserMsg (PagesMsg userMsg)
    | FormMsg (Form.Msg (Msg userMsg pageData actionData sharedData errorPage))
    | UpdateCacheAndUrlNew Basics.Bool Url (Maybe userMsg) (Result Http.Error ( Url, Pages.Internal.ResponseSketch.ResponseSketch pageData actionData sharedData ))
    | FetcherComplete Basics.Bool String Basics.Int (Result Http.Error ( Maybe userMsg, ActionDataOrRedirect actionData ))
    | FetcherStarted String Basics.Int FormData Time.Posix
    | PageScrollComplete
    | HotReloadCompleteNew Bytes
    | ProcessFetchResponse Basics.Int (Result Http.Error ( Url, Pages.Internal.ResponseSketch.ResponseSketch pageData actionData sharedData )) (Result Http.Error ( Url, Pages.Internal.ResponseSketch.ResponseSketch pageData actionData sharedData ) -> Msg userMsg pageData actionData sharedData errorPage)


type alias Program userModel userMsg pageData actionData sharedData errorPage =
Platform.Program Flags (Model userModel pageData actionData sharedData) (Msg userMsg pageData actionData sharedData errorPage)

application : Pages.ProgramConfig.ProgramConfig userMsg userModel route pageData actionData sharedData effect (Msg userMsg pageData actionData sharedData errorPage) errorPage -> Platform.Program Flags (Model userModel pageData actionData sharedData) (Msg userMsg pageData actionData sharedData errorPage)

init : Pages.ProgramConfig.ProgramConfig userMsg userModel route pageData actionData sharedData userEffect (Msg userMsg pageData actionData sharedData errorPage) errorPage -> Flags -> Url -> Maybe Browser.Navigation.Key -> ( Model userModel pageData actionData sharedData, Effect userMsg pageData actionData sharedData userEffect errorPage )

update : Pages.ProgramConfig.ProgramConfig userMsg userModel route pageData actionData sharedData userEffect (Msg userMsg pageData actionData sharedData errorPage) errorPage -> Msg userMsg pageData actionData sharedData errorPage -> Model userModel pageData actionData sharedData -> ( Model userModel pageData actionData sharedData, Effect userMsg pageData actionData sharedData userEffect errorPage )


type Effect userMsg pageData actionData sharedData userEffect errorPage
    = ScrollToTop
    | NoEffect
    | BrowserLoadUrl String
    | BrowserPushUrl String
    | BrowserReplaceUrl String
    | FetchPageData Basics.Int (Maybe FormData) Url (Result Http.Error ( Url, Pages.Internal.ResponseSketch.ResponseSketch pageData actionData sharedData ) -> Msg userMsg pageData actionData sharedData errorPage)
    | Submit FormData
    | SubmitFetcher String Basics.Int FormData
    | Batch (List (Effect userMsg pageData actionData sharedData userEffect errorPage))
    | UserCmd userEffect
    | CancelRequest Basics.Int
    | RunCmd (Platform.Cmd.Cmd (Msg userMsg pageData actionData sharedData errorPage))


type alias RequestInfo =
{ contentType : String
, body : String 
}

view : Pages.ProgramConfig.ProgramConfig userMsg userModel route pageData actionData sharedData effect (Msg userMsg pageData actionData sharedData errorPage) errorPage -> Model userModel pageData actionData sharedData -> Browser.Document (Msg userMsg pageData actionData sharedData errorPage)