From 08eacbe89daf39656a21a30076a0a22cce6ef7ba Mon Sep 17 00:00:00 2001 From: Paul Makles <paulmakles@gmail.com> Date: Sun, 25 Nov 2018 21:40:13 +0000 Subject: [PATCH] Finish up functionality --- App.js | 34 ++++++++++++++++++++++++++++++++-- 1 file changed, 32 insertions(+), 2 deletions(-) diff --git a/App.js b/App.js index 2e26d27..61902fc 100644 --- a/App.js +++ b/App.js @@ -156,11 +156,13 @@ class BusArrivals extends Component { name: props.name, id: props.id, data: [], - updated: 'never' + updated: 'never', + visible: true, }; } render() { + if (!this.state.visible) return null; return ( <View> <Text style={estyles.header}>{this.state.name}</Text> @@ -168,6 +170,29 @@ class BusArrivals extends Component { {Object.keys(this.state.data).map(i => { return (<BusArrival item={this.state.data[i]} key={this.state.data[i].key} />); })} + <Button + onPress={() => { + AsyncStorage.getItem('myStops').then(x => { + let arr = JSON.parse(x); + let j = -1; + for (let i=0;i<arr.length;i++) { + if (arr[i].id == this.state.id) j = i; + } + if (j > -1) { + arr.splice(j, 1); + AsyncStorage.setItem('myStops', JSON.stringify(arr)).then(() => { + !this.isCancelled && this.setState({visible: false}); + ToastAndroid.show('Removed stop!', ToastAndroid.SHORT); + }); + } else { + ToastAndroid.show('Could not remove stop!', ToastAndroid.SHORT); + } + }).catch(() => { + ToastAndroid.show('Encountered an error!', ToastAndroid.SHORT); + }); + }} + title="Remove this stop" + /> </View> ); } @@ -190,6 +215,7 @@ class BusArrivals extends Component { } update() { + if (!this.state.visible) return; return request.bus.stop(this.state.id) .then(data => { let list = []; @@ -306,7 +332,11 @@ class SearchEntry extends Component { ToastAndroid.show('Added to your stops!', ToastAndroid.SHORT); }); let arr = JSON.parse(x); - if (arr.indexOf(d) > -1) { + let found = false; + arr.forEach(y => { + if (y.id == this.state.id) found = true; + }); + if (found) { ToastAndroid.show('Already added!', ToastAndroid.SHORT); } else { arr.push(d); -- GitLab