You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Adds a fourth value to the public `TabSelectedEvent.actionOrigin` union:
`'user' | 'programmatic-js' | 'programmatic-native' | 'implicit'`. The
new origin is reserved for downstream libraries that integrate directly
against `TabsContainer` (Android) or `RNSTabBarController` (iOS) — this
library itself does not produce it.
Plumbed end-to-end:
- Public TS contract + both Android/iOS codegen specs.
- iOS: `RNSTabsActionOriginProgrammaticNative` enum case and the matching
arm in the conversion helper that maps the Obj-C enum to the codegen
C++ scoped enum.
- Android: `TabsActionOrigin.PROGRAMMATIC_NATIVE` + `toString()` mapping.
Android visibility widening to make the new origin reachable from
outside the library (iOS already exposes the equivalent surface):
- `TabsContainer` class is now public; constructor stays `internal`
because it takes the still-`internal` `TabsContainerDelegate`.
Downstream is expected to obtain the container reference via its own
integration path (TabsHost.container stays `private`).
- `setContainerOperation(TabsContainerOp)` is replaced with a public
`setPendingNavigationStateUpdate(TabsNavStateUpdateRequest)` that
takes the request directly and wraps in `TabSelectOp` internally.
Naming mirrors `RNSTabBarController.setPendingNavigationStateUpdate:`.
- `performContainerUpdateIfNeeded()` is now public — the flush trigger
downstream calls after setting a pending update.
- Internal sealed-class machinery (`TabsContainerOp`, `TabSelectOp`)
stays internal.
Also reformats iOS doc comments in `RNSTabsNavigationState.h` to
per-case style and the `/**\n * ...\n */` form consistently.
0 commit comments