PLT-5606 Pre-fill the server URL from async storage if you have it. (#326)
This commit is contained in:
parent
c01035ac38
commit
ba582b2edc
3 changed files with 35 additions and 21 deletions
|
|
@ -106,7 +106,13 @@ async function saveStorage(data) {
|
|||
export function removeStorage() {
|
||||
return async (dispatch, getState) => {
|
||||
try {
|
||||
await AsyncStorage.removeItem('storage');
|
||||
// Keep the server Url if we have it
|
||||
const {url} = JSON.parse(await AsyncStorage.getItem('storage'));
|
||||
if (url) {
|
||||
await saveStorage({url});
|
||||
} else {
|
||||
await AsyncStorage.removeItem('storage');
|
||||
}
|
||||
} catch (error) {
|
||||
// TODO: Error removing data
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,25 +1,25 @@
|
|||
// Copyright (c) 2016 Mattermost, Inc. All Rights Reserved.
|
||||
// See License.txt for license information.
|
||||
|
||||
import React from 'react';
|
||||
import {AppState} from 'react-native';
|
||||
import React, {PropTypes, PureComponent} from 'react';
|
||||
import {AppState, AsyncStorage} from 'react-native';
|
||||
import Loading from 'app/components/loading';
|
||||
|
||||
import {RequestStatus} from 'service/constants';
|
||||
|
||||
export default class Root extends React.Component {
|
||||
export default class Root extends PureComponent {
|
||||
static propTypes = {
|
||||
credentials: React.PropTypes.object,
|
||||
logoutRequest: React.PropTypes.object,
|
||||
loginRequest: React.PropTypes.object,
|
||||
actions: React.PropTypes.shape({
|
||||
goToLoadTeam: React.PropTypes.func,
|
||||
goToSelectServer: React.PropTypes.func,
|
||||
flushToStorage: React.PropTypes.func,
|
||||
loadStorage: React.PropTypes.func,
|
||||
removeStorage: React.PropTypes.func,
|
||||
setStoreFromLocalData: React.PropTypes.func,
|
||||
resetLogout: React.PropTypes.func
|
||||
credentials: PropTypes.object,
|
||||
logoutRequest: PropTypes.object.isRequired,
|
||||
loginRequest: PropTypes.object.isRequired,
|
||||
actions: PropTypes.shape({
|
||||
goToLoadTeam: PropTypes.func.isRequired,
|
||||
goToSelectServer: PropTypes.func.isRequired,
|
||||
handleServerUrlChanged: PropTypes.func.isRequired,
|
||||
flushToStorage: PropTypes.func.isRequired,
|
||||
loadStorage: PropTypes.func.isRequired,
|
||||
removeStorage: PropTypes.func.isRequired,
|
||||
setStoreFromLocalData: PropTypes.func.isRequired
|
||||
}).isRequired
|
||||
};
|
||||
|
||||
|
|
@ -48,7 +48,7 @@ export default class Root extends React.Component {
|
|||
if (event === 'inactive') {
|
||||
this.props.actions.flushToStorage();
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
init = () => {
|
||||
if (this.props.logoutRequest.status === RequestStatus.SUCCESS) {
|
||||
|
|
@ -67,15 +67,23 @@ export default class Root extends React.Component {
|
|||
if (this.props.loginRequest.status === RequestStatus.SUCCESS) {
|
||||
this.props.actions.goToLoadTeam();
|
||||
} else {
|
||||
this.props.actions.goToSelectServer();
|
||||
this.selectServer();
|
||||
}
|
||||
});
|
||||
} else {
|
||||
this.props.actions.goToSelectServer();
|
||||
this.selectServer();
|
||||
}
|
||||
});
|
||||
};
|
||||
|
||||
selectServer = async () => {
|
||||
const {url} = JSON.parse(await AsyncStorage.getItem('storage'));
|
||||
if (url) {
|
||||
await this.props.actions.handleServerUrlChanged(url);
|
||||
}
|
||||
this.props.actions.goToSelectServer();
|
||||
};
|
||||
|
||||
render() {
|
||||
return <Loading/>;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -7,8 +7,8 @@ import navigationSceneConnect from '../navigationSceneConnect';
|
|||
|
||||
import {flushToStorage, loadStorage, removeStorage} from 'app/actions/storage';
|
||||
import {goToSelectServer, setStoreFromLocalData} from 'app/actions/views/root';
|
||||
import {handleServerUrlChanged} from 'app/actions/views/select_server';
|
||||
import {goToLoadTeam} from 'app/actions/navigation';
|
||||
import {resetLogout} from 'service/actions/users';
|
||||
|
||||
import Root from './root';
|
||||
|
||||
|
|
@ -26,11 +26,11 @@ function mapDispatchToProps(dispatch) {
|
|||
actions: bindActionCreators({
|
||||
goToLoadTeam,
|
||||
goToSelectServer,
|
||||
handleServerUrlChanged,
|
||||
flushToStorage,
|
||||
loadStorage,
|
||||
removeStorage,
|
||||
setStoreFromLocalData,
|
||||
resetLogout
|
||||
setStoreFromLocalData
|
||||
}, dispatch)
|
||||
};
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in a new issue