Browse Source

deprecate API

Daniel Zlotin 8 years ago
parent
commit
98be5f91b2

+ 1
- 1
src/Navigation.js View File

@@ -1,6 +1,6 @@
1 1
 import React from 'react';
2 2
 import {AppRegistry} from 'react-native';
3
-import platformSpecific from './platformSpecific';
3
+import platformSpecific from './platformSpecificDeprecated';
4 4
 import Screen from './Screen';
5 5
 
6 6
 const registeredScreens = {};

+ 1
- 1
src/Screen.js View File

@@ -4,7 +4,7 @@ import {
4 4
   DeviceEventEmitter,
5 5
   Platform
6 6
 } from 'react-native';
7
-import platformSpecific from './platformSpecific';
7
+import platformSpecific from './platformSpecificDeprecated';
8 8
 import Navigation from './Navigation';
9 9
 
10 10
 const _allNavigatorEventHandlers = {};

+ 10
- 208
src/platformSpecific.android.js View File

@@ -1,222 +1,24 @@
1 1
 import React, {Component} from 'react';
2 2
 import {AppRegistry, NativeModules} from 'react-native';
3
+import _ from 'lodash';
3 4
 
4 5
 import Navigation from './Navigation';
5
-import utils from './utils';
6 6
 
7 7
 const resolveAssetSource = require('react-native/Libraries/Image/resolveAssetSource');
8 8
 
9
-function startSingleScreenApp(params) {
9
+function startApp(params) {
10 10
   const screen = params.screen;
11
-  if (!screen.screen) {
12
-    console.error('startSingleScreenApp(params): screen must include a screen property');
11
+  if (!screen.screenId) {
12
+    console.error('startApp(params): screenId property must be supplied');
13 13
     return;
14 14
   }
15
-  addNavigatorParams(screen);
16
-  addNavigatorButtons(screen);
17
-  addNavigationStyleParams(screen);
18
-  screen.passProps = params.passProps;
19
-  //const drawer = setupDrawer(params.drawer);
20 15
 
21
-  NativeModules.NavigationReactModule.startApp(screen);
22
-}
23
-
24
-function startTabBasedApp(params) {
25
-  if (!params.tabs) {
26
-    console.error('startTabBasedApp(params): params.tabs is required');
27
-    return;
28
-  }
29
-
30
-  params.tabs.forEach(function(tab, idx) {
31
-    addNavigatorParams(tab, null, idx);
32
-    addNavigatorButtons(tab);
33
-    addNavigationStyleParams(tab);
34
-    addTabIcon(tab);
35
-    tab.passProps = params.passProps;
36
-  });
37
-
38
-  const drawer = setupDrawer(params.drawer);
39
-  //RctActivity.startTabBasedApp(params.tabs, params.tabsStyle, drawer);
40
-}
41
-
42
-function addTabIcon(tab) {
43
-  if (tab.icon) {
44
-    const icon = resolveAssetSource(tab.icon);
45
-    if (icon) {
46
-      tab.icon = icon.uri;
47
-    }
48
-  }
49
-
50
-  if (!tab.icon) {
51
-    throw new Error("No icon defined for tab " + tab.screen);
52
-  }
53
-}
54
-
55
-function navigatorPush(navigator, params) {
56
-  addNavigatorParams(params, navigator);
57
-  addNavigatorButtons(params);
58
-  addNavigationStyleParams(params);
59
-  //RctActivity.navigatorPush(params);
60
-}
61
-
62
-function navigatorSetButtons(navigator, navigatorEventID, params) {
63
-  if (params.rightButtons) {
64
-    params.rightButtons.forEach(function(button) {
65
-      if (button.icon) {
66
-        const icon = resolveAssetSource(button.icon);
67
-        if (icon) {
68
-          button.icon = icon.uri;
69
-        }
70
-      }
71
-    });
72
-  }
73
-  //RctActivity.setNavigatorButtons(params);
74
-}
75
-
76
-function navigatorPop(navigator, params) {
77
-  addNavigatorParams(params, navigator);
78
-  //RctActivity.navigatorPop(params);
79
-}
80
-
81
-function navigatorPopToRoot(navigator, params) {
82
-  //RctActivity.navigatorPopToRoot({
83
-  //  navigatorID: navigator.navigatorID,
84
-  //  animated: !(params.animated === false)
85
-  //});
86
-}
87
-
88
-function navigatorResetTo(navigator, params) {
89
-  addNavigatorParams(params, navigator);
90
-  addNavigatorButtons(params);
91
-  addNavigationStyleParams(params);
92
-  //RctActivity.navigatorResetTo(params);
93
-}
94
-
95
-function navigatorSetTabBadge(navigator, params) {
96
-  //RctActivity.setTabBadge({
97
-  //  tabIndex: params.tabIndex,
98
-  //  badge: params.badge
99
-  //});
100
-}
101
-
102
-function navigatorSetTitle(navigator, params) {
103
-  //RctActivity.setNavigatorTitle(params);
104
-}
16
+  const actualScreen = Navigation.getRegisteredScreen(screen.screenId);
17
+  screen.screenInstanceId = _.uniqueId('screenInstanceId');
105 18
 
106
-function navigatorSwitchToTab(navigator, params) {
107
-  //RctActivity.switchToTab({
108
-  //  navigatorID: navigator.navigatorID,
109
-  //  tabIndex: params.tabIndex
110
-  //});
19
+  NativeModules.NavigationReactModule.startApp(params);
111 20
 }
112 21
 
113
-function navigatorToggleDrawer(navigator, params) {
114
-  //RctActivity.toggleDrawer({
115
-  //  side: params.side,
116
-  //  animated: !(params.animated === false),
117
-  //  to: params.to || ''
118
-  //});
119
-}
120
-
121
-function navigatorToggleNavBar(navigator, params) {
122
-  //RctActivity.toggleNavigationBar({
123
-  //  hidden: params.to === 'hidden',
124
-  //  animated: !(params.animated === false)
125
-  //});
126
-}
127
-
128
-function navigatorToggleTabs(navigator, params) {
129
-  //RctActivity.toggleNavigatorTabs({
130
-  //  hidden: params.to === 'hidden',
131
-  //  animated: !(params.animated === false)
132
-  //});
133
-}
134
-
135
-function showModal(params) {
136
-  addNavigatorParams(params);
137
-  addNavigatorButtons(params);
138
-  addNavigationStyleParams(params);
139
-  //RctActivity.showModal(params);
140
-}
141
-
142
-function dismissModal() {
143
-  //RctActivity.dismissModal();
144
-}
145
-
146
-function dismissAllModals(params) {
147
-  //RctActivity.dismissAllModals(params.animationType);
148
-}
149
-
150
-function addNavigatorParams(screen, navigator = null, idx = '') {
151
-  screen.navigatorID = navigator ? navigator.navigatorID : utils.getRandomId() + '_nav' + idx;
152
-  screen.screenInstanceID = utils.getRandomId();
153
-  screen.navigatorEventID = screen.screenInstanceID + '_events';
154
-}
155
-
156
-function addNavigatorButtons(screen) {
157
-  const Screen = Navigation.getRegisteredScreen(screen.screen);
158
-  Object.assign(screen, Screen.navigatorButtons);
159
-
160
-  // Get image uri from image id
161
-  const rightButtons = screen.rightButtons ? screen.rightButtons : screen.navigatorButtons ?
162
-                                                                   screen.navigatorButtons.rightButtons : null;
163
-  if (rightButtons) {
164
-    rightButtons.forEach(function(button) {
165
-      if (button.icon) {
166
-        const icon = resolveAssetSource(button.icon);
167
-        if (icon) {
168
-          button.icon = icon.uri;
169
-        }
170
-      }
171
-    });
172
-  }
173
-}
174
-
175
-function addNavigationStyleParams(screen) {
176
-  const Screen = Navigation.getRegisteredScreen(screen.screen);
177
-  screen.navigatorStyle = Object.assign({}, screen.navigatorStyle, Screen.navigatorStyle);
178
-}
179
-
180
-function setupDrawer(drawerParams) {
181
-  const drawer = Object.assign({}, drawerParams);
182
-  [drawer.left, drawer.right].forEach(side => {
183
-    if (!side) {
184
-      return;
185
-    }
186
-    const icon = resolveAssetSource(side.icon);
187
-    if (icon) {
188
-      side.icon = icon.uri;
189
-    }
190
-  });
191
-  if (drawer.disableOpenGesture === undefined) {
192
-    drawer.disableOpenGesture = false;
193
-  }
194
-  ;
195
-
196
-  return drawer;
197
-}
198
-
199
-function showFAB(params) {
200
-  params.icon = resolveAssetSource(params.icon).uri;
201
-  //RctActivity.showFAB(params);
202
-}
203
-
204
-export default {
205
-  startTabBasedApp,
206
-  startSingleScreenApp,
207
-  navigatorPush,
208
-  navigatorPop,
209
-  navigatorPopToRoot,
210
-  navigatorResetTo,
211
-  showModal,
212
-  dismissModal,
213
-  dismissAllModals,
214
-  showFAB,
215
-  navigatorSetButtons,
216
-  navigatorSetTabBadge,
217
-  navigatorSetTitle,
218
-  navigatorSwitchToTab,
219
-  navigatorToggleDrawer,
220
-  navigatorToggleTabs,
221
-  navigatorToggleNavBar
222
-}
22
+module.exports = {
23
+  startApp
24
+};

+ 217
- 0
src/platformSpecificDeprecated.android.js View File

@@ -0,0 +1,217 @@
1
+import * as newPlatformSpecific from './platformSpecific';
2
+
3
+function startSingleScreenApp(params) {
4
+  const screen = params.screen;
5
+  if (!screen.screen) {
6
+    console.error('startSingleScreenApp(params): screen must include a screen property');
7
+    return;
8
+  }
9
+  addNavigatorParams(screen);
10
+  addNavigatorButtons(screen);
11
+  addNavigationStyleParams(screen);
12
+  screen.passProps = params.passProps;
13
+  //const drawer = setupDrawer(params.drawer);
14
+
15
+  params.screenId = screen.screen;
16
+  newPlatformSpecific.startApp(params);
17
+}
18
+
19
+function startTabBasedApp(params) {
20
+  if (!params.tabs) {
21
+    console.error('startTabBasedApp(params): params.tabs is required');
22
+    return;
23
+  }
24
+
25
+  params.tabs.forEach(function(tab, idx) {
26
+    addNavigatorParams(tab, null, idx);
27
+    addNavigatorButtons(tab);
28
+    addNavigationStyleParams(tab);
29
+    addTabIcon(tab);
30
+    tab.passProps = params.passProps;
31
+  });
32
+
33
+  const drawer = setupDrawer(params.drawer);
34
+  //RctActivity.startTabBasedApp(params.tabs, params.tabsStyle, drawer);
35
+}
36
+
37
+function addTabIcon(tab) {
38
+  if (tab.icon) {
39
+    const icon = resolveAssetSource(tab.icon);
40
+    if (icon) {
41
+      tab.icon = icon.uri;
42
+    }
43
+  }
44
+
45
+  if (!tab.icon) {
46
+    throw new Error("No icon defined for tab " + tab.screen);
47
+  }
48
+}
49
+
50
+function navigatorPush(navigator, params) {
51
+  addNavigatorParams(params, navigator);
52
+  addNavigatorButtons(params);
53
+  addNavigationStyleParams(params);
54
+  //RctActivity.navigatorPush(params);
55
+}
56
+
57
+function navigatorSetButtons(navigator, navigatorEventID, params) {
58
+  if (params.rightButtons) {
59
+    params.rightButtons.forEach(function(button) {
60
+      if (button.icon) {
61
+        const icon = resolveAssetSource(button.icon);
62
+        if (icon) {
63
+          button.icon = icon.uri;
64
+        }
65
+      }
66
+    });
67
+  }
68
+  //RctActivity.setNavigatorButtons(params);
69
+}
70
+
71
+function navigatorPop(navigator, params) {
72
+  addNavigatorParams(params, navigator);
73
+  //RctActivity.navigatorPop(params);
74
+}
75
+
76
+function navigatorPopToRoot(navigator, params) {
77
+  //RctActivity.navigatorPopToRoot({
78
+  //  navigatorID: navigator.navigatorID,
79
+  //  animated: !(params.animated === false)
80
+  //});
81
+}
82
+
83
+function navigatorResetTo(navigator, params) {
84
+  addNavigatorParams(params, navigator);
85
+  addNavigatorButtons(params);
86
+  addNavigationStyleParams(params);
87
+  //RctActivity.navigatorResetTo(params);
88
+}
89
+
90
+function navigatorSetTabBadge(navigator, params) {
91
+  //RctActivity.setTabBadge({
92
+  //  tabIndex: params.tabIndex,
93
+  //  badge: params.badge
94
+  //});
95
+}
96
+
97
+function navigatorSetTitle(navigator, params) {
98
+  //RctActivity.setNavigatorTitle(params);
99
+}
100
+
101
+function navigatorSwitchToTab(navigator, params) {
102
+  //RctActivity.switchToTab({
103
+  //  navigatorID: navigator.navigatorID,
104
+  //  tabIndex: params.tabIndex
105
+  //});
106
+}
107
+
108
+function navigatorToggleDrawer(navigator, params) {
109
+  //RctActivity.toggleDrawer({
110
+  //  side: params.side,
111
+  //  animated: !(params.animated === false),
112
+  //  to: params.to || ''
113
+  //});
114
+}
115
+
116
+function navigatorToggleNavBar(navigator, params) {
117
+  //RctActivity.toggleNavigationBar({
118
+  //  hidden: params.to === 'hidden',
119
+  //  animated: !(params.animated === false)
120
+  //});
121
+}
122
+
123
+function navigatorToggleTabs(navigator, params) {
124
+  //RctActivity.toggleNavigatorTabs({
125
+  //  hidden: params.to === 'hidden',
126
+  //  animated: !(params.animated === false)
127
+  //});
128
+}
129
+
130
+function showModal(params) {
131
+  addNavigatorParams(params);
132
+  addNavigatorButtons(params);
133
+  addNavigationStyleParams(params);
134
+  //RctActivity.showModal(params);
135
+}
136
+
137
+function dismissModal() {
138
+  //RctActivity.dismissModal();
139
+}
140
+
141
+function dismissAllModals(params) {
142
+  //RctActivity.dismissAllModals(params.animationType);
143
+}
144
+
145
+function addNavigatorParams(screen, navigator = null, idx = '') {
146
+  screen.navigatorID = navigator ? navigator.navigatorID : utils.getRandomId() + '_nav' + idx;
147
+  screen.screenInstanceID = utils.getRandomId();
148
+  screen.navigatorEventID = screen.screenInstanceID + '_events';
149
+}
150
+
151
+function addNavigatorButtons(screen) {
152
+  const Screen = Navigation.getRegisteredScreen(screen.screen);
153
+  Object.assign(screen, Screen.navigatorButtons);
154
+
155
+  // Get image uri from image id
156
+  const rightButtons = screen.rightButtons ? screen.rightButtons : screen.navigatorButtons ?
157
+                                                                   screen.navigatorButtons.rightButtons : null;
158
+  if (rightButtons) {
159
+    rightButtons.forEach(function(button) {
160
+      if (button.icon) {
161
+        const icon = resolveAssetSource(button.icon);
162
+        if (icon) {
163
+          button.icon = icon.uri;
164
+        }
165
+      }
166
+    });
167
+  }
168
+}
169
+
170
+function addNavigationStyleParams(screen) {
171
+  const Screen = Navigation.getRegisteredScreen(screen.screen);
172
+  screen.navigatorStyle = Object.assign({}, screen.navigatorStyle, Screen.navigatorStyle);
173
+}
174
+
175
+function setupDrawer(drawerParams) {
176
+  const drawer = Object.assign({}, drawerParams);
177
+  [drawer.left, drawer.right].forEach(side => {
178
+    if (!side) {
179
+      return;
180
+    }
181
+    const icon = resolveAssetSource(side.icon);
182
+    if (icon) {
183
+      side.icon = icon.uri;
184
+    }
185
+  });
186
+  if (drawer.disableOpenGesture === undefined) {
187
+    drawer.disableOpenGesture = false;
188
+  }
189
+  ;
190
+
191
+  return drawer;
192
+}
193
+
194
+function showFAB(params) {
195
+  params.icon = resolveAssetSource(params.icon).uri;
196
+  //RctActivity.showFAB(params);
197
+}
198
+
199
+export default {
200
+  startTabBasedApp,
201
+  startSingleScreenApp,
202
+  navigatorPush,
203
+  navigatorPop,
204
+  navigatorPopToRoot,
205
+  navigatorResetTo,
206
+  showModal,
207
+  dismissModal,
208
+  dismissAllModals,
209
+  showFAB,
210
+  navigatorSetButtons,
211
+  navigatorSetTabBadge,
212
+  navigatorSetTitle,
213
+  navigatorSwitchToTab,
214
+  navigatorToggleDrawer,
215
+  navigatorToggleTabs,
216
+  navigatorToggleNavBar
217
+}

src/platformSpecific.ios.js → src/platformSpecificDeprecated.ios.js View File