Open just-boris opened 6 days ago
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: |
:umbrella: View full report in Codecov by Sentry.
:loudspeaker: Have feedback on the report? Share it here.
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
AppLayoutProps
)AppLayoutPropsWithDefaults
=AppLayoutProps
+ default values). Cannot remove intermediate interface, because applying defaults should happen at this level for the sake of documentation generationAppLayoutPropsWithDefaults
)useAppLayout
to enhance their props with extra values. These implementations may choose to call it at different time and placeHow 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.