Skip to content

Commit 19a11b0

Browse files
author
talkol
committed
added support for closeAllModals
1 parent b18ec70 commit 19a11b0

File tree

4 files changed

+22
-2
lines changed

4 files changed

+22
-2
lines changed

example/src/screens/ModalScreen.js

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -35,6 +35,10 @@ export default class ModalScreen extends Component {
3535
<Text style={styles.button}>Close Modal</Text>
3636
</TouchableOpacity>
3737

38+
<TouchableOpacity onPress={ this.onCloseAllPress.bind(this) }>
39+
<Text style={styles.button}>Close All Modals</Text>
40+
</TouchableOpacity>
41+
3842
</View>
3943
);
4044
}
@@ -58,6 +62,9 @@ export default class ModalScreen extends Component {
5862
onClosePress() {
5963
this.props.navigator.dismissModal();
6064
}
65+
onCloseAllPress() {
66+
this.props.navigator.dismissAllModals();
67+
}
6168
}
6269

6370
const styles = StyleSheet.create({

src/Navigation.js

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -67,6 +67,10 @@ function dismissModal(params = {}) {
6767
return platformSpecific.dismissModal(params);
6868
}
6969

70+
function dismissAllModals(params = {}) {
71+
return platformSpecific.dismissAllModals(params);
72+
}
73+
7074
function showLightBox(params = {}) {
7175
return platformSpecific.showLightBox(params);
7276
}
@@ -81,6 +85,7 @@ export default {
8185
registerComponent,
8286
showModal,
8387
dismissModal,
88+
dismissAllModals,
8489
showLightBox,
8590
dismissLightBox,
8691
startTabBasedApp: platformSpecific.startTabBasedApp,

src/Screen.js

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,9 @@ class Navigator {
2929
dismissModal(params = {}) {
3030
return Navigation.dismissModal(params);
3131
}
32+
dismissAllModals(params = {}) {
33+
return Navigation.dismissAllModals(params);
34+
}
3235
showLightBox(params = {}) {
3336
return Navigation.showLightBox(params);
3437
}

src/platformSpecific.ios.js

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -76,7 +76,7 @@ function startTabBasedApp(params) {
7676
}
7777
});
7878
ControllerRegistry.registerController(controllerID, () => Controller);
79-
ControllerRegistry.setRootController(controllerID, params.animationType, params.passProps || {});
79+
ControllerRegistry.setRootController(controllerID);
8080
}
8181

8282
function startSingleScreenApp(params) {
@@ -134,7 +134,7 @@ function startSingleScreenApp(params) {
134134
}
135135
});
136136
ControllerRegistry.registerController(controllerID, () => Controller);
137-
ControllerRegistry.setRootController(controllerID, params.animationType, params.passProps || {});
137+
ControllerRegistry.setRootController(controllerID);
138138
}
139139

140140
function _mergeScreenSpecificSettings(screenID, screenInstanceID, params) {
@@ -350,6 +350,10 @@ function dismissModal(params) {
350350
Modal.dismissController(params.animationType);
351351
}
352352

353+
function dismissAllModals(params) {
354+
Modal.dismissAllControllers(params.animationType);
355+
}
356+
353357
function showLightBox(params) {
354358
if (!params.screen) {
355359
console.error('showLightBox(params): params.screen is required');
@@ -387,6 +391,7 @@ export default {
387391
navigatorResetTo,
388392
showModal,
389393
dismissModal,
394+
dismissAllModals,
390395
showLightBox,
391396
dismissLightBox,
392397
navigatorSetButtons,

0 commit comments

Comments
 (0)