Skip to content

Commit a98d394

Browse files
committed
refactor(tabs): rename js action origin to programmatic-js
Align the public `actionOrigin` enum value with the Obj-C/codegen naming. `'js'` was ambiguous; `'programmatic-js'` makes it explicit that this origin covers JS-driven navigation requests delivered via the `navStateRequest` prop, distinct from a generic "JS" label. Updates the TS public type and both codegen specs, the Kotlin enum (`JS` → `PROGRAMMATIC_JS`) and its `toString()` mapping, and the iOS conversion helper to return the codegen-generated `ProgrammaticJs` C++ case (RN codegen converts `'programmatic-js'` kebab-case to `ProgrammaticJs` PascalCase).
1 parent 4615c77 commit a98d394

6 files changed

Lines changed: 10 additions & 10 deletions

File tree

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,25 +1,25 @@
11
package com.swmansion.rnscreens.gamma.tabs.container
22

3-
import com.swmansion.rnscreens.gamma.tabs.container.TabsActionOrigin.JS
3+
import com.swmansion.rnscreens.gamma.tabs.container.TabsActionOrigin.PROGRAMMATIC_JS
44
import com.swmansion.rnscreens.gamma.tabs.container.TabsActionOrigin.USER
55

66
/**
77
* Origin (actor) that requested a tab transition. Mirrors the public `actionOrigin` event field.
88
*
99
* - [USER] — direct native UI interaction (tab bar tap).
10-
* - [JS] — JS-initiated request delivered via the `navStateRequest` prop.
10+
* - [PROGRAMMATIC_JS] — JS-initiated request delivered via the `navStateRequest` prop.
1111
*
1212
* The `implicit` origin defined on the public TS API is iOS-only at the moment;
1313
* Android does not currently produce it.
1414
*/
1515
enum class TabsActionOrigin {
1616
USER,
17-
JS,
17+
PROGRAMMATIC_JS,
1818
;
1919

2020
override fun toString(): String =
2121
when (this) {
2222
USER -> "user"
23-
JS -> "js"
23+
PROGRAMMATIC_JS -> "programmatic-js"
2424
}
2525
}

android/src/main/java/com/swmansion/rnscreens/gamma/tabs/container/TabsContainer.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -377,7 +377,7 @@ internal class TabsContainer(
377377
navState,
378378
isRepeated = isRepeated,
379379
hasTriggeredSpecialEffect = hasTriggeredSpecialEffect,
380-
actionOrigin = if (isInExternalOperationContext) TabsActionOrigin.JS else TabsActionOrigin.USER,
380+
actionOrigin = if (isInExternalOperationContext) TabsActionOrigin.PROGRAMMATIC_JS else TabsActionOrigin.USER,
381381
)
382382
}
383383

ios/conversion/RNSConversions-Tabs.mm

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -241,7 +241,7 @@ UITabBarControllerMode UITabBarControllerModeFromRNSTabBarControllerMode(RNSTabB
241241
case RNSTabsActionOriginUser:
242242
return User;
243243
case RNSTabsActionOriginProgrammaticJs:
244-
return Js;
244+
return ProgrammaticJs;
245245
case RNSTabsActionOriginImplicit:
246246
return Implicit;
247247
}

src/components/tabs/host/TabsHost.types.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -66,12 +66,12 @@ export type TabSelectedEvent = {
6666
*
6767
* @description
6868
* - `'user'` — direct native UI interaction (e.g. tab bar tap, iOS tab drag-and-drop).
69-
* - `'js'` — JS-initiated request delivered via the `navStateRequest` prop.
69+
* - `'programmatic-js'` — JS-initiated request delivered via the `navStateRequest` prop.
7070
* - `'implicit'` — platform side effect not attributable to an explicit actor
7171
* (e.g. UIKit reshuffling the selection during a horizontal size-class transition on iPad).
7272
* Currently only emitted on iOS.
7373
*/
74-
actionOrigin: 'user' | 'js' | 'implicit';
74+
actionOrigin: 'user' | 'programmatic-js' | 'implicit';
7575
};
7676

7777
/**

src/fabric/tabs/TabsHostAndroidNativeComponent.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ type TabSelectedEvent = {
1010
provenance: CT.Int32;
1111
isRepeated: boolean;
1212
hasTriggeredSpecialEffect: boolean;
13-
actionOrigin: 'user' | 'js' | 'implicit';
13+
actionOrigin: 'user' | 'programmatic-js' | 'implicit';
1414
};
1515

1616
type NavigationStateRequest = {

src/fabric/tabs/TabsHostIOSNativeComponent.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ type TabSelectedEvent = Readonly<{
1010
provenance: CT.Int32;
1111
isRepeated: boolean;
1212
hasTriggeredSpecialEffect: boolean;
13-
actionOrigin: 'user' | 'js' | 'implicit';
13+
actionOrigin: 'user' | 'programmatic-js' | 'implicit';
1414
}>;
1515

1616
type NavigationStateRequest = Readonly<{

0 commit comments

Comments
 (0)