feat: DrawerLayoutAndroid
Co-authored-by: Przemysław Sosna<przemyslaw.sosna@swmansion.com>
# message auto-generated for no-merge-commit merge:
!1638 merge @sosen/drawerlayoutandroid into 0.77.1-rc.1-ohos
feat: DrawerLayoutAndroid
Created-by: PrzemekSosna
Commit-by: Przemysław Sosna
Merged-by: huangyouhua
Description: ## Description
This PR adds RNs DrawerLayoutAndroid based on ArkUIs SideBarContainer. SideBarContainer is only present in ArkTS, so it has to be implemented there.
SideBarContainer requires exactly 2 ArkTS children, and because of this a single child with ContentSlot can't be used to build the children. I decided to use an additional "ContainerView" custom ArkTS component, which will be used as the DirectChild of SideBarContainer and will wrape the ContentSlots. The recommended way to create ArkTS children is ctx.wrappedRNChildrenBuilder, but it doesn't fulfill the 2 children requirement. That's why I used ctx.wrappedRNComponentBuilder directly.
Not all props are currently supported due to platform limitations. The SideBarContainer doesn't animate when controlled programatically.
## Changes
- added: DrawerLayoutAndroid arkTS component
## Test Plan
Check DrawerLayoutAndroid example.
## Checklist
- [x] Does not involve incompatible changes; if involved, has been reviewed accordingly.
- [x] Does not impact performance, or performance testing has been conducted without degradation.
- [x] Complies with the relevant coding standards.
- [x] Does not involve documentation updates, or the documentation has been updated.
- [x] Meets testability requirements with necessary self-test cases, appropriate logging, or trace information added.
- [x] No illegal file inclusions exist, such as images or code.
See merge request: openharmony-sig/ohos_react_native!1638