Hi Yosuke, Thank you so much for your example. Ideally If we only could have the child components their models / init / updates and could somehow define interest of some messages in parent, that would be awesome.
On Tuesday, 17 May 2016 17:00:58 UTC+1, Yosuke Torii wrote: > > Hi Daniel, > > I don't know well about material design, but just tried to implement what > you mean. > > https://gist.github.com/jinjor/e5c4ca7f5793321a236c06d064ceef4d > > Does your app have any more requirements than this? > > > 2016年5月17日火曜日 23時36分19秒 UTC+9 Daniel Kwiecinski: >> >> The problem is that the generic container component (Let's call it C) do >> not know about it potential children (let's call them X, Y, Z) . There is >> top level component (Let's call it T) which has a knowledge about all of >> them (it is the app). The C is in self contained package, you can consider >> it to implement material design list view. How Can I implement C so T can >> use T with X, Y, Z ? >> >> On Tuesday, 17 May 2016 15:09:36 UTC+1, Peter Damoc wrote: >>> >>> Hi Daniel, >>> >>> If you have a limited number of components you can unify them into one >>> kind of a component. >>> >>> Here is a self contained example that unifies Counter and RandomGif and >>> then uses them in a single list. >>> https://gist.github.com/pdamoc/aef6306a9001de109aeece37e5627d06 >>> >>> >>> >>> >>> On Tue, May 17, 2016 at 3:47 PM, Daniel Kwiecinski < >>> [email protected]> wrote: >>> >>>> So let me expand my scenario a little bit. Lets assume that the >>>> CounterList component is very feature heavy. It makes lots of work to >>>> layout its children, manages drag to sort or whatever fancy stuff you can >>>> imagine. Now in my app I have many instances of usage of CounterList and I >>>> want to apply the complex behaviour not only to counters but also to gif >>>> and to mixed counters with gifs and many many other possible >>>> configurations >>>> (think in hundreds). I don't really want to implement dedicated >>>> CounterList, GifList, 2GifsWith3CountersList and other few hundreds >>>> SomethingBlaBlaList. >>>> Is it possible in elm at all? If yes how so? >>>> >>>> P.S. It is not imaginary question. I try to port existing application >>>> implemented in Re-Frame (ClojureScript framework) in which this scenario >>>> is >>>> trivial. >>>> >>>> >>>> On Tuesday, 17 May 2016 13:33:27 UTC+1, Wil C wrote: >>>>> >>>>> Daniel, >>>>> >>>>> I think normally, you don't. I think the constraint here is that you >>>>> need to explicitly set the types of each of the sub-components for every >>>>> component that you make for a page. In the example that you give, you'd >>>>> actually need to create 4 types of components: TopLevel, Counter, >>>>> CounterList, and Gif. >>>>> >>>>> TopLevel component would include CounterList and Gif. And then >>>>> CounterList would contain Counters. It is CounterList's job to >>>>> dynamically >>>>> keep track of the number of Counters. That way, you don't need a generic >>>>> component to contain an unknown number of things with unknown types. And >>>>> then if those components need to talk to each other (Like once you add 5 >>>>> or >>>>> more counters, you see a funny cat gif), I believe you can send messages >>>>> through Cmds (in 0.17) or Effects (in <0.17). >>>>> >>>>> With the hierarchical thinking of laying out components, I found that >>>>> Thinking >>>>> in React >>>>> <https://facebook.github.io/react/docs/thinking-in-react.html> helps. >>>>> >>>>> If you find that you really need the flexibility of having different >>>>> components in a container, it's doable. But it comes at a cost. >>>>> Generally, >>>>> if you're making a web app of some sort, it's not needed. I cover entity >>>>> component systems recently in another thread, and it's for games. >>>>> >>>>> https://groups.google.com/forum/#!topic/elm-discuss/c9MhBzVPbr8 >>>>> >>>>> Wil >>>>> >>>>> On Tuesday, May 17, 2016 at 5:13:56 AM UTC-7, Daniel Kwiecinski wrote: >>>>>> >>>>>> Hi Elmers, >>>>>> >>>>>> >>>>>> Here is my scenario. Say I have Main.elm which defines main view form >>>>>> my application. I also have bunch of other components (with their >>>>>> corresponding model and message types) say Counter and Gif. >>>>>> ( >>>>>> https://github.com/evancz/elm-architecture-tutorial/blob/master/nesting/Gif.elm >>>>>> ) >>>>>> ( >>>>>> https://github.com/evancz/elm-architecture-tutorial/blob/master/nesting/Counter.elm >>>>>> ) >>>>>> Now I'd like to create new generic component which as a parameter >>>>>> (initial value of its model?) takes list of any type of component (say >>>>>> two >>>>>> counters, then one gif and another three counters) and wraps them into >>>>>> some >>>>>> decorating html. >>>>>> The scenario serves as a illustration of the question, how do I >>>>>> implement components which can wrap lists of arbitrary component types. >>>>>> >>>>>> -- >>>>>> Regards, >>>>>> Daniel >>>>>> >>>>> -- >>>> 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. >>>> >>> >>> >>> >>> -- >>> 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.
