Thanks for the response, it totally works, and I definitely think it is
cleaner than having to Html.map everything! I am still trying to fully
understand what is going on, pretty new to Elm. I kinda get what you are
doing in the update to map the command,
( { model | field2 = "2" }, Cmd.map cfg.lift pageTwoCmd )
but how does that happen in the view? How does this cfg.lift which is lift
: Page1Msg -> msg work here?
div [ onClick (cfg.lift <| DoSomething1) ] [ text model.field2 ]
On Tuesday, January 24, 2017 at 7:18:29 AM UTC-8, Peter Damoc wrote:
>
> You can use Config objects for both the update and view functions from
> each page and just lift everything to the top message.
> I have commented on your gist with how this would look.
>
> Please note that I have removed the Navigate cmd from your Pages, if you
> want, you can put it back.
> I also added a couple of typed Cmds to show how to use the lift in
> `update`
>
>
>
>
>
> On Tue, Jan 24, 2017 at 5:31 AM, Maksim Demin <[email protected]
> <javascript:>> wrote:
>
>> Hi,
>>
>> I am trying to figure out the best way to build up pages that have very
>> little in common, but need to share something, i.e. a nav bar. The pages
>> don't share messages or models, what would be the best way to implement a
>> nav across both pages, and perhaps more pages in the future.
>>
>> I came up with two approaches.
>>
>> The first is to put the navigation messages at the top Msg and have all
>> the pages map their Html to return the top level Msg's. I think this is
>> cool because it avoids replicating the messages across the pages, but you
>> end up with a bunch of Html.maps to convert everything to the top level Msg
>> (The docs say "This should not come in handy too often." which got me
>> thinking of how else to do this) .
>>
>> The second approach is to have each page implement all the messages for
>> the nav and in the pages respective update. This seems like a bunch of
>> duplication as the nav grows and does not seem like a good approach.
>>
>> Is there a better way to do this kind of thing?
>>
>> Here is some example code of what I mean
>> https://gist.github.com/mdemin914/0baf793dce856ffe57ce31979ad600d6.
>>
>> Any thoughts are appreciated.
>>
>> --
>> You received this message because you are subscribed to the Google Groups
>> "Elm Discuss" group.
>> To unsubscribe from this group and stop receiving emails from it, send an
>> email to [email protected] <javascript:>.
>> For more options, visit https://groups.google.com/d/optout.
>>
>
>
>
> --
> There is NO FATE, we are the creators.
> blog: http://damoc.ro/
>
--
You received this message because you are subscribed to the Google Groups "Elm
Discuss" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
For more options, visit https://groups.google.com/d/optout.