Skip to content
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

[Tekton] Spike: material UI/backstage virtualised grid with custom react component in columns #343

Closed
3 tasks done
Tracked by #113
invincibleJai opened this issue May 10, 2023 · 1 comment
Closed
3 tasks done
Tracked by #113
Assignees

Comments

@invincibleJai
Copy link
Member

invincibleJai commented May 10, 2023

Description: Currently Tekton plugin uses @patternfly/react-virtualized-extension for the virtualized grid but to be consistent across plugins we would need to use material UI/backstage for the same.

Acceptance Criteria:

  • Check if material UI/backstage supports virtualized grid
  • Check if material UI/backstage supports custom react components as columns for the grid i.e task status
  • Share observation finding with leads/PM
@debsmita1 debsmita1 self-assigned this May 10, 2023
@debsmita1 debsmita1 changed the title [Tekton] material UI/backstage virtualised grid with custom react component in columns [Tekton] Spike: material UI/backstage virtualised grid with custom react component in columns May 30, 2023
@debsmita1
Copy link
Member

debsmita1 commented May 30, 2023

The Backstage core component Table doesn’t support virtualization, the Material UI does and uses the react-virtuoso package to render a virtualized table.

Both these table components are capable of rendering customized react components as columns

Tried both Pagination and Virtualization. With Pagination, everything works fine (working branch: https://github.com/debsmita1/backstage-plugins/tree/PRL-pagination-table)

Video: https://youtu.be/J4N6EJ36Gk8

With virtualization, there are two issues mentioned below that require a bit more investigation and collaboration to find an approach to fix them. (working branch: https://github.com/debsmita1/backstage-plugins/tree/PRL-virtualized-table)

  1. Every time the Table component re-renders after the backstage API call, the scroll position is not persisted. As a result, if a user is scrolling through the table and in that moment if re-render occurs the user is taken to the top of the list.

  2. Resize observer loop limit exceeded issue. Every time the PipelineRun List page reloads a runtime error is shown to the user which can be ignored. I found related topics on the react-virtuoso repository but there’s no solution on how one can get rid of it ([BUG] ResizeOvserver loop limit exceeded - webpack-dev-server related petyosi/react-virtuoso#875 , "ResizeObserver loop limit exceeded" error with images petyosi/react-virtuoso#254)

Video: https://youtu.be/jz7LZJJFfmc

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

2 participants