I got impression that https://github.com/debois/elm-mdl/blob/3.1.0/src/Material/Component.elm implements it in the pre 0.17 way. What would be the 0.17 equivalent if my assumption is correct?
On Tuesday, 17 May 2016 15:36:19 UTC+1, Daniel Kwiecinski wrote: > > 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.
