Skip to content

Commit 81672f2

Browse files
committed
Complete NavigationOptions externs and add AnimationsOptions
1 parent 3ffe15c commit 81672f2

File tree

4 files changed

+85
-0
lines changed

4 files changed

+85
-0
lines changed
Lines changed: 41 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,41 @@
1+
package react.native.navigation;
2+
3+
typedef AnimationsOptions = {
4+
? setRoot : AnimationOptions,
5+
? push : AnimationOptions,
6+
? pop : AnimationOptions,
7+
? showModal : AnimationOptions,
8+
? dismissModal : AnimationOptions,
9+
}
10+
typedef AnimationOptions = {
11+
> AnimationElementOptions,
12+
? enabled : Bool,
13+
? topBar : {
14+
> AnimationElementOptions,
15+
? id : String,
16+
},
17+
? bottomTabs : AnimationElementOptions,
18+
? content : AnimationElementOptions,
19+
}
20+
typedef AnimationElementOptions = {
21+
? x : AnimationParametersOptions,
22+
? y : AnimationParametersOptions,
23+
? alpha : AnimationParametersOptions,
24+
? scaleX : AnimationParametersOptions,
25+
? scaleY : AnimationParametersOptions,
26+
? rotationX : AnimationParametersOptions,
27+
? rotationY : AnimationParametersOptions,
28+
? rotation : AnimationParametersOptions,
29+
}
30+
@:enum
31+
abstract AnimationInterpolation(String) {
32+
var Accelerate = 'accelerate';
33+
var Decelerate = 'decelerate';
34+
}
35+
typedef AnimationParametersOptions = {
36+
? from : Float, // Mandatory, initial value
37+
? to : Float, // Mandatory, end value
38+
? duration : Int, // Default value is 300 ms
39+
? startDelay : Int, // Default value is 0
40+
? interpolation : AnimationInterpolation,
41+
}

src/react/native/navigation/Navigation.hx

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,10 @@ typedef LayoutHierarchy = {
66

77
@:jsRequire("react-native-navigation","Navigation")
88
extern class Navigation {
9+
static public var Element : react.React.CreateElementType;
10+
#if ios
11+
static public var TouchablePreview : react.React.CreateElementType;
12+
#end
913
// top level
1014
static public function registerComponent(id : String, cb : Void -> Dynamic) : Void;
1115
static public function registerComponentWithRedux(id : String, cb : Void -> Dynamic, provider : Dynamic, store : Dynamic) : Void;
@@ -25,4 +29,5 @@ extern class Navigation {
2529
static public function mergeOptions(id : String, options : NavigationOptions) : Void;
2630
// others
2731
static public function setDefaultOptions(options : NavigationOptions) : Void;
32+
static public function constants() : NavigationConstants;
2833
}
Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
package react.native.navigation;
2+
3+
typedef NavigationConstants = {
4+
? statusBarHeight : Float,
5+
? topBarHeight : Float,
6+
? bottomTabsHeight : Float,
7+
}

src/react/native/navigation/NavigationOptions.hx

Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -29,10 +29,13 @@ typedef NavigationOptions = {
2929
? primaryEdge : String,
3030
? minWidth : Int,
3131
? maxWidth : Int,
32+
? animations : AnimationsOptions,
33+
? customTransition : SharedElementsTransition,
3234
#if ios
3335
? popGesture : Bool,
3436
? backgroundImage : String,
3537
? rootBackgroundImage : String,
38+
? preview : Dynamic,
3639
#end
3740
}
3841

@@ -70,6 +73,20 @@ typedef LayoutOptions = {
7073
#end
7174
}
7275

76+
typedef ButtonOptions = {
77+
id : String,
78+
icon : String,
79+
component : {
80+
name : String,
81+
},
82+
text : String,
83+
enabled : Bool,
84+
disableIconTint : Bool,
85+
color : String,
86+
disabledColor : String,
87+
testID : String,
88+
}
89+
7390
@:enum
7491
abstract AlignmentValue(String) {
7592
var Left = 'left';
@@ -84,6 +101,8 @@ abstract IosBarStyle(String) {
84101
}
85102
#end
86103
typedef TopBarOptions = {
104+
? leftButtons : Array<ButtonOptions>,
105+
? rightButtons : Array<ButtonOptions>,
87106
? visible : Bool,
88107
? animate : Bool, // Controls whether TopBar visibility changes should be animated
89108
? hideOnScroll : Bool,
@@ -252,4 +271,17 @@ typedef PreviewOptions = {
252271
? height : Int,
253272
? commit : Bool,
254273
? actions : Array<PreviewActionOptions>,
274+
}
275+
276+
typedef SharedElementTransition = {
277+
type : String,
278+
fromId : String,
279+
toId : String,
280+
startDelay : Float,
281+
springVelocity : Float,
282+
duration : Float,
283+
}
284+
typedef SharedElementsTransition = {
285+
animations : Array<SharedElementTransition>,
286+
duration : Float
255287
}

0 commit comments

Comments
 (0)