that sandbox api tho

This commit is contained in:
Ryan Haskell-Glatz 2019-10-14 02:30:34 -05:00
parent 2787a9d456
commit 10943cacad
6 changed files with 49 additions and 49 deletions

View File

@ -27,15 +27,10 @@ type Page pageModel pageMsg model msg
type alias Page_ pageModel pageMsg model msg = type alias Page_ pageModel pageMsg model msg =
{ toModel : pageModel -> model { toModel : pageModel -> model
, toMsg : pageMsg -> msg , toMsg : pageMsg -> msg
, page : Config pageModel pageMsg model msg , page : Sandbox pageModel pageMsg
} }
type Config pageModel pageMsg model msg
= StaticConfig Static
| SandboxConfig (Sandbox pageModel pageMsg)
unwrap : unwrap :
Page pageModel pageMsg model msg Page pageModel pageMsg model msg
-> Page_ pageModel pageMsg model msg -> Page_ pageModel pageMsg model msg
@ -53,16 +48,21 @@ type alias Static =
static : static :
{ toModel : () -> model Static
, toMsg : Never -> msg ->
, page : Static { toModel : () -> model
} , toMsg : Never -> msg
}
-> Page () Never model msg -> Page () Never model msg
static page = static page { toModel, toMsg } =
Page Page
{ toModel = page.toModel { toModel = toModel
, toMsg = page.toMsg , toMsg = toMsg
, page = StaticConfig page.page , page =
{ init = ()
, update = always identity
, view = \_ -> Html.map never page.view
}
} }
@ -78,14 +78,15 @@ type alias Sandbox pageModel pageMsg =
sandbox : sandbox :
{ toModel : pageModel -> model Sandbox pageModel pageMsg
, toMsg : pageMsg -> msg ->
, page : Sandbox pageModel pageMsg { toModel : pageModel -> model
} , toMsg : pageMsg -> msg
-> Page pageModel pageMsg model msg }
sandbox page = -> Page pageModel pageMsg model msg
Page sandbox page { toModel, toMsg } =
{ toModel = page.toModel Page
, toMsg = page.toMsg { toModel = toModel
, page = SandboxConfig page.page , toMsg = toMsg
, page = page
} }

View File

@ -130,20 +130,22 @@ type alias Sandbox pageModel pageMsg =
static : static :
{ toModel : () -> model Static
, toMsg : Never -> msg ->
, page : Static { toModel : () -> model
} , toMsg : Never -> msg
}
-> Page () Never model msg -> Page () Never model msg
static = static =
Page.static Page.static
sandbox : sandbox :
{ toModel : pageModel -> model Sandbox pageModel pageMsg
, toMsg : pageMsg -> msg ->
, page : Sandbox pageModel pageMsg { toModel : pageModel -> model
} , toMsg : pageMsg -> msg
}
-> Page pageModel pageMsg model msg -> Page pageModel pageMsg model msg
sandbox = sandbox =
Page.sandbox Page.sandbox

View File

@ -50,22 +50,19 @@ type alias Pages =
pages : Pages pages : Pages
pages = pages =
{ homepage = { homepage =
Application.static Homepage.page
{ toModel = HomepageModel { toModel = HomepageModel
, toMsg = HomepageMsg , toMsg = HomepageMsg
, page = Homepage.page
} }
, counter = , counter =
Application.sandbox Counter.page
{ toModel = CounterModel { toModel = CounterModel
, toMsg = CounterMsg , toMsg = CounterMsg
, page = Counter.page
} }
, notFound = , notFound =
Application.static NotFound.page
{ toModel = NotFoundModel { toModel = NotFoundModel
, toMsg = NotFoundMsg , toMsg = NotFoundMsg
, page = NotFound.page
} }
} }

View File

@ -15,12 +15,12 @@ type Msg
| Decrement | Decrement
page : Application.Sandbox Model Msg
page = page =
{ init = init Application.sandbox
, update = update { init = init
, view = view , update = update
} , view = view
}
init : Model init : Model

View File

@ -12,10 +12,10 @@ type alias Msg =
Never Never
page : Application.Static
page = page =
{ view = view Application.static
} { view = view
}
view : Html Msg view : Html Msg

View File

@ -12,10 +12,10 @@ type alias Msg =
Never Never
page : Application.Static
page = page =
{ view = view Application.static
} { view = view
}
view : Html Msg view : Html Msg