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.

Reply via email to