profile
This commit is contained in:
parent
6d57eb4e5a
commit
e36ac6ef6a
|
@ -25,11 +25,42 @@ import logout from './screens/logout'
|
|||
import Icon from "react-native-vector-icons/Ionicons"
|
||||
import IconF from "react-native-vector-icons/Foundation"
|
||||
import IconFA from "react-native-vector-icons/FontAwesome5"
|
||||
import Profile from "./screens/Profile";
|
||||
|
||||
|
||||
const AppStack = createBottomTabNavigator(
|
||||
{
|
||||
|
||||
Home: {
|
||||
screen: Home,
|
||||
navigationOptions: {
|
||||
|
||||
tabBarIcon: ({tintColor}) => (
|
||||
<Icon name="md-home" color={tintColor} size={30}/>
|
||||
)
|
||||
},
|
||||
},
|
||||
|
||||
|
||||
Social: {
|
||||
screen: Social,
|
||||
|
||||
navigationOptions: {
|
||||
|
||||
tabBarIcon: ({tintColor}) => (
|
||||
<Icon name="ios-mail" color={tintColor} size={30}/>
|
||||
)
|
||||
},
|
||||
},
|
||||
|
||||
Scan: {
|
||||
screen: Scan,
|
||||
|
||||
navigationOptions: {
|
||||
tabBarIcon: ({tintColor}) => (
|
||||
<Icon name="ios-qr-scanner" color={tintColor} size={45}/>
|
||||
),
|
||||
},
|
||||
},
|
||||
|
||||
Calendar: {
|
||||
screen: Calendar,
|
||||
|
@ -41,26 +72,6 @@ const AppStack = createBottomTabNavigator(
|
|||
)
|
||||
},
|
||||
},
|
||||
Social: {
|
||||
screen: Social,
|
||||
|
||||
navigationOptions: {
|
||||
|
||||
tabBarIcon: ({tintColor}) => (
|
||||
<Icon name="ios-mail" color={tintColor} size={30}/>
|
||||
)
|
||||
},
|
||||
},
|
||||
Scan: {
|
||||
screen: Scan,
|
||||
|
||||
navigationOptions: {
|
||||
tabBarIcon: ({tintColor}) => (
|
||||
<Icon name="ios-qr-scanner" color={tintColor} size={45}/>
|
||||
),
|
||||
},
|
||||
},
|
||||
|
||||
|
||||
Eventos: {
|
||||
screen: Eventos,
|
||||
|
@ -72,15 +83,7 @@ const AppStack = createBottomTabNavigator(
|
|||
)
|
||||
},
|
||||
},
|
||||
Home: {
|
||||
screen: Home,
|
||||
navigationOptions: {
|
||||
|
||||
tabBarIcon: ({tintColor}) => (
|
||||
<Icon name="md-home" color={tintColor} size={30}/>
|
||||
)
|
||||
},
|
||||
},
|
||||
|
||||
},
|
||||
{
|
||||
|
@ -111,30 +114,33 @@ const AuthStack = createStackNavigator(
|
|||
}*/
|
||||
);
|
||||
|
||||
const Stack = createStackNavigator({
|
||||
tabs: {
|
||||
screen: AppStack,
|
||||
navigationOptions: ({navigation}) => {
|
||||
const index = navigation.state.index;
|
||||
|
||||
if (navigation.state.routes[index].routeName !== 'Scan') {
|
||||
return {
|
||||
headerTitle: `${navigation.state.routes[index].routeName}`,
|
||||
headerRight: (
|
||||
<TouchableOpacity style={{marginRight: 20}} onPress={() => navigation.navigate('Home')}>
|
||||
<IconFA name="user-edit" size={22}/>
|
||||
</TouchableOpacity>
|
||||
)
|
||||
}
|
||||
} else {
|
||||
return {
|
||||
header: null
|
||||
}
|
||||
const Stack = createStackNavigator({
|
||||
tabs: {
|
||||
screen: AppStack,
|
||||
navigationOptions: ({navigation}) => {
|
||||
const index = navigation.state.index;
|
||||
|
||||
if (navigation.state.routes[index].routeName !== 'Scan') {
|
||||
return {
|
||||
headerTitle: `${navigation.state.routes[index].routeName}`,
|
||||
headerRight: (
|
||||
<TouchableOpacity style={{marginRight: 20}} onPress={() => navigation.navigate('Profile')}>
|
||||
<IconFA name="user-edit" size={22}/>
|
||||
</TouchableOpacity>
|
||||
)
|
||||
}
|
||||
} else {
|
||||
return {
|
||||
header: null
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
});
|
||||
},
|
||||
Profile: {
|
||||
screen: Profile
|
||||
}
|
||||
|
||||
});
|
||||
|
||||
|
||||
export default createAppContainer(createSwitchNavigator(
|
||||
|
|
|
@ -2,7 +2,7 @@ export const DATA_AVAILABLE = 'DATA_AVAILABLE';
|
|||
export const API_LOGIN = 'API_LOGIN';
|
||||
export const CHECK_USER='CHECK_USER';
|
||||
export const LOGOUT_USER= 'LOGOUT_USER';
|
||||
export const USER_INFO= 'USER_INFO'
|
||||
export const USER_INFO= 'USER_INFO';
|
||||
|
||||
import { AsyncStorage } from 'react-native';
|
||||
|
||||
|
@ -37,7 +37,7 @@ const saveToken = async token => {
|
|||
|
||||
|
||||
const getToken = async () => {
|
||||
var tokem;
|
||||
var token;
|
||||
try {
|
||||
token = await AsyncStorage.getItem('userToken') || 'none';
|
||||
} catch (error) {
|
||||
|
@ -79,7 +79,6 @@ export function login(user, pass){
|
|||
fetch('http://enei2019.uingress.com/internal/api/token', {
|
||||
|
||||
method: 'POST',
|
||||
|
||||
headers: {
|
||||
'Content-Type': 'application/x-www-form-urlencoded;charset=UTF-8'
|
||||
},
|
||||
|
@ -95,7 +94,7 @@ export function login(user, pass){
|
|||
tokenData:'error'
|
||||
});
|
||||
|
||||
}).then(res=>res.json()).then(parsed=>{
|
||||
}).then(res=>res.json()).then(( parsed) => {
|
||||
|
||||
console.log('parsed'+parsed.access_token)
|
||||
|
||||
|
@ -133,11 +132,11 @@ export function getUserInfo(){
|
|||
getToken().then(a=>{
|
||||
|
||||
console.log('get user info');
|
||||
var token;
|
||||
var obj = {
|
||||
let token;
|
||||
let obj = {
|
||||
method: 'GET',
|
||||
headers: {
|
||||
'Authorization':"Bearer "+a,
|
||||
'Authorization':`Bearer ${a}`,
|
||||
},
|
||||
}
|
||||
|
||||
|
@ -147,7 +146,7 @@ export function getUserInfo(){
|
|||
|
||||
//console.log(res._bodyText);
|
||||
|
||||
var obj = JSON.parse(res._bodyText);
|
||||
let obj = JSON.parse(res._bodyText);
|
||||
|
||||
dispatch({
|
||||
type: USER_INFO,
|
||||
|
|
|
@ -1,13 +1,10 @@
|
|||
|
||||
|
||||
|
||||
import React, {Component} from 'react';
|
||||
import { Button, View, Text , TouchableOpacity, FlatList, ActivityIndicator} from 'react-native';
|
||||
import {Button, View, Text, TouchableOpacity, FlatList, ActivityIndicator} from 'react-native';
|
||||
import {
|
||||
RkButton,
|
||||
RkTheme
|
||||
} from 'react-native-ui-kitten';
|
||||
import { connect } from 'react-redux';
|
||||
import {connect} from 'react-redux';
|
||||
import {bindActionCreators} from 'redux';
|
||||
|
||||
import * as Actions from '../actions'; //Import your actionss
|
||||
|
@ -19,88 +16,86 @@ import {Provider} from 'react-redux'
|
|||
class Home extends Component {
|
||||
|
||||
constructor(props) {
|
||||
|
||||
|
||||
super(props);
|
||||
|
||||
this.state = {
|
||||
token:false,
|
||||
tokenData:'',
|
||||
loggedIn:false,
|
||||
onHold:true,
|
||||
user:{}
|
||||
token: false,
|
||||
tokenData: '',
|
||||
loggedIn: false,
|
||||
onHold: true,
|
||||
user: {}
|
||||
};
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
||||
componentDidMount() {
|
||||
|
||||
|
||||
//this.props.logoutUser();
|
||||
|
||||
|
||||
this.props.getUserInfo();
|
||||
|
||||
console.log('logged:'+this.props.loggedIn);
|
||||
console.log('logged:' + this.props.loggedIn);
|
||||
|
||||
console.log('there we go')
|
||||
|
||||
console.log(this.props.user)
|
||||
}
|
||||
|
||||
bClick(){
|
||||
bClick() {
|
||||
|
||||
//this.props.logoutUser();
|
||||
|
||||
//this.props.logoutUser();
|
||||
|
||||
//var navigate = this.props.navigation.navigate
|
||||
}
|
||||
|
||||
_logout = () => {
|
||||
console.log("asdasd");
|
||||
// this.props.navigation.navigate('scan');
|
||||
// this.props.navigation.navigate('scan');
|
||||
this.props.getUserInfo();
|
||||
// this.props.logout();
|
||||
// this.props.logout();
|
||||
this.props.logoutUser();
|
||||
}
|
||||
render() {
|
||||
}
|
||||
|
||||
const { navigate } = this.props.navigation;
|
||||
if(this.props.token){
|
||||
render() {
|
||||
console.log(this.props.token);
|
||||
const {navigate} = this.props.navigation;
|
||||
if (this.props.token) {
|
||||
|
||||
console.log(this.props.user)
|
||||
return (
|
||||
<View >
|
||||
|
||||
|
||||
<Button onPress={this._logout} title="LOGOUT"/>
|
||||
<Text></Text>
|
||||
<Text>Nome: {this.props.user.Email}</Text>
|
||||
<Text>city: {this.props.user.City}</Text>
|
||||
<Text>phone: {this.props.user.Mobile}</Text>
|
||||
|
||||
<View>
|
||||
<Button onPress={this._logout} title="LOGOUT"/>
|
||||
<Text></Text>
|
||||
<Text>Nome: {this.props.user.Email}</Text>
|
||||
<Text>city: {this.props.user.City}</Text>
|
||||
<Text>phone: {this.props.user.Mobile}</Text>
|
||||
|
||||
|
||||
|
||||
|
||||
</View>
|
||||
);
|
||||
}
|
||||
else{
|
||||
else {
|
||||
return (
|
||||
<View >
|
||||
<Text>sem permissões para aceder aqui</Text>
|
||||
|
||||
<View>
|
||||
<Text>sem permissões para aceder aqui</Text>
|
||||
|
||||
</View>
|
||||
);
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
||||
renderItem({item, index}) {
|
||||
return (
|
||||
<View>
|
||||
<Text >
|
||||
<Text>
|
||||
{(parseInt(index) + 1)}{". "}{item.title}
|
||||
</Text>
|
||||
<Text >
|
||||
<Text>
|
||||
{item.description}
|
||||
</Text>
|
||||
</View>
|
||||
|
@ -113,15 +108,14 @@ class Home extends Component {
|
|||
|
||||
|
||||
function mapStateToProps(state, props) {
|
||||
|
||||
|
||||
return {
|
||||
|
||||
|
||||
|
||||
token: state.apiReducer.token,
|
||||
user: state.apiReducer.user
|
||||
|
||||
|
||||
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -0,0 +1,200 @@
|
|||
import React, {Component} from 'react'
|
||||
import {Card, Icon} from 'react-native-elements'
|
||||
import {
|
||||
Image,
|
||||
ImageBackground,
|
||||
Linking,
|
||||
ListView,
|
||||
Platform,
|
||||
ScrollView,
|
||||
StyleSheet,
|
||||
Text,
|
||||
View,
|
||||
TouchableOpacity
|
||||
} from 'react-native'
|
||||
import PropTypes from 'prop-types';
|
||||
|
||||
import {connect, Provider} from "react-redux";
|
||||
import {bindActionCreators} from "redux";
|
||||
import * as Actions from "../actions";
|
||||
|
||||
import {createStore} from 'redux';
|
||||
|
||||
|
||||
class Profile extends Component {
|
||||
|
||||
|
||||
constructor(props) {
|
||||
|
||||
super(props);
|
||||
|
||||
this.state = {
|
||||
token: false,
|
||||
tokenData: '',
|
||||
loggedIn: false,
|
||||
onHold: true,
|
||||
user: {}
|
||||
};
|
||||
}
|
||||
/*
|
||||
state = {
|
||||
telDS: new ListView.DataSource({
|
||||
rowHasChanged: (r1, r2) => r1 !== r2,
|
||||
}).cloneWithRows(this.props.tels),
|
||||
emailDS: new ListView.DataSource({
|
||||
rowHasChanged: (r1, r2) => r1 !== r2,
|
||||
}).cloneWithRows(this.props.emails),
|
||||
};
|
||||
*/
|
||||
|
||||
|
||||
onPressPlace = () => {
|
||||
console.log('place')
|
||||
};
|
||||
|
||||
onPressTel = number => {
|
||||
Linking.openURL(`tel://${number}`).catch(err =>
|
||||
console.log('Error:', err))
|
||||
};
|
||||
|
||||
onPressSms = () => {
|
||||
console.log('sms')
|
||||
};
|
||||
|
||||
onPressEmail = email => {
|
||||
Linking.openURL(`mailto:${email}-+`).catch(err =>
|
||||
console.log('Error:', err)
|
||||
)
|
||||
};
|
||||
|
||||
renderHeader = () => {
|
||||
/* const {
|
||||
avatar,
|
||||
avatarBackground,
|
||||
name,
|
||||
address: {city, country},
|
||||
} = this.props;*/
|
||||
|
||||
return (
|
||||
<View style={styles.header}>
|
||||
<View style={styles.headerContent}>
|
||||
<Image style={styles.avatar}
|
||||
source={{uri: `${this.props.user.Avatar}`}}/>
|
||||
|
||||
<Text style={styles.name}> {this.props.user.Name} {this.props.user.LastName}</Text>
|
||||
<Text style={styles.userInfo}> {this.props.user.City} </Text>
|
||||
</View>
|
||||
</View>
|
||||
)
|
||||
};
|
||||
|
||||
renderTel = () => {
|
||||
|
||||
return (
|
||||
<View style={styles.telContainer}>
|
||||
<TouchableOpacity onPress={() => this.onPressTel(`${this.props.user.Mobile}`)}>
|
||||
<Text>{this.props.user.Mobile}</Text>
|
||||
</TouchableOpacity>
|
||||
</View>
|
||||
)
|
||||
};
|
||||
/* <ListView
|
||||
contentContainerStyle={styles.telContainer}
|
||||
/*dataSource={this.state.telDS}
|
||||
|
||||
renderRow = {({id, name, number}, _, k)
|
||||
=>
|
||||
{
|
||||
}
|
||||
}
|
||||
/>}*/
|
||||
|
||||
|
||||
renderEmail = () => {
|
||||
return (
|
||||
<View styles={styles.emailContainer}>
|
||||
<TouchableOpacity onPress={() => this.onPressEmail(`${this.props.user.Email}`)}>
|
||||
<Text>{this.props.user.Email} </Text>
|
||||
</TouchableOpacity>
|
||||
</View>
|
||||
)
|
||||
|
||||
/* <ListView
|
||||
contentContainerStyle={styles.emailContainer}
|
||||
/*dataSource={this.state.emailDS}
|
||||
renderRow={({email, id, name}, _, k) => {
|
||||
|
||||
}}
|
||||
/>*/
|
||||
};
|
||||
|
||||
render() {
|
||||
return (
|
||||
<ScrollView style={styles.scroll}>
|
||||
<View style={styles.container}>
|
||||
{this.renderHeader()}
|
||||
<View style={styles.body}>
|
||||
{this.renderTel()}
|
||||
{this.renderEmail()}
|
||||
</View>
|
||||
</View>
|
||||
</ScrollView>
|
||||
)
|
||||
}
|
||||
}
|
||||
|
||||
const styles = StyleSheet.create({
|
||||
|
||||
scroll: {
|
||||
backgroundColor: '#FFF',
|
||||
},
|
||||
emailContainer: {
|
||||
backgroundColor: '#FFF',
|
||||
flex: 1,
|
||||
paddingTop: 30,
|
||||
},
|
||||
telContainer: {
|
||||
backgroundColor: '#FFF',
|
||||
flex: 1,
|
||||
paddingTop: 30,
|
||||
},
|
||||
|
||||
header: {
|
||||
backgroundColor: "#DCDCDC",
|
||||
},
|
||||
headerContent: {
|
||||
padding: 30,
|
||||
alignItems: 'center',
|
||||
},
|
||||
avatar: {
|
||||
width: 130,
|
||||
height: 130,
|
||||
borderRadius: 63,
|
||||
borderWidth: 4,
|
||||
borderColor: "white",
|
||||
marginBottom: 10,
|
||||
},
|
||||
userInfo: {
|
||||
fontSize: 16,
|
||||
color: "#778899",
|
||||
fontWeight: '600',
|
||||
},
|
||||
|
||||
|
||||
});
|
||||
|
||||
mapStateToProps = (state, props) => {
|
||||
|
||||
return {
|
||||
|
||||
token: state.apiReducer.token,
|
||||
user: state.apiReducer.user
|
||||
}
|
||||
};
|
||||
|
||||
function mapDispatchToProps(dispatch) {
|
||||
|
||||
return bindActionCreators(Actions, dispatch);
|
||||
}
|
||||
|
||||
export default connect(mapStateToProps, mapDispatchToProps)(Profile);
|
|
@ -35,6 +35,6 @@ getPersonalInfo(){
|
|||
|
||||
;
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
export default api;
|
|
@ -2038,6 +2038,15 @@
|
|||
"object-visit": "^1.0.0"
|
||||
}
|
||||
},
|
||||
"color": {
|
||||
"version": "3.1.0",
|
||||
"resolved": "https://registry.npmjs.org/color/-/color-3.1.0.tgz",
|
||||
"integrity": "sha512-CwyopLkuRYO5ei2EpzpIh6LqJMt6Mt+jZhO5VI5f/wJLZriXQE32/SSqzmrh+QB+AZT81Cj8yv+7zwToW8ahZg==",
|
||||
"requires": {
|
||||
"color-convert": "^1.9.1",
|
||||
"color-string": "^1.5.2"
|
||||
}
|
||||
},
|
||||
"color-convert": {
|
||||
"version": "1.9.3",
|
||||
"resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz",
|
||||
|
@ -2051,6 +2060,15 @@
|
|||
"resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz",
|
||||
"integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU="
|
||||
},
|
||||
"color-string": {
|
||||
"version": "1.5.3",
|
||||
"resolved": "https://registry.npmjs.org/color-string/-/color-string-1.5.3.tgz",
|
||||
"integrity": "sha512-dC2C5qeWoYkxki5UAXapdjqO672AM4vZuPGRQfO8b5HKuKGBbKWpITyDYN7TOFKvRW7kOgAn3746clDBMDJyQw==",
|
||||
"requires": {
|
||||
"color-name": "^1.0.0",
|
||||
"simple-swizzle": "^0.2.2"
|
||||
}
|
||||
},
|
||||
"color-support": {
|
||||
"version": "1.1.3",
|
||||
"resolved": "https://registry.npmjs.org/color-support/-/color-support-1.1.3.tgz",
|
||||
|
@ -5521,6 +5539,11 @@
|
|||
"resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.11.tgz",
|
||||
"integrity": "sha512-cQKh8igo5QUhZ7lg38DYWAxMvjSAKG0A8wGSVimP07SIUEK2UO+arSRKbRZWtelMtN5V0Hkwh5ryOto/SshYIg=="
|
||||
},
|
||||
"lodash.merge": {
|
||||
"version": "4.6.1",
|
||||
"resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.1.tgz",
|
||||
"integrity": "sha512-AOYza4+Hf5z1/0Hztxpm2/xiPZgi/cjMqdnKTUWTBSKchJlxXXuUSxCCl8rJlf4g6yww/j6mA8nC8Hw/EZWxKQ=="
|
||||
},
|
||||
"lodash.pad": {
|
||||
"version": "4.5.1",
|
||||
"resolved": "https://registry.npmjs.org/lodash.pad/-/lodash.pad-4.5.1.tgz",
|
||||
|
@ -6321,6 +6344,11 @@
|
|||
"mimic-fn": "^1.0.0"
|
||||
}
|
||||
},
|
||||
"opencollective-postinstall": {
|
||||
"version": "2.0.1",
|
||||
"resolved": "https://registry.npmjs.org/opencollective-postinstall/-/opencollective-postinstall-2.0.1.tgz",
|
||||
"integrity": "sha512-saQQ9hjLwu/oS0492eyYotoh+bra1819cfAT5rjY/e4REWwuc8IgZ844Oo44SiftWcJuBiqp0SA0BFVbmLX0IQ=="
|
||||
},
|
||||
"opn": {
|
||||
"version": "3.0.3",
|
||||
"resolved": "http://registry.npmjs.org/opn/-/opn-3.0.3.tgz",
|
||||
|
@ -6830,6 +6858,20 @@
|
|||
"prop-types": "^15.5.10"
|
||||
}
|
||||
},
|
||||
"react-native-elements": {
|
||||
"version": "1.0.0",
|
||||
"resolved": "https://registry.npmjs.org/react-native-elements/-/react-native-elements-1.0.0.tgz",
|
||||
"integrity": "sha512-m5kzFCOIEyoY5qTYn6c2n9AYodn1Ol4tVNEaQ5wVXwaDDNyafshqXQ3QmYUWW8yfogMmCdLSi0KfQmYQNElEtA==",
|
||||
"requires": {
|
||||
"color": "^3.1.0",
|
||||
"hoist-non-react-statics": "^3.1.0",
|
||||
"lodash.merge": "^4.6.1",
|
||||
"opencollective-postinstall": "^2.0.0",
|
||||
"prop-types": "^15.5.8",
|
||||
"react-native-ratings": "^6.3.0",
|
||||
"react-native-status-bar-height": "^2.2.0"
|
||||
}
|
||||
},
|
||||
"react-native-gesture-handler": {
|
||||
"version": "1.0.15",
|
||||
"resolved": "https://registry.npmjs.org/react-native-gesture-handler/-/react-native-gesture-handler-1.0.15.tgz",
|
||||
|
@ -6871,6 +6913,15 @@
|
|||
"react-native-permissions": "^1.1.1"
|
||||
}
|
||||
},
|
||||
"react-native-ratings": {
|
||||
"version": "6.3.0",
|
||||
"resolved": "https://registry.npmjs.org/react-native-ratings/-/react-native-ratings-6.3.0.tgz",
|
||||
"integrity": "sha512-vjzsTM4L3J3n0X9fJMFSJ3ZUqbPp2ExZtgg/Ycst9SqwiHCOouEwEpEcLF+KzYp3MgL62ZACIKSUyfWIIdBafA==",
|
||||
"requires": {
|
||||
"lodash": "^4.17.4",
|
||||
"prop-types": "^15.5.10"
|
||||
}
|
||||
},
|
||||
"react-native-safe-area-view": {
|
||||
"version": "0.11.0",
|
||||
"resolved": "https://registry.npmjs.org/react-native-safe-area-view/-/react-native-safe-area-view-0.11.0.tgz",
|
||||
|
@ -6891,6 +6942,11 @@
|
|||
"resolved": "https://registry.npmjs.org/react-native-screens/-/react-native-screens-1.0.0-alpha.19.tgz",
|
||||
"integrity": "sha512-+a7GdwzLWYWYVUJMg+XuyBoRFGD8GdGyBfebuTNBY+xwUZpTXCaK/GlLGL6EE3h0iBHZu83do7zViEailWRNyA=="
|
||||
},
|
||||
"react-native-status-bar-height": {
|
||||
"version": "2.2.0",
|
||||
"resolved": "https://registry.npmjs.org/react-native-status-bar-height/-/react-native-status-bar-height-2.2.0.tgz",
|
||||
"integrity": "sha512-4WJpyZirzeMHyZiyNEy4LnSPOtuLRVy3+28Rhz7ffrjCVcc5RFcC0HVjFnkwfuhcTyXIDtzPG6canJkXzbTtBA=="
|
||||
},
|
||||
"react-native-tab-view": {
|
||||
"version": "1.3.1",
|
||||
"resolved": "https://registry.npmjs.org/react-native-tab-view/-/react-native-tab-view-1.3.1.tgz",
|
||||
|
@ -7850,6 +7906,21 @@
|
|||
}
|
||||
}
|
||||
},
|
||||
"simple-swizzle": {
|
||||
"version": "0.2.2",
|
||||
"resolved": "https://registry.npmjs.org/simple-swizzle/-/simple-swizzle-0.2.2.tgz",
|
||||
"integrity": "sha1-pNprY1/8zMoz9w0Xy5JZLeleVXo=",
|
||||
"requires": {
|
||||
"is-arrayish": "^0.3.1"
|
||||
},
|
||||
"dependencies": {
|
||||
"is-arrayish": {
|
||||
"version": "0.3.2",
|
||||
"resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.3.2.tgz",
|
||||
"integrity": "sha512-eVRqCvVlZbuw3GrM63ovNSNAeA1K16kaR/LRY/92w0zxQ5/1YzwblUX652i4Xs9RwAGjW9d9y6X88t8OaAJfWQ=="
|
||||
}
|
||||
}
|
||||
},
|
||||
"sisteransi": {
|
||||
"version": "0.1.1",
|
||||
"resolved": "https://registry.npmjs.org/sisteransi/-/sisteransi-0.1.1.tgz",
|
||||
|
|
|
@ -8,11 +8,13 @@
|
|||
},
|
||||
"dependencies": {
|
||||
"axios": "^0.18.0",
|
||||
"prop-types": "^15.6.2",
|
||||
"react": "16.6.3",
|
||||
"react-native": "0.57.8",
|
||||
"react-native-app-intro-slider": "^1.0.1",
|
||||
"react-native-camera": "^1.9.2",
|
||||
"react-native-confirmation-code-input": "^1.0.4",
|
||||
"react-native-elements": "^1.0.0",
|
||||
"react-native-gesture-handler": "^1.0.15",
|
||||
"react-native-ionicons": "^4.5.5",
|
||||
"react-native-loader": "^1.2.1",
|
||||
|
|
Loading…
Reference in New Issue