cloudscape-design / components

React components for Cloudscape Design System
https://cloudscape.design/
Apache License 2.0
2.3k stars 140 forks source link

feat: Support breadcrumb instances deduplication #2419

Closed just-boris closed 3 days ago

just-boris commented 4 days ago

Description

Deduplicate multiple BreadcrumbGroup instances across the page and render only one inside the respective app layout slot. Only behind appLayoutWidget feature flag, not for production use.

<AppLayout
   breadcrumbs={null}
   content={<>
       <BreadcrumbGroup /> // this one will be rendered in the intended place, even if it did not use the slot
   </>}
/>

See the tests for more details about order resolution and other corner-cases.

Related links, issue #, if available: n/a

How has this been tested?

Added unit and integration tests

Review checklist _The following items are to be evaluated by the author(s) and the reviewer(s)._ #### Correctness - _Changes include appropriate documentation updates._ - _Changes are backward-compatible if not indicated, see [`CONTRIBUTING.md`](https://github.com/cloudscape-design/components/blob/main/CONTRIBUTING.md#public-apis)._ - _Changes do not include unsupported browser features, see [`CONTRIBUTING.md`](https://github.com/cloudscape-design/components/blob/main/CONTRIBUTING.md#browsers-support)._ - _Changes were manually tested for accessibility, see [accessibility guidelines](https://cloudscape.design/foundation/core-principles/accessibility/)._ #### Security - _If the code handles URLs: all URLs are validated through [the `checkSafeUrl` function](https://github.com/cloudscape-design/components/blob/main/src/internal/utils/check-safe-url.ts)._ #### Testing - _Changes are covered with new/existing unit tests?_ - _Changes are covered with new/existing integration tests?_

By submitting this pull request, I confirm that you can use, modify, copy, and redistribute this contribution, under the terms of your choice.

codecov[bot] commented 4 days ago

Codecov Report

Attention: Patch coverage is 94.80519% with 4 lines in your changes missing coverage. Please review.

Project coverage is 95.62%. Comparing base (e5fdb4a) to head (8b5a881).

Files Patch % Lines
src/app-layout/visual-refresh-toolbar/index.tsx 42.85% 4 Missing :warning:
Additional details and impacted files ```diff @@ Coverage Diff @@ ## main #2419 +/- ## ======================================== Coverage 95.62% 95.62% ======================================== Files 720 722 +2 Lines 19163 19237 +74 Branches 6397 6118 -279 ======================================== + Hits 18325 18396 +71 - Misses 784 833 +49 + Partials 54 8 -46 ```

:umbrella: View full report in Codecov by Sentry.
:loudspeaker: Have feedback on the report? Share it here.