forked from vergnet/application-amicale
		
	Moved navigation to bottom tabs, replaced react navigation drawer by native-base-side-menu
This commit is contained in:
		
							parent
							
								
									d9a68b021c
								
							
						
					
					
						commit
						f5c3f27f14
					
				
					 15 changed files with 786 additions and 72 deletions
				
			
		
							
								
								
									
										7
									
								
								App.js
									
									
									
									
									
								
							
							
						
						
									
										7
									
								
								App.js
									
									
									
									
									
								
							|  | @ -15,6 +15,8 @@ import AppIntroSlider from 'react-native-app-intro-slider'; | ||||||
| import {clearThemeCache} from 'native-base-shoutem-theme'; | import {clearThemeCache} from 'native-base-shoutem-theme'; | ||||||
| import AsyncStorageManager from "./utils/AsyncStorageManager"; | import AsyncStorageManager from "./utils/AsyncStorageManager"; | ||||||
| import CustomMaterialIcon from "./components/CustomMaterialIcon"; | import CustomMaterialIcon from "./components/CustomMaterialIcon"; | ||||||
|  | import SideBar from "./components/Sidebar"; | ||||||
|  | import SideMenu from "react-native-side-menu"; | ||||||
| 
 | 
 | ||||||
| const styles = StyleSheet.create({ | const styles = StyleSheet.create({ | ||||||
|     mainContent: { |     mainContent: { | ||||||
|  | @ -175,10 +177,13 @@ export default class App extends React.Component<Props, State> { | ||||||
|             return ( |             return ( | ||||||
|                 <Root> |                 <Root> | ||||||
|                     <StyleProvider style={this.state.currentTheme}> |                     <StyleProvider style={this.state.currentTheme}> | ||||||
|                         <AppNavigator/> | 
 | ||||||
|  |                             <AppNavigator/> | ||||||
|                     </StyleProvider> |                     </StyleProvider> | ||||||
|                 </Root> |                 </Root> | ||||||
|             ); |             ); | ||||||
|         } |         } | ||||||
|     } |     } | ||||||
|  | 
 | ||||||
|  |     menu = <View/>; | ||||||
| } | } | ||||||
|  |  | ||||||
							
								
								
									
										70
									
								
								components/BaseContainer.js
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										70
									
								
								components/BaseContainer.js
									
									
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,70 @@ | ||||||
|  | // @flow
 | ||||||
|  | 
 | ||||||
|  | import * as React from 'react'; | ||||||
|  | import {Container, Right} from "native-base"; | ||||||
|  | import CustomHeader from "./CustomHeader"; | ||||||
|  | import CustomSideMenu from "./CustomSideMenu"; | ||||||
|  | import CustomMaterialIcon from "./CustomMaterialIcon"; | ||||||
|  | import {Platform, View} from "react-native"; | ||||||
|  | import ThemeManager from "../utils/ThemeManager"; | ||||||
|  | import Touchable from "react-native-platform-touchable"; | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
|  | type Props = { | ||||||
|  |     navigation: Object, | ||||||
|  |     headerTitle: string, | ||||||
|  |     headerRightMenu: React.Node, | ||||||
|  |     children: React.Node | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | type State = { | ||||||
|  |     isOpen: boolean | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
|  | export default class BaseContainer extends React.Component<Props, State> { | ||||||
|  | 
 | ||||||
|  |     static defaultProps = { | ||||||
|  |         headerRightMenu: <Right/> | ||||||
|  |     }; | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
|  |     state = { | ||||||
|  |         isOpen: false, | ||||||
|  |     }; | ||||||
|  | 
 | ||||||
|  |     toggle() { | ||||||
|  |         console.log('coucou'); | ||||||
|  |         this.setState({ | ||||||
|  |             isOpen: !this.state.isOpen, | ||||||
|  |         }); | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  |     updateMenuState(isOpen: boolean) { | ||||||
|  | 
 | ||||||
|  |         this.setState({isOpen}); | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  |     render() { | ||||||
|  |         console.log(this.state.isOpen); | ||||||
|  |         return ( | ||||||
|  |             <CustomSideMenu navigation={this.props.navigation} isOpen={this.state.isOpen} | ||||||
|  |                             onChange={(isOpen) => this.updateMenuState(isOpen)}> | ||||||
|  |                 <Container> | ||||||
|  |                     <CustomHeader navigation={this.props.navigation} title={this.props.headerTitle} | ||||||
|  |                                   leftButton={ | ||||||
|  |                                       <Touchable | ||||||
|  |                                           style={{padding: 6}} | ||||||
|  |                                           onPress={() => this.toggle()}> | ||||||
|  |                                           <CustomMaterialIcon | ||||||
|  |                                               color={Platform.OS === 'ios' ? ThemeManager.getCurrentThemeVariables().brandPrimary : "#fff"} | ||||||
|  |                                               icon="menu"/> | ||||||
|  |                                       </Touchable> | ||||||
|  |                                   } | ||||||
|  |                     rightMenu={this.props.headerRightMenu}/> | ||||||
|  |                     {this.props.children} | ||||||
|  |                 </Container> | ||||||
|  |             </CustomSideMenu> | ||||||
|  |         ); | ||||||
|  |     } | ||||||
|  | } | ||||||
|  | @ -2,14 +2,15 @@ | ||||||
| 
 | 
 | ||||||
| import * as React from "react"; | import * as React from "react"; | ||||||
| import {Body, Header, Left, Right, Title} from "native-base"; | import {Body, Header, Left, Right, Title} from "native-base"; | ||||||
| import {Platform, StyleSheet} from "react-native"; | import {Platform, StyleSheet, View} from "react-native"; | ||||||
| import {getStatusBarHeight} from "react-native-status-bar-height"; | import {getStatusBarHeight} from "react-native-status-bar-height"; | ||||||
| import Touchable from 'react-native-platform-touchable'; | import Touchable from 'react-native-platform-touchable'; | ||||||
| import ThemeManager from "../utils/ThemeManager"; | import ThemeManager from "../utils/ThemeManager"; | ||||||
| import CustomMaterialIcon from "./CustomMaterialIcon"; | import CustomMaterialIcon from "./CustomMaterialIcon"; | ||||||
| 
 | 
 | ||||||
| type Props = { | type Props = { | ||||||
|     backButton: boolean, |     hasBackButton: boolean, | ||||||
|  |     leftButton: React.Node, | ||||||
|     rightMenu: React.Node, |     rightMenu: React.Node, | ||||||
|     title: string, |     title: string, | ||||||
|     navigation: Object, |     navigation: Object, | ||||||
|  | @ -19,7 +20,7 @@ type Props = { | ||||||
| /** | /** | ||||||
|  * Custom component defining a header using native base |  * Custom component defining a header using native base | ||||||
|  * |  * | ||||||
|  * @prop backButton {boolean} Whether to show a back button or a burger menu. Use burger if unspecified |  * @prop hasBackButton {boolean} Whether to show a back button or a burger menu. Use burger if unspecified | ||||||
|  * @prop rightMenu {React.Node} Element to place at the right of the header. Use nothing if unspecified |  * @prop rightMenu {React.Node} Element to place at the right of the header. Use nothing if unspecified | ||||||
|  * @prop title {string} This header title |  * @prop title {string} This header title | ||||||
|  * @prop navigation {Object} The navigation object from react navigation |  * @prop navigation {Object} The navigation object from react navigation | ||||||
|  | @ -27,7 +28,8 @@ type Props = { | ||||||
| export default class CustomHeader extends React.Component<Props> { | export default class CustomHeader extends React.Component<Props> { | ||||||
| 
 | 
 | ||||||
|     static defaultProps = { |     static defaultProps = { | ||||||
|         backButton: false, |         hasBackButton: false, | ||||||
|  |         leftButton: <View/>, | ||||||
|         rightMenu: <Right/>, |         rightMenu: <Right/>, | ||||||
|         hasTabs: false, |         hasTabs: false, | ||||||
|     }; |     }; | ||||||
|  | @ -35,7 +37,7 @@ export default class CustomHeader extends React.Component<Props> { | ||||||
|     render() { |     render() { | ||||||
|         let button; |         let button; | ||||||
|         // Does the app have a back button or a burger menu ?
 |         // Does the app have a back button or a burger menu ?
 | ||||||
|         if (this.props.backButton) |         if (this.props.hasBackButton) | ||||||
|             button = |             button = | ||||||
|                 <Touchable |                 <Touchable | ||||||
|                     style={{padding: 6}} |                     style={{padding: 6}} | ||||||
|  | @ -45,14 +47,7 @@ export default class CustomHeader extends React.Component<Props> { | ||||||
|                         icon="arrow-left"/> |                         icon="arrow-left"/> | ||||||
|                 </Touchable>; |                 </Touchable>; | ||||||
|         else |         else | ||||||
|             button = |             button = this.props.leftButton; | ||||||
|                 <Touchable |  | ||||||
|                     style={{padding: 6}} |  | ||||||
|                     onPress={() => this.props.navigation.toggleDrawer()}> |  | ||||||
|                     <CustomMaterialIcon |  | ||||||
|                         color={Platform.OS === 'ios' ? ThemeManager.getCurrentThemeVariables().brandPrimary : "#fff"} |  | ||||||
|                         icon="menu"/> |  | ||||||
|                 </Touchable>; |  | ||||||
| 
 | 
 | ||||||
|         return ( |         return ( | ||||||
|             <Header style={styles.header}> |             <Header style={styles.header}> | ||||||
|  |  | ||||||
							
								
								
									
										26
									
								
								components/CustomSideMenu.js
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										26
									
								
								components/CustomSideMenu.js
									
									
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,26 @@ | ||||||
|  | // @flow
 | ||||||
|  | 
 | ||||||
|  | import * as React from 'react'; | ||||||
|  | import SideMenu from "react-native-side-menu"; | ||||||
|  | import SideBar from "./Sidebar"; | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
|  | type Props = { | ||||||
|  |     navigation: Object, | ||||||
|  |     children: React.Node, | ||||||
|  |     isOpen: boolean, | ||||||
|  |     onChange: Function | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | export default class CustomSideMenu extends React.Component<Props> { | ||||||
|  |     render() { | ||||||
|  |         console.log(this.props.isOpen); | ||||||
|  |         return ( | ||||||
|  |             <SideMenu menu={<SideBar navigation={this.props.navigation}/>} | ||||||
|  |                       isOpen={this.props.isOpen} | ||||||
|  |                       onChange={this.props.onChange}> | ||||||
|  |                 {this.props.children} | ||||||
|  |             </SideMenu> | ||||||
|  |         ); | ||||||
|  |     } | ||||||
|  | } | ||||||
|  | @ -2,12 +2,12 @@ | ||||||
| 
 | 
 | ||||||
| import * as React from 'react'; | import * as React from 'react'; | ||||||
| import WebDataManager from "../utils/WebDataManager"; | import WebDataManager from "../utils/WebDataManager"; | ||||||
| import {Container, H3, Spinner, Tab, TabHeading, Tabs, Text} from "native-base"; | import {H3, Spinner, Tab, TabHeading, Tabs, Text} from "native-base"; | ||||||
| import CustomHeader from "./CustomHeader"; |  | ||||||
| import {RefreshControl, SectionList, View} from "react-native"; | import {RefreshControl, SectionList, View} from "react-native"; | ||||||
| import CustomMaterialIcon from "./CustomMaterialIcon"; | import CustomMaterialIcon from "./CustomMaterialIcon"; | ||||||
| import i18n from 'i18n-js'; | import i18n from 'i18n-js'; | ||||||
| import ThemeManager from "../utils/ThemeManager"; | import ThemeManager from "../utils/ThemeManager"; | ||||||
|  | import BaseContainer from "./BaseContainer"; | ||||||
| 
 | 
 | ||||||
| type Props = { | type Props = { | ||||||
|     navigation: Object, |     navigation: Object, | ||||||
|  | @ -312,8 +312,7 @@ export default class FetchedDataSectionList extends React.Component<Props, State | ||||||
|         const nav = this.props.navigation; |         const nav = this.props.navigation; | ||||||
|         const dataset = this.createDataset(this.state.fetchedData); |         const dataset = this.createDataset(this.state.fetchedData); | ||||||
|         return ( |         return ( | ||||||
|             <Container> |             <BaseContainer navigation={nav} headerTitle={this.getHeaderTranslation()}> | ||||||
|                 <CustomHeader navigation={nav} title={this.getHeaderTranslation()}/> |  | ||||||
|                 {this.hasTabs() ? |                 {this.hasTabs() ? | ||||||
|                     <Tabs> |                     <Tabs> | ||||||
|                         {this.getTabbedView(dataset)} |                         {this.getTabbedView(dataset)} | ||||||
|  | @ -321,7 +320,7 @@ export default class FetchedDataSectionList extends React.Component<Props, State | ||||||
|                     : |                     : | ||||||
|                     this.getSectionList(dataset) |                     this.getSectionList(dataset) | ||||||
|                 } |                 } | ||||||
|             </Container> |             </BaseContainer> | ||||||
|         ); |         ); | ||||||
|     } |     } | ||||||
| 
 | 
 | ||||||
|  |  | ||||||
|  | @ -42,31 +42,6 @@ export default class SideBar extends React.Component<Props, State> { | ||||||
|         // Dataset used to render the drawer
 |         // Dataset used to render the drawer
 | ||||||
|         // If the link field is defined, clicking on the item will open the link
 |         // If the link field is defined, clicking on the item will open the link
 | ||||||
|         this.dataSet = [ |         this.dataSet = [ | ||||||
|             { |  | ||||||
|                 name: i18n.t('screens.home'), |  | ||||||
|                 route: "Home", |  | ||||||
|                 icon: "home", |  | ||||||
|             }, |  | ||||||
|             { |  | ||||||
|                 name: i18n.t('screens.planning'), |  | ||||||
|                 route: "Planning", |  | ||||||
|                 icon: "calendar-range", |  | ||||||
|             }, |  | ||||||
|             { |  | ||||||
|                 name: "Proxiwash", |  | ||||||
|                 route: "Proxiwash", |  | ||||||
|                 icon: "washing-machine", |  | ||||||
|             }, |  | ||||||
|             { |  | ||||||
|                 name: "Proximo", |  | ||||||
|                 route: "Proximo", |  | ||||||
|                 icon: "shopping", |  | ||||||
|             }, |  | ||||||
|             { |  | ||||||
|                 name: 'Planex', |  | ||||||
|                 route: "Planex", |  | ||||||
|                 icon: "timetable", |  | ||||||
|             }, |  | ||||||
|             { |             { | ||||||
|                 name: "Amicale", |                 name: "Amicale", | ||||||
|                 route: "amicale", |                 route: "amicale", | ||||||
|  | @ -79,16 +54,16 @@ export default class SideBar extends React.Component<Props, State> { | ||||||
|                 icon: "wikipedia", |                 icon: "wikipedia", | ||||||
|                 link: WIKETUD_LINK |                 link: WIKETUD_LINK | ||||||
|             }, |             }, | ||||||
|             { |             // {
 | ||||||
|                 name: i18n.t('screens.settings'), |             //     name: i18n.t('screens.settings'),
 | ||||||
|                 route: "Settings", |             //     route: "Settings",
 | ||||||
|                 icon: "settings", |             //     icon: "settings",
 | ||||||
|             }, |             // },
 | ||||||
|             { |             // {
 | ||||||
|                 name: i18n.t('screens.about'), |             //     name: i18n.t('screens.about'),
 | ||||||
|                 route: "About", |             //     route: "About",
 | ||||||
|                 icon: "information", |             //     icon: "information",
 | ||||||
|             }, |             // },
 | ||||||
|         ]; |         ]; | ||||||
|     } |     } | ||||||
| 
 | 
 | ||||||
|  | @ -99,7 +74,6 @@ export default class SideBar extends React.Component<Props, State> { | ||||||
|     navigateToScreen(route: string) { |     navigateToScreen(route: string) { | ||||||
|         this.props.navigation.navigate(route); |         this.props.navigation.navigate(route); | ||||||
|         this.props.navigation.closeDrawer(); |         this.props.navigation.closeDrawer(); | ||||||
|         this.setState({active: route}); |  | ||||||
|     }; |     }; | ||||||
| 
 | 
 | ||||||
|     render() { |     render() { | ||||||
|  | @ -118,7 +92,7 @@ export default class SideBar extends React.Component<Props, State> { | ||||||
|                         renderItem={({item}) => |                         renderItem={({item}) => | ||||||
|                             <ListItem |                             <ListItem | ||||||
|                                 button |                                 button | ||||||
|                                 noBorder={item.name !== 'Wiketud' && item.name !== 'Planex'} // Display a separator before settings and Amicale
 |                                 noBorder | ||||||
|                                 selected={this.state.active === item.route} |                                 selected={this.state.active === item.route} | ||||||
|                                 onPress={() => { |                                 onPress={() => { | ||||||
|                                     if (item.link !== undefined) |                                     if (item.link !== undefined) | ||||||
|  | @ -3,6 +3,7 @@ | ||||||
| import {createAppContainer, createStackNavigator} from 'react-navigation'; | import {createAppContainer, createStackNavigator} from 'react-navigation'; | ||||||
| 
 | 
 | ||||||
| import MainDrawerNavigator from './MainDrawerNavigator'; | import MainDrawerNavigator from './MainDrawerNavigator'; | ||||||
|  | import MainTabNavigator from './MainTabNavigator'; | ||||||
| import ProximoListScreen from '../screens/Proximo/ProximoListScreen'; | import ProximoListScreen from '../screens/Proximo/ProximoListScreen'; | ||||||
| import AboutDependenciesScreen from '../screens/About/AboutDependenciesScreen'; | import AboutDependenciesScreen from '../screens/About/AboutDependenciesScreen'; | ||||||
| 
 | 
 | ||||||
|  | @ -11,12 +12,13 @@ import AboutDependenciesScreen from '../screens/About/AboutDependenciesScreen'; | ||||||
|  */ |  */ | ||||||
| export default createAppContainer( | export default createAppContainer( | ||||||
|     createStackNavigator({ |     createStackNavigator({ | ||||||
|             Main: MainDrawerNavigator, |             Tabs: MainTabNavigator, | ||||||
|  |             // Drawer: MainDrawerNavigator,
 | ||||||
|             ProximoListScreen: {screen: ProximoListScreen}, |             ProximoListScreen: {screen: ProximoListScreen}, | ||||||
|             AboutDependenciesScreen: {screen: AboutDependenciesScreen}, |             AboutDependenciesScreen: {screen: AboutDependenciesScreen}, | ||||||
|         }, |         }, | ||||||
|         { |         { | ||||||
|             initialRouteName: "Main", |             initialRouteName: "Tabs", | ||||||
|             mode: 'card', |             mode: 'card', | ||||||
|             headerMode: "none" |             headerMode: "none" | ||||||
|         }) |         }) | ||||||
|  |  | ||||||
|  | @ -10,7 +10,7 @@ import ProximoMainScreen from '../screens/Proximo/ProximoMainScreen'; | ||||||
| import PlanexScreen from '../screens/PlanexScreen'; | import PlanexScreen from '../screens/PlanexScreen'; | ||||||
| import SettingsScreen from '../screens/SettingsScreen'; | import SettingsScreen from '../screens/SettingsScreen'; | ||||||
| import AboutScreen from '../screens/About/AboutScreen'; | import AboutScreen from '../screens/About/AboutScreen'; | ||||||
| import SideMenu from "../components/SideMenu"; | import Sidebar from "../components/Sidebar"; | ||||||
| 
 | 
 | ||||||
| /** | /** | ||||||
|  * Creates the drawer navigation stack |  * Creates the drawer navigation stack | ||||||
|  | @ -24,7 +24,7 @@ export default createDrawerNavigator({ | ||||||
|         Settings: {screen: SettingsScreen,}, |         Settings: {screen: SettingsScreen,}, | ||||||
|         About: {screen: AboutScreen,}, |         About: {screen: AboutScreen,}, | ||||||
|     }, { |     }, { | ||||||
|         contentComponent: SideMenu, |         contentComponent: Sidebar, | ||||||
|         initialRouteName: 'Home', |         initialRouteName: 'Home', | ||||||
|         backBehavior: 'initialRoute', |         backBehavior: 'initialRoute', | ||||||
|         drawerType: 'front', |         drawerType: 'front', | ||||||
|  |  | ||||||
							
								
								
									
										40
									
								
								navigation/MainTabNavigator.js
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										40
									
								
								navigation/MainTabNavigator.js
									
									
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,40 @@ | ||||||
|  | import * as React from 'react'; | ||||||
|  | import {createMaterialBottomTabNavigator} from "react-navigation-material-bottom-tabs"; | ||||||
|  | 
 | ||||||
|  | import HomeScreen from '../screens/HomeScreen'; | ||||||
|  | import PlanningScreen from '../screens/PlanningScreen'; | ||||||
|  | import ProxiwashScreen from '../screens/ProxiwashScreen'; | ||||||
|  | import ProximoMainScreen from '../screens/Proximo/ProximoMainScreen'; | ||||||
|  | import PlanexScreen from '../screens/PlanexScreen'; | ||||||
|  | import CustomMaterialIcon from "../components/CustomMaterialIcon"; | ||||||
|  | 
 | ||||||
|  | const TAB_ICONS = { | ||||||
|  |     Home: 'home', | ||||||
|  |     Planning: 'calendar-range', | ||||||
|  |     Proxiwash: 'washing-machine', | ||||||
|  |     Proximo: 'shopping', | ||||||
|  |     Planex: 'timetable', | ||||||
|  | }; | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
|  | export default createMaterialBottomTabNavigator({ | ||||||
|  |     Home: {screen: HomeScreen}, | ||||||
|  |     Planning: {screen: PlanningScreen,}, | ||||||
|  |     Proxiwash: {screen: ProxiwashScreen,}, | ||||||
|  |     Proximo: {screen: ProximoMainScreen,}, | ||||||
|  |     Planex: {screen: PlanexScreen}, | ||||||
|  | }, { | ||||||
|  |     defaultNavigationOptions: ({navigation}) => ({ | ||||||
|  |         tabBarIcon: ({focused, horizontal, tintColor}) => { | ||||||
|  |             let icon = TAB_ICONS[navigation.state.routeName]; | ||||||
|  | 
 | ||||||
|  |             return <CustomMaterialIcon icon={icon} color={tintColor}/>; | ||||||
|  |         } | ||||||
|  |     }), | ||||||
|  |     order: ['Proximo', 'Planning', 'Home', 'Proxiwash', 'Planex'], | ||||||
|  |     initialRouteName: 'Home', | ||||||
|  |     activeColor: '#f0edf6', | ||||||
|  |     inactiveColor: '#7f150a', | ||||||
|  |     backBehavior: 'initialRoute', | ||||||
|  |     barStyle: {backgroundColor: '#e42612'}, | ||||||
|  | }); | ||||||
							
								
								
									
										599
									
								
								package-lock.json
									
									
									
										generated
									
									
									
								
							
							
						
						
									
										599
									
								
								package-lock.json
									
									
									
										generated
									
									
									
								
							|  | @ -925,6 +925,18 @@ | ||||||
|         "to-fast-properties": "^2.0.0" |         "to-fast-properties": "^2.0.0" | ||||||
|       } |       } | ||||||
|     }, |     }, | ||||||
|  |     "@callstack/react-theme-provider": { | ||||||
|  |       "version": "1.0.7", | ||||||
|  |       "resolved": "https://registry.npmjs.org/@callstack/react-theme-provider/-/react-theme-provider-1.0.7.tgz", | ||||||
|  |       "integrity": "sha512-NTjvHadSLja5KruFXThC6rwLrewzbPSZFefgl5hTWXVZ40BsIDn3744AgregeuGTM3249K1cE9uN7UKua87pKQ==", | ||||||
|  |       "requires": { | ||||||
|  |         "create-react-context": "^0.2.1", | ||||||
|  |         "deepmerge": "^2.1.1", | ||||||
|  |         "flow-copy-source": "^1.3.0", | ||||||
|  |         "hoist-non-react-statics": "^2.5.0", | ||||||
|  |         "prop-types": "^15.6.0" | ||||||
|  |       } | ||||||
|  |     }, | ||||||
|     "@expo/vector-icons": { |     "@expo/vector-icons": { | ||||||
|       "version": "10.0.2", |       "version": "10.0.2", | ||||||
|       "resolved": "https://registry.npmjs.org/@expo/vector-icons/-/vector-icons-10.0.2.tgz", |       "resolved": "https://registry.npmjs.org/@expo/vector-icons/-/vector-icons-10.0.2.tgz", | ||||||
|  | @ -1594,6 +1606,11 @@ | ||||||
|         "lodash": "^4.17.11" |         "lodash": "^4.17.11" | ||||||
|       } |       } | ||||||
|     }, |     }, | ||||||
|  |     "async-each": { | ||||||
|  |       "version": "1.0.3", | ||||||
|  |       "resolved": "https://registry.npmjs.org/async-each/-/async-each-1.0.3.tgz", | ||||||
|  |       "integrity": "sha512-z/WhQ5FPySLdvREByI2vZiTWwCnF0moMJ1hK9YQwDTHKh6I7/uSckMetoRGb5UBZPC1z0jlw+n/XCgjeH7y1AQ==" | ||||||
|  |     }, | ||||||
|     "async-limiter": { |     "async-limiter": { | ||||||
|       "version": "1.0.0", |       "version": "1.0.0", | ||||||
|       "resolved": "https://registry.npmjs.org/async-limiter/-/async-limiter-1.0.0.tgz", |       "resolved": "https://registry.npmjs.org/async-limiter/-/async-limiter-1.0.0.tgz", | ||||||
|  | @ -1786,6 +1803,11 @@ | ||||||
|       "resolved": "https://registry.npmjs.org/big-integer/-/big-integer-1.6.44.tgz", |       "resolved": "https://registry.npmjs.org/big-integer/-/big-integer-1.6.44.tgz", | ||||||
|       "integrity": "sha512-7MzElZPTyJ2fNvBkPxtFQ2fWIkVmuzw41+BZHSzpEq3ymB2MfeKp1+yXl/tS75xCx+WnyV+yb0kp+K1C3UNwmQ==" |       "integrity": "sha512-7MzElZPTyJ2fNvBkPxtFQ2fWIkVmuzw41+BZHSzpEq3ymB2MfeKp1+yXl/tS75xCx+WnyV+yb0kp+K1C3UNwmQ==" | ||||||
|     }, |     }, | ||||||
|  |     "binary-extensions": { | ||||||
|  |       "version": "1.13.1", | ||||||
|  |       "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-1.13.1.tgz", | ||||||
|  |       "integrity": "sha512-Un7MIEDdUC5gNpcGDV97op1Ywk748MpHcFTHoYs6qnj1Z3j7I53VG3nwZhKzoBZmbdRNnb6WRdFlwl7tSDuZGw==" | ||||||
|  |     }, | ||||||
|     "blueimp-md5": { |     "blueimp-md5": { | ||||||
|       "version": "2.10.0", |       "version": "2.10.0", | ||||||
|       "resolved": "https://registry.npmjs.org/blueimp-md5/-/blueimp-md5-2.10.0.tgz", |       "resolved": "https://registry.npmjs.org/blueimp-md5/-/blueimp-md5-2.10.0.tgz", | ||||||
|  | @ -1965,6 +1987,118 @@ | ||||||
|       "resolved": "https://registry.npmjs.org/chardet/-/chardet-0.4.2.tgz", |       "resolved": "https://registry.npmjs.org/chardet/-/chardet-0.4.2.tgz", | ||||||
|       "integrity": "sha1-tUc7M9yXxCTl2Y3IfVXU2KKci/I=" |       "integrity": "sha1-tUc7M9yXxCTl2Y3IfVXU2KKci/I=" | ||||||
|     }, |     }, | ||||||
|  |     "chokidar": { | ||||||
|  |       "version": "2.1.6", | ||||||
|  |       "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-2.1.6.tgz", | ||||||
|  |       "integrity": "sha512-V2jUo67OKkc6ySiRpJrjlpJKl9kDuG+Xb8VgsGzb+aEouhgS1D0weyPU4lEzdAcsCAvrih2J2BqyXqHWvVLw5g==", | ||||||
|  |       "requires": { | ||||||
|  |         "anymatch": "^2.0.0", | ||||||
|  |         "async-each": "^1.0.1", | ||||||
|  |         "braces": "^2.3.2", | ||||||
|  |         "fsevents": "^1.2.7", | ||||||
|  |         "glob-parent": "^3.1.0", | ||||||
|  |         "inherits": "^2.0.3", | ||||||
|  |         "is-binary-path": "^1.0.0", | ||||||
|  |         "is-glob": "^4.0.0", | ||||||
|  |         "normalize-path": "^3.0.0", | ||||||
|  |         "path-is-absolute": "^1.0.0", | ||||||
|  |         "readdirp": "^2.2.1", | ||||||
|  |         "upath": "^1.1.1" | ||||||
|  |       }, | ||||||
|  |       "dependencies": { | ||||||
|  |         "array-unique": { | ||||||
|  |           "version": "0.3.2", | ||||||
|  |           "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.3.2.tgz", | ||||||
|  |           "integrity": "sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg=" | ||||||
|  |         }, | ||||||
|  |         "braces": { | ||||||
|  |           "version": "2.3.2", | ||||||
|  |           "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz", | ||||||
|  |           "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==", | ||||||
|  |           "requires": { | ||||||
|  |             "arr-flatten": "^1.1.0", | ||||||
|  |             "array-unique": "^0.3.2", | ||||||
|  |             "extend-shallow": "^2.0.1", | ||||||
|  |             "fill-range": "^4.0.0", | ||||||
|  |             "isobject": "^3.0.1", | ||||||
|  |             "repeat-element": "^1.1.2", | ||||||
|  |             "snapdragon": "^0.8.1", | ||||||
|  |             "snapdragon-node": "^2.0.1", | ||||||
|  |             "split-string": "^3.0.2", | ||||||
|  |             "to-regex": "^3.0.1" | ||||||
|  |           } | ||||||
|  |         }, | ||||||
|  |         "extend-shallow": { | ||||||
|  |           "version": "2.0.1", | ||||||
|  |           "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", | ||||||
|  |           "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", | ||||||
|  |           "requires": { | ||||||
|  |             "is-extendable": "^0.1.0" | ||||||
|  |           } | ||||||
|  |         }, | ||||||
|  |         "fill-range": { | ||||||
|  |           "version": "4.0.0", | ||||||
|  |           "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", | ||||||
|  |           "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=", | ||||||
|  |           "requires": { | ||||||
|  |             "extend-shallow": "^2.0.1", | ||||||
|  |             "is-number": "^3.0.0", | ||||||
|  |             "repeat-string": "^1.6.1", | ||||||
|  |             "to-regex-range": "^2.1.0" | ||||||
|  |           } | ||||||
|  |         }, | ||||||
|  |         "glob-parent": { | ||||||
|  |           "version": "3.1.0", | ||||||
|  |           "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-3.1.0.tgz", | ||||||
|  |           "integrity": "sha1-nmr2KZ2NO9K9QEMIMr0RPfkGxa4=", | ||||||
|  |           "requires": { | ||||||
|  |             "is-glob": "^3.1.0", | ||||||
|  |             "path-dirname": "^1.0.0" | ||||||
|  |           }, | ||||||
|  |           "dependencies": { | ||||||
|  |             "is-glob": { | ||||||
|  |               "version": "3.1.0", | ||||||
|  |               "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-3.1.0.tgz", | ||||||
|  |               "integrity": "sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo=", | ||||||
|  |               "requires": { | ||||||
|  |                 "is-extglob": "^2.1.0" | ||||||
|  |               } | ||||||
|  |             } | ||||||
|  |           } | ||||||
|  |         }, | ||||||
|  |         "is-extglob": { | ||||||
|  |           "version": "2.1.1", | ||||||
|  |           "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", | ||||||
|  |           "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=" | ||||||
|  |         }, | ||||||
|  |         "is-glob": { | ||||||
|  |           "version": "4.0.1", | ||||||
|  |           "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.1.tgz", | ||||||
|  |           "integrity": "sha512-5G0tKtBTFImOqDnLB2hG6Bp2qcKEFduo4tZu9MT/H6NQv/ghhy30o55ufafxJ/LdH79LLs2Kfrn85TLKyA7BUg==", | ||||||
|  |           "requires": { | ||||||
|  |             "is-extglob": "^2.1.1" | ||||||
|  |           } | ||||||
|  |         }, | ||||||
|  |         "is-number": { | ||||||
|  |           "version": "3.0.0", | ||||||
|  |           "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", | ||||||
|  |           "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", | ||||||
|  |           "requires": { | ||||||
|  |             "kind-of": "^3.0.2" | ||||||
|  |           } | ||||||
|  |         }, | ||||||
|  |         "isobject": { | ||||||
|  |           "version": "3.0.1", | ||||||
|  |           "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", | ||||||
|  |           "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=" | ||||||
|  |         }, | ||||||
|  |         "normalize-path": { | ||||||
|  |           "version": "3.0.0", | ||||||
|  |           "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", | ||||||
|  |           "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==" | ||||||
|  |         } | ||||||
|  |       } | ||||||
|  |     }, | ||||||
|     "clamp": { |     "clamp": { | ||||||
|       "version": "1.0.1", |       "version": "1.0.1", | ||||||
|       "resolved": "https://registry.npmjs.org/clamp/-/clamp-1.0.1.tgz", |       "resolved": "https://registry.npmjs.org/clamp/-/clamp-1.0.1.tgz", | ||||||
|  | @ -2254,6 +2388,15 @@ | ||||||
|         "object-assign": "^4.1.1" |         "object-assign": "^4.1.1" | ||||||
|       } |       } | ||||||
|     }, |     }, | ||||||
|  |     "create-react-context": { | ||||||
|  |       "version": "0.2.3", | ||||||
|  |       "resolved": "https://registry.npmjs.org/create-react-context/-/create-react-context-0.2.3.tgz", | ||||||
|  |       "integrity": "sha512-CQBmD0+QGgTaxDL3OX1IDXYqjkp2It4RIbcb99jS6AEg27Ga+a9G3JtK6SIu0HBwPLZlmwt9F7UwWA4Bn92Rag==", | ||||||
|  |       "requires": { | ||||||
|  |         "fbjs": "^0.8.0", | ||||||
|  |         "gud": "^1.0.0" | ||||||
|  |       } | ||||||
|  |     }, | ||||||
|     "cross-spawn": { |     "cross-spawn": { | ||||||
|       "version": "6.0.5", |       "version": "6.0.5", | ||||||
|       "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.5.tgz", |       "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.5.tgz", | ||||||
|  | @ -2289,6 +2432,11 @@ | ||||||
|       "resolved": "https://registry.npmjs.org/dedent/-/dedent-0.6.0.tgz", |       "resolved": "https://registry.npmjs.org/dedent/-/dedent-0.6.0.tgz", | ||||||
|       "integrity": "sha1-Dm2o8M5Sg471zsXI+TlrDBtko8s=" |       "integrity": "sha1-Dm2o8M5Sg471zsXI+TlrDBtko8s=" | ||||||
|     }, |     }, | ||||||
|  |     "deepmerge": { | ||||||
|  |       "version": "2.2.1", | ||||||
|  |       "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-2.2.1.tgz", | ||||||
|  |       "integrity": "sha512-R9hc1Xa/NOBi9WRVUWg19rl1UB7Tt4kuPd+thNJgFZoxXsTz7ncaPaeIm+40oSGuP33DfMb4sZt1QIGiJzC4EA==" | ||||||
|  |     }, | ||||||
|     "define-property": { |     "define-property": { | ||||||
|       "version": "2.0.2", |       "version": "2.0.2", | ||||||
|       "resolved": "https://registry.npmjs.org/define-property/-/define-property-2.0.2.tgz", |       "resolved": "https://registry.npmjs.org/define-property/-/define-property-2.0.2.tgz", | ||||||
|  | @ -3130,6 +3278,75 @@ | ||||||
|         "locate-path": "^2.0.0" |         "locate-path": "^2.0.0" | ||||||
|       } |       } | ||||||
|     }, |     }, | ||||||
|  |     "flow-copy-source": { | ||||||
|  |       "version": "1.3.0", | ||||||
|  |       "resolved": "https://registry.npmjs.org/flow-copy-source/-/flow-copy-source-1.3.0.tgz", | ||||||
|  |       "integrity": "sha512-F8aRmNmtB5l+RFG7LAWj6IYU22K37BrhIXXCcQyxSsYWm0pNubnhBSEk+eoyGCou3+4aI4tReOfLFtgd5wnnYQ==", | ||||||
|  |       "requires": { | ||||||
|  |         "chokidar": "^2.0.0", | ||||||
|  |         "fs-extra": "^5.0.0", | ||||||
|  |         "glob": "^7.0.0", | ||||||
|  |         "kefir": "^3.7.3", | ||||||
|  |         "yargs": "^11.0.0" | ||||||
|  |       }, | ||||||
|  |       "dependencies": { | ||||||
|  |         "cliui": { | ||||||
|  |           "version": "4.1.0", | ||||||
|  |           "resolved": "https://registry.npmjs.org/cliui/-/cliui-4.1.0.tgz", | ||||||
|  |           "integrity": "sha512-4FG+RSG9DL7uEwRUZXZn3SS34DiDPfzP0VOiEwtUWlE+AR2EIg+hSyvrIgUUfhdgR/UkAeW2QHgeP+hWrXs7jQ==", | ||||||
|  |           "requires": { | ||||||
|  |             "string-width": "^2.1.1", | ||||||
|  |             "strip-ansi": "^4.0.0", | ||||||
|  |             "wrap-ansi": "^2.0.0" | ||||||
|  |           } | ||||||
|  |         }, | ||||||
|  |         "fs-extra": { | ||||||
|  |           "version": "5.0.0", | ||||||
|  |           "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-5.0.0.tgz", | ||||||
|  |           "integrity": "sha512-66Pm4RYbjzdyeuqudYqhFiNBbCIuI9kgRqLPSHIlXHidW8NIQtVdkM1yeZ4lXwuhbTETv3EUGMNHAAw6hiundQ==", | ||||||
|  |           "requires": { | ||||||
|  |             "graceful-fs": "^4.1.2", | ||||||
|  |             "jsonfile": "^4.0.0", | ||||||
|  |             "universalify": "^0.1.0" | ||||||
|  |           } | ||||||
|  |         }, | ||||||
|  |         "strip-ansi": { | ||||||
|  |           "version": "4.0.0", | ||||||
|  |           "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", | ||||||
|  |           "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", | ||||||
|  |           "requires": { | ||||||
|  |             "ansi-regex": "^3.0.0" | ||||||
|  |           } | ||||||
|  |         }, | ||||||
|  |         "yargs": { | ||||||
|  |           "version": "11.1.0", | ||||||
|  |           "resolved": "https://registry.npmjs.org/yargs/-/yargs-11.1.0.tgz", | ||||||
|  |           "integrity": "sha512-NwW69J42EsCSanF8kyn5upxvjp5ds+t3+udGBeTbFnERA+lF541DDpMawzo4z6W/QrzNM18D+BPMiOBibnFV5A==", | ||||||
|  |           "requires": { | ||||||
|  |             "cliui": "^4.0.0", | ||||||
|  |             "decamelize": "^1.1.1", | ||||||
|  |             "find-up": "^2.1.0", | ||||||
|  |             "get-caller-file": "^1.0.1", | ||||||
|  |             "os-locale": "^2.0.0", | ||||||
|  |             "require-directory": "^2.1.1", | ||||||
|  |             "require-main-filename": "^1.0.1", | ||||||
|  |             "set-blocking": "^2.0.0", | ||||||
|  |             "string-width": "^2.0.0", | ||||||
|  |             "which-module": "^2.0.0", | ||||||
|  |             "y18n": "^3.2.1", | ||||||
|  |             "yargs-parser": "^9.0.2" | ||||||
|  |           } | ||||||
|  |         }, | ||||||
|  |         "yargs-parser": { | ||||||
|  |           "version": "9.0.2", | ||||||
|  |           "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-9.0.2.tgz", | ||||||
|  |           "integrity": "sha1-nM9qQ0YP5O1Aqbto9I1DuKaMwHc=", | ||||||
|  |           "requires": { | ||||||
|  |             "camelcase": "^4.1.0" | ||||||
|  |           } | ||||||
|  |         } | ||||||
|  |       } | ||||||
|  |     }, | ||||||
|     "fontfaceobserver": { |     "fontfaceobserver": { | ||||||
|       "version": "2.1.0", |       "version": "2.1.0", | ||||||
|       "resolved": "https://registry.npmjs.org/fontfaceobserver/-/fontfaceobserver-2.1.0.tgz", |       "resolved": "https://registry.npmjs.org/fontfaceobserver/-/fontfaceobserver-2.1.0.tgz", | ||||||
|  | @ -3756,6 +3973,11 @@ | ||||||
|       "resolved": "https://registry.npmjs.org/growly/-/growly-1.3.0.tgz", |       "resolved": "https://registry.npmjs.org/growly/-/growly-1.3.0.tgz", | ||||||
|       "integrity": "sha1-8QdIy+dq+WS3yWyTxrzCivEgwIE=" |       "integrity": "sha1-8QdIy+dq+WS3yWyTxrzCivEgwIE=" | ||||||
|     }, |     }, | ||||||
|  |     "gud": { | ||||||
|  |       "version": "1.0.0", | ||||||
|  |       "resolved": "https://registry.npmjs.org/gud/-/gud-1.0.0.tgz", | ||||||
|  |       "integrity": "sha512-zGEOVKFM5sVPPrYs7J5/hYEw2Pof8KCyOwyhG8sAF26mCAeUFAcYPu1mwB7hhpIP29zOIBaDqwuHdLp0jvZXjw==" | ||||||
|  |     }, | ||||||
|     "has-ansi": { |     "has-ansi": { | ||||||
|       "version": "2.0.0", |       "version": "2.0.0", | ||||||
|       "resolved": "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz", |       "resolved": "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz", | ||||||
|  | @ -3965,6 +4187,14 @@ | ||||||
|       "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", |       "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", | ||||||
|       "integrity": "sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0=" |       "integrity": "sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0=" | ||||||
|     }, |     }, | ||||||
|  |     "is-binary-path": { | ||||||
|  |       "version": "1.0.1", | ||||||
|  |       "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-1.0.1.tgz", | ||||||
|  |       "integrity": "sha1-dfFmQrSA8YenEcgUFh/TpKdlWJg=", | ||||||
|  |       "requires": { | ||||||
|  |         "binary-extensions": "^1.0.0" | ||||||
|  |       } | ||||||
|  |     }, | ||||||
|     "is-buffer": { |     "is-buffer": { | ||||||
|       "version": "1.1.6", |       "version": "1.1.6", | ||||||
|       "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", |       "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", | ||||||
|  | @ -4206,6 +4436,21 @@ | ||||||
|       "resolved": "https://registry.npmjs.org/jsonify/-/jsonify-0.0.0.tgz", |       "resolved": "https://registry.npmjs.org/jsonify/-/jsonify-0.0.0.tgz", | ||||||
|       "integrity": "sha1-LHS27kHZPKUbe1qu6PUDYx0lKnM=" |       "integrity": "sha1-LHS27kHZPKUbe1qu6PUDYx0lKnM=" | ||||||
|     }, |     }, | ||||||
|  |     "kefir": { | ||||||
|  |       "version": "3.8.6", | ||||||
|  |       "resolved": "https://registry.npmjs.org/kefir/-/kefir-3.8.6.tgz", | ||||||
|  |       "integrity": "sha512-H/8ZTjmEEme2YL388rgy5fFlz2NM4ZImNI2rJrTsR8og454kpY3lPVv53W9lfevNELfNeYD33gMdIKHL25z7WA==", | ||||||
|  |       "requires": { | ||||||
|  |         "symbol-observable": "1.0.4" | ||||||
|  |       }, | ||||||
|  |       "dependencies": { | ||||||
|  |         "symbol-observable": { | ||||||
|  |           "version": "1.0.4", | ||||||
|  |           "resolved": "https://registry.npmjs.org/symbol-observable/-/symbol-observable-1.0.4.tgz", | ||||||
|  |           "integrity": "sha1-Kb9hXUqnEhvdiYsi1LP5vE4qoD0=" | ||||||
|  |         } | ||||||
|  |       } | ||||||
|  |     }, | ||||||
|     "kind-of": { |     "kind-of": { | ||||||
|       "version": "3.2.2", |       "version": "3.2.2", | ||||||
|       "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", |       "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", | ||||||
|  | @ -5326,6 +5571,11 @@ | ||||||
|       "resolved": "https://registry.npmjs.org/path-browserify/-/path-browserify-1.0.0.tgz", |       "resolved": "https://registry.npmjs.org/path-browserify/-/path-browserify-1.0.0.tgz", | ||||||
|       "integrity": "sha512-Hkavx/nY4/plImrZPHRk2CL9vpOymZLgEbMNX1U0bjcBL7QN9wODxyx0yaMZURSQaUtSEvDrfAvxa9oPb0at9g==" |       "integrity": "sha512-Hkavx/nY4/plImrZPHRk2CL9vpOymZLgEbMNX1U0bjcBL7QN9wODxyx0yaMZURSQaUtSEvDrfAvxa9oPb0at9g==" | ||||||
|     }, |     }, | ||||||
|  |     "path-dirname": { | ||||||
|  |       "version": "1.0.2", | ||||||
|  |       "resolved": "https://registry.npmjs.org/path-dirname/-/path-dirname-1.0.2.tgz", | ||||||
|  |       "integrity": "sha1-zDPSTVJeCZpTiMAzbG4yuRYGCeA=" | ||||||
|  |     }, | ||||||
|     "path-exists": { |     "path-exists": { | ||||||
|       "version": "3.0.0", |       "version": "3.0.0", | ||||||
|       "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", |       "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", | ||||||
|  | @ -5928,6 +6178,38 @@ | ||||||
|         "prop-types": "^15.6.0" |         "prop-types": "^15.6.0" | ||||||
|       } |       } | ||||||
|     }, |     }, | ||||||
|  |     "react-native-paper": { | ||||||
|  |       "version": "2.16.0", | ||||||
|  |       "resolved": "https://registry.npmjs.org/react-native-paper/-/react-native-paper-2.16.0.tgz", | ||||||
|  |       "integrity": "sha512-dNHbVZNi9cfKr5sd/5pPGSJSo7ctnl61wLmRxWwvQ2VyEhDN+YxflvZ/vDZrnyivVWPcFS1nmiGCxABARISsuw==", | ||||||
|  |       "requires": { | ||||||
|  |         "@callstack/react-theme-provider": "^1.0.7", | ||||||
|  |         "color": "^2.0.1", | ||||||
|  |         "create-react-context": "^0.2.3", | ||||||
|  |         "hoist-non-react-statics": "^3.1.0", | ||||||
|  |         "react-lifecycles-compat": "^3.0.4", | ||||||
|  |         "react-native-safe-area-view": "^0.12.0" | ||||||
|  |       }, | ||||||
|  |       "dependencies": { | ||||||
|  |         "color": { | ||||||
|  |           "version": "2.0.1", | ||||||
|  |           "resolved": "https://registry.npmjs.org/color/-/color-2.0.1.tgz", | ||||||
|  |           "integrity": "sha512-ubUCVVKfT7r2w2D3qtHakj8mbmKms+tThR8gI8zEYCbUBl8/voqFGt3kgBqGwXAopgXybnkuOq+qMYCRrp4cXw==", | ||||||
|  |           "requires": { | ||||||
|  |             "color-convert": "^1.9.1", | ||||||
|  |             "color-string": "^1.5.2" | ||||||
|  |           } | ||||||
|  |         }, | ||||||
|  |         "hoist-non-react-statics": { | ||||||
|  |           "version": "3.3.0", | ||||||
|  |           "resolved": "https://registry.npmjs.org/hoist-non-react-statics/-/hoist-non-react-statics-3.3.0.tgz", | ||||||
|  |           "integrity": "sha512-0XsbTXxgiaCDYDIWFcwkmerZPSwywfUqYmwT4jzewKTQSWoE6FCMoUVOeBJWK3E/CrWbxRG3m5GzY4lnIwGRBA==", | ||||||
|  |           "requires": { | ||||||
|  |             "react-is": "^16.7.0" | ||||||
|  |           } | ||||||
|  |         } | ||||||
|  |       } | ||||||
|  |     }, | ||||||
|     "react-native-platform-touchable": { |     "react-native-platform-touchable": { | ||||||
|       "version": "1.1.1", |       "version": "1.1.1", | ||||||
|       "resolved": "https://registry.npmjs.org/react-native-platform-touchable/-/react-native-platform-touchable-1.1.1.tgz", |       "resolved": "https://registry.npmjs.org/react-native-platform-touchable/-/react-native-platform-touchable-1.1.1.tgz", | ||||||
|  | @ -5938,6 +6220,14 @@ | ||||||
|       "resolved": "https://registry.npmjs.org/react-native-reanimated/-/react-native-reanimated-1.0.1.tgz", |       "resolved": "https://registry.npmjs.org/react-native-reanimated/-/react-native-reanimated-1.0.1.tgz", | ||||||
|       "integrity": "sha512-RENoo6/sJc3FApP7vJ1Js7WyDuTVh97bbr5aMjJyw3kqpR2/JDHyL/dQFfOvSSAc+VjitpR9/CfPPad7tLRiIA==" |       "integrity": "sha512-RENoo6/sJc3FApP7vJ1Js7WyDuTVh97bbr5aMjJyw3kqpR2/JDHyL/dQFfOvSSAc+VjitpR9/CfPPad7tLRiIA==" | ||||||
|     }, |     }, | ||||||
|  |     "react-native-safe-area-view": { | ||||||
|  |       "version": "0.12.0", | ||||||
|  |       "resolved": "https://registry.npmjs.org/react-native-safe-area-view/-/react-native-safe-area-view-0.12.0.tgz", | ||||||
|  |       "integrity": "sha512-UrAXmBC4KNR5K2eczIDZgqceWyKsgG9gmWFerHCvoyApfei8ceBB9u/c//PWCpS5Gt8MRLTmX5jPtzdXo2yNqg==", | ||||||
|  |       "requires": { | ||||||
|  |         "hoist-non-react-statics": "^2.3.1" | ||||||
|  |       } | ||||||
|  |     }, | ||||||
|     "react-native-safe-module": { |     "react-native-safe-module": { | ||||||
|       "version": "1.2.0", |       "version": "1.2.0", | ||||||
|       "resolved": "https://registry.npmjs.org/react-native-safe-module/-/react-native-safe-module-1.2.0.tgz", |       "resolved": "https://registry.npmjs.org/react-native-safe-module/-/react-native-safe-module-1.2.0.tgz", | ||||||
|  | @ -5951,6 +6241,14 @@ | ||||||
|       "resolved": "https://registry.npmjs.org/react-native-screens/-/react-native-screens-1.0.0-alpha.22.tgz", |       "resolved": "https://registry.npmjs.org/react-native-screens/-/react-native-screens-1.0.0-alpha.22.tgz", | ||||||
|       "integrity": "sha512-kSyAt0AeVU6N7ZonfV6dP6iZF8B7Bce+tk3eujXhzBGsLg0VSLnU7uE9VqJF0xdQrHR91ZjGgVMieo/8df9KTA==" |       "integrity": "sha512-kSyAt0AeVU6N7ZonfV6dP6iZF8B7Bce+tk3eujXhzBGsLg0VSLnU7uE9VqJF0xdQrHR91ZjGgVMieo/8df9KTA==" | ||||||
|     }, |     }, | ||||||
|  |     "react-native-side-menu": { | ||||||
|  |       "version": "1.1.3", | ||||||
|  |       "resolved": "https://registry.npmjs.org/react-native-side-menu/-/react-native-side-menu-1.1.3.tgz", | ||||||
|  |       "integrity": "sha1-bvXSIy7PcYMS32zt7wGRSLrDBzo=", | ||||||
|  |       "requires": { | ||||||
|  |         "prop-types": "^15.5.10" | ||||||
|  |       } | ||||||
|  |     }, | ||||||
|     "react-native-status-bar-height": { |     "react-native-status-bar-height": { | ||||||
|       "version": "2.3.1", |       "version": "2.3.1", | ||||||
|       "resolved": "https://registry.npmjs.org/react-native-status-bar-height/-/react-native-status-bar-height-2.3.1.tgz", |       "resolved": "https://registry.npmjs.org/react-native-status-bar-height/-/react-native-status-bar-height-2.3.1.tgz", | ||||||
|  | @ -6035,6 +6333,29 @@ | ||||||
|         "react-native-tab-view": "^1.2.0" |         "react-native-tab-view": "^1.2.0" | ||||||
|       } |       } | ||||||
|     }, |     }, | ||||||
|  |     "react-navigation-material-bottom-tabs": { | ||||||
|  |       "version": "1.0.0", | ||||||
|  |       "resolved": "https://registry.npmjs.org/react-navigation-material-bottom-tabs/-/react-navigation-material-bottom-tabs-1.0.0.tgz", | ||||||
|  |       "integrity": "sha512-fmPOt82xYpNYWh7gDdk38ce2TDmKuGnVaC7Pd67Ss62bjZ2CwmX9kOXExThtdY039zDGIcABDq9h65c8TQeTUA==", | ||||||
|  |       "requires": { | ||||||
|  |         "hoist-non-react-statics": "^2.5.0", | ||||||
|  |         "prop-types": "^15.6.0", | ||||||
|  |         "react-navigation-tabs": "1.0.0" | ||||||
|  |       }, | ||||||
|  |       "dependencies": { | ||||||
|  |         "react-navigation-tabs": { | ||||||
|  |           "version": "1.0.0", | ||||||
|  |           "resolved": "https://registry.npmjs.org/react-navigation-tabs/-/react-navigation-tabs-1.0.0.tgz", | ||||||
|  |           "integrity": "sha512-2oWPk+XfwHihgdOBhuAuzzU94NPhwdvuzseL30R3VsggunfVB4cUtNiQjRP4rVVpdGgJygQtws1eRbUsQ9cECA==", | ||||||
|  |           "requires": { | ||||||
|  |             "hoist-non-react-statics": "^2.5.0", | ||||||
|  |             "prop-types": "^15.6.1", | ||||||
|  |             "react-lifecycles-compat": "^3.0.4", | ||||||
|  |             "react-native-tab-view": "^1.0.0" | ||||||
|  |           } | ||||||
|  |         } | ||||||
|  |       } | ||||||
|  |     }, | ||||||
|     "react-navigation-stack": { |     "react-navigation-stack": { | ||||||
|       "version": "1.4.0", |       "version": "1.4.0", | ||||||
|       "resolved": "https://registry.npmjs.org/react-navigation-stack/-/react-navigation-stack-1.4.0.tgz", |       "resolved": "https://registry.npmjs.org/react-navigation-stack/-/react-navigation-stack-1.4.0.tgz", | ||||||
|  | @ -6116,6 +6437,279 @@ | ||||||
|         "util-deprecate": "~1.0.1" |         "util-deprecate": "~1.0.1" | ||||||
|       } |       } | ||||||
|     }, |     }, | ||||||
|  |     "readdirp": { | ||||||
|  |       "version": "2.2.1", | ||||||
|  |       "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-2.2.1.tgz", | ||||||
|  |       "integrity": "sha512-1JU/8q+VgFZyxwrJ+SVIOsh+KywWGpds3NTqikiKpDMZWScmAYyKIgqkO+ARvNWJfXeXR1zxz7aHF4u4CyH6vQ==", | ||||||
|  |       "requires": { | ||||||
|  |         "graceful-fs": "^4.1.11", | ||||||
|  |         "micromatch": "^3.1.10", | ||||||
|  |         "readable-stream": "^2.0.2" | ||||||
|  |       }, | ||||||
|  |       "dependencies": { | ||||||
|  |         "arr-diff": { | ||||||
|  |           "version": "4.0.0", | ||||||
|  |           "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-4.0.0.tgz", | ||||||
|  |           "integrity": "sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA=" | ||||||
|  |         }, | ||||||
|  |         "array-unique": { | ||||||
|  |           "version": "0.3.2", | ||||||
|  |           "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.3.2.tgz", | ||||||
|  |           "integrity": "sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg=" | ||||||
|  |         }, | ||||||
|  |         "braces": { | ||||||
|  |           "version": "2.3.2", | ||||||
|  |           "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz", | ||||||
|  |           "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==", | ||||||
|  |           "requires": { | ||||||
|  |             "arr-flatten": "^1.1.0", | ||||||
|  |             "array-unique": "^0.3.2", | ||||||
|  |             "extend-shallow": "^2.0.1", | ||||||
|  |             "fill-range": "^4.0.0", | ||||||
|  |             "isobject": "^3.0.1", | ||||||
|  |             "repeat-element": "^1.1.2", | ||||||
|  |             "snapdragon": "^0.8.1", | ||||||
|  |             "snapdragon-node": "^2.0.1", | ||||||
|  |             "split-string": "^3.0.2", | ||||||
|  |             "to-regex": "^3.0.1" | ||||||
|  |           }, | ||||||
|  |           "dependencies": { | ||||||
|  |             "extend-shallow": { | ||||||
|  |               "version": "2.0.1", | ||||||
|  |               "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", | ||||||
|  |               "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", | ||||||
|  |               "requires": { | ||||||
|  |                 "is-extendable": "^0.1.0" | ||||||
|  |               } | ||||||
|  |             } | ||||||
|  |           } | ||||||
|  |         }, | ||||||
|  |         "debug": { | ||||||
|  |           "version": "2.6.9", | ||||||
|  |           "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", | ||||||
|  |           "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", | ||||||
|  |           "requires": { | ||||||
|  |             "ms": "2.0.0" | ||||||
|  |           } | ||||||
|  |         }, | ||||||
|  |         "expand-brackets": { | ||||||
|  |           "version": "2.1.4", | ||||||
|  |           "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-2.1.4.tgz", | ||||||
|  |           "integrity": "sha1-t3c14xXOMPa27/D4OwQVGiJEliI=", | ||||||
|  |           "requires": { | ||||||
|  |             "debug": "^2.3.3", | ||||||
|  |             "define-property": "^0.2.5", | ||||||
|  |             "extend-shallow": "^2.0.1", | ||||||
|  |             "posix-character-classes": "^0.1.0", | ||||||
|  |             "regex-not": "^1.0.0", | ||||||
|  |             "snapdragon": "^0.8.1", | ||||||
|  |             "to-regex": "^3.0.1" | ||||||
|  |           }, | ||||||
|  |           "dependencies": { | ||||||
|  |             "define-property": { | ||||||
|  |               "version": "0.2.5", | ||||||
|  |               "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", | ||||||
|  |               "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", | ||||||
|  |               "requires": { | ||||||
|  |                 "is-descriptor": "^0.1.0" | ||||||
|  |               } | ||||||
|  |             }, | ||||||
|  |             "extend-shallow": { | ||||||
|  |               "version": "2.0.1", | ||||||
|  |               "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", | ||||||
|  |               "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", | ||||||
|  |               "requires": { | ||||||
|  |                 "is-extendable": "^0.1.0" | ||||||
|  |               } | ||||||
|  |             }, | ||||||
|  |             "is-accessor-descriptor": { | ||||||
|  |               "version": "0.1.6", | ||||||
|  |               "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", | ||||||
|  |               "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", | ||||||
|  |               "requires": { | ||||||
|  |                 "kind-of": "^3.0.2" | ||||||
|  |               }, | ||||||
|  |               "dependencies": { | ||||||
|  |                 "kind-of": { | ||||||
|  |                   "version": "3.2.2", | ||||||
|  |                   "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", | ||||||
|  |                   "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", | ||||||
|  |                   "requires": { | ||||||
|  |                     "is-buffer": "^1.1.5" | ||||||
|  |                   } | ||||||
|  |                 } | ||||||
|  |               } | ||||||
|  |             }, | ||||||
|  |             "is-data-descriptor": { | ||||||
|  |               "version": "0.1.4", | ||||||
|  |               "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", | ||||||
|  |               "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", | ||||||
|  |               "requires": { | ||||||
|  |                 "kind-of": "^3.0.2" | ||||||
|  |               }, | ||||||
|  |               "dependencies": { | ||||||
|  |                 "kind-of": { | ||||||
|  |                   "version": "3.2.2", | ||||||
|  |                   "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", | ||||||
|  |                   "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", | ||||||
|  |                   "requires": { | ||||||
|  |                     "is-buffer": "^1.1.5" | ||||||
|  |                   } | ||||||
|  |                 } | ||||||
|  |               } | ||||||
|  |             }, | ||||||
|  |             "is-descriptor": { | ||||||
|  |               "version": "0.1.6", | ||||||
|  |               "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", | ||||||
|  |               "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", | ||||||
|  |               "requires": { | ||||||
|  |                 "is-accessor-descriptor": "^0.1.6", | ||||||
|  |                 "is-data-descriptor": "^0.1.4", | ||||||
|  |                 "kind-of": "^5.0.0" | ||||||
|  |               } | ||||||
|  |             }, | ||||||
|  |             "kind-of": { | ||||||
|  |               "version": "5.1.0", | ||||||
|  |               "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", | ||||||
|  |               "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==" | ||||||
|  |             } | ||||||
|  |           } | ||||||
|  |         }, | ||||||
|  |         "extglob": { | ||||||
|  |           "version": "2.0.4", | ||||||
|  |           "resolved": "https://registry.npmjs.org/extglob/-/extglob-2.0.4.tgz", | ||||||
|  |           "integrity": "sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw==", | ||||||
|  |           "requires": { | ||||||
|  |             "array-unique": "^0.3.2", | ||||||
|  |             "define-property": "^1.0.0", | ||||||
|  |             "expand-brackets": "^2.1.4", | ||||||
|  |             "extend-shallow": "^2.0.1", | ||||||
|  |             "fragment-cache": "^0.2.1", | ||||||
|  |             "regex-not": "^1.0.0", | ||||||
|  |             "snapdragon": "^0.8.1", | ||||||
|  |             "to-regex": "^3.0.1" | ||||||
|  |           }, | ||||||
|  |           "dependencies": { | ||||||
|  |             "define-property": { | ||||||
|  |               "version": "1.0.0", | ||||||
|  |               "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", | ||||||
|  |               "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", | ||||||
|  |               "requires": { | ||||||
|  |                 "is-descriptor": "^1.0.0" | ||||||
|  |               } | ||||||
|  |             }, | ||||||
|  |             "extend-shallow": { | ||||||
|  |               "version": "2.0.1", | ||||||
|  |               "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", | ||||||
|  |               "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", | ||||||
|  |               "requires": { | ||||||
|  |                 "is-extendable": "^0.1.0" | ||||||
|  |               } | ||||||
|  |             } | ||||||
|  |           } | ||||||
|  |         }, | ||||||
|  |         "fill-range": { | ||||||
|  |           "version": "4.0.0", | ||||||
|  |           "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", | ||||||
|  |           "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=", | ||||||
|  |           "requires": { | ||||||
|  |             "extend-shallow": "^2.0.1", | ||||||
|  |             "is-number": "^3.0.0", | ||||||
|  |             "repeat-string": "^1.6.1", | ||||||
|  |             "to-regex-range": "^2.1.0" | ||||||
|  |           }, | ||||||
|  |           "dependencies": { | ||||||
|  |             "extend-shallow": { | ||||||
|  |               "version": "2.0.1", | ||||||
|  |               "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", | ||||||
|  |               "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", | ||||||
|  |               "requires": { | ||||||
|  |                 "is-extendable": "^0.1.0" | ||||||
|  |               } | ||||||
|  |             } | ||||||
|  |           } | ||||||
|  |         }, | ||||||
|  |         "is-accessor-descriptor": { | ||||||
|  |           "version": "1.0.0", | ||||||
|  |           "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", | ||||||
|  |           "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", | ||||||
|  |           "requires": { | ||||||
|  |             "kind-of": "^6.0.0" | ||||||
|  |           } | ||||||
|  |         }, | ||||||
|  |         "is-data-descriptor": { | ||||||
|  |           "version": "1.0.0", | ||||||
|  |           "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", | ||||||
|  |           "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", | ||||||
|  |           "requires": { | ||||||
|  |             "kind-of": "^6.0.0" | ||||||
|  |           } | ||||||
|  |         }, | ||||||
|  |         "is-descriptor": { | ||||||
|  |           "version": "1.0.2", | ||||||
|  |           "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", | ||||||
|  |           "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", | ||||||
|  |           "requires": { | ||||||
|  |             "is-accessor-descriptor": "^1.0.0", | ||||||
|  |             "is-data-descriptor": "^1.0.0", | ||||||
|  |             "kind-of": "^6.0.2" | ||||||
|  |           } | ||||||
|  |         }, | ||||||
|  |         "is-number": { | ||||||
|  |           "version": "3.0.0", | ||||||
|  |           "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", | ||||||
|  |           "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", | ||||||
|  |           "requires": { | ||||||
|  |             "kind-of": "^3.0.2" | ||||||
|  |           }, | ||||||
|  |           "dependencies": { | ||||||
|  |             "kind-of": { | ||||||
|  |               "version": "3.2.2", | ||||||
|  |               "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", | ||||||
|  |               "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", | ||||||
|  |               "requires": { | ||||||
|  |                 "is-buffer": "^1.1.5" | ||||||
|  |               } | ||||||
|  |             } | ||||||
|  |           } | ||||||
|  |         }, | ||||||
|  |         "isobject": { | ||||||
|  |           "version": "3.0.1", | ||||||
|  |           "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", | ||||||
|  |           "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=" | ||||||
|  |         }, | ||||||
|  |         "kind-of": { | ||||||
|  |           "version": "6.0.2", | ||||||
|  |           "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz", | ||||||
|  |           "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==" | ||||||
|  |         }, | ||||||
|  |         "micromatch": { | ||||||
|  |           "version": "3.1.10", | ||||||
|  |           "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", | ||||||
|  |           "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", | ||||||
|  |           "requires": { | ||||||
|  |             "arr-diff": "^4.0.0", | ||||||
|  |             "array-unique": "^0.3.2", | ||||||
|  |             "braces": "^2.3.1", | ||||||
|  |             "define-property": "^2.0.2", | ||||||
|  |             "extend-shallow": "^3.0.2", | ||||||
|  |             "extglob": "^2.0.4", | ||||||
|  |             "fragment-cache": "^0.2.1", | ||||||
|  |             "kind-of": "^6.0.2", | ||||||
|  |             "nanomatch": "^1.2.9", | ||||||
|  |             "object.pick": "^1.3.0", | ||||||
|  |             "regex-not": "^1.0.0", | ||||||
|  |             "snapdragon": "^0.8.1", | ||||||
|  |             "to-regex": "^3.0.2" | ||||||
|  |           } | ||||||
|  |         }, | ||||||
|  |         "ms": { | ||||||
|  |           "version": "2.0.0", | ||||||
|  |           "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", | ||||||
|  |           "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" | ||||||
|  |         } | ||||||
|  |       } | ||||||
|  |     }, | ||||||
|     "recompose": { |     "recompose": { | ||||||
|       "version": "0.26.0", |       "version": "0.26.0", | ||||||
|       "resolved": "https://registry.npmjs.org/recompose/-/recompose-0.26.0.tgz", |       "resolved": "https://registry.npmjs.org/recompose/-/recompose-0.26.0.tgz", | ||||||
|  | @ -7419,6 +8013,11 @@ | ||||||
|         } |         } | ||||||
|       } |       } | ||||||
|     }, |     }, | ||||||
|  |     "upath": { | ||||||
|  |       "version": "1.1.2", | ||||||
|  |       "resolved": "https://registry.npmjs.org/upath/-/upath-1.1.2.tgz", | ||||||
|  |       "integrity": "sha512-kXpym8nmDmlCBr7nKdIx8P2jNBa+pBpIUFRnKJ4dr8htyYGJFokkr2ZvERRtUN+9SY+JqXouNgUPtv6JQva/2Q==" | ||||||
|  |     }, | ||||||
|     "urix": { |     "urix": { | ||||||
|       "version": "0.1.0", |       "version": "0.1.0", | ||||||
|       "resolved": "https://registry.npmjs.org/urix/-/urix-0.1.0.tgz", |       "resolved": "https://registry.npmjs.org/urix/-/urix-0.1.0.tgz", | ||||||
|  |  | ||||||
|  | @ -23,10 +23,13 @@ | ||||||
|     "react-native": "^0.59.9", |     "react-native": "^0.59.9", | ||||||
|     "react-native-app-intro-slider": "^3.0.0", |     "react-native-app-intro-slider": "^3.0.0", | ||||||
|     "react-native-autolink": "^1.8.1", |     "react-native-autolink": "^1.8.1", | ||||||
|  |     "react-native-paper": "^2.16.0", | ||||||
|     "react-native-platform-touchable": "^1.1.1", |     "react-native-platform-touchable": "^1.1.1", | ||||||
|  |     "react-native-side-menu": "^1.1.3", | ||||||
|     "react-native-status-bar-height": "^2.3.1", |     "react-native-status-bar-height": "^2.3.1", | ||||||
|     "react-native-webview": "^5.8.1", |     "react-native-webview": "^5.8.1", | ||||||
|     "react-navigation": "^3.11.0" |     "react-navigation": "^3.11.0", | ||||||
|  |     "react-navigation-material-bottom-tabs": "^1.0.0" | ||||||
|   }, |   }, | ||||||
|   "devDependencies": { |   "devDependencies": { | ||||||
|     "babel-preset-expo": "^5.1.1", |     "babel-preset-expo": "^5.1.1", | ||||||
|  |  | ||||||
|  | @ -30,7 +30,7 @@ export default class AboutDependenciesScreen extends React.Component<Props> { | ||||||
|         const data = generateListFromObject(nav.getParam('data', {})); |         const data = generateListFromObject(nav.getParam('data', {})); | ||||||
|         return ( |         return ( | ||||||
|             <Container> |             <Container> | ||||||
|                 <CustomHeader backButton={true} navigation={nav} title={i18n.t('aboutScreen.libs')}/> |                 <CustomHeader hasBackButton={true} navigation={nav} title={i18n.t('aboutScreen.libs')}/> | ||||||
|                 <Content> |                 <Content> | ||||||
|                     <FlatList |                     <FlatList | ||||||
|                         data={data} |                         data={data} | ||||||
|  |  | ||||||
|  | @ -8,6 +8,7 @@ import WebView from "react-native-webview"; | ||||||
| import Touchable from "react-native-platform-touchable"; | import Touchable from "react-native-platform-touchable"; | ||||||
| import CustomMaterialIcon from "../components/CustomMaterialIcon"; | import CustomMaterialIcon from "../components/CustomMaterialIcon"; | ||||||
| import ThemeManager from "../utils/ThemeManager"; | import ThemeManager from "../utils/ThemeManager"; | ||||||
|  | import BaseContainer from "../components/BaseContainer"; | ||||||
| 
 | 
 | ||||||
| type Props = { | type Props = { | ||||||
|     navigation: Object, |     navigation: Object, | ||||||
|  | @ -17,7 +18,9 @@ type State = { | ||||||
|     isFinishedLoading: boolean |     isFinishedLoading: boolean | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| const PLANEX_URL = 'http://planex.insa-toulouse.fr/'; | // const PLANEX_URL = 'http://planex.insa-toulouse.fr/';
 | ||||||
|  | // TODO use real url in prod
 | ||||||
|  | const PLANEX_URL = 'https://srv-falcon.etud.insa-toulouse.fr/~vergnet/planex/planex.insa-toulouse.fr.html'; | ||||||
| 
 | 
 | ||||||
| /** | /** | ||||||
|  * Class defining the app's planex screen. |  * Class defining the app's planex screen. | ||||||
|  | @ -53,8 +56,7 @@ export default class PlanningScreen extends React.Component<Props, State> { | ||||||
|     render() { |     render() { | ||||||
|         const nav = this.props.navigation; |         const nav = this.props.navigation; | ||||||
|         return ( |         return ( | ||||||
|             <Container> |             <BaseContainer navigation={nav} headerTitle={'Planex'} headerRightMenu={this.getRefreshButton()}> | ||||||
|                 <CustomHeader navigation={nav} title={'Planex'} rightMenu={this.getRefreshButton()}/> |  | ||||||
|                 <WebView |                 <WebView | ||||||
|                     ref={ref => (this.webview = ref)} |                     ref={ref => (this.webview = ref)} | ||||||
|                     source={{uri: PLANEX_URL}} |                     source={{uri: PLANEX_URL}} | ||||||
|  | @ -76,7 +78,7 @@ export default class PlanningScreen extends React.Component<Props, State> { | ||||||
|                         </View> |                         </View> | ||||||
|                     } |                     } | ||||||
|                 /> |                 /> | ||||||
|             </Container> |             </BaseContainer> | ||||||
|         ); |         ); | ||||||
|     } |     } | ||||||
| } | } | ||||||
|  |  | ||||||
|  | @ -1,13 +1,13 @@ | ||||||
| // @flow
 | // @flow
 | ||||||
| 
 | 
 | ||||||
| import * as React from 'react'; | import * as React from 'react'; | ||||||
| import {Button, Container, H3, Text} from 'native-base'; | import {Button, H3, Text} from 'native-base'; | ||||||
| import CustomHeader from "../components/CustomHeader"; |  | ||||||
| import i18n from "i18n-js"; | import i18n from "i18n-js"; | ||||||
| import {Platform, View} from "react-native"; | import {Platform, View} from "react-native"; | ||||||
| import CustomMaterialIcon from "../components/CustomMaterialIcon"; | import CustomMaterialIcon from "../components/CustomMaterialIcon"; | ||||||
| import ThemeManager from "../utils/ThemeManager"; | import ThemeManager from "../utils/ThemeManager"; | ||||||
| import {Linking} from "expo"; | import {Linking} from "expo"; | ||||||
|  | import BaseContainer from "../components/BaseContainer"; | ||||||
| 
 | 
 | ||||||
| type Props = { | type Props = { | ||||||
|     navigation: Object, |     navigation: Object, | ||||||
|  | @ -28,8 +28,7 @@ export default class PlanningScreen extends React.Component<Props> { | ||||||
|     render() { |     render() { | ||||||
|         const nav = this.props.navigation; |         const nav = this.props.navigation; | ||||||
|         return ( |         return ( | ||||||
|             <Container> |             <BaseContainer navigation={nav} headerTitle={i18n.t('screens.planning')}> | ||||||
|                 <CustomHeader navigation={nav} title={i18n.t('screens.planning')}/> |  | ||||||
|                 <View style={{ |                 <View style={{ | ||||||
|                     flexGrow: 1, |                     flexGrow: 1, | ||||||
|                     justifyContent: 'center', |                     justifyContent: 'center', | ||||||
|  | @ -70,7 +69,7 @@ export default class PlanningScreen extends React.Component<Props> { | ||||||
|                         </Button> |                         </Button> | ||||||
|                         : <View/>} |                         : <View/>} | ||||||
|                 </View> |                 </View> | ||||||
|             </Container> |             </BaseContainer> | ||||||
|         ); |         ); | ||||||
|     } |     } | ||||||
| } | } | ||||||
|  |  | ||||||
|  | @ -188,7 +188,7 @@ export default class ProximoListScreen extends React.Component<Props, State> { | ||||||
| 
 | 
 | ||||||
|         return ( |         return ( | ||||||
|             <Container> |             <Container> | ||||||
|                 <CustomHeader backButton={true} navigation={nav} title={navType} rightMenu={ |                 <CustomHeader hasBackButton={true} navigation={nav} title={navType} rightMenu={ | ||||||
|                     <Right> |                     <Right> | ||||||
|                         <Menu |                         <Menu | ||||||
|                             ref={this.setMenuRef} |                             ref={this.setMenuRef} | ||||||
|  |  | ||||||
		Loading…
	
		Reference in a new issue