-
Notifications
You must be signed in to change notification settings - Fork 479
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
ProgressTableContainer - progress table refactor #38909
ProgressTableContainer - progress table refactor #38909
Conversation
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Two high-level questions, mostly for my understanding:
- Why do we have the student list and content view as two separate components (as opposed to the students just being another column in a combined table)?
- Why do we pass the legend through this component as a child prop (instead of just having ProgressTableSummaryView and ProgressTableDetailedView render it directly)?
} | ||
}; | ||
|
||
class ProgressTableContainer extends React.Component { |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
(minor) I think a comment here about the purpose of this component would be helpful. Is it mainly to synchronize the scrolling between the student list and the bubbles?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
i want to rename this component. the abstraction should be "i am a section progress table, just tell me how to render lesson cells" -- which i don't think is implicit with this name. the underlying implementation of needing to synchronize two tables shouldn't be relevant to anyone wanting to render a section progress table. unless i hear any better suggestions, i'm going to update this to SectionProgressTable
. i meant to add a comment to each of these components before opening PRs (similar to what i wrote up in the tech spec), but forgot to do so before handing off to Maureen. i will do so while renaming.
I might defer to @cforkish on these |
student list is its own component because in reactabular, sticky columns are implemented as a separate table with synchronized vertical scroll. the appropriate mental model here is to think of anyway, the student list is a component responsible for rendering the fixed column of the table, the content view renders the scrolling columns, and
|
34c7447
to
e6e3ce5
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM!
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I have another idea or two, but let's table (har har) them for another day.
Dependent on #38899
This is a new component which will replace the VirtualizedSummaryView and VirtualizedDetailView a combined effort between @cforkish and @maureensturgeon, and was extracted from the full refactor work in #38309.
Unit tests were PR'd previously: #38625
Content view will render the following:
Summary view:
Detail view:
You can refer to this tech spec to see how this component fits into the full table architecture.
Links
Testing story
Reviewer Checklist: