fix(breadcrumbs): removed item rendering flick (#DS-4622)#1579
fix(breadcrumbs): removed item rendering flick (#DS-4622)#1579NikGurev wants to merge 19 commits into
Conversation
|
Visit the preview URL for this PR (updated for commit c3fce30): https://koobiq-next--prs-1579-gbet4tnu.web.app (expires Tue, 09 Jun 2026 17:00:41 GMT) 🔥 via Firebase Hosting GitHub Action 🌎 Sign: c9e37e518febda70d0317d07e8ceb35ac43c534c |
🚨 E2E tests failedReview the report for details. 💡 Comment |
🚨 E2E tests failedReview the report for details. 💡 Comment |
|
/approve-snapshots |
|
🔄 Updating snapshots. |
|
🚨 Failed to update snapshots. |
🚨 E2E tests failedReview the report for details. 💡 Comment |
|
/approve-snapshots |
|
🔄 Updating snapshots. |
|
✅ Snapshots updated! |
There was a problem hiding this comment.
Pull request overview
This PR updates the Breadcrumbs component to use Angular signal-based queries/computations to prevent a visible “reflow” during initial render (previously caused by maxWidth being null on the first CD cycle), and re-enables the previously skipped E2E suite after addressing keyboard focus ordering.
Changes:
- Migrated breadcrumb item/template/query handling to signal-based APIs (
contentChild,contentChildren,viewChild,viewChildren,computed,effect). - Adjusted overflow rendering to use signal reads in the template and added CSS to hide projected
<kbq-breadcrumb-item>nodes. - Added unit tests for roving-focus ordering and un-skipped the Playwright suite for
KbqBreadcrumbsModule.
Reviewed changes
Copilot reviewed 6 out of 9 changed files in this pull request and generated 4 comments.
Show a summary per file
| File | Description |
|---|---|
| tools/public_api_guard/components/breadcrumbs.api.md | Updates public API snapshot to reflect signal-based members. |
| packages/components/breadcrumbs/e2e.playwright-spec.ts | Re-enables previously fixme-skipped E2E describe block. |
| packages/components/breadcrumbs/breadcrumbs.ts | Core refactor to signals (queries, maxWidth computation, focus ordering effect). |
| packages/components/breadcrumbs/breadcrumbs.spec.ts | Adds unit coverage for focusable item ordering behavior. |
| packages/components/breadcrumbs/breadcrumbs.scss | Hides projected breadcrumb-item elements to avoid duplicate rendering. |
| packages/components/breadcrumbs/breadcrumbs.html | Updates template to use signal reads and simplifies overflow result rendering. |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
🚨 E2E tests failedReview the report for details. 💡 Comment |
c6b11d5 to
a5c9ca5
Compare
🚨 E2E tests failedReview the report for details. 💡 Comment |
| <ng-template #breadcrumbTemplate let-item let-last="last"> | ||
| @if (item.customTemplateRef()) { | ||
| <ng-container [ngTemplateOutlet]="item.customTemplateRef()!" /> | ||
| @let customTemplateRef = item.customTemplateRef(); |
There was a problem hiding this comment.
было 2 строки стало 3, в чем смысл ?
| <ng-template #separatorTemplate> | ||
| @if (separator) { | ||
| <ng-container [ngTemplateOutlet]="separator" /> | ||
| @let separatorTemplate = separator(); |
There was a problem hiding this comment.
тоже самое, зачем ? Все что не влияет на исправление бага нужно убрать из PR
There was a problem hiding this comment.
Убрал, оставил шаблонную переменную на верхнем уровне только для items.
Items в рамках фикса переделал на сигнал для удобство воркфлоу и расчетов
Summary
maxWidthcalculation with simple overflow items hidingTODO