bellroy / elm-actor-framework / Framework.Browser

Program

Elements

Documents

Application



type alias Program elmFlags appFlags appAddresses appActors appModel appMsg =
Platform.Program elmFlags (FrameworkModel appAddresses appModel) (Framework.Internal.Message.FrameworkMessage appFlags appAddresses appActors appModel appMsg)

All of the functions in this module will return a Program. A Program describes an Elm program! How does it react to input? Does it show anything on screen? Etc.

Elements

element : { factory : appActors -> ( Framework.Internal.Pid.Pid, appFlags ) -> ( appModel, Framework.Internal.Message.FrameworkMessage appFlags appAddresses appActors appModel appMsg ), apply : appModel -> Framework.Internal.Actor.Process appModel output (Framework.Internal.Message.FrameworkMessage appFlags appAddresses appActors appModel appMsg), init : elmFlags -> Framework.Internal.Message.FrameworkMessage appFlags appAddresses appActors appModel appMsg, view : List output -> Html (Framework.Internal.Message.FrameworkMessage appFlags appAddresses appActors appModel appMsg) } -> Program elmFlags appFlags appAddresses appActors appModel appMsg

Create an HTML element managed by Elm. The resulting elements are easy to embed in larger JavaScript projects, and lots of companies that use Elm started with this approach! Try it out on something small. If it works, great, do more! If not, revert, no big deal.

Documents

document : { factory : appActors -> ( Framework.Internal.Pid.Pid, appFlags ) -> ( appModel, Framework.Internal.Message.FrameworkMessage appFlags appAddresses appActors appModel appMsg ), apply : appModel -> Framework.Internal.Actor.Process appModel output (Framework.Internal.Message.FrameworkMessage appFlags appAddresses appActors appModel appMsg), init : elmFlags -> Framework.Internal.Message.FrameworkMessage appFlags appAddresses appActors appModel appMsg, view : List output -> List (Html (Framework.Internal.Message.FrameworkMessage appFlags appAddresses appActors appModel appMsg)) } -> Program elmFlags appFlags appAddresses appActors appModel appMsg

Create an HTML document managed by Elm. This expands upon what element can do in that view now gives you control over the and <body>.</p> <h1>Application</h1> <p><a name="//apple_ref/cpp/Function/application" class="dashAnchor"></a></p> <div style="padding: 0px; margin: 0px; height: 1px; background-color: rgb(216, 221, 225);"></div> <p><strong> <a class="mono" name="application" href="#application">application</a> <span class="grey"> :</span> </strong><span class="mono">{ factory : appActors <span class="grey">-></span> ( Framework.Internal.Pid.Pid, appFlags ) <span class="grey">-></span> ( appModel, Framework.Internal.Message.FrameworkMessage appFlags appAddresses appActors appModel appMsg ), apply : appModel <span class="grey">-></span> Framework.Internal.Actor.Process appModel output (Framework.Internal.Message.FrameworkMessage appFlags appAddresses appActors appModel appMsg), init : elmFlags <span class="grey">-></span> Url <span class="grey">-></span> Browser.Navigation.Key <span class="grey">-></span> Framework.Internal.Message.FrameworkMessage appFlags appAddresses appActors appModel appMsg, view : List output <span class="grey">-></span> List (Html (Framework.Internal.Message.FrameworkMessage appFlags appAddresses appActors appModel appMsg)), onUrlRequest : Browser.UrlRequest <span class="grey">-></span> Framework.Internal.Message.FrameworkMessage appFlags appAddresses appActors appModel appMsg, onUrlChange : Url <span class="grey">-></span> Framework.Internal.Message.FrameworkMessage appFlags appAddresses appActors appModel appMsg } <span class="grey">-></span> Program elmFlags appFlags appAddresses appActors appModel appMsg</span></p> <p>Create an application that manages Url changes.</p> <h1>Utility</h1> <p><a name="//apple_ref/cpp/Type/FrameworkModel" class="dashAnchor"></a></p> <div style="padding: 0px; margin: 0px; height: 1px; background-color: rgb(216, 221, 225);"></div> <div class="mono"><br /><strong> <span class="green"> type alias </span><a class="mono" name="FrameworkModel" href="#FrameworkModel">FrameworkModel</a></strong> appAddresses appModel<span class="grey"> =</span> </div> <pre><code class="elm">Framework.Internal.Model.FrameworkModel appAddresses appModel </code></pre> <p>An alias for the Internal Framework Model</p> <p><a name="//apple_ref/cpp/Function/toProgramRecord" class="dashAnchor"></a></p> <div style="padding: 0px; margin: 0px; height: 1px; background-color: rgb(216, 221, 225);"></div> <p><strong> <a class="mono" name="toProgramRecord" href="#toProgramRecord">toProgramRecord</a> <span class="grey"> :</span> </strong><span class="mono">{ factory : appActors <span class="grey">-></span> ( Framework.Internal.Pid.Pid, appFlags ) <span class="grey">-></span> ( appModel, Framework.Internal.Message.FrameworkMessage appFlags appAddresses appActors appModel appMsg ), apply : appModel <span class="grey">-></span> Framework.Internal.Actor.Process appModel output (Framework.Internal.Message.FrameworkMessage appFlags appAddresses appActors appModel appMsg) } <span class="grey">-></span> { init : Framework.Internal.Message.FrameworkMessage appFlags appAddresses appActors appModel appMsg <span class="grey">-></span> ( FrameworkModel appAddresses appModel, Platform.Cmd.Cmd (Framework.Internal.Message.FrameworkMessage appFlags appAddresses appActors appModel appMsg) ), update : Framework.Internal.Message.FrameworkMessage appFlags appAddresses appActors appModel appMsg <span class="grey">-></span> FrameworkModel appAddresses appModel <span class="grey">-></span> ( FrameworkModel appAddresses appModel, Platform.Cmd.Cmd (Framework.Internal.Message.FrameworkMessage appFlags appAddresses appActors appModel appMsg) ), subscriptions : FrameworkModel appAddresses appModel <span class="grey">-></span> Platform.Sub.Sub (Framework.Internal.Message.FrameworkMessage appFlags appAddresses appActors appModel appMsg), view : (List output <span class="grey">-></span> List (Html msg)) <span class="grey">-></span> FrameworkModel appAddresses appModel <span class="grey">-></span> Browser.Document msg }</span></p> <p>Returns a record that is ready to be used on one of the elm/browsers creation functions.</p> <p>This can be used to roll your own Program</p> <p><a name="//apple_ref/cpp/Function/getInstance" class="dashAnchor"></a></p> <div style="padding: 0px; margin: 0px; height: 1px; background-color: rgb(216, 221, 225);"></div> <p><strong> <a class="mono" name="getInstance" href="#getInstance">getInstance</a> <span class="grey"> :</span> </strong><span class="mono">Framework.Internal.Pid.Pid <span class="grey">-></span> FrameworkModel appAddresses appModel <span class="grey">-></span> Maybe appModel</span></p> </div"> </body> </html>