Showing
10 changed files
with
340 additions
and
51 deletions
... | @@ -2,12 +2,15 @@ import { Component } from 'react'; | ... | @@ -2,12 +2,15 @@ import { Component } from 'react'; |
2 | import { StyleSheet, Text, View, AppRegistry } from 'react-native'; | 2 | import { StyleSheet, Text, View, AppRegistry } from 'react-native'; |
3 | import { createAppContainer } from 'react-navigation'; | 3 | import { createAppContainer } from 'react-navigation'; |
4 | import {createStackNavigator } from 'react-navigation-stack' | 4 | import {createStackNavigator } from 'react-navigation-stack' |
5 | -import MainScreen from './components/Mainscreen'; | 5 | +import MainScreen from './components/Navigation/Navigation'; |
6 | import React from 'react' | 6 | import React from 'react' |
7 | 7 | ||
8 | const AppStackNavigator = createStackNavigator({ | 8 | const AppStackNavigator = createStackNavigator({ |
9 | Main:{ | 9 | Main:{ |
10 | - screen: MainScreen | 10 | + screen: MainScreen, |
11 | + navigationOptions: { | ||
12 | + headerShown:false | ||
13 | + } | ||
11 | } | 14 | } |
12 | }); | 15 | }); |
13 | 16 | ... | ... |
소스코드/PME/assets/marker.png
0 → 100644
3.44 KB
소스코드/PME/assets/security.png
0 → 100644
6.19 KB
1 | import { Component } from 'react'; | 1 | import { Component } from 'react'; |
2 | -import { StyleSheet, Text, View } from 'react-native'; | 2 | +import { StyleSheet, Text, View, Image, TouchableOpacity, Alert } from 'react-native'; |
3 | import { Icon } from 'native-base'; // 추가된 코드 | 3 | import { Icon } from 'native-base'; // 추가된 코드 |
4 | import React from 'react' | 4 | import React from 'react' |
5 | import {Marker} from 'react-native-maps' | 5 | import {Marker} from 'react-native-maps' |
6 | import Constants from 'expo-constants'; | 6 | import Constants from 'expo-constants'; |
7 | import * as Location from 'expo-location'; | 7 | import * as Location from 'expo-location'; |
8 | -import MapView from "./ClusteredMapView"; | 8 | +import MapView from "../ClusteredMapView"; |
9 | 9 | ||
10 | 10 | ||
11 | export default class MainScreen extends Component { | 11 | export default class MainScreen extends Component { |
... | @@ -43,32 +43,17 @@ export default class MainScreen extends Component { | ... | @@ -43,32 +43,17 @@ export default class MainScreen extends Component { |
43 | } | 43 | } |
44 | render() { | 44 | render() { |
45 | return ( | 45 | return ( |
46 | - this.state.location? | 46 | + //this.state.location? |
47 | - <MapView | 47 | + <View style={{width:"100%",height:"100%"}}> |
48 | - style={{ flex: 1 }} | 48 | + |
49 | - initialRegion={ { latitude: this.state.location.coords.latitude, longitude: this.state.location.coords.longitude | 49 | + <TouchableOpacity onPress={() => Alert.alert('OK',"주변에 의심자가 있습니까?",[{text:"OK",onPress:() =>alert("확인")},{text:'cancel'}])} style={{position:"absolute",bottom:10,right:10, width:50,height:50,backgroundColor:"red",borderRadius:100}}> |
50 | - ,latitudeDelta: 0.0922, longitudeDelta: 0.0421}} | 50 | + <View style={{flex:1,justifyContent: 'center',alignItems: 'center'}}> |
51 | - zoomEnabled={true} | 51 | + <Image style={{width:22,height:22}} source={require('../assets/security.png')}/> |
52 | - pitchEnabled={true} | 52 | + </View> |
53 | - showsUserLocation={true} | 53 | + </TouchableOpacity> |
54 | - followsUserLocation={true} | 54 | + </View> |
55 | - showsCompass={true} | 55 | + //:<Text>Loading..</Text> |
56 | - showsBuildings={true} | ||
57 | - showsTraffic={true} | ||
58 | - showsIndoors={true} | ||
59 | - extent={512}> | ||
60 | - <Marker coordinate={{ latitude: this.state.location.coords.latitude+0.1, longitude: this.state.location.coords.longitude }} /> | ||
61 | - <Marker coordinate={{ latitude: this.state.location.coords.latitude+0.5, longitude: this.state.location.coords.longitude }} /> | ||
62 | - <Marker coordinate={{ latitude: this.state.location.coords.latitude+0.0001, longitude: this.state.location.coords.longitude }} /> | ||
63 | - <Marker coordinate={{ latitude: this.state.location.coords.latitude+0.0003, longitude: this.state.location.coords.longitude }} /> | ||
64 | - <Marker coordinate={{ latitude: this.state.location.coords.latitude+0.03, longitude: this.state.location.coords.longitude }} /> | ||
65 | - <Marker coordinate={{ latitude: this.state.location.coords.latitude+0.05, longitude: this.state.location.coords.longitude }} /> | ||
66 | - <Marker coordinate={{ latitude: this.state.location.coords.latitude+0.01, longitude: this.state.location.coords.longitude }} /> | ||
67 | - <Marker coordinate={{ latitude: this.state.location.coords.latitude+0.2, longitude: this.state.location.coords.longitude }} /> | ||
68 | - <Marker coordinate={{ latitude: this.state.location.coords.latitude+0.3, longitude: this.state.location.coords.longitude }} /> | ||
69 | - <Marker coordinate={{ latitude: this.state.location.coords.latitude+0.7, longitude: this.state.location.coords.longitude }} /> | ||
70 | 56 | ||
71 | - </MapView>:<Text>Loading..</Text> | ||
72 | ); | 57 | ); |
73 | } | 58 | } |
74 | } | 59 | } | ... | ... |
소스코드/PME/components/Navigation/Navigation.js
0 → 100644
1 | +import React, { Component } from 'react'; | ||
2 | +import { StyleSheet, Text, View, Image, | ||
3 | + TouchableOpacity, ScrollView, Dimensions, | ||
4 | + SafeAreaView, } from 'react-native'; | ||
5 | + | ||
6 | +import { createAppContainer} from 'react-navigation'; | ||
7 | +import {createStackNavigator } from 'react-navigation-stack'; | ||
8 | +import ReportTab from '../TabNavigator/reportTab' | ||
9 | +import MainTab from '../TabNavigator/MainTab' | ||
10 | +import { Icon } from 'native-base'; // 추가된 코드 | ||
11 | + | ||
12 | + const Stack = createStackNavigator( | ||
13 | + { | ||
14 | + MainTab: { | ||
15 | + screen: props => <MainTab {...props}/>, | ||
16 | + navigationOptions: { | ||
17 | + headerLeft: <Icon name='ios-camera' style={{ paddingLeft:10 }}/>, | ||
18 | + title: 'PME Service', | ||
19 | + headerRight: <Icon name='ios-send' style={{ paddingRight:10 }}/>, | ||
20 | + headerTitleStyle: {flex: 1, textAlign: 'center'}, | ||
21 | + headerStyle: { | ||
22 | + shadowOpacity: 0, | ||
23 | + shadowOffset: { | ||
24 | + y: 0, | ||
25 | + x:0, | ||
26 | + height:0 | ||
27 | + }, | ||
28 | + shadowRadius: 0, elevation:0 | ||
29 | + } | ||
30 | + }, | ||
31 | + } | ||
32 | + ,reportTab: { | ||
33 | + screen: props=> <ReportTab {...props}/>, | ||
34 | + navigationOptions: { | ||
35 | + headerShown:false | ||
36 | + } | ||
37 | + }, | ||
38 | + },{ | ||
39 | + | ||
40 | + | ||
41 | + | ||
42 | + } | ||
43 | + ); | ||
44 | + | ||
45 | + export default createAppContainer(Stack); | ||
46 | + | ||
47 | + /* | ||
48 | + | ||
49 | + <Text | ||
50 | + onPress={() => { | ||
51 | + props.navigation.navigate('BlueScreen'); | ||
52 | + props.navigation.closeDrawer(); | ||
53 | + }} | ||
54 | + > | ||
55 | + BlueScreen | ||
56 | + </Text> | ||
57 | + <Text | ||
58 | + onPress={() => { | ||
59 | + props.navigation.navigate('DefaultScreen'); | ||
60 | + props.navigation.closeDrawer(); | ||
61 | + }} | ||
62 | + > | ||
63 | + DefaultScreen | ||
64 | + </Text> | ||
65 | + */ | ||
... | \ No newline at end of file | ... | \ No newline at end of file |
소스코드/PME/components/TabNavigator/MainTab.js
0 → 100644
1 | +import { Component } from 'react'; | ||
2 | +import { StyleSheet, Text, View, Image, TouchableOpacity, Alert, Platform } from 'react-native'; | ||
3 | +import { Icon } from 'native-base'; // 추가된 코드 | ||
4 | +import React from 'react' | ||
5 | +import {Marker} from 'react-native-maps' | ||
6 | +import Constants from 'expo-constants'; | ||
7 | +import * as Location from 'expo-location'; | ||
8 | +import MapView from "../ClusteredMapView"; | ||
9 | + | ||
10 | +import Share from 'react-native-share'; | ||
11 | +const url = 'https://awesome.contents.com/'; | ||
12 | +const title = 'Awesome Contents'; | ||
13 | +const message = 'Please check this out.'; | ||
14 | +const icon = 'data:<data_type>/<file_extension>;base64,<base64_data>'; | ||
15 | +const options = Platform.select({ | ||
16 | + ios: { | ||
17 | + activityItemSources: [ | ||
18 | + { // For sharing url with custom title. | ||
19 | + placeholderItem: { type: 'url', content: url }, | ||
20 | + item: { | ||
21 | + default: { type: 'url', content: url }, | ||
22 | + }, | ||
23 | + subject: { | ||
24 | + default: title, | ||
25 | + }, | ||
26 | + linkMetadata: { originalUrl: url, url, title }, | ||
27 | + }, | ||
28 | + { // For sharing text. | ||
29 | + placeholderItem: { type: 'text', content: message }, | ||
30 | + item: { | ||
31 | + default: { type: 'text', content: message }, | ||
32 | + message: null, // Specify no text to share via Messages app. | ||
33 | + }, | ||
34 | + linkMetadata: { // For showing app icon on share preview. | ||
35 | + title: message | ||
36 | + }, | ||
37 | + }, | ||
38 | + { // For using custom icon instead of default text icon at share preview when sharing with message. | ||
39 | + placeholderItem: { | ||
40 | + type: 'url', | ||
41 | + content: icon | ||
42 | + }, | ||
43 | + item: { | ||
44 | + default: { | ||
45 | + type: 'text', | ||
46 | + content: `${message} ${url}` | ||
47 | + }, | ||
48 | + }, | ||
49 | + linkMetadata: { | ||
50 | + title: message, | ||
51 | + icon: icon | ||
52 | + } | ||
53 | + }, | ||
54 | + ], | ||
55 | + }, | ||
56 | + default: { | ||
57 | + title, | ||
58 | + subject: title, | ||
59 | + message: `${message} ${url}`, | ||
60 | + }, | ||
61 | +}); | ||
62 | + | ||
63 | +export default class MainScreen extends Component { | ||
64 | + | ||
65 | + // navigationOptions 코드 추가 | ||
66 | + static navigationOptions = { | ||
67 | + headerLeft: <Icon name='ios-camera' style={{ paddingLeft:10 }}/>, | ||
68 | + title: 'PME Service', | ||
69 | + headerRight: <Icon name='ios-send' style={{ paddingRight:10 }}/>, | ||
70 | + } | ||
71 | + constructor(props) { | ||
72 | + super(props) | ||
73 | + this.state= { | ||
74 | + location:null, | ||
75 | + errorMsg:null | ||
76 | + } | ||
77 | + } | ||
78 | + componentDidMount() { | ||
79 | + (async () => { | ||
80 | + let { status } = await Location.requestPermissionsAsync(); | ||
81 | + if (status !== 'granted') { | ||
82 | + this.setState({ | ||
83 | + errorMsg:'Permission to access location was denied' | ||
84 | + }) | ||
85 | + } | ||
86 | + | ||
87 | + let location = await Location.getCurrentPositionAsync({}); | ||
88 | + console.log(location) | ||
89 | + this.setState({ | ||
90 | + location | ||
91 | + },() => { | ||
92 | + console.log(this.state.location.coords.latitude) | ||
93 | + }) | ||
94 | + })(); | ||
95 | + } | ||
96 | + render() { | ||
97 | + return ( | ||
98 | + this.state.location? | ||
99 | + <View style={{width:"100%",height:"100%"}}> | ||
100 | + | ||
101 | + <MapView | ||
102 | + style={{ flex: 1 }} | ||
103 | + initialRegion={ { latitude: this.state.location.coords.latitude, longitude: this.state.location.coords.longitude | ||
104 | + ,latitudeDelta: 0.0922, longitudeDelta: 0.0421}} | ||
105 | + zoomEnabled={true} | ||
106 | + pitchEnabled={true} | ||
107 | + showsUserLocation={true} | ||
108 | + followsUserLocation={true} | ||
109 | + showsCompass={true} | ||
110 | + showsBuildings={true} | ||
111 | + showsTraffic={true} | ||
112 | + showsIndoors={true} | ||
113 | + extent={512}> | ||
114 | + <Marker coordinate={{ latitude: this.state.location.coords.latitude+0.1, longitude: this.state.location.coords.longitude }} > | ||
115 | + <Image style={{width:54,height:54}} source={require('../../assets/marker.png')}/> | ||
116 | + </Marker> | ||
117 | + <Marker coordinate={{ latitude: this.state.location.coords.latitude+0.5, longitude: this.state.location.coords.longitude }}> | ||
118 | + <Image style={{width:54,height:54}} source={require('../../assets/marker.png')}/> | ||
119 | + </Marker> | ||
120 | + <Marker icon="../../assets/marker.png" coordinate={{ latitude: this.state.location.coords.latitude+0.0001, longitude: this.state.location.coords.longitude }}> | ||
121 | + <Image style={{width:54,height:54}} source={require('../../assets/marker.png')}/> | ||
122 | + </Marker> | ||
123 | + <Marker icon="../../assets/marker.png" coordinate={{ latitude: this.state.location.coords.latitude+0.0003, longitude: this.state.location.coords.longitude }}> | ||
124 | + <Image style={{width:54,height:54}} source={require('../../assets/marker.png')}/> | ||
125 | + </Marker> | ||
126 | + <Marker icon="../../assets/marker.png" coordinate={{ latitude: this.state.location.coords.latitude+0.03, longitude: this.state.location.coords.longitude }}> | ||
127 | + <Image style={{width:54,height:54}} source={require('../../assets/marker.png')}/> | ||
128 | + </Marker> | ||
129 | + <Marker icon="../../assets/marker.png" coordinate={{ latitude: this.state.location.coords.latitude+0.05, longitude: this.state.location.coords.longitude }}> | ||
130 | + <Image style={{width:54,height:54}} source={require('../../assets/marker.png')}/> | ||
131 | + </Marker> | ||
132 | + <Marker icon="../../assets/marker.png" coordinate={{ latitude: this.state.location.coords.latitude+0.01, longitude: this.state.location.coords.longitude }}> | ||
133 | + <Image style={{width:54,height:54}} source={require('../../assets/marker.png')}/> | ||
134 | + </Marker> | ||
135 | + <Marker icon="../../assets/marker.png" coordinate={{ latitude: this.state.location.coords.latitude+0.2, longitude: this.state.location.coords.longitude }}> | ||
136 | + <Image style={{width:54,height:54}} source={require('../../assets/marker.png')}/> | ||
137 | + </Marker> | ||
138 | + <Marker icon="../../assets/marker.png" coordinate={{ latitude: this.state.location.coords.latitude+0.3, longitude: this.state.location.coords.longitude }}> | ||
139 | + <Image style={{width:54,height:54}} source={require('../../assets/marker.png')}/> | ||
140 | + </Marker> | ||
141 | + <Marker icon="../../assets/marker.png" coordinate={{ latitude: this.state.location.coords.latitude+0.7, longitude: this.state.location.coords.longitude }}> | ||
142 | + <Image style={{width:54,height:54}} source={require('../../assets/marker.png')}/> | ||
143 | + </Marker> | ||
144 | + | ||
145 | + </MapView> | ||
146 | + <TouchableOpacity onPress={() => Alert.alert('OK',"주변에 의심자가 있습니까?",[{text:"OK",onPress:() =>Share.open(options)},{text:'cancel'}])} style={{position:"absolute",bottom:10,right:10, width:50,height:50,backgroundColor:"red",borderRadius:100}}> | ||
147 | + <View style={{flex:1,justifyContent: 'center',alignItems: 'center'}}> | ||
148 | + <Image style={{width:22,height:22}} source={require('../../assets/security.png')}/> | ||
149 | + </View> | ||
150 | + </TouchableOpacity> | ||
151 | + </View> | ||
152 | + :<Text>Loading..</Text> | ||
153 | + | ||
154 | + ); | ||
155 | + } | ||
156 | +} | ||
157 | + | ||
158 | +const styles = StyleSheet.create({ | ||
159 | + container: { | ||
160 | + flex: 1, | ||
161 | + alignItems: 'center', | ||
162 | + justifyContent: 'center', | ||
163 | + }, | ||
164 | +}); | ||
... | \ No newline at end of file | ... | \ No newline at end of file |
1 | +import React, { Component } from 'react'; | ||
2 | +import { View, Text, StyleSheet, Button } from 'react-native'; | ||
3 | +import * as DocumentPicker from 'expo-document-picker'; | ||
4 | +import Icon from 'native-base' | ||
5 | +export default class AddTab extends Component { | ||
6 | + static navigationOptions = { | ||
7 | + headerLeft: <Icon name='ios-camera' style={{ paddingLeft:10 }}/>, | ||
8 | + title: 'PME Service', | ||
9 | + headerRight: <Icon name='ios-send' style={{ paddingRight:10 }}/>, | ||
10 | + } | ||
11 | + state = { | ||
12 | + image: null, | ||
13 | + }; | ||
14 | + _pickDocument = async () => { | ||
15 | + let result = await DocumentPicker.getDocumentAsync({}); | ||
16 | + alert(result.uri); | ||
17 | + console.log(result); | ||
18 | + } | ||
19 | + | ||
20 | + _pickImage = async () => { | ||
21 | + let result = await ImagePicker.launchImageLibraryAsync({ | ||
22 | + allowsEditing: true, | ||
23 | + aspect: [4, 3], | ||
24 | + }); | ||
25 | + | ||
26 | + alert(result.uri); | ||
27 | + console.log(result) | ||
28 | + | ||
29 | + if (!result.cancelled) { | ||
30 | + this.setState({ image: result.uri }); | ||
31 | + } | ||
32 | + }; | ||
33 | + | ||
34 | + render() { | ||
35 | + let { image } = this.state; | ||
36 | + return ( | ||
37 | + <View style={style.container}> | ||
38 | + <Button | ||
39 | + title="녹음파일을 등록해주세요." | ||
40 | + onPress={this._pickDocument} | ||
41 | + /> | ||
42 | + <Button | ||
43 | + title="접수하기" | ||
44 | + onPress={() => {alert("접수되었습니다.")}} | ||
45 | + /> | ||
46 | + </View> | ||
47 | + ); | ||
48 | + } | ||
49 | +} | ||
50 | + | ||
51 | +const style = StyleSheet.create({ | ||
52 | + container: { | ||
53 | + flex: 1, | ||
54 | + alignItems: 'center', | ||
55 | + justifyContent: 'center', | ||
56 | + } | ||
57 | +}); | ||
... | \ No newline at end of file | ... | \ No newline at end of file |
... | @@ -117,17 +117,17 @@ export const returnMarkerStyle = points => { | ... | @@ -117,17 +117,17 @@ export const returnMarkerStyle = points => { |
117 | 117 | ||
118 | if (points >= 4) { | 118 | if (points >= 4) { |
119 | return { | 119 | return { |
120 | - width: 54, | 120 | + width: 84, |
121 | - height: 54, | 121 | + height: 84, |
122 | - size: 40, | 122 | + size: 64, |
123 | fontSize: 16 | 123 | fontSize: 16 |
124 | }; | 124 | }; |
125 | } | 125 | } |
126 | 126 | ||
127 | return { | 127 | return { |
128 | - width: 48, | 128 | + width: 84, |
129 | - height: 48, | 129 | + height: 84, |
130 | - size: 36, | 130 | + size: 64, |
131 | fontSize: 15 | 131 | fontSize: 15 |
132 | }; | 132 | }; |
133 | }; | 133 | }; | ... | ... |
... | @@ -1252,9 +1252,9 @@ | ... | @@ -1252,9 +1252,9 @@ |
1252 | "integrity": "sha512-rk4sWFsmtOw8oyx8SD3KSvawwaK7gRBSEIy2TAwURyGt+3TizssXP1r8nx3zY+R7v2vYYHXZ+k2/GULAT/bcaQ==" | 1252 | "integrity": "sha512-rk4sWFsmtOw8oyx8SD3KSvawwaK7gRBSEIy2TAwURyGt+3TizssXP1r8nx3zY+R7v2vYYHXZ+k2/GULAT/bcaQ==" |
1253 | }, | 1253 | }, |
1254 | "@react-navigation/core": { | 1254 | "@react-navigation/core": { |
1255 | - "version": "3.7.5", | 1255 | + "version": "3.7.6", |
1256 | - "resolved": "https://registry.npmjs.org/@react-navigation/core/-/core-3.7.5.tgz", | 1256 | + "resolved": "https://registry.npmjs.org/@react-navigation/core/-/core-3.7.6.tgz", |
1257 | - "integrity": "sha512-B8vKZhHvX+C+lD0UfU5ljCOWIDgDKrlzMuuqIftCB5lnMFvRQZJ5cGpK6u6+BEoX1myfO5j4KUEsRv4H+2f5lg==", | 1257 | + "integrity": "sha512-loYFIn0Boy7C+vYxwcqsBVRFRO1EizZJErdutE6/3Jw6dbzz3Bnzupbw5hckZNB16GckacMwGoepZNIK51IIcg==", |
1258 | "requires": { | 1258 | "requires": { |
1259 | "hoist-non-react-statics": "^3.3.2", | 1259 | "hoist-non-react-statics": "^3.3.2", |
1260 | "path-to-regexp": "^1.8.0", | 1260 | "path-to-regexp": "^1.8.0", |
... | @@ -1263,9 +1263,9 @@ | ... | @@ -1263,9 +1263,9 @@ |
1263 | } | 1263 | } |
1264 | }, | 1264 | }, |
1265 | "@react-navigation/native": { | 1265 | "@react-navigation/native": { |
1266 | - "version": "3.7.12", | 1266 | + "version": "3.7.13", |
1267 | - "resolved": "https://registry.npmjs.org/@react-navigation/native/-/native-3.7.12.tgz", | 1267 | + "resolved": "https://registry.npmjs.org/@react-navigation/native/-/native-3.7.13.tgz", |
1268 | - "integrity": "sha512-StECfhxtEJvFehh16Wc9jnepy5gYKovzynVW+jr/+jKa7xlKskSCvASDnIwLHoFcWom084afKbqpVoVLEsE3lg==", | 1268 | + "integrity": "sha512-M6v1bLz0WbQmlPKF3WKBEZDGQ3CaqmzQULGs7XWtQe+f03VEbeX+kCkr/J6hw+rsgAy9Nwr4mGCPPQhF2pa7Yw==", |
1269 | "requires": { | 1269 | "requires": { |
1270 | "hoist-non-react-statics": "^3.3.2", | 1270 | "hoist-non-react-statics": "^3.3.2", |
1271 | "react-native-safe-area-view": "^0.14.9" | 1271 | "react-native-safe-area-view": "^0.14.9" |
... | @@ -2629,6 +2629,14 @@ | ... | @@ -2629,6 +2629,14 @@ |
2629 | "resolved": "https://registry.npmjs.org/expo-constants/-/expo-constants-9.0.0.tgz", | 2629 | "resolved": "https://registry.npmjs.org/expo-constants/-/expo-constants-9.0.0.tgz", |
2630 | "integrity": "sha512-1kqZMM8Ez5JT3sTEx8I69fP6NYFLOJjeM6Z63dD/m2NiwvzSADiO5+BhghnWNGN1L3bxbgOjXS6EHtS7CdSfxA==" | 2630 | "integrity": "sha512-1kqZMM8Ez5JT3sTEx8I69fP6NYFLOJjeM6Z63dD/m2NiwvzSADiO5+BhghnWNGN1L3bxbgOjXS6EHtS7CdSfxA==" |
2631 | }, | 2631 | }, |
2632 | + "expo-document-picker": { | ||
2633 | + "version": "8.1.0", | ||
2634 | + "resolved": "https://registry.npmjs.org/expo-document-picker/-/expo-document-picker-8.1.0.tgz", | ||
2635 | + "integrity": "sha512-GSPCNSwgAbRZ021bOf/ogHlbb8ZrL5iHwDx66QZCbzZTtHVTR1UVYRGhuNIjpjCaGLtd3pa0vqYp4dcx6upEVA==", | ||
2636 | + "requires": { | ||
2637 | + "uuid": "^3.3.2" | ||
2638 | + } | ||
2639 | + }, | ||
2632 | "expo-error-recovery": { | 2640 | "expo-error-recovery": { |
2633 | "version": "1.1.0", | 2641 | "version": "1.1.0", |
2634 | "resolved": "https://registry.npmjs.org/expo-error-recovery/-/expo-error-recovery-1.1.0.tgz", | 2642 | "resolved": "https://registry.npmjs.org/expo-error-recovery/-/expo-error-recovery-1.1.0.tgz", |
... | @@ -5858,6 +5866,11 @@ | ... | @@ -5858,6 +5866,11 @@ |
5858 | "resolved": "https://registry.npmjs.org/react-native-screens/-/react-native-screens-2.7.0.tgz", | 5866 | "resolved": "https://registry.npmjs.org/react-native-screens/-/react-native-screens-2.7.0.tgz", |
5859 | "integrity": "sha512-n/23IBOkrTKCfuUd6tFeRkn3lB2QZ3cmvoubRscR0JU/Zl4/ZyKmwnFmUv1/Fr+2GH/H8UTX59kEKDYYg3dMgA==" | 5867 | "integrity": "sha512-n/23IBOkrTKCfuUd6tFeRkn3lB2QZ3cmvoubRscR0JU/Zl4/ZyKmwnFmUv1/Fr+2GH/H8UTX59kEKDYYg3dMgA==" |
5860 | }, | 5868 | }, |
5869 | + "react-native-share": { | ||
5870 | + "version": "3.3.2", | ||
5871 | + "resolved": "https://registry.npmjs.org/react-native-share/-/react-native-share-3.3.2.tgz", | ||
5872 | + "integrity": "sha512-Pvkr62TiCX511RMPL+wvy9Fofre4HQnvUT5zzgPPN3vszP/C8lUb7cmFu/8x5U14t3JQg+xW/svNK5eKNebJKw==" | ||
5873 | + }, | ||
5861 | "react-native-vector-icons": { | 5874 | "react-native-vector-icons": { |
5862 | "version": "6.6.0", | 5875 | "version": "6.6.0", |
5863 | "resolved": "https://registry.npmjs.org/react-native-vector-icons/-/react-native-vector-icons-6.6.0.tgz", | 5876 | "resolved": "https://registry.npmjs.org/react-native-vector-icons/-/react-native-vector-icons-6.6.0.tgz", |
... | @@ -5984,18 +5997,18 @@ | ... | @@ -5984,18 +5997,18 @@ |
5984 | } | 5997 | } |
5985 | }, | 5998 | }, |
5986 | "react-navigation": { | 5999 | "react-navigation": { |
5987 | - "version": "4.3.8", | 6000 | + "version": "4.3.9", |
5988 | - "resolved": "https://registry.npmjs.org/react-navigation/-/react-navigation-4.3.8.tgz", | 6001 | + "resolved": "https://registry.npmjs.org/react-navigation/-/react-navigation-4.3.9.tgz", |
5989 | - "integrity": "sha512-Hxb6VkGu38x4r8nysAJutFkZ1yax29H6BrcdsqxlfGO2pCd821JkRL9h1Zqxn7qLm5JM6+7h0Yx3AS+YKDU5nw==", | 6002 | + "integrity": "sha512-nqAHS7jL1hgFPZeYt1vU8zVuF2Ay3bVVdCYvJSFJ9UvQZOtqPr/Wen/Ya9fRc+AvTtf3+AJn97K8xIiz2HHusQ==", |
5990 | "requires": { | 6003 | "requires": { |
5991 | - "@react-navigation/core": "^3.7.5", | 6004 | + "@react-navigation/core": "^3.7.6", |
5992 | - "@react-navigation/native": "^3.7.12" | 6005 | + "@react-navigation/native": "^3.7.13" |
5993 | } | 6006 | } |
5994 | }, | 6007 | }, |
5995 | "react-navigation-stack": { | 6008 | "react-navigation-stack": { |
5996 | - "version": "2.3.13", | 6009 | + "version": "2.5.0", |
5997 | - "resolved": "https://registry.npmjs.org/react-navigation-stack/-/react-navigation-stack-2.3.13.tgz", | 6010 | + "resolved": "https://registry.npmjs.org/react-navigation-stack/-/react-navigation-stack-2.5.0.tgz", |
5998 | - "integrity": "sha512-WOfrkDnTaGeVU+8+Fm5WHvovN/9o1jHADcOBBGgNN6T8XsYwtGHPr5eQbe77LKYXQ/gX3pcGiOVG3WSBDHzH+w==", | 6011 | + "integrity": "sha512-B+j7J8M17WbF5JhMxOnKayMO7BDajzzp/xFkOUH9TFu7solkDPGUt0XDM2joYdvsnTLye7oEDqF4X2YGnbPYJw==", |
5999 | "requires": { | 6012 | "requires": { |
6000 | "color": "^3.1.2", | 6013 | "color": "^3.1.2", |
6001 | "react-native-iphone-x-helper": "^1.2.1" | 6014 | "react-native-iphone-x-helper": "^1.2.1" | ... | ... |
... | @@ -12,6 +12,7 @@ | ... | @@ -12,6 +12,7 @@ |
12 | "@react-native-community/masked-view": "^0.1.10", | 12 | "@react-native-community/masked-view": "^0.1.10", |
13 | "expo": "~37.0.3", | 13 | "expo": "~37.0.3", |
14 | "expo-constants": "^9.0.0", | 14 | "expo-constants": "^9.0.0", |
15 | + "expo-document-picker": "^8.1.0", | ||
15 | "expo-location": "^8.1.0", | 16 | "expo-location": "^8.1.0", |
16 | "native-base": "^2.13.12", | 17 | "native-base": "^2.13.12", |
17 | "react": "~16.9.0", | 18 | "react": "~16.9.0", |
... | @@ -22,9 +23,10 @@ | ... | @@ -22,9 +23,10 @@ |
22 | "react-native-maps": "^0.27.1", | 23 | "react-native-maps": "^0.27.1", |
23 | "react-native-safe-area-context": "^0.7.3", | 24 | "react-native-safe-area-context": "^0.7.3", |
24 | "react-native-screens": "^2.7.0", | 25 | "react-native-screens": "^2.7.0", |
26 | + "react-native-share": "^3.3.2", | ||
25 | "react-native-web": "~0.11.7", | 27 | "react-native-web": "~0.11.7", |
26 | - "react-navigation": "^4.3.8", | 28 | + "react-navigation": "^4.3.9", |
27 | - "react-navigation-stack": "^2.3.13" | 29 | + "react-navigation-stack": "^2.5.0" |
28 | }, | 30 | }, |
29 | "devDependencies": { | 31 | "devDependencies": { |
30 | "@babel/core": "^7.8.6", | 32 | "@babel/core": "^7.8.6", | ... | ... |
-
Please register or login to post a comment