jdumay do we expect this institial UI pattern to show up on most views? I know I've seen this ticket and UX-299 as well, suspect maybe there are others.
If we want these interstitials to match the real views fairly accurately, it seems like we need to take an approach of having our components be put into an "interstitial mode." The other obvious approach would be using a totally separate component that renders a fairly static interstitial which is then swapped out for the real component once data is available. What I see as problematic with the latter approach is that there have to be some effort to keep the two in sync as the "real" component's layout is updated. I think that would be a real maintenance issue.
So thinking out loud a bit more here, I wonder if we ought to consider providing a series of more fundamental UI components that support an interstitial mode which can easily be controlled via a parent or ancestor component. So instead of something like this:
<tr>
<td>{artifactName}</td>
<td>{artifactSize}</td>
</tr>
It's something more like
<tr>
<td><Label text={artifactName} /></td>
<td><Label text={artifactSize} /></td>
</tr>
The Label is made aware from its Owner as to whether it's in interstitial mode and it will render itself with a line/fill.
The more I think about this, the more it has some similarities with problems posed by UX-215. Our components don't have any sense now whether their data is 1. loading (needed for this ticket), or 2. not available (due to error, needed for UX-215) - they only really know that they have data or don't, and up until now "don't" has been assumed to be loading.
We could probably make some enhancements to the Redux plumbing to inform our components more concretely whether they are in state 1, 2, 3.
I've been making some progress on the design doc for UX-215, although I might need to do a little mini-poc experiment on my own before I submit anything. Should I expand the scope of that to include this?
jdumay do we expect this institial UI pattern to show up on most views? I know I've seen this ticket and
UX-299as well, suspect maybe there are others.If we want these interstitials to match the real views fairly accurately, it seems like we need to take an approach of having our components be put into an "interstitial mode." The other obvious approach would be using a totally separate component that renders a fairly static interstitial which is then swapped out for the real component once data is available. What I see as problematic with the latter approach is that there have to be some effort to keep the two in sync as the "real" component's layout is updated. I think that would be a real maintenance issue.
So thinking out loud a bit more here, I wonder if we ought to consider providing a series of more fundamental UI components that support an interstitial mode which can easily be controlled via a parent or ancestor component. So instead of something like this:
It's something more like
The Label is made aware from its Owner as to whether it's in interstitial mode and it will render itself with a line/fill.
The more I think about this, the more it has some similarities with problems posed by
UX-215. Our components don't have any sense now whether their data is 1. loading (needed for this ticket), or 2. not available (due to error, needed forUX-215) - they only really know that they have data or don't, and up until now "don't" has been assumed to be loading.We could probably make some enhancements to the Redux plumbing to inform our components more concretely whether they are in state 1, 2, 3.
I've been making some progress on the design doc for
UX-215, although I might need to do a little mini-poc experiment on my own before I submit anything. Should I expand the scope of that to include this?