Project

General

Profile

Actions

Feature #22159

open

Refactor Data-Explorer and renderers.tsx

Added by Lisa Knox about 2 months ago. Updated about 18 hours ago.

Status:
In Progress
Priority:
Normal
Assigned To:
Category:
Workbench2
Target version:
Story points:
-

Description

Currently, the data-table is passed a list of UUIDs which are extracted from resources stored in the redux store. It then passes each UUID to a table row, which is then passed to renderer function for each column, which returns a connected react component that makes its own call to the redux store to get the specific value to be rendered. This adds unneeded complexity and unneeded computational overhead in extra calls to redux and extra react re-rendering checks. We should refactor so that there is one call to redux for each resource in the data table and each table cell calls a render function that only handles the styling, unless the specific contents require more complex logic to work.

Proposed steps:
  1. Convert data-table to accept an array of resource objects (as "items") instead of an array of UUIDs, and to pass each resource object (instead of the UUID) to each table row
  2. Go through each data-explorer and determine which table cells can be displayed as simple JSX vs those that must require a child component due to additional logic being necessary for rendering
  3. refactor the rendering functions to be as simple as possible, eliminating extra calls to the redux store and returning only JSX wherever possible

This should all be done with every intention of not changing what is visibly rendered to the user in any way. The result should be a faster First Contentful Paint on each render, making workbench as a whole feel snappier.


Subtasks 1 (1 open0 closed)

Task #22180: Review 22159-data-explorer-refactorIn ProgressStephen Smith11/19/2024Actions
Actions #1

Updated by Peter Amstutz about 1 month ago

  • Target version changed from Development 2024-10-09 sprint to Development 2024-10-23 sprint
Actions #2

Updated by Peter Amstutz about 1 month ago

  • Target version changed from Development 2024-10-23 sprint to Development 2024-11-06 sprint
Actions #3

Updated by Lisa Knox 30 days ago

  • Status changed from New to In Progress
Actions #4

Updated by Peter Amstutz 30 days ago

  • Target version changed from Development 2024-11-06 sprint to Development 2024-11-20
Actions #5

Updated by Lisa Knox 1 day ago

22159-data-explorer-refactor @ a8f1f6be7f963739a078e609e4630559da8f0610

developer-run-tests-services-workbench2: #1360

  • ✅ All agreed upon points are implemented / addressed.
  • ✅ Anything not implemented (discovered or discussed during work) has a follow-up story.
    https://dev.arvados.org/issues/22300
    https://dev.arvados.org/issues/22328
  • ✅ Code is tested and passing, both automated and manual, what manual testing was done is described
    Manually tested by comparing each data table with the same table on main branch
  • - New or changed UX/UX and has gotten feedback from stakeholders.
    n/a
  • - Documentation has been updated.
    n/a
  • ✅ Behaves appropriately at the intended scale (describe intended scale).
    No changes to intended scale
  • ✅ Considered backwards and forwards compatibility issues between client and server.
    No changes
  • ✅ Follows our coding standards and GUI style guidelines.
Notes:
  • I took the opportunity to rearrange renderers.tsx for readability.
  • I was able to consolidate several render functions which did the same job (e.g. rendering a typography-wrapped string)
  • I also removed several functions in renderers.tsx that were not referenced anywhere else, so were unused
Actions #6

Updated by Peter Amstutz about 18 hours ago

  • Target version changed from Development 2024-11-20 to Development 2024-12-04
Actions

Also available in: Atom PDF