Skip to content

Commit 101ff84

Browse files
committed
Add Stack TransitionSpecs, CardStyleInterpolators, HeaderStyleInterpolators & TransitionPresets + mergeOptions to spread them
1 parent 9a68a0e commit 101ff84

File tree

4 files changed

+231
-134
lines changed

4 files changed

+231
-134
lines changed

src/Example.bs.js

Lines changed: 7 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@ var Native = require("@react-navigation/native");
88

99
function Example$HomeScreen(Props) {
1010
Props.navigation;
11+
Props.route;
1112
return React.createElement(ReactNative.Text, {
1213
children: "Hello Reasonable Person!"
1314
});
@@ -19,6 +20,7 @@ var HomeScreen = {
1920

2021
function Example$ModalScreen(Props) {
2122
Props.navigation;
23+
Props.route;
2224
return React.createElement(ReactNative.Text, {
2325
children: "Hello From Modal"
2426
});
@@ -36,16 +38,17 @@ var $$Navigator = include.Navigator;
3638

3739
function Example$MainStackScreen(Props) {
3840
Props.navigation;
41+
Props.route;
3942
return React.createElement($$Navigator.make, {
4043
children: React.createElement($$Screen.make, {
4144
name: "Home",
4245
options: (function (props) {
4346
var match = props.route.params;
4447
return {
4548
title: match !== undefined ? Caml_option.valFromOption(match).name : "Reason",
46-
headerLeft: (function (param) {
49+
headerRight: (function (param) {
4750
return React.createElement(ReactNative.Button, {
48-
color: "#fff",
51+
color: "#f00",
4952
onPress: (function (param) {
5053
props.navigation.navigate("MyModal");
5154
return /* () */0;
@@ -66,15 +69,12 @@ var MainStackScreen_HeaderTitle = include.HeaderTitle;
6669

6770
var MainStackScreen_Header = include.Header;
6871

69-
var MainStackScreen_TransitionSpec = include.TransitionSpec;
70-
7172
var MainStackScreen_stack = include.stack;
7273

7374
var MainStackScreen = {
7475
Navigation: MainStackScreen_Navigation,
7576
HeaderTitle: MainStackScreen_HeaderTitle,
7677
Header: MainStackScreen_Header,
77-
TransitionSpec: MainStackScreen_TransitionSpec,
7878
stack: MainStackScreen_stack,
7979
Screen: $$Screen,
8080
Navigator: $$Navigator,
@@ -87,7 +87,7 @@ var $$Screen$1 = include$1.Screen;
8787

8888
var $$Navigator$1 = include$1.Navigator;
8989

90-
function make(param) {
90+
function Example$RootStackScreen(Props) {
9191
return React.createElement(Native.NavigationNativeContainer, {
9292
children: React.createElement($$Navigator$1.make, {
9393
mode: "modal",
@@ -109,19 +109,16 @@ var RootStackScreen_HeaderTitle = include$1.HeaderTitle;
109109

110110
var RootStackScreen_Header = include$1.Header;
111111

112-
var RootStackScreen_TransitionSpec = include$1.TransitionSpec;
113-
114112
var RootStackScreen_stack = include$1.stack;
115113

116114
var RootStackScreen = {
117115
Navigation: RootStackScreen_Navigation,
118116
HeaderTitle: RootStackScreen_HeaderTitle,
119117
Header: RootStackScreen_Header,
120-
TransitionSpec: RootStackScreen_TransitionSpec,
121118
stack: RootStackScreen_stack,
122119
Screen: $$Screen$1,
123120
Navigator: $$Navigator$1,
124-
make: make
121+
make: Example$RootStackScreen
125122
};
126123

127124
exports.HomeScreen = HomeScreen;

src/Example.re

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -25,14 +25,14 @@ module MainStackScreen = {
2525
component=HomeScreen.make
2626
options={props =>
2727
options(
28-
~headerLeft=
28+
~headerRight=
2929
_ =>
3030
<Button
3131
onPress={_ =>
3232
props##navigation->Navigation.navigate("MyModal")
3333
}
3434
title="Info"
35-
color="#fff"
35+
color="#f00"
3636
/>,
3737
~title=
3838
switch (props##route##params) {
@@ -50,6 +50,7 @@ module RootStackScreen = {
5050
include Stack.Make({
5151
type params = unit;
5252
});
53+
[@react.component]
5354
let make = () =>
5455
<Native.NavigationNativeContainer>
5556
<Navigator mode=`modal headerMode=`none>

src/Stack.bs.js

Lines changed: 15 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,8 @@ var Interop = require("./Interop");
44
var Core$ReactNavigation = require("./Core.bs.js");
55
var Stack = require("@react-navigation/stack");
66

7+
var TransitionSpec = { };
8+
79
function StackNavigationScreenProp(M) {
810
var include = Core$ReactNavigation.NavigationScreenProp(M);
911
return {
@@ -47,7 +49,6 @@ function Make(M) {
4749
render: render$1,
4850
null: $$null
4951
};
50-
var TransitionSpec = { };
5152
var stack = Stack.createStackNavigator();
5253
var make = stack.Screen;
5354
var $$Screen = {
@@ -61,13 +62,25 @@ function Make(M) {
6162
Navigation: Navigation,
6263
HeaderTitle: HeaderTitle,
6364
Header: Header,
64-
TransitionSpec: TransitionSpec,
6565
stack: stack,
6666
Screen: $$Screen,
6767
Navigator: $$Navigator
6868
};
6969
}
7070

71+
var TransitionSpecs = { };
72+
73+
var CardStyleInterpolators = { };
74+
75+
var HeaderStyleInterpolators = { };
76+
77+
var TransitionPresets = { };
78+
79+
exports.TransitionSpec = TransitionSpec;
7180
exports.StackNavigationScreenProp = StackNavigationScreenProp;
7281
exports.Make = Make;
82+
exports.TransitionSpecs = TransitionSpecs;
83+
exports.CardStyleInterpolators = CardStyleInterpolators;
84+
exports.HeaderStyleInterpolators = HeaderStyleInterpolators;
85+
exports.TransitionPresets = TransitionPresets;
7386
/* ./Interop Not a pure module */

0 commit comments

Comments
 (0)