module Route.Index exposing (ActionData, Data, Model, Msg, route) import BackendTask exposing (BackendTask) import FatalError exposing (FatalError) import Head import Head.Seo as Seo import Html.Styled as Html import Link exposing (Link) import Pages.Url import PagesMsg exposing (PagesMsg) import UrlPath import Route import RouteBuilder exposing (App, StatelessRoute) import Shared import View exposing (View) type alias Model = {} type alias Msg = () type alias RouteParams = {} type alias Data = { message : String } type alias ActionData = {} route : StatelessRoute RouteParams Data ActionData route = RouteBuilder.single { head = head , data = data } |> RouteBuilder.buildNoState { view = view } data : BackendTask FatalError Data data = BackendTask.succeed Data |> BackendTask.andMap (BackendTask.succeed "Hello!") head : App Data ActionData RouteParams -> List Head.Tag head app = Seo.summary { canonicalUrlOverride = Nothing , siteName = "elm-pages" , image = { url = [ "images", "icon-png.png" ] |> UrlPath.join |> Pages.Url.fromPath , alt = "elm-pages logo" , dimensions = Nothing , mimeType = Nothing } , description = "Welcome to elm-pages!" , locale = Nothing , title = "elm-pages is running" } |> Seo.website view : App Data ActionData RouteParams -> Shared.Model -> View (PagesMsg Msg) view app shared = { title = "elm-pages is running" , body = [ Html.h1 [] [ Html.text "elm-pages is up and running!" ] , Html.p [] [ Html.text <| "The message is: " ++ app.data.message ] , Link.link (Link.internal (Route.Blog__Slug_ { slug = "a" })) [] [ Html.text "My blog post" ] ] |> processReturn } processReturn : List (Html.Html Msg) -> List (Html.Html (PagesMsg Msg)) processReturn = List.map (Html.map (PagesMsg.fromMsg))