신승민

Detail Update

...@@ -3,11 +3,15 @@ import { StyleSheet, Text, View } from "react-native"; ...@@ -3,11 +3,15 @@ import { StyleSheet, Text, View } 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/MainScreen";
6 +import Detail from "./Components/AppTabNavigator/Detail"
6 // import MovieInfo from "./Components/MovieInfo"; 7 // import MovieInfo from "./Components/MovieInfo";
7 8
8 const AppStackNavigator = createStackNavigator({ 9 const AppStackNavigator = createStackNavigator({
9 Main: { 10 Main: {
10 - screen: MainScreen // MainScreen 컴포넌트를 네비게이터에 등록 11 + screen: MainScreen // MainScreen 컴포넌트를 네비게이터에 등록
12 + },
13 + Datail:{
14 + screen: Detail
11 } 15 }
12 }); 16 });
13 17
......
1 +import React, { Component } from 'react';
2 +import { View, Text, StyleSheet, Button } from 'react-native';
3 +import { Icon } from 'native-base';
4 +import { NavigationActions, createStackNavigator, withNavigation } from 'react-navigation';
5 +import MovieRankingTab from './MovieRankingTab'
6 +
7 +getDB = async search => {
8 + axios
9 + .get(
10 + `https://api.themoviedb.org/3/search/movie?api_key=840724c8aa8b3b7c4ab68db53310cc9f&query=${search}&language=ko-KR&page=1`
11 + )
12 + .then(response => {
13 + this.setState({ results: response.data.results });
14 + console.log(response.data.results);
15 + });
16 + };
17 +
18 + getNaverApi = async search => {
19 + fetch(`https://openapi.naver.com/v1/search/movie.json?query="${search}"`, {
20 + headers: {
21 + "X-Naver-Client-Id": NAVER_CLIENT_ID,
22 + "X-Naver-Client-Secret": NAVER_CLIENT_SECRET
23 + }
24 + })
25 + .then(response => response.json())
26 + .then(json => this.setState({ items: json.items }));
27 + };
28 +
29 + searching = typing => {
30 + this.setState({
31 + keyword: typing,
32 + typing: ""
33 + });
34 + this.getDB(typing);
35 + };
36 +
37 +
38 +
39 +export default class Detail extends Component {
40 + static navigationOptions = {
41 + tabBarIcon: ({ tintColor }) => (
42 + <Icon name="ios-albums" style={{ color: tintColor }} />
43 + )
44 + };
45 +
46 + render() {
47 + const { navigation } = this.props;
48 + return (
49 + <View style={style.container}>
50 + <Text>
51 + {navigation.getParam("name")}
52 + </Text>
53 + </View>
54 + );
55 + }
56 +}
57 +const style = StyleSheet.create({
58 + container: {
59 + flex: 1,
60 + alignItems: 'center',
61 + justifyContent: 'center',
62 + }
63 +});
64 +
65 +//export default withNavigation(Detail);
...\ No newline at end of file ...\ No newline at end of file
...@@ -12,12 +12,18 @@ import { ...@@ -12,12 +12,18 @@ import {
12 import { Icon } from "native-base"; 12 import { Icon } from "native-base";
13 import { AsyncStorage } from "react-native"; 13 import { AsyncStorage } from "react-native";
14 import axios from "axios"; 14 import axios from "axios";
15 +import WantToWatchTab from "./WantToWatchTab";
15 const API_KEY = "2bf00f660b1a6a3ffeb6e06ac270cce3"; 16 const API_KEY = "2bf00f660b1a6a3ffeb6e06ac270cce3";
16 const NAVER_CLIENT_ID = "KqPsntd1hcPJ8FUPBGqN"; 17 const NAVER_CLIENT_ID = "KqPsntd1hcPJ8FUPBGqN";
17 const NAVER_CLIENT_SECRET = "0GRb3uya1U"; 18 const NAVER_CLIENT_SECRET = "0GRb3uya1U";
18 19
20 +//List 전역변수 선언하기
21 +//list = "";
22 +
19 export default class MovieRankingTab extends Component { 23 export default class MovieRankingTab extends Component {
20 state = { 24 state = {
25 + list: "", //Add하고 싶은 정보 list
26 + flag: false, //WantToWatchTab을 새로고침 할지 말지 여부
21 isLoading: true, 27 isLoading: true,
22 info: [], 28 info: [],
23 date: "", 29 date: "",
...@@ -195,6 +201,11 @@ export default class MovieRankingTab extends Component { ...@@ -195,6 +201,11 @@ export default class MovieRankingTab extends Component {
195 console.log(error); 201 console.log(error);
196 }); 202 });
197 }; 203 };
204 +
205 + printData = async (key) => {
206 + value = await AsyncStorage.getItem(key);
207 + console.log(value)
208 +}
198 componentDidMount() { 209 componentDidMount() {
199 var day = new Date().getDate() - 1; // 어제 날짜 210 var day = new Date().getDate() - 1; // 어제 날짜
200 if (day == 1) { 211 if (day == 1) {
...@@ -206,15 +217,20 @@ export default class MovieRankingTab extends Component { ...@@ -206,15 +217,20 @@ export default class MovieRankingTab extends Component {
206 var year = new Date().getFullYear(); //Current Year 217 var year = new Date().getFullYear(); //Current Year
207 var date = year + "" + month + day; 218 var date = year + "" + month + day;
208 this.getMovieList(date); 219 this.getMovieList(date);
220 +
221 +
222 + //this.printData('쥬만지: 넥스트 레벨')
209 } 223 }
210 - 224 +
225 +
226 +
211 //눌렀을 때 저장함수 227 //눌렀을 때 저장함수
212 _onPressButton(temp) { 228 _onPressButton(temp) {
213 //this.state.list = ""; //초기화(On Off 기능으로 짜놨습니당, 누적되는거 보고싶으면 이부분 주석달면 돼여) 229 //this.state.list = ""; //초기화(On Off 기능으로 짜놨습니당, 누적되는거 보고싶으면 이부분 주석달면 돼여)
214 - Alert.alert(temp);//메시지 띄우고 230 + Alert.alert(temp); //메시지 띄우고
215 - this.state.list = this.state.list + '\n' + temp; //list 누적해준다(endl으로 구분) 231 + AsyncStorage.setItem(temp, temp); //DB에 저장한다
216 - console.log(this.state.list);//콘솔에 log 띄운다 232 + //WantToWatchTab.render(); //새로고침
217 - AsyncStorage.setItem('MovieLists', this.state.list); //DB에 저장한다 233 + this.props.navigation.navigate('Detail', { name : temp})
218 } 234 }
219 235
220 render() { 236 render() {
...@@ -623,4 +639,4 @@ const style = StyleSheet.create({ ...@@ -623,4 +639,4 @@ const style = StyleSheet.create({
623 fontSize: 14, 639 fontSize: 14,
624 color: "white" 640 color: "white"
625 } 641 }
626 -}); 642 +});
...\ No newline at end of file ...\ No newline at end of file
......
1 import React, { Component } from "react"; 1 import React, { Component } from "react";
2 -import { View, Text, StyleSheet } from "react-native"; 2 +import { View, Text, StyleSheet, Button } from "react-native";
3 import { Icon } from "native-base"; 3 import { Icon } from "native-base";
4 +import { withNavigation } from 'react-navigation';
5 +import { navigation, StackActions, NavigationActions } from 'react-navigation';
6 +import 'react-native-gesture-handler'
7 +import Detail from './Detail'
4 8
5 export default class SeenMovieTab extends Component { 9 export default class SeenMovieTab extends Component {
6 static navigationOptions = { 10 static navigationOptions = {
...@@ -8,15 +12,18 @@ export default class SeenMovieTab extends Component { ...@@ -8,15 +12,18 @@ export default class SeenMovieTab extends Component {
8 <Icon name="ios-albums" style={{ color: tintColor }} /> 12 <Icon name="ios-albums" style={{ color: tintColor }} />
9 ) 13 )
10 }; 14 };
15 +
11 render() { 16 render() {
12 return ( 17 return (
13 <View style={style.container}> 18 <View style={style.container}>
14 <Text>SeenMovieTab</Text> 19 <Text>SeenMovieTab</Text>
20 + <Button title = 'hi' onPress = { () => this.props.navigation.navigate('Detail')} />
15 </View> 21 </View>
16 ); 22 );
17 } 23 }
18 } 24 }
19 25
26 +
20 const style = StyleSheet.create({ 27 const style = StyleSheet.create({
21 container: { 28 container: {
22 backgroundColor: "black", 29 backgroundColor: "black",
......
1 -import React from "react";
2 -import { StyleSheet, Text, View, StatusBar } from "react-native";
3 -
4 -export default function Loading() {
5 - return (
6 - <View style={styles.container}>
7 - <StatusBar barStyle="dark-content" />
8 - <Text style={styles.text}>Getting the current weather</Text>
9 - </View>
10 - );
11 -}
12 -
13 -const styles = StyleSheet.create({
14 - container: {
15 - flex: 1,
16 - justifyContent: "flex-end",
17 - paddingHorizontal: 30,
18 - paddingVertical: 100,
19 - backgroundColor: "#FDF6AA"
20 - },
21 - text: {
22 - color: "#2c2c2c",
23 - fontSize: 30
24 - }
25 -});
1 import React, { Component } from "react"; 1 import React, { Component } from "react";
2 import { StyleSheet, Text, View, Button } from "react-native"; 2 import { StyleSheet, Text, View, Button } from "react-native";
3 -import { Icon } from "native-base"; // 추가된 코드
4 import { createAppContainer } from "react-navigation"; 3 import { createAppContainer } from "react-navigation";
5 import { createStackNavigator } from "react-navigation-stack"; 4 import { createStackNavigator } from "react-navigation-stack";
6 import { createMaterialTopTabNavigator } from "react-navigation-tabs"; 5 import { createMaterialTopTabNavigator } from "react-navigation-tabs";
...@@ -8,18 +7,27 @@ import SeenMovieTab from "./AppTabNavigator/MovieRankingTab"; ...@@ -8,18 +7,27 @@ import SeenMovieTab from "./AppTabNavigator/MovieRankingTab";
8 import MovieRankingTab from "./AppTabNavigator/WantToWatchTab"; 7 import MovieRankingTab from "./AppTabNavigator/WantToWatchTab";
9 import WantToWatchTab from "./AppTabNavigator/SeenMovieTab"; 8 import WantToWatchTab from "./AppTabNavigator/SeenMovieTab";
10 import Search from ".//AppTabNavigator/Search"; 9 import Search from ".//AppTabNavigator/Search";
10 +import Detail from "./AppTabNavigator/Detail"
11 import { Platform } from "react-native"; 11 import { Platform } from "react-native";
12 -import { black } from "ansi-colors"; 12 +import { setRecoveryProps } from "expo/build/ErrorRecovery/ErrorRecovery";
13 -import { colors } from "react-native-elements"; 13 +
14 -//import { Ionicons } from '@expo/vector-icons'; 14 +
15 +state = {
16 + hi:""
17 +}
18 +props = {
19 + bye : ""
20 +}
15 21
16 const AppTabNavigator = createMaterialTopTabNavigator( 22 const AppTabNavigator = createMaterialTopTabNavigator(
17 { 23 {
18 - SeenMovieTab: { screen: SeenMovieTab }, 24 + SeenMovieTab:{ screen: SeenMovieTab },
19 - MovieRankingTab: { screen: MovieRankingTab }, 25 + MovieRankingTab:{ screen: MovieRankingTab },
20 - WantToWatchTab: { screen: WantToWatchTab }, 26 + WantToWatchTab:{ screen: WantToWatchTab },
21 - Search: { screen: Search } 27 + Search: { screen: Search },
28 + Detail: { screen: Detail }
22 }, 29 },
30 +
23 { 31 {
24 animationEnabled: true, 32 animationEnabled: true,
25 swipeEnabled: true, 33 swipeEnabled: true,
...@@ -44,6 +52,7 @@ const AppTabNavigator = createMaterialTopTabNavigator( ...@@ -44,6 +52,7 @@ const AppTabNavigator = createMaterialTopTabNavigator(
44 52
45 const AppTabContainet = createAppContainer(AppTabNavigator); 53 const AppTabContainet = createAppContainer(AppTabNavigator);
46 54
55 +
47 export default class MainScreen extends Component { 56 export default class MainScreen extends Component {
48 // navigationOptions 코드 추가 57 // navigationOptions 코드 추가
49 static navigationOptions = { 58 static navigationOptions = {
...@@ -69,4 +78,4 @@ const styles = StyleSheet.create({ ...@@ -69,4 +78,4 @@ const styles = StyleSheet.create({
69 alignItems: "center", 78 alignItems: "center",
70 justifyContent: "center" 79 justifyContent: "center"
71 } 80 }
72 -}); 81 +});
...\ No newline at end of file ...\ No newline at end of file
......
1 -import React, { Component } from "react";
2 -import { StyleSheet, Text, View, StatusBar } from "react-native";
3 -
4 -export default class MovieRankingTab extends Component {
5 - return() {
6 - <View style={styles.container}>
7 - <StatusBar barStyle="dark-content" />
8 - <Text style={styles.text}>Getting the current weather</Text>
9 - </View>;
10 - }
11 -}
12 -
13 -const styles = StyleSheet.create({
14 - container: {
15 - flex: 1,
16 - justifyContent: "flex-end",
17 - paddingHorizontal: 30,
18 - paddingVertical: 100,
19 - backgroundColor: "#FDF6AA"
20 - },
21 - text: {
22 - color: "#2c2c2c",
23 - fontSize: 30
24 - }
25 -});
1 Arguments: 1 Arguments:
2 - C:\Program Files\nodejs\node.exe C:\Users\1004n\AppData\Roaming\npm\node_modules\yarn\bin\yarn.js add ract-navigation-stack --save 2 + C:\Program Files\nodejs\node.exe C:\Program Files\nodejs\node_modules\yarn\bin\yarn.js add react-native-gesture-handler
3 3
4 PATH: 4 PATH:
5 - C:\Program Files (x86)\Common Files\Oracle\Java\javapath;C:\Program Files (x86)\Intel\Intel(R) Management Engine Components\iCLS\;C:\Program Files\Intel\Intel(R) Management Engine Components\iCLS\;C:\windows\system32;C:\windows;C:\windows\System32\Wbem;C:\windows\System32\WindowsPowerShell\v1.0\;C:\windows\System32\OpenSSH\;C:\Program Files (x86)\NVIDIA Corporation\PhysX\Common;C:\Program Files\Intel\WiFi\bin\;C:\Program Files\Common Files\Intel\WirelessCommon\;C:\Program Files (x86)\Intel\Intel(R) Management Engine Components\DAL;C:\Program Files\Intel\Intel(R) Management Engine Components\DAL;C:\WINDOWS\system32;C:\WINDOWS;C:\WINDOWS\System32\Wbem;C:\WINDOWS\System32\WindowsPowerShell\v1.0\;C:\WINDOWS\System32\OpenSSH\;C:\Program Files\nodejs\;C:\Program Files\NVIDIA Corporation\NVIDIA NvDLISR;C:\Program Files\Git\cmd;C:\TmaxData\tibero6\bin;C:\TmaxData\tibero6\client\bin;C:\Program Files\MySQL\MySQL Server 8.0\bin;C:\sqlite;C:\Program Files\MySQL\MySQL Shell 8.0\bin\;C:\Users\1004n\AppData\Local\Microsoft\WindowsApps;C:\Program Files\Bandizip\;C:\Users\1004n\AppData\Local\Programs\Microsoft VS Code\bin;C:\Users\1004n\AppData\Roaming\npm;C:\TRV-Mars\flutter\bin;C:\Program Files\JetBrains\IntelliJ IDEA Community Edition 2019.2\bin;C:\Users\1004n\AppData\Local\Android\Sdk\emulator;C:\Users\1004n\AppData\Local\Android\Sdk\platform-tools;C:\Users\1004n\AppData\Local\Android\Sdk\tools\bin;C:\Program Files\Java\jre1.8.0_231\bin;C:\Users\1004n\.android\avd;C:\Users\1004n\AppData\Local\atom\bin 5 + C:\Program Files (x86)\Common Files\Oracle\Java\javapath;C:\Program Files (x86)\Intel\iCLS Client\;C:\Program Files\Intel\iCLS Client\;C:\windows\system32;C:\windows;C:\windows\System32\Wbem;C:\windows\System32\WindowsPowerShell\v1.0\;C:\Program Files (x86)\Intel\Intel(R) Management Engine Components\DAL;C:\Program Files\Intel\Intel(R) Management Engine Components\DAL;C:\Program Files (x86)\Intel\Intel(R) Management Engine Components\IPT;C:\Program Files\Intel\Intel(R) Management Engine Components\IPT;C:\Program Files (x86)\NVIDIA Corporation\PhysX\Common;C:\Program Files\Samsung\SamsungLink\AllShare Framework DMS\bin\;C:\WINDOWS\system32;C:\WINDOWS;C:\WINDOWS\System32\Wbem;C:\WINDOWS\System32\WindowsPowerShell\v1.0\;C:\WINDOWS\System32\OpenSSH\;C:\Program Files\Git\cmd;C:\TmaxData\tibero6\bin;C:\TmaxData\tibero6\client\bin;C:\Program Files\PuTTY\;C:\Users\SSM\AppData\Roaming\nvm;C:\Program Files\nodejs;C:\Users\SSM\AppData\Local\Programs\Python\Python37\Scripts\;C:\Users\SSM\AppData\Local\Programs\Python\Python37\;C:\Users\SSM\AppData\Local\Microsoft\WindowsApps;C:\intelFPGA\18.1\modelsim_ase\win32aloem;C:\Users\SSM\AppData\Local\Programs\Microsoft VS Code\bin;C:\Users\SSM\AppData\Roaming\npm;C:\Users\SSM\AppData\Roaming\nvm;C:\Program Files\nodejs
6 6
7 Yarn version: 7 Yarn version:
8 - 1.21.0 8 + 1.19.2
9 9
10 Node version: 10 Node version:
11 - 10.16.0 11 + 12.9.0
12 12
13 Platform: 13 Platform:
14 win32 x64 14 win32 x64
15 15
16 Trace: 16 Trace:
17 - Error: https://registry.yarnpkg.com/ract-navigation-stack: Not found 17 + Error: EPERM: operation not permitted, unlink 'C:\Users\SSM\Desktop\open_proj\khuhub\pocketMovie\node_modules\@emotion\is-prop-valid\dist'
18 - at Request.params.callback [as _callback] (C:\Users\1004n\AppData\Roaming\npm\node_modules\yarn\lib\cli.js:66938:18)
19 - at Request.self.callback (C:\Users\1004n\AppData\Roaming\npm\node_modules\yarn\lib\cli.js:140622:22)
20 - at Request.emit (events.js:198:13)
21 - at Request.<anonymous> (C:\Users\1004n\AppData\Roaming\npm\node_modules\yarn\lib\cli.js:141594:10)
22 - at Request.emit (events.js:198:13)
23 - at IncomingMessage.<anonymous> (C:\Users\1004n\AppData\Roaming\npm\node_modules\yarn\lib\cli.js:141516:12)
24 - at Object.onceWrapper (events.js:286:20)
25 - at IncomingMessage.emit (events.js:203:15)
26 - at endReadableNT (_stream_readable.js:1129:12)
27 - at process._tickCallback (internal/process/next_tick.js:63:19)
28 18
29 npm manifest: 19 npm manifest:
30 { 20 {
31 "main": "node_modules/expo/AppEntry.js", 21 "main": "node_modules/expo/AppEntry.js",
22 + "rnpm": {
23 + "assets": [
24 + "./assets/fonts"
25 + ]
26 + },
32 "scripts": { 27 "scripts": {
33 "start": "expo start", 28 "start": "expo start",
34 "android": "expo start --android", 29 "android": "expo start --android",
...@@ -39,13 +34,14 @@ npm manifest: ...@@ -39,13 +34,14 @@ npm manifest:
39 "dependencies": { 34 "dependencies": {
40 "axios": "^0.19.0", 35 "axios": "^0.19.0",
41 "expo": "^35.0.0", 36 "expo": "^35.0.0",
37 + "expo-font": "~7.0.0",
42 "native-base": "^2.13.8", 38 "native-base": "^2.13.8",
43 "react": "16.8.3", 39 "react": "16.8.3",
44 "react-dom": "16.8.3", 40 "react-dom": "16.8.3",
45 "react-native": "https://github.com/expo/react-native/archive/sdk-35.0.0.tar.gz", 41 "react-native": "https://github.com/expo/react-native/archive/sdk-35.0.0.tar.gz",
46 "react-native-axios": "^0.17.1", 42 "react-native-axios": "^0.17.1",
47 "react-native-elements": "^1.2.7", 43 "react-native-elements": "^1.2.7",
48 - "react-native-gesture-handler": "~1.3.0", 44 + "react-native-gesture-handler": "^1.5.2",
49 "react-native-reanimated": "~1.2.0", 45 "react-native-reanimated": "~1.2.0",
50 "react-native-screens": "~1.0.0-alpha.23", 46 "react-native-screens": "~1.0.0-alpha.23",
51 "react-native-stack": "^1.0.0-alpha11", 47 "react-native-stack": "^1.0.0-alpha11",
...@@ -58,7 +54,8 @@ npm manifest: ...@@ -58,7 +54,8 @@ npm manifest:
58 "devDependencies": { 54 "devDependencies": {
59 "babel-preset-expo": "^7.1.0" 55 "babel-preset-expo": "^7.1.0"
60 }, 56 },
61 - "private": true 57 + "private": true,
58 + "version": "0.0.0"
62 } 59 }
63 60
64 yarn manifest: 61 yarn manifest:
...@@ -2793,6 +2790,11 @@ Lockfile: ...@@ -2793,6 +2790,11 @@ Lockfile:
2793 resolved "https://registry.yarnpkg.com/growly/-/growly-1.3.0.tgz#f10748cbe76af964b7c96c93c6bcc28af120c081" 2790 resolved "https://registry.yarnpkg.com/growly/-/growly-1.3.0.tgz#f10748cbe76af964b7c96c93c6bcc28af120c081"
2794 integrity sha1-8QdIy+dq+WS3yWyTxrzCivEgwIE= 2791 integrity sha1-8QdIy+dq+WS3yWyTxrzCivEgwIE=
2795 2792
2793 + hammerjs@^2.0.8:
2794 + version "2.0.8"
2795 + resolved "https://registry.yarnpkg.com/hammerjs/-/hammerjs-2.0.8.tgz#04ef77862cff2bb79d30f7692095930222bf60f1"
2796 + integrity sha1-BO93hiz/K7edMPdpIJWTAiK/YPE=
2797 +
2796 har-schema@^2.0.0: 2798 har-schema@^2.0.0:
2797 version "2.0.0" 2799 version "2.0.0"
2798 resolved "https://registry.yarnpkg.com/har-schema/-/har-schema-2.0.0.tgz#a94c2224ebcac04782a0d9035521f24735b7ec92" 2800 resolved "https://registry.yarnpkg.com/har-schema/-/har-schema-2.0.0.tgz#a94c2224ebcac04782a0d9035521f24735b7ec92"
...@@ -4778,14 +4780,15 @@ Lockfile: ...@@ -4778,14 +4780,15 @@ Lockfile:
4778 react-native-ratings "^6.3.0" 4780 react-native-ratings "^6.3.0"
4779 react-native-status-bar-height "^2.2.0" 4781 react-native-status-bar-height "^2.2.0"
4780 4782
4781 - react-native-gesture-handler@~1.3.0: 4783 + react-native-gesture-handler@^1.5.2:
4782 - version "1.3.0" 4784 + version "1.5.2"
4783 - resolved "https://registry.yarnpkg.com/react-native-gesture-handler/-/react-native-gesture-handler-1.3.0.tgz#d0386f565928ccc1849537f03f2e37fd5f6ad43f" 4785 + resolved "https://registry.yarnpkg.com/react-native-gesture-handler/-/react-native-gesture-handler-1.5.2.tgz#281111550bf1eee10b7feba5278d142169892731"
4784 - integrity sha512-ASRFIXBuKRvqlmwkWJhV8yP2dTpvcqVrLNpd7FKVBFHYWr6SAxjGyO9Ik8w1lAxDhMlRP2IcJ9p9eq5X2WWeLQ== 4786 + integrity sha512-Xp03dq4XYVTD0xmWx4DW4eX+ox1NQLjHmbykspTdS5FCNIVIOekVXRLFCw1698/v8dYUHApNo6K3s3BCD8fqPA==
4785 dependencies: 4787 dependencies:
4788 + hammerjs "^2.0.8"
4786 hoist-non-react-statics "^2.3.1" 4789 hoist-non-react-statics "^2.3.1"
4787 - invariant "^2.2.2" 4790 + invariant "^2.2.4"
4788 - prop-types "^15.5.10" 4791 + prop-types "^15.7.2"
4789 4792
4790 react-native-iphone-x-helper@^1.0.3: 4793 react-native-iphone-x-helper@^1.0.3:
4791 version "1.2.1" 4794 version "1.2.1"
......