Unavailable. Nobody can download this version any more, with elm or with the Lamdera compiler: github.com/opvasger/loadable is gone (deleted or private); Software Heritage not asked yet (this run's --swh-calls were used up); no fork with tag 1.0.0 found (31 same-name repos checked); no cached copy. Use another version.
This module helps you model values loaded, for example, from a database over Http/GraphQL.
These three definitions are the bread and butter of the module:
The next logical step is to model your views according to the model. For example with mdgriffith/elm-ui:
viewProductList : Loadable.FromHttp (List Product) -> Element Msg
viewProductList products =
let
viewErrorAndRetry =
Loadable.toError products
|> Maybe.map (viewErrorAndRetryOverlay getProductsCmd)
|> Maybe.withDefault Element.none
viewLoading =
if Loadable.isLoading products then
viewLoadingIndicator
else
Element.none
productElements =
Loadable.toValue products
|> Maybe.map (List.indexedMap viewProductListItem)
|> Maybe.withDefault []
in
Element.column
[ Element.inFront viewErrorAndRetry,
, Element.inFront viewLoading
]
productElementsUpdate your loadable to expect a new value. Use this when you expect a new value to arrive soon.
Convert a result into a loadable. Use this when a new value arrives, and your loadable is expecting the update.
Does the loadable contain a stale value? Staleness implies a reload is underway or failed, in which case the value from the most recent load is available.
Is any value, stale or otherwise, contained within the loadable?
Transform the value of a loadable.
Transform the error of a loadable.
Use these aliases to tidy up your model-definition
data over GraphQL is a good use-case for loadables.
A representation of data-loading. This would usually go into your model.