Hey everyone,

Does anybody know what’s the preferred way to refactor passing context with 
addresses into child components during migration from Elm 0.16 to 0.17?

In particular, I have *Filter* component that takes context with 2 
addresses: 
one for internal actions (Tagged with *UpdateFilter*) and one for 
“external” action (*Submit*) that is handled outside of the component.

With 0.16, it looked something like this:

type alias Context = { actions: Address Action, submit: Address () }

update action model =
  case action of
    UpdateFilter value ->
      { model | query = value }

view : Context -> Model -> Html
view = context model
  form [onSubmit context.submit ()]
    [ input_ model.query context.actions (\value -> UpdateFilter value)
  ]


But 0.17 doesn’t have addresses anymore, and I’m a bit lost at how should I 
implement this.

I’ve found example app that is in the middle of the refactoring, that 
imports necessary “external” actions into the child components directly and 
sends them, 
but I don’t like that because it breaks the principle that child shouldn’t 
know anything about its parent. 
(See: 
https://github.com/rogeriochaves/elm-peer-tweet/blob/master/src%2FNewTweet%2FView%2FNewTweet.elm
)

What’s the best practice in such cases now?

-- 
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.

Reply via email to