diff --git a/mobile/src/Activity/Activity.js b/mobile/src/Activity/Activity.js
index b9c26fa..fe07f65 100644
--- a/mobile/src/Activity/Activity.js
+++ b/mobile/src/Activity/Activity.js
@@ -30,6 +30,7 @@ import { api } from "../API"
import { formatLatLng } from "../util"
import moment from "moment"
import "url-search-params-polyfill"
+import { config } from "../config"
const styles = StyleSheet.create({
container: {
@@ -91,6 +92,7 @@ export class Activity extends React.Component {
messageModal: null,
progressModal: null,
uploadPercent: 0,
+ region: config.initialRegion,
}
const { search } = this.props.location
diff --git a/mobile/src/WorkItem/WorkItem.js b/mobile/src/WorkItem/WorkItem.js
index ac4b7c1..57b1279 100644
--- a/mobile/src/WorkItem/WorkItem.js
+++ b/mobile/src/WorkItem/WorkItem.js
@@ -20,6 +20,7 @@ import {
Header,
BoundOptionStrip,
BoundPhotoPanel,
+ Geolocation,
} from "../ui"
import { MessageModal, ProgressModal, WaitModal } from "../Modal"
import autobind from "autobind-decorator"
@@ -98,6 +99,7 @@ export class WorkItem extends React.Component {
messageModal: null,
waitModal: null,
progressModal: null,
+ region: config.initialRegion,
}
const { search } = this.props.location
@@ -287,6 +289,20 @@ export class WorkItem extends React.Component {
}
}
+ @autobind
+ handlePositionUpdate(position) {
+ const { coords } = position
+
+ this.setState({
+ region: {
+ latitude: coords.latitude,
+ longitude: coords.longitude,
+ latitudeDelta: 0.02,
+ longitudeDelta: 0.02,
+ },
+ })
+ }
+
render() {
const {
binder,
@@ -294,6 +310,7 @@ export class WorkItem extends React.Component {
waitModal,
progressModal,
uploadPercent,
+ region,
} = this.state
return (
@@ -344,7 +361,7 @@ export class WorkItem extends React.Component {
showsBuildings={false}
showsTraffic={false}
showsIndoors={false}
- initialRegion={config.initialRegion}
+ region={region}
onRegionChange={this.handleRegionChange}
onMapReady={this.handleOnMapReady}
/>
@@ -393,6 +410,7 @@ export class WorkItem extends React.Component {
)}
{isIphoneX ? : null}
+
{
this.props.onUpdate(position)
- this.watchId = navigator.geolocation.watchPosition((position) =>
- this.props.onUpdate(position)
- )
+
+ if (this.props.watch) {
+ this.watchId = navigator.geolocation.watchPosition((position) =>
+ this.props.onUpdate(position)
+ )
+ }
})
}