~fix navigation~

This commit is contained in:
Guilherme Gazzo 2017-08-31 14:50:20 -03:00
parent 408980dc66
commit 761a41d183
No known key found for this signature in database
GPG Key ID: 1F85C9AD922D0829
7 changed files with 61 additions and 13 deletions

View File

@ -20,7 +20,7 @@ export const authenticated = WrappedComponent => class _p extends React.PureComp
if (!this.login.token || this.login.failure) {
return store.getState().navigator.resetTo({
screen: 'Login',
animationType: 'none'
animated: false
});
}
}
@ -57,7 +57,12 @@ export const HomeScreen = class extends React.PureComponent {
navigator: PropTypes.object.isRequired
}
static navigatorStyle = {
navBarHidden: true
navBarHidden: true,
rightButtons: [{
id: 'close',
title: 'Cancel'
}]
};
componentWillMount() {
this.props.setNavigator(this.props.navigator);

View File

@ -14,7 +14,8 @@ const restore = function* restore() {
yield put(setServer(currentServer));
} else {
navigator.resetTo({
screen: 'ListServer'
screen: 'ListServer',
animated: false
});
}
} catch (e) {

View File

@ -1,4 +1,4 @@
import { put, takeEvery, call, takeLatest, all, race, take } from 'redux-saga/effects';
import { put, takeEvery, call, takeLatest, race, take } from 'redux-saga/effects';
import { delay } from 'redux-saga';
import { AsyncStorage } from 'react-native';
import { Navigation } from 'react-native-navigation';
@ -17,6 +17,9 @@ const selectServer = function* selectServer({ server }) {
yield put(changedServer(server));
yield call([AsyncStorage, 'setItem'], 'currentServer', server);
yield put(connectRequest(server));
yield Navigation.dismissModal({
animationType: 'slide-down'
});
};

View File

@ -34,17 +34,47 @@ class LoginView extends React.Component {
username: '',
password: ''
};
this.props.navigator.setSubTitle({
subtitle: this.props.server
});
this.props.navigator.setTitle({
title: 'Login'
});
}
componentWillReceiveProps(nextProps) {
this.props.navigator.setSubTitle({
subtitle: nextProps.server
this.props.navigator.setButtons({
rightButtons: [{
id: 'close',
title: 'Cancel'
}],
animated: true
});
}
componentWillReceiveProps() {
this.props.navigator.setSubTitle({
subtitle: this.props.server
});
this.props.navigator.setTitle({
title: 'Login'
});
this.props.navigator.setButtons({
rightButtons: [{
id: 'close',
title: 'Cancel'
}],
animated: true
});
this.props.navigator.setOnNavigatorEvent(this.onNavigatorEvent.bind(this));
}
onNavigatorEvent = (event) => {
if (event.type === 'NavBarButtonPress') {
if (event.id === 'close') {
this.props.navigator.resetTo({
screen: 'ListServer',
animated: false
});
}
}
}
submit = () => {
const { username, password, code } = this.state;
this.props.loginSubmit({ username, password, code });

View File

@ -65,7 +65,8 @@ const zeroconf = new Zeroconf();
@connect(state => ({
server: state.server.server
server: state.server.server,
login: state.login
}), dispatch => ({
selectServer: server => dispatch(setServer(server))
}))
@ -92,7 +93,7 @@ export default class ListServerView extends React.Component {
id: 'add',
title: 'Add'
}],
leftButtons: props.server && Platform.select({
leftButtons: props.login.isAuthenticated && props.server && Platform.select({
ios: [{
id: 'close',
title: 'Close'

8
package-lock.json generated
View File

@ -9599,6 +9599,14 @@
"prop-types": "15.5.10"
}
},
"react-native-animatable": {
"version": "1.2.3",
"resolved": "https://registry.npmjs.org/react-native-animatable/-/react-native-animatable-1.2.3.tgz",
"integrity": "sha512-GcIKsSPy9A5VfAGCmivElYwBz/Ds7kawG3CkBDCMFf0fkDXKeHcVffqFe7rUR+5rR31Azvkbmp+tUP+N7kdjyw==",
"requires": {
"prop-types": "15.5.10"
}
},
"react-native-card-view": {
"version": "0.0.3",
"resolved": "https://registry.npmjs.org/react-native-card-view/-/react-native-card-view-0.0.3.tgz",

View File

@ -28,7 +28,7 @@
"react-native-fetch-blob": "^0.10.8",
"react-native-image-picker": "^0.26.4",
"react-native-img-cache": "^1.4.0",
"react-native-loading-spinner-overlay": "^0.5.1",
"react-native-loading-spinner-overlay": "^0.5.2",
"react-native-meteor": "^1.1.0",
"react-native-navigation": "^1.1.193",
"react-native-optimized-flatlist": "^1.0.1",