Describe your changes and why you are making these changes
This PR starts refactoring workflow details page using RTK queries. In this PR, we focus on wf headers and version selectors. We also introduced some foundational setup that will be extended to other components. Specifically:
Use RTK query for wf header
Introduced a new redux store WorkflowPage that caches individual page states for all single dag / result pages. This ensures user can switch between workflow / results without losing the state (e.g. unfinished form data, node selections, etc.)
We treat URL as the ground truth for version selection and implemented a single hook (useWorkflowIds) to fetch from URL, and sync with redux store. This centralize the code we interact with IDs and makes version change easy (just use navigate() to update URL).
Related issue number (if any)
Loom demo (if any)
This PR builds, but features may be broken as we didn't finish all migrations yet.
Checklist before requesting a review
[ ] I have created a descriptive PR title. The PR title should complete the sentence "This PR...".
[ ] I have performed a self-review of my code.
[ ] I have included a small demo of the changes. For the UI, this would be a screenshot or a Loom video.
[ ] If this is a new feature, I have added unit tests and integration tests.
[ ] I have run the integration tests locally and they are passing.
[ ] I have run the linter script locally (See python3 scripts/run_linters.py -h for usage).
[ ] All features on the UI continue to work correctly.
[ ] Added one of the following CI labels:
run_integration_test: Runs integration tests
skip_integration_test: Skips integration tests (Should be used when changes are ONLY documentation/UI)
Describe your changes and why you are making these changes
This PR starts refactoring workflow details page using RTK queries. In this PR, we focus on wf headers and version selectors. We also introduced some foundational setup that will be extended to other components. Specifically:
WorkflowPage
that caches individual page states for all single dag / result pages. This ensures user can switch between workflow / results without losing the state (e.g. unfinished form data, node selections, etc.)useWorkflowIds
) to fetch from URL, and sync with redux store. This centralize the code we interact with IDs and makes version change easy (just usenavigate()
to update URL).Related issue number (if any)
Loom demo (if any)
This PR builds, but features may be broken as we didn't finish all migrations yet.
Checklist before requesting a review
python3 scripts/run_linters.py -h
for usage).run_integration_test
: Runs integration testsskip_integration_test
: Skips integration tests (Should be used when changes are ONLY documentation/UI)