But it it doesn’t set display, we’re going to have to run layout every time the 
visibility changes.

I’ve already made my changes. I’ll commit soon.

Ah. I see what you mean. By doing it your way, there’s no reason to actually 
run layout until (or if) the visibility is set to true.

That probably *is* better. I’ll commit what I did for now, because it at least 
fixes the bug, and when I have time, I’ll look into improving the layouts.

Another thought:

If visibility is turned on and off multiple times, this might be less 
efficient, but the layout might be able to store a flag to avoid running the 
layout if not needed…

Harbs

> On Aug 3, 2017, at 6:24 PM, Alex Harui <aha...@adobe.com.INVALID> wrote:
> 
> Right, so layout code would have to check for display=="none" and not set
> display and listen for the show event.
> 
> Maybe as you clean up the setting of display multiple times it will be
> come clear as to whether listening for "show" is cheaper/cleaner than
> displayStyleForLayout.
> 
> -Alex
> 
> On 8/3/17, 8:18 AM, "Harbs" <harbs.li...@gmail.com> wrote:
> 
>> The problem is that visible is set before the bead exists.
>> 
>> BTW, Some of the layout seem to be reading and setting display multiple
>> times. That can cause layout thrashing. That should probably be resolved.
>> 
>>> On Aug 3, 2017, at 6:05 PM, Alex Harui <aha...@adobe.com.INVALID> wrote:
>>> 
>>> FWIW, I'm not sure this is the best pattern.  It was what we did to get
>>> the examples to run.
>>> 
>>> Another option is that layout beads listen for changes to visible and
>>> reset the CSS display style when visible changes.
>>> 
>>> Food for thought,
>>> -Alex
>>> 
>>> On 8/3/17, 8:00 AM, "Harbs" <harbs.li...@gmail.com> wrote:
>>> 
>>>> I’m using a VerticalFlexLayout in a component. Under certain
>>>> circumstances, I need to set the visibility of the component to false.
>>>> 
>>>> These two settings are contradictory in JS.
>>>> 
>>>> visible=false sets display to none
>>>> VerticalFlexLayout sets the display to flex
>>>> 
>>>> When setting visible to false, it uses a property
>>>> “displayStyleForLayout”
>>>> to store the value set by the layout. The problem is that the layout
>>>> might be applied AFTER visible is already set to false (which is the
>>>> case
>>>> in my situation).
>>>> 
>>>> I’m thinking of solving this by exposing displayStyleForLayout so it
>>>> can
>>>> be set by beads if necessary.
>>>> 
>>>> Scratch that. I see that already exists. Problem solved… I’ll fix the
>>>> layouts.
>>>> 
>>>> Harbs
>>> 
>> 
> 

Reply via email to