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 AsyncStorageManager from "./utils/AsyncStorageManager";
|
||||
import CustomMaterialIcon from "./components/CustomMaterialIcon";
|
||||
import SideBar from "./components/Sidebar";
|
||||
import SideMenu from "react-native-side-menu";
|
||||
|
||||
const styles = StyleSheet.create({
|
||||
mainContent: {
|
||||
|
@ -175,10 +177,13 @@ export default class App extends React.Component<Props, State> {
|
|||
return (
|
||||
<Root>
|
||||
<StyleProvider style={this.state.currentTheme}>
|
||||
<AppNavigator/>
|
||||
|
||||
<AppNavigator/>
|
||||
</StyleProvider>
|
||||
</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 {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 Touchable from 'react-native-platform-touchable';
|
||||
import ThemeManager from "../utils/ThemeManager";
|
||||
import CustomMaterialIcon from "./CustomMaterialIcon";
|
||||
|
||||
type Props = {
|
||||
backButton: boolean,
|
||||
hasBackButton: boolean,
|
||||
leftButton: React.Node,
|
||||
rightMenu: React.Node,
|
||||
title: string,
|
||||
navigation: Object,
|
||||
|
@ -19,7 +20,7 @@ type Props = {
|
|||
/**
|
||||
* 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 title {string} This header title
|
||||
* @prop navigation {Object} The navigation object from react navigation
|
||||
|
@ -27,7 +28,8 @@ type Props = {
|
|||
export default class CustomHeader extends React.Component<Props> {
|
||||
|
||||
static defaultProps = {
|
||||
backButton: false,
|
||||
hasBackButton: false,
|
||||
leftButton: <View/>,
|
||||
rightMenu: <Right/>,
|
||||
hasTabs: false,
|
||||
};
|
||||
|
@ -35,7 +37,7 @@ export default class CustomHeader extends React.Component<Props> {
|
|||
render() {
|
||||
let button;
|
||||
// Does the app have a back button or a burger menu ?
|
||||
if (this.props.backButton)
|
||||
if (this.props.hasBackButton)
|
||||
button =
|
||||
<Touchable
|
||||
style={{padding: 6}}
|
||||
|
@ -45,14 +47,7 @@ export default class CustomHeader extends React.Component<Props> {
|
|||
icon="arrow-left"/>
|
||||
</Touchable>;
|
||||
else
|
||||
button =
|
||||
<Touchable
|
||||
style={{padding: 6}}
|
||||
onPress={() => this.props.navigation.toggleDrawer()}>
|
||||
<CustomMaterialIcon
|
||||
color={Platform.OS === 'ios' ? ThemeManager.getCurrentThemeVariables().brandPrimary : "#fff"}
|
||||
icon="menu"/>
|
||||
</Touchable>;
|
||||
button = this.props.leftButton;
|
||||
|
||||
return (
|
||||
<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 WebDataManager from "../utils/WebDataManager";
|
||||
import {Container, H3, Spinner, Tab, TabHeading, Tabs, Text} from "native-base";
|
||||
import CustomHeader from "./CustomHeader";
|
||||
import {H3, Spinner, Tab, TabHeading, Tabs, Text} from "native-base";
|
||||
import {RefreshControl, SectionList, View} from "react-native";
|
||||
import CustomMaterialIcon from "./CustomMaterialIcon";
|
||||
import i18n from 'i18n-js';
|
||||
import ThemeManager from "../utils/ThemeManager";
|
||||
import BaseContainer from "./BaseContainer";
|
||||
|
||||
type Props = {
|
||||
navigation: Object,
|
||||
|
@ -312,8 +312,7 @@ export default class FetchedDataSectionList extends React.Component<Props, State
|
|||
const nav = this.props.navigation;
|
||||
const dataset = this.createDataset(this.state.fetchedData);
|
||||
return (
|
||||
<Container>
|
||||
<CustomHeader navigation={nav} title={this.getHeaderTranslation()}/>
|
||||
<BaseContainer navigation={nav} headerTitle={this.getHeaderTranslation()}>
|
||||
{this.hasTabs() ?
|
||||
<Tabs>
|
||||
{this.getTabbedView(dataset)}
|
||||
|
@ -321,7 +320,7 @@ export default class FetchedDataSectionList extends React.Component<Props, State
|
|||
:
|
||||
this.getSectionList(dataset)
|
||||
}
|
||||
</Container>
|
||||
</BaseContainer>
|
||||
);
|
||||
}
|
||||
|
||||
|
|
|
@ -42,31 +42,6 @@ export default class SideBar extends React.Component<Props, State> {
|
|||
// Dataset used to render the drawer
|
||||
// If the link field is defined, clicking on the item will open the link
|
||||
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",
|
||||
route: "amicale",
|
||||
|
@ -79,16 +54,16 @@ export default class SideBar extends React.Component<Props, State> {
|
|||
icon: "wikipedia",
|
||||
link: WIKETUD_LINK
|
||||
},
|
||||
{
|
||||
name: i18n.t('screens.settings'),
|
||||
route: "Settings",
|
||||
icon: "settings",
|
||||
},
|
||||
{
|
||||
name: i18n.t('screens.about'),
|
||||
route: "About",
|
||||
icon: "information",
|
||||
},
|
||||
// {
|
||||
// name: i18n.t('screens.settings'),
|
||||
// route: "Settings",
|
||||
// icon: "settings",
|
||||
// },
|
||||
// {
|
||||
// name: i18n.t('screens.about'),
|
||||
// route: "About",
|
||||
// icon: "information",
|
||||
// },
|
||||
];
|
||||
}
|
||||
|
||||
|
@ -99,7 +74,6 @@ export default class SideBar extends React.Component<Props, State> {
|
|||
navigateToScreen(route: string) {
|
||||
this.props.navigation.navigate(route);
|
||||
this.props.navigation.closeDrawer();
|
||||
this.setState({active: route});
|
||||
};
|
||||
|
||||
render() {
|
||||
|
@ -118,7 +92,7 @@ export default class SideBar extends React.Component<Props, State> {
|
|||
renderItem={({item}) =>
|
||||
<ListItem
|
||||
button
|
||||
noBorder={item.name !== 'Wiketud' && item.name !== 'Planex'} // Display a separator before settings and Amicale
|
||||
noBorder
|
||||
selected={this.state.active === item.route}
|
||||
onPress={() => {
|
||||
if (item.link !== undefined)
|
|
@ -3,6 +3,7 @@
|
|||
import {createAppContainer, createStackNavigator} from 'react-navigation';
|
||||
|
||||
import MainDrawerNavigator from './MainDrawerNavigator';
|
||||
import MainTabNavigator from './MainTabNavigator';
|
||||
import ProximoListScreen from '../screens/Proximo/ProximoListScreen';
|
||||
import AboutDependenciesScreen from '../screens/About/AboutDependenciesScreen';
|
||||
|
||||
|
@ -11,12 +12,13 @@ import AboutDependenciesScreen from '../screens/About/AboutDependenciesScreen';
|
|||
*/
|
||||
export default createAppContainer(
|
||||
createStackNavigator({
|
||||
Main: MainDrawerNavigator,
|
||||
Tabs: MainTabNavigator,
|
||||
// Drawer: MainDrawerNavigator,
|
||||
ProximoListScreen: {screen: ProximoListScreen},
|
||||
AboutDependenciesScreen: {screen: AboutDependenciesScreen},
|
||||
},
|
||||
{
|
||||
initialRouteName: "Main",
|
||||
initialRouteName: "Tabs",
|
||||
mode: 'card',
|
||||
headerMode: "none"
|
||||
})
|
||||
|
|
|
@ -10,7 +10,7 @@ import ProximoMainScreen from '../screens/Proximo/ProximoMainScreen';
|
|||
import PlanexScreen from '../screens/PlanexScreen';
|
||||
import SettingsScreen from '../screens/SettingsScreen';
|
||||
import AboutScreen from '../screens/About/AboutScreen';
|
||||
import SideMenu from "../components/SideMenu";
|
||||
import Sidebar from "../components/Sidebar";
|
||||
|
||||
/**
|
||||
* Creates the drawer navigation stack
|
||||
|
@ -24,7 +24,7 @@ export default createDrawerNavigator({
|
|||
Settings: {screen: SettingsScreen,},
|
||||
About: {screen: AboutScreen,},
|
||||
}, {
|
||||
contentComponent: SideMenu,
|
||||
contentComponent: Sidebar,
|
||||
initialRouteName: 'Home',
|
||||
backBehavior: 'initialRoute',
|
||||
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"
|
||||
}
|
||||
},
|
||||
"@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": {
|
||||
"version": "10.0.2",
|
||||
"resolved": "https://registry.npmjs.org/@expo/vector-icons/-/vector-icons-10.0.2.tgz",
|
||||
|
@ -1594,6 +1606,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": {
|
||||
"version": "1.0.0",
|
||||
"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",
|
||||
"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": {
|
||||
"version": "2.10.0",
|
||||
"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",
|
||||
"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": {
|
||||
"version": "1.0.1",
|
||||
"resolved": "https://registry.npmjs.org/clamp/-/clamp-1.0.1.tgz",
|
||||
|
@ -2254,6 +2388,15 @@
|
|||
"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": {
|
||||
"version": "6.0.5",
|
||||
"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",
|
||||
"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": {
|
||||
"version": "2.0.2",
|
||||
"resolved": "https://registry.npmjs.org/define-property/-/define-property-2.0.2.tgz",
|
||||
|
@ -3130,6 +3278,75 @@
|
|||
"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": {
|
||||
"version": "2.1.0",
|
||||
"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",
|
||||
"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": {
|
||||
"version": "2.0.0",
|
||||
"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",
|
||||
"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": {
|
||||
"version": "1.1.6",
|
||||
"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",
|
||||
"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": {
|
||||
"version": "3.2.2",
|
||||
"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",
|
||||
"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": {
|
||||
"version": "3.0.0",
|
||||
"resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz",
|
||||
|
@ -5928,6 +6178,38 @@
|
|||
"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": {
|
||||
"version": "1.1.1",
|
||||
"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",
|
||||
"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": {
|
||||
"version": "1.2.0",
|
||||
"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",
|
||||
"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": {
|
||||
"version": "2.3.1",
|
||||
"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-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": {
|
||||
"version": "1.4.0",
|
||||
"resolved": "https://registry.npmjs.org/react-navigation-stack/-/react-navigation-stack-1.4.0.tgz",
|
||||
|
@ -6116,6 +6437,279 @@
|
|||
"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": {
|
||||
"version": "0.26.0",
|
||||
"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": {
|
||||
"version": "0.1.0",
|
||||
"resolved": "https://registry.npmjs.org/urix/-/urix-0.1.0.tgz",
|
||||
|
|
|
@ -23,10 +23,13 @@
|
|||
"react-native": "^0.59.9",
|
||||
"react-native-app-intro-slider": "^3.0.0",
|
||||
"react-native-autolink": "^1.8.1",
|
||||
"react-native-paper": "^2.16.0",
|
||||
"react-native-platform-touchable": "^1.1.1",
|
||||
"react-native-side-menu": "^1.1.3",
|
||||
"react-native-status-bar-height": "^2.3.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": {
|
||||
"babel-preset-expo": "^5.1.1",
|
||||
|
|
|
@ -30,7 +30,7 @@ export default class AboutDependenciesScreen extends React.Component<Props> {
|
|||
const data = generateListFromObject(nav.getParam('data', {}));
|
||||
return (
|
||||
<Container>
|
||||
<CustomHeader backButton={true} navigation={nav} title={i18n.t('aboutScreen.libs')}/>
|
||||
<CustomHeader hasBackButton={true} navigation={nav} title={i18n.t('aboutScreen.libs')}/>
|
||||
<Content>
|
||||
<FlatList
|
||||
data={data}
|
||||
|
|
|
@ -8,6 +8,7 @@ import WebView from "react-native-webview";
|
|||
import Touchable from "react-native-platform-touchable";
|
||||
import CustomMaterialIcon from "../components/CustomMaterialIcon";
|
||||
import ThemeManager from "../utils/ThemeManager";
|
||||
import BaseContainer from "../components/BaseContainer";
|
||||
|
||||
type Props = {
|
||||
navigation: Object,
|
||||
|
@ -17,7 +18,9 @@ type State = {
|
|||
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.
|
||||
|
@ -53,8 +56,7 @@ export default class PlanningScreen extends React.Component<Props, State> {
|
|||
render() {
|
||||
const nav = this.props.navigation;
|
||||
return (
|
||||
<Container>
|
||||
<CustomHeader navigation={nav} title={'Planex'} rightMenu={this.getRefreshButton()}/>
|
||||
<BaseContainer navigation={nav} headerTitle={'Planex'} headerRightMenu={this.getRefreshButton()}>
|
||||
<WebView
|
||||
ref={ref => (this.webview = ref)}
|
||||
source={{uri: PLANEX_URL}}
|
||||
|
@ -76,7 +78,7 @@ export default class PlanningScreen extends React.Component<Props, State> {
|
|||
</View>
|
||||
}
|
||||
/>
|
||||
</Container>
|
||||
</BaseContainer>
|
||||
);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -1,13 +1,13 @@
|
|||
// @flow
|
||||
|
||||
import * as React from 'react';
|
||||
import {Button, Container, H3, Text} from 'native-base';
|
||||
import CustomHeader from "../components/CustomHeader";
|
||||
import {Button, H3, Text} from 'native-base';
|
||||
import i18n from "i18n-js";
|
||||
import {Platform, View} from "react-native";
|
||||
import CustomMaterialIcon from "../components/CustomMaterialIcon";
|
||||
import ThemeManager from "../utils/ThemeManager";
|
||||
import {Linking} from "expo";
|
||||
import BaseContainer from "../components/BaseContainer";
|
||||
|
||||
type Props = {
|
||||
navigation: Object,
|
||||
|
@ -28,8 +28,7 @@ export default class PlanningScreen extends React.Component<Props> {
|
|||
render() {
|
||||
const nav = this.props.navigation;
|
||||
return (
|
||||
<Container>
|
||||
<CustomHeader navigation={nav} title={i18n.t('screens.planning')}/>
|
||||
<BaseContainer navigation={nav} headerTitle={i18n.t('screens.planning')}>
|
||||
<View style={{
|
||||
flexGrow: 1,
|
||||
justifyContent: 'center',
|
||||
|
@ -70,7 +69,7 @@ export default class PlanningScreen extends React.Component<Props> {
|
|||
</Button>
|
||||
: <View/>}
|
||||
</View>
|
||||
</Container>
|
||||
</BaseContainer>
|
||||
);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -188,7 +188,7 @@ export default class ProximoListScreen extends React.Component<Props, State> {
|
|||
|
||||
return (
|
||||
<Container>
|
||||
<CustomHeader backButton={true} navigation={nav} title={navType} rightMenu={
|
||||
<CustomHeader hasBackButton={true} navigation={nav} title={navType} rightMenu={
|
||||
<Right>
|
||||
<Menu
|
||||
ref={this.setMenuRef}
|
||||
|
|
Loading…
Reference in a new issue