Skip to content

Project selection when adding child items at scale

Jack Chapman requested to merge jc/project-selection-at-scale into master

What does this MR do and why?

Updates the Project selection listbox component to use project fullPaths rather than project objects from the GraphQL API.

This has two main benefits:

  1. The auto-selection of the current project is instant, rather than waiting for the GraphQL response when fetching the list of available projects.
  2. When there is a large amount of available projects (>100), it's possible the current project won't be included in the initial API response. Previously it would have been impossible to auto-select the current project if this was the case.

In short — the component no longer relies on a GraphQL Query to select the current project. This should be a big performance and stability improvement for large instances where there are a lot of projects to choose from.

This MR also adds a loading indicator for both the initial load of the projects, and when searching for projects within the list box.

MR acceptance checklist

Please evaluate this MR against the MR acceptance checklist. It helps you analyze changes to reduce risks in quality, performance, reliability, security, and maintainability.

Screenshots or screen recordings

Screenshots are required for UI changes, and strongly recommended for all other merge requests.

Before After
Screen_Recording_2024-07-24_at_11.46.31 Screen_Recording_2024-07-24_at_11.48.13

How to set up and validate locally

Numbered steps to set up and validate the change are strongly suggested.

  1. Visit an issue and go to add a new task.
  2. The current project should be selected for you instantly.
  3. You should see a loading indicator when:
    1. Searching for projects
    2. The initial list is loading (may have to click the listbox quickly to see this)

relates to #473282 (closed)

Edited by Jack Chapman

Merge request reports

Loading