diff options
| author | Ivan Shen <iwshen11@gmail.com> | 2019-03-29 20:19:36 +0000 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2019-03-29 20:19:36 +0000 |
| commit | 558c78d4be964afdf4fec2de20a8fb9a1cc7c66d (patch) | |
| tree | 47ae03814d3407b45f8750aae732acc24d65e215 | |
| parent | 6b91cafd7884e1bc5286f17a5c0e5c045130befb (diff) | |
| parent | 3dd46ef8b12b9cc58c8ebdb8bd8b058ffa42b3ae (diff) | |
Merge pull request #67 from csc301-winter-2019/feat/28-patch
add patch for feat28
| -rw-r--r-- | mobile/components/GreetingPage.js | 31 |
1 files changed, 15 insertions, 16 deletions
diff --git a/mobile/components/GreetingPage.js b/mobile/components/GreetingPage.js index 435022d..0bfa63b 100644 --- a/mobile/components/GreetingPage.js +++ b/mobile/components/GreetingPage.js @@ -6,28 +6,31 @@ import { Location, Permissions, Constants } from 'expo'; export default class GreetingPage extends Component { state = { - isLoading: true, + isLoading: false, errorMessage: null, locationResult: null, }; - // runs as soon as page is loaded - componentDidMount() { - // immediately attempt to get the location - this._getLocationAsync(); - } - - _getLocationAsync = async () => { + moveToFormPage = async () => { + this.setState({isLoading: true}); // ask location services to allow location access to THIS app. // Note: location services itself must still be enabled for this! const {status} = await Permissions.askAsync(Permissions.LOCATION); if (status === 'granted') { // try to actually get the location asynchronously - a Promise Location.getCurrentPositionAsync({enableHighAccuracy: true}).then((position) => { - this.setState({locationResult: position.coords}); + this.setState({locationResult: position.coords}, () => { + this.props.navigation.navigate('FormPage', + {coordinates : [ + this.state.locationResult.longitude, + this.state.locationResult.latitude] + }); + }); // since we are guaranteed to have the location here, its safe to load the full view this.setState({isLoading: false}); + // move to form page }).catch((e) => { + this.setState({isLoading: false}); alert(e + ' Please make sure your location (GPS) is turned on.'); }); @@ -37,13 +40,9 @@ export default class GreetingPage extends Component { } }; - moveToFormPage = () => { - this.props.navigation.navigate('FormPage', - {coordinates : [ - this.state.locationResult.longitude, - this.state.locationResult.latitude] - }); - }; + moveToMapPage = () => { + this.props.navigation.navigate('MapPage'); + } moveToMapPage = () => { this.props.navigation.navigate('MapPage'); |
