Alternative Vue breadcrumb injection method
What does this MR do and why?
We have various problems with breadcrumbs on Vue pages, all stemming
from our injection of a new GlBreadcrumb
next to the existing one used
for static pages.
This MR proposes a different method for injecting those breadcrumbs that
takes the items from the static GlBreadcrumb
and adds them to the newly injected one, then deletes the static one so that only a single GlBreadcrumb remains.
References
- Work items - Breadcrumbs can get stuck unexpanded (#533913 - closed)
- https://gitlab.com/gitlab-org/gitlab/-/issues/512715
- fix(GlBreadcrumb): Fix extreme customer edge case (gitlab-ui!5054 - closed)
- Unexpected breadcrumb collapsing behavior on Ne... (#534138 - closed)
- #523713 (comment 2431168243)
Screenshots or screen recordings
Before | After |
---|---|
Screen_Recording_2025-04-03_at_17.54.50 | Screen_Recording_2025-04-03_at_17.54.01 |
How to set up and validate locally
- Check out this branch
- ensure the work items issue view is turned on in your GDK
- Create a group called
MLS
- Create a project inside the group called
MLS Portal
- Visit the issues page
- You should see that the breadcrumb is not flickering
- Squeeze your viewport down to a very narrow width
- The breadcrumbs will collapse
- Re-expand your viewport
- The breadcrumbs will re-expand to fit
- Create an issue in the project
- The breadcrumb will be correct on the new issue page
- Go back to the issues list
- open the issue in the drawer
- expand the issue
- The breadcrumbs will be correctly updated
MR acceptance checklist
Evaluate this MR against the MR acceptance checklist. It helps you analyze changes to reduce risks in quality, performance, reliability, security, and maintainability.
Related to #533913 (closed)
Edited by Chad Lavimoniere