cloudscape-design / components

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

chore: Extract common app layout logic into useAppLayout hook #2407

Open just-boris opened 6 days ago

just-boris commented 6 days ago

Description

Extract common app layout logic into useAppLayout hook

Related links, issue #, if available: some ground work was done in the past, https://github.com/cloudscape-design/components/pull/2137 the new PR builds on top of these changes

Why is this needed?

Currently we have a bunch of internal components inside app layout

Before this PR, they received something called AppLayoutPropsWithDefaults which not only included the original customer's props but also some processing.

These separate implementations might have their own logic, they may want to have access to the pristine props coming from the customer directly. This PR allows them to do so.

The new workflow becomes the following

How has this been tested?

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 6 days ago

Codecov Report

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

Project coverage is 95.62%. Comparing base (f0ac2a1) to head (012869e).

Files Patch % Lines
src/app-layout/classic.tsx 97.97% 4 Missing :warning:
Additional details and impacted files ```diff @@ Coverage Diff @@ ## main #2407 +/- ## ========================================== - Coverage 95.62% 95.62% -0.01% ========================================== Files 720 721 +1 Lines 19143 19151 +8 Branches 6436 6101 -335 ========================================== + Hits 18306 18313 +7 - Misses 829 830 +1 Partials 8 8 ```

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