This commit is contained in:
henrydays 2019-03-22 16:04:12 +00:00
parent 599477f602
commit a41029a4f8
13 changed files with 1045 additions and 590 deletions

View File

@ -102,8 +102,9 @@ android {
applicationId "com.app"
minSdkVersion rootProject.ext.minSdkVersion
targetSdkVersion rootProject.ext.targetSdkVersion
versionCode 1
versionName "1.0"
versionCode 2
versionName "2.0"
vectorDrawables.useSupportLibrary = true
ndk {
abiFilters "armeabi-v7a", "x86"
}
@ -149,6 +150,9 @@ android {
}
dependencies {
compile project(':react-native-network-info')
compile project(':react-native-image-picker-m')
compile project(':react-native-image-crop-picker')
compile project(':react-native-maps')
compile project(':react-native-device-info')
compile project(':react-native-material-shadows')

View File

@ -3,6 +3,9 @@ package com.app;
import android.app.Application;
import com.facebook.react.ReactApplication;
import com.pusherman.networkinfo.RNNetworkInfoPackage;
import com.imagepicker.ImagePickerPackage;
import com.reactnative.ivpusic.imagepicker.PickerPackage;
import com.airbnb.android.react.maps.MapsPackage;
import com.learnium.RNDeviceInfo.RNDeviceInfo;
import ui.materialshadows.RNMaterialShadowsPackage;
@ -30,6 +33,9 @@ public class MainApplication extends Application implements ReactApplication {
protected List<ReactPackage> getPackages() {
return Arrays.<ReactPackage>asList(
new MainReactPackage(),
new RNNetworkInfoPackage(),
new ImagePickerPackage(),
new PickerPackage(),
new MapsPackage(),
new RNDeviceInfo(),
new RNMaterialShadowsPackage(),

View File

@ -1,4 +1,10 @@
rootProject.name = 'app'
include ':react-native-network-info'
project(':react-native-network-info').projectDir = new File(rootProject.projectDir, '../node_modules/react-native-network-info/android')
include ':react-native-image-picker-m'
project(':react-native-image-picker-m').projectDir = new File(rootProject.projectDir, '../node_modules/react-native-image-picker-m/android')
include ':react-native-image-crop-picker'
project(':react-native-image-crop-picker').projectDir = new File(rootProject.projectDir, '../node_modules/react-native-image-crop-picker/android')
include ':react-native-maps'
project(':react-native-maps').projectDir = new File(rootProject.projectDir, '../node_modules/react-native-maps/lib/android')
include ':react-native-device-info'

View File

@ -105,7 +105,7 @@ class Home extends Component {
};
onSuccess=e=>{
//fecha o scanner
this.props.addUserTeam({id:this.props.team.id, newQr:e.data},this.props.internalToken)
this.props.addUserTeam({id:this.props.team.id, newQr:e.data},this.props.internalToken, this.props.user)
this.setState({addUser:!this.state.addUser})
}
@ -143,7 +143,7 @@ _creatTeam=()=>{
capQR:this.props.user.Code
}
this.props.createTeam(o, this.props.internalToken)
this.props.createTeam(o, this.props.internalToken, this.props.user)
}
render() {
const { navigate } = this.props.navigation;
@ -159,7 +159,7 @@ _creatTeam=()=>{
if (this.props.logged) {
return (
<PTRView onRefresh={this._update}>
<ScrollView style={{ backgroundColor: "#eeeeee" , height:SCREEN_HEIGHT}}>
<ScrollView style={{ backgroundColor: "#eeeeee", minHeight: SCREEN_HEIGHT}}>
<View>
<Modal
isVisible={this.state.addUser}
@ -469,13 +469,19 @@ const styles = StyleSheet.create({
},
colBilhete: {
width: "33%",
padding: 10
padding: 10,
alignContent:'center',
alignItems:'center'
},
boxStyle: {
padding: 10,
padding: 5,
paddingTop:10,
paddingBottom :10,
borderWidth: 1,
marginBottom: 5,
borderColor: "#CC1A17"
width:'100%',
borderColor: "#CC1A17",
},
userName: {
fontSize: 16,

View File

@ -38,6 +38,22 @@ const SCREEN_HEIGHT = Dimensions.get("window").height;
const SCREEN_WIDTH = Dimensions.get("window").width;
import Icon from "react-native-vector-icons/Ionicons"
var options = {
title: 'Select Avatar',
customButtons: [
{name: 'fb', title: 'Choose Photo from Facebook'},
],
storageOptions: {
skipBackup: true,
path: 'images'
}
};
var ImagePicker = require('react-native-image-picker');
class Profile extends Component {
@ -184,7 +200,31 @@ class Profile extends Component {
console.log("data not valid");
}
_open=()=>{
ImagePicker.showImagePicker(options, (response) => {
console.log('Response = ', response);
if (response.didCancel) {
console.log('User cancelled image picker');
}
else if (response.error) {
console.log('ImagePicker Error: ', response.error);
}
else if (response.customButton) {
console.log('User tapped custom button: ', response.customButton);
}
else {
let source = { uri: response.uri };
// You can also display the image using data:
// let source = { uri: 'data:image/jpeg;base64,' + response.data };
this.setState({
avatarSource: source
});
}
});
}
render() {
if (this.props.onHold) {
@ -205,6 +245,30 @@ class Profile extends Component {
</View>
</View>
<Button onPress={() =>{ImagePicker.showImagePicker(options, (response) => {
console.log('Response = ', response);
if (response.didCancel) {
console.log('User cancelled image picker');
}
else if (response.error) {
console.log('ImagePicker Error: ', response.error);
}
else if (response.customButton) {
console.log('User tapped custom button: ', response.customButton);
}
else {
let source = { uri: response.uri };
// You can also display the image using data:
// let source = { uri: 'data:image/jpeg;base64,' + response.data };
this.setState({
avatarSource: source
});
}
});} } title="Editar foto de perfil" color="#CC1A17"
/>
<View style={styles.userBio}>
<View style={styles.userBioRow}>
<Text style={styles.userBioLogo} >Nome</Text>

View File

@ -1,32 +1,34 @@
import * as React from "react";
import {
View,
StyleSheet,
Dimensions,
Image,
ScrollView,
Text,
Button,
TouchableOpacity,
ImageBackground,
ListView,
FlatList,
ActivityIndicator
View,
StyleSheet,
Dimensions,
Image,
ScrollView,
Text,
Button,
TouchableOpacity,
ImageBackground,
ListView,
FlatList,
ActivityIndicator,
Linking,
Platform
} from "react-native";
import moment from "moment";
import {Divider, Icon, Avatar} from "react-native-elements";
import {TabView, TabBar, SceneMap} from "react-native-tab-view";
import {RkButton, RkCard, RkText, RkTheme} from "react-native-ui-kitten";
import { Divider, Icon, Avatar } from "react-native-elements";
import { TabView, TabBar, SceneMap } from "react-native-tab-view";
import { RkButton, RkCard, RkText, RkTheme } from "react-native-ui-kitten";
import Timeline from "react-native-timeline-feed";
import * as Progress from "react-native-progress";
import NavAbsolute from "../components/Nav";
import {connect} from "react-redux";
import { connect } from "react-redux";
import {bindActionCreators} from "redux";
import { bindActionCreators } from "redux";
import * as Actions from "../store/actions"; //Import your actionss
import Swiper from "react-native-swiper";
@ -36,425 +38,460 @@ const SCREEN_WIDTH = Dimensions.get("window").width;
import FitImage from "react-native-fit-image";
import MapView, {PROVIDER_GOOGLE} from "react-native-maps";
import MapView, { PROVIDER_GOOGLE } from "react-native-maps";
const formatObj = obj => {
let a = {};
let a = {};
a.push({});
a.push({});
return a;
return a;
};
class eventDetail extends React.Component {
static navigationOptions = ({navigation}) => ({
header: (
<NavAbsolute
navigation={navigation}
// title={navigation.state.params.info.name}
/>
)
});
static navigationOptions = ({ navigation }) => ({
header: (
<NavAbsolute
navigation={navigation}
// title={navigation.state.params.info.name}
/>
)
});
state = {};
state = {};
componentDidMount() {
openMaps = () => {};
componentDidMount() {
const { navigation } = this.props;
const info = navigation.getParam("info", "error");
}
_update = () => {
this.setState({ user: this.props.user });
};
const {navigation} = this.props;
const info = navigation.getParam("info", "error");
_renderRally = info => {
console.log(info);
return (
<View>
<View style={styles.header}>
<View
style={{
flexDirection: "row",
alignItems: "center",
alignSelf: "center"
}}
>
<View style={styles.leftRow}>
<Text
style={{
margin: 10,
marginTop: 0,
marginBottom: 10,
fontSize: 20,
color: "#CC1A17"
}}
>
{info.location.nome}
</Text>
</View>
<View style={styles.timeText}>
<Text style={{ color: "#CC1A17", fontSize: 15 }}>
{info.hora}
</Text>
<Text>{info.horas}</Text>
</View>
</View>
<View>
<View style={{ margin: 10 }}>
<Text
style={{ fontSize: 15, color: "#CC1A17", fontWeight: "bold" }}
>
Descrição:
</Text>
<Divider style={{ backgroundColor: "#000" }} />
<View style={{ marginTop: 10 }}>
<Text>{info.location.desc}</Text>
</View>
<Text
style={{
fontSize: 15,
color: "#CC1A17",
fontWeight: "bold",
marginTop: 20
}}
>
Desafio:
</Text>
<Divider style={{ backgroundColor: "#000" }} />
<View style={{ marginTop: 10 }}>
<Text>{info.location.desafio}</Text>
</View>
</View>
</View>
</View>
</View>
);
};
_renderEventDetail = info => {
return (
<View>
<View style={styles.header}>
<View
style={{
flexDirection: "row",
alignItems: "center",
alignSelf: "center"
}}
>
<View style={styles.timeText}>
<Text style={{ color: "#CC1A17", fontSize: 15 }}>
{info.hora}
</Text>
<Text>{info.horas}</Text>
</View>
</View>
<View>
<Text
style={{
margin: 10,
marginTop: 0,
marginBottom: 10,
fontSize: 20,
color: "#CC1A17"
}}
>
{info.nome}
</Text>
<View style={{ margin: 10 }}>
<Text
style={{ fontSize: 15, color: "#CC1A17", fontWeight: "bold" }}
>
Descrição:
</Text>
<Divider style={{ backgroundColor: "#000" }} />
<View style={{ marginTop: 10 }}>
<Text>{info.desc}</Text>
</View>
<Text
style={{
fontSize: 15,
color: "#CC1A17",
fontWeight: "bold",
marginTop: 10
}}
>
Como posso participar?
</Text>
<Divider style={{ backgroundColor: "#000" }} />
<View style={{ marginTop: 10 }}>
<Text>{info.notas}</Text>
</View>
<Text
style={{
fontSize: 15,
color: "#CC1A17",
fontWeight: "bold",
marginTop: 10
}}
>
Qual é o custo de participação?
</Text>
<Divider style={{ backgroundColor: "#000" }} />
<View style={{ marginTop: 10 }}>
<Text>{info.custo}</Text>
</View>
</View>
</View>
</View>
</View>
);
};
_renderContainer = (info, eventType) => {
console.log("Estou aqui " + eventType);
if (eventType === "rally") {
return this._renderRally(info);
} else if (eventType === undefined) {
return this._renderEventDetail(info);
}
};
_update = () => {
this.setState({user: this.props.user});
constructor(props) {
super(props);
};
this.data = [];
}
render() {
const { navigation } = this.props;
const info = navigation.getParam("info", "error");
const eventType = navigation.getParam("type");
_renderRally = (info) => {
console.log(info)
return (
<View>
<View style={styles.header}>
<View
style={{
flexDirection: "row",
alignItems: "center",
alignSelf: "center"
}}
>
<View style={styles.leftRow}>
<Text style={{
margin: 10,
marginTop: 0,
marginBottom: 10,
fontSize: 20,
color: "#CC1A17" }}>
{info.location.nome}
</Text>
</View>
<View style={styles.timeText}>
<Text style={{color: "#CC1A17", fontSize: 15}}>
{info.hora}
</Text>
<Text>{info.horas}</Text>
</View>
</View>
<View>
<View style={{margin: 10}}>
<Text
style={{fontSize: 15, color: "#CC1A17", fontWeight: "bold"}}
>
Descrição:
</Text>
<Divider style={{backgroundColor: "#000"}}/>
<View style={{marginTop: 10}}>
<Text>{info.location.desc}</Text>
</View>
</View>
</View>
return (
<View style={styles.mainViewStyle}>
<ScrollView style={styles.scroll}>
<View style={styles.container}>
<View style={styles.headerContainer}>
<View style={styles.headerContainer}>
<View style={styles.coverContainer}>
<ImageBackground
source={{
uri: info.location.mainPhoto
}}
style={styles.coverImage}
/>
</View>
</View>
</View>
);
};
{this._renderContainer(info, eventType)}
</View>
<View>
<TouchableOpacity
onPress={() => {
console.log(info.location.lat)
console.log(info.location.long)
const scheme = Platform.select({
ios: "maps:0,0?q=",
android: "geo:0,0?q="
});
const latLng = `${info.location.lat},${info.location.long}`;
const label = info.location.nome;
const url = Platform.select({
ios: `${scheme}${label}@${latLng}`,
android: `${scheme}${latLng}(${label})`
});
_renderEventDetail = (info) => {
return (
<View>
<View style={styles.header}>
<View
style={{
flexDirection: "row",
alignItems: "center",
alignSelf: "center"
}}
>
<View style={styles.timeText}>
<Text style={{color: "#CC1A17", fontSize: 15}}>
{info.hora}
</Text>
<Text>{info.horas}</Text>
</View>
</View>
<View>
<Text
style={{
margin: 10,
marginTop: 0,
marginBottom: 10,
fontSize: 20,
color: "#CC1A17"
}}
>
{info.nome}
</Text>
<View style={{margin: 10}}>
<Text
style={{fontSize: 15, color: "#CC1A17", fontWeight: "bold"}}
>
Descrição:
</Text>
<Divider style={{backgroundColor: "#000"}}/>
<View style={{marginTop: 10}}>
<Text>{info.desc}</Text>
</View>
<Text
style={{fontSize: 15, color: "#CC1A17", fontWeight: "bold", marginTop: 10}}
>
Como posso participar?
</Text>
<Divider style={{backgroundColor: "#000"}}/>
<View style={{marginTop: 10}}>
<Text>{info.notas}</Text>
</View>
<Text
style={{fontSize: 15, color: "#CC1A17", fontWeight: "bold", marginTop: 10}}
>
Qual é o custo de participação?
</Text>
<Divider style={{backgroundColor: "#000"}}/>
<View style={{marginTop: 10}}>
<Text>{info.custo}</Text>
</View>
</View>
</View>
</View>
</View>
);
};
_renderContainer = (info, eventType) => {
console.log("Estou aqui " + eventType)
if (eventType === "rally") {
return this._renderRally(info);
}
else if (eventType === undefined) {
return this._renderEventDetail(info);
}
};
constructor(props) {
super(props);
this.data = [];
}
render() {
const {navigation} = this.props;
const info = navigation.getParam("info", "error");
const eventType = navigation.getParam("type");
return (
<View style={styles.mainViewStyle}>
<ScrollView style={styles.scroll}>
<View style={styles.container}>
<View style={styles.headerContainer}>
<View style={styles.headerContainer}>
<View style={styles.coverContainer}>
<ImageBackground
source={{
uri: info.imagem
}}
style={styles.coverImage}
/>
</View>
</View>
</View>
{this._renderContainer(info, eventType)}
</View>
<View style={styles.block}>
<Text
style={{fontSize: 15, color: "#CC1A17", fontWeight: "bold"}}
>
Localização
</Text>
<Divider style={{backgroundColor: "#000", marginBottom: 10}}/>
<Text>{info.localizacao}</Text>
</View>
</ScrollView>
<Divider style={{backgroundColor: "black"}}/>
</View>
);
}
Linking.openURL(url);
}}
>
<FitImage
source={{
uri: info.location.localizacao
}}
/>
</TouchableOpacity>
</View>
</ScrollView>
<Divider style={{ backgroundColor: "black" }} />
</View>
);
}
}
const styles = StyleSheet.create({
block: {
marginTop: 15,
block: {
marginTop: 15,
backgroundColor: "white",
padding: 20,
shadowOffset: {
width: 0,
height: 2
},
shadowOpacity: 0.25,
shadowRadius: 3.84,
backgroundColor: "white",
padding: 20,
shadowOffset: {
width: 0,
height: 2
},
shadowOpacity: 0.25,
shadowRadius: 3.84,
elevation: 3
},
AttendeeContainer: {
flexDirection: "row",
height: 55,
justifyContent: "center",
marginLeft: 10,
marginRight: 10
},
elevation: 3
},
AttendeeContainer: {
flexDirection: "row",
height: 55,
justifyContent: "center",
marginLeft: 10,
marginRight: 10
},
centerRow: {
alignItems: "center",
backgroundColor: "transparent",
flex: 3,
flexDirection: "column",
justifyContent: "center"
},
centerRow: {
alignItems: "center",
backgroundColor: "transparent",
flex: 3,
flexDirection: "column",
justifyContent: "center"
},
leftRow: {
backgroundColor: "transparent",
flex: 1,
flexDirection: "row",
justifyContent: "flex-start",
alignSelf: "center"
},
rightRow: {
alignItems: "flex-end",
backgroundColor: "transparent",
flex: 2,
flexDirection: "row",
justifyContent: "flex-end",
marginRight: 4,
alignSelf: "center"
},
leftRow: {
backgroundColor: "transparent",
flex: 1,
flexDirection: "row",
justifyContent: "flex-start",
alignSelf: "center"
},
rightRow: {
alignItems: "flex-end",
backgroundColor: "transparent",
flex: 2,
flexDirection: "row",
justifyContent: "flex-end",
marginRight: 4,
alignSelf: "center"
},
icon: {
justifyContent: "flex-start",
marginTop: 2.8
},
icon: {
justifyContent: "flex-start",
marginTop: 2.8
},
nameAttendee: {
alignSelf: "center",
fontSize: 20,
fontWeight: "400",
color: "#000",
marginBottom: 10
},
nameAttendee: {
alignSelf: "center",
fontSize: 20,
fontWeight: "400",
color: "#000",
marginBottom: 10
},
details: {
marginTop: 20,
flex: 1,
alignSelf: "center"
},
details: {
marginTop: 20,
flex: 1,
alignSelf: "center"
},
infoRow: {
margin: 25
},
infoRow: {
margin: 25
},
ramoText: {
alignSelf: "flex-start",
marginBottom: 5,
color: "white",
fontSize: 17,
fontWeight: "400"
},
ramoText: {
alignSelf: "flex-start",
marginBottom: 5,
color: "white",
fontSize: 17,
fontWeight: "400"
},
timeText: {
alignItems: "flex-end",
flex: 2,
lineHeight: 10,
marginRight: 20
},
timeText: {
alignItems: "flex-end",
flex: 2,
lineHeight: 10,
marginRight: 20
},
mainViewStyle: {
flex: 1,
flexGrow: 1,
flexDirection: "column"
},
mainViewStyle: {
flex: 1,
flexGrow: 1,
flexDirection: "column"
},
scroll: {
backgroundColor: "#eee",
flex: 1
//marginBottom: 55,
},
scroll: {
backgroundColor: "#eee",
flex: 1
//marginBottom: 55,
},
header: {
flex: 1,
padding: 10,
backgroundColor: "white",
borderRadius: 0,
shadowColor: "#000",
shadowOffset: {
width: 0,
height: 2
},
shadowOpacity: 0.25,
shadowRadius: 3.84,
header: {
flex: 1,
padding: 10,
backgroundColor: "white",
borderRadius: 0,
shadowColor: "#000",
shadowOffset: {
width: 0,
height: 2
},
shadowOpacity: 0.25,
shadowRadius: 3.84,
elevation: 3
},
cardContainer: {
flex: 1,
padding: 10,
// margin: 20,
backgroundColor: "white",
borderRadius: 5
},
elevation: 3
},
cardContainer: {
flex: 1,
padding: 10,
// margin: 20,
backgroundColor: "white",
borderRadius: 5
},
headerContainer: {
flex: 1
},
headerContainer: {
flex: 1
},
container: {
flex: 1,
flexDirection: "column"
},
coverContainer: {
position: "relative"
},
coverImage: {
height: Dimensions.get("window").width * (2 / 4),
width: Dimensions.get("window").width
},
/*headerContainer: {
container: {
flex: 1,
flexDirection: "column"
},
coverContainer: {
position: "relative"
},
coverImage: {
height: Dimensions.get("window").width * (2 / 4),
width: Dimensions.get("window").width
},
/*headerContainer: {
alignItems: 'center',
backgroundColor: '#FFF',
},*/
carreerPathContainer: {
backgroundColor: "#CC1A17",
height: 50,
flex: 1,
alignItems: "center",
justifyContent: "center",
paddingTop: 15
},
carreerPathText: {
height: 50,
color: "white",
fontWeight: "bold",
fontSize: 20
},
companyHeader: {
backgroundColor: "#dddddd",
// height:150,
borderRadius: 5,
margin: 10,
padding: 10
},
companyTitle: {
paddingBottom: 5,
fontWeight: "bold",
color: "#777777",
fontSize: 17
carreerPathContainer: {
backgroundColor: "#CC1A17",
height: 50,
flex: 1,
alignItems: "center",
justifyContent: "center",
paddingTop: 15
},
carreerPathText: {
height: 50,
color: "white",
fontWeight: "bold",
fontSize: 20
},
companyHeader: {
backgroundColor: "#dddddd",
// height:150,
borderRadius: 5,
margin: 10,
padding: 10
},
companyTitle: {
paddingBottom: 5,
fontWeight: "bold",
color: "#777777",
fontSize: 17
// padding:20
},
companyLogo: {
borderRadius: 20
},
// padding:20
},
companyLogo: {
borderRadius: 20
},
wrapper: {},
company: {
flex: 1,
flexDirection: "row",
// backgroundColor:'red',
color: "black"
},
wrapper: {},
company: {
flex: 1,
flexDirection: "row",
// backgroundColor:'red',
color: "black"
},
companyLogoContainer: {
flex: 1,
justifyContent: "center",
width: "60%",
// backgroundColor:'white',
margin: 20
},
aboutCompany: {
width: SCREEN_WIDTH,
flex: 1,
justifyContent: "center",
alignItems: "center"
}
companyLogoContainer: {
flex: 1,
justifyContent: "center",
width: "60%",
// backgroundColor:'white',
margin: 20
},
aboutCompany: {
width: SCREEN_WIDTH,
flex: 1,
justifyContent: "center",
alignItems: "center"
}
});
function mapStateToProps(state, props) {
return {
token: state.apiReducer.token,
user: state.apiReducer.user,
logged: state.apiReducer.logged,
careerPath: state.apiReducer.careerPath,
sessionDetail: state.apiReducer.sessionDetail
};
return {
token: state.apiReducer.token,
user: state.apiReducer.user,
logged: state.apiReducer.logged,
careerPath: state.apiReducer.careerPath,
sessionDetail: state.apiReducer.sessionDetail
};
}
function mapDispatchToProps(dispatch) {
return bindActionCreators(Actions, dispatch);
return bindActionCreators(Actions, dispatch);
}
export default connect(
mapStateToProps,
mapDispatchToProps
mapStateToProps,
mapDispatchToProps
)(eventDetail);

View File

@ -7,219 +7,364 @@
import * as React from "react";
import {
View,
StyleSheet,
Dimensions,
Text,
Button,
ScrollView,
FlatList,
TouchableOpacity,
Image, TextInput
View,
StyleSheet,
Dimensions,
Text,
Button,
ScrollView,
FlatList,
TouchableOpacity,
Image,
TextInput
} from "react-native";
import {TabView, TabBar, SceneMap} from "react-native-tab-view";
import {Icon} from 'react-native-elements';
import { TabView, TabBar, SceneMap } from "react-native-tab-view";
import { Icon } from "react-native-elements";
import * as Actions from "../store/actions";
import {connect} from "react-redux";
import {bindActionCreators} from "redux";
import { connect } from "react-redux";
import { bindActionCreators } from "redux";
import FitImage from "react-native-fit-image";
import PTRView from "react-native-pull-to-refresh";
const SCREEN_WIDTH = Dimensions.get("window").width;
const SCREEN_HEIGHT = Dimensions.get("window").height;
import IconFA from "react-native-vector-icons/FontAwesome5";
class teamDetail extends React.Component {
componentDidMount() {
/* this.props.getEventLocsVisited(
this.props.team.id,
this.props.internalToken
);*/
componentDidMount() {
this.props.getEventLocsVisited(this.props.team.id, this.props.internalToken);
console.log(this.props.locais);
}
console.log(this.props.locais);
}
_alterTeamName = () => {
constructor(props) {
super(props);
this.state = {
nome: this.props.team.nome
};
}
_update = () => {
this.props.getEventLocsVisited(this.props.team.id, this.props.internalToken)
};
_alterTeamName = () => {};
render() {
const { navigate } = this.props.navigation;
render() {
const { navigate } = this.props.navigation;
return (
<ScrollView>
<View>
<View style={styles.container}>
<View style={{height: SCREEN_HEIGHT * 0.1, paddingBottom: 10}}>
<View style={styles.row}>
<View style={styles.leftRow}>
<TextInput style={[styles.headerText, {height: '100%', color: '#777'}]}
value={this.props.team.nome}
/>
<Text onPress={this._alterTeamName} style={[styles.headerText, {
fontSize: 10, textDecorationLine: 'underline', alignSelf: "center",
alignContent: "center", paddingLeft: 10
}]}>
Alterar
</Text>
</View>
<View style={styles.rightRow}>
<Icon
name='md-trophy'
type='ionicon'
color='#CC1A17'
style={{
alignSelf: "center",
alignContent: "center"
}}
/>
<Text style={styles.headerText}>
&nbsp; {this.props.team.pontos}
</Text>
</View>
</View>
</View>
<View style={{paddingBottom: 10}}>
<View style={styles.row}>
{this.props.team.membros &&
<FlatList
data={this.props.team.membros}
numColumns={6} // Número de colunas
renderItem={({item}) => (
<View style={styles.memberImage}>
<Image
style={{width: 50, height: 50}}
source={require('../assets/logo_black.jpg')}/>
<Text style={{
color: "#000"
}}>{item.fullName}</Text>
</View>
)}
/>}
</View>
</View>
<View style={{flex: 1, width: '100%',}}>
{this.props.locais &&
<FlatList
data={this.props.locais}
renderItem={({item}) => (
<TouchableOpacity onPress={() => navigate("eventDetail", {info: item, type: 'rally'})}>
<View style={styles.container}>
{/*Se bar estiver concluido, mostrar backgroundColor verde no container..*/}
<View style={{height: SCREEN_HEIGHT * 0.15, paddingBottom: 10}}>
<View style={styles.row}>
<View style={styles.leftRow}>
<Text>Foto Bar</Text>
</View>
<View style={styles.centerRow}>
<Text>{item.location.nome}</Text>
</View>
</View>
</View>
</View>
</TouchableOpacity>
)}
/>}
</View>
return (
<PTRView onRefresh={this._update}>
<ScrollView style={{ backgroundColor: "#eeeeee" }}>
<View>
<View style={styles.header}>
<View
style={{
backgroundColor: "#CC1A17",
flex: 1,
flexDirection: "row",
alignItems: "center",
alignContent: "center"
}}
>
{this.props.user.Code == this.props.team.cap.qRcode && (
<View
style={{
alignItems: "center",
alignSelf: "center",
width: "100%",
flex: 1,
flexDirection: "row"
}}
>
<View style={{ width: "80%" }}>
<TextInput
style={{
height: 40,
borderColor: "white",
borderWidth: 1,
color: "white",
margin: 10,
padding: 10,
borderRadius: 3,
fontSize: 15
}}
onChangeText={n => this.setState({ nome: n })}
value={this.state.nome}
/>
</View>
<TouchableOpacity
style={{
flex: 1,
flexDirection: "row",
width: "20%",
alignContent: "center",
alignItems: "center"
}}
>
<Text>Guardar</Text>
<IconFA name="user-edit" size={22} />
</TouchableOpacity>
</View>
)}
{this.props.user.Code != this.props.team.cap.qRcode && (
<View width={{ width: "100%", padding: 10 }}>
<Text
style={{
fontSize: 22,
fontWeight: "bold",
color: "#CC1A17",
textAlign: "center",
alignSelf: "center"
}}
>
{this.props.team.nome}
</Text>
</View>
)}
<View>
<Icon
name="md-trophy"
type="ionicon"
color="#CC1A17"
style={{
alignSelf: "center",
alignContent: "center"
}}
/>
<Text style={styles.headerText}>
&nbsp; {this.props.team.pontos}
</Text>
</View>
</ScrollView>
)
}
</View>
<View style={{ paddingBottom: 10 }}>
<View style={styles.row}>
{this.props.team.membros && (
<FlatList
data={this.props.team.membros}
numColumns={6} // Número de colunas
renderItem={({ item }) => (
<View style={styles.memberImage}>
<Image
style={{ width: 50, height: 50 }}
source={require("../assets/logo_black.jpg")}
/>
<Text
style={{
color: "#000"
}}
>
{item.fullName}
</Text>
</View>
)}
/>
)}
</View>
</View>
</View>
<View style={styles.container}>
<View style={{ flex: 1, width: "100%" }}>
{this.props.locais && (
<FlatList
data={this.props.locais}
renderItem={({ item }) => (
<TouchableOpacity
onPress={() =>
navigate("eventDetail", { info: item, type: "rally" })
}
>
<View style={{ margin: 10 }}>
<View
style={{
backgroundColor: "white",
flex: 1,
flexDirection: "row",
padding: 15
}}
>
{/*Se bar estiver concluido, mostrar backgroundColor verde no container..*/}
<View style={{ height: 120, width: 120 }}>
<FitImage
source={{
uri: item.location.squarePhoto
}}
/>
</View>
<View style={{ width: "65%" }}>
<Text
style={{
color: "#CC1A17",
fontWeight: "bold",
fontSize: 20,
marginLeft: 15
}}
>
{item.location.nome}
</Text>
<Text style={{ fontSize: 12, padding: 15 }}>
{item.location.desc}
</Text>
</View>
</View>
{item.complete && (
<View
style={{
backgroundColor: "#CC1A17",
flex: 1,
flexDirection: "row",
alignContent: "center",
alignItems: "center",
alignSelf: "center",
width: "100%",
paddingLeft: 15
}}
>
<Text
style={{
color: "white",
margin: 3,
textAlign: "center"
}}
>
Done
</Text>
<IconFA name="check" size={12} color={"white"} />
</View>
)}
</View>
</TouchableOpacity>
)}
/>
)}
</View>
</View>
</View>
</ScrollView>
</PTRView>
);
}
}
const styles = StyleSheet.create({
triangleLeft: {
width: 0,
height: 0,
backgroundColor: "#CC1A17",
borderStyle: "solid",
borderLeftWidth: 25,
borderRightWidth: 25,
borderBottomWidth: 50,
borderLeftColor: "transparent",
borderRightColor: "transparent",
borderBottomColor: "white",
backgroundColor: "#CC1A17",
transform: [{ rotate: "90deg" }]
},
triangleRight: {
width: 0,
height: 0,
backgroundColor: "#CC1A17",
borderStyle: "solid",
borderLeftWidth: 25,
borderRightWidth: 25,
borderBottomWidth: 50,
borderLeftColor: "transparent",
borderRightColor: "transparent",
borderBottomColor: "white",
backgroundColor: "#CC1A17",
transform: [{ rotate: "-90deg" }],
alignSelf: "flex-end"
},
header: {
margin: 0,
flex: 1,
flexGrow: 1,
flexDirection: "column"
},
container: {
margin: 10,
flex: 1,
flexGrow: 1,
flexDirection: "column"
},
container: {
margin: 10,
flex: 1,
flexGrow: 1,
flexDirection: "column"
row: {
flex: 1,
flexDirection: "row",
padding: 10,
backgroundColor: "white",
borderRadius: 0,
shadowColor: "#000",
shadowOffset: {
width: 0,
height: 2
},
shadowOpacity: 0.25,
shadowRadius: 3.84,
elevation: 3
},
row: {
flex: 1,
flexDirection: 'row',
padding: 10,
backgroundColor: "white",
borderRadius: 0,
shadowColor: "#000",
shadowOffset: {
width: 0,
height: 2
},
shadowOpacity: 0.25,
shadowRadius: 3.84,
elevation: 3
},
headerText: {
fontSize: 18,
color: "#CC1A17",
fontWeight: "bold"
},
headerText: {
fontSize: 18,
color: "#CC1A17",
fontWeight: "bold",
},
centerRow: {
alignItems: "center",
backgroundColor: "transparent",
flex: 3,
flexDirection: "column",
justifyContent: "center"
},
centerRow: {
alignItems: "center",
backgroundColor: "transparent",
flex: 3,
flexDirection: "column",
justifyContent: "center"
},
leftRow: {
backgroundColor: "transparent",
flex: 1,
flexDirection: "row",
justifyContent: "flex-start",
alignSelf: "center"
},
rightRow: {
alignItems: "flex-end",
backgroundColor: "transparent",
flex: 2,
flexDirection: "row",
justifyContent: "flex-end",
marginRight: 4,
alignSelf: "center"
},
memberImage: {
flex: 1,
marginRight: 4,
flexDirection: 'column',
alignItems: 'center',
backgroundColor: "transparent",
},
leftRow: {
backgroundColor: "transparent",
flex: 1,
flexDirection: "row",
justifyContent: "flex-start",
alignSelf: "center"
},
rightRow: {
alignItems: "flex-end",
backgroundColor: "transparent",
flex: 2,
flexDirection: "row",
justifyContent: "flex-end",
marginRight: 4,
alignSelf: "center"
},
memberImage: {
flex: 1,
marginRight: 4,
flexDirection: "column",
alignItems: "center",
backgroundColor: "transparent"
}
});
function mapStateToProps(state, props) {
return {
token: state.apiReducer.token,
user: state.apiReducer.user,
logged: state.apiReducer.logged,
userDetails: state.apiReducer.userDetails,
onHold: state.apiReducer.onHold,
bilhete: state.apiReducer.bilhete,
alimentacao: state.apiReducer.alimentacao,
alojamento: state.apiReducer.alojamento,
acesso: state.apiReducer.acesso,
team: state.apiReducer.team,
internalToken: state.apiReducer.internalToken,
eventsInternal: state.apiReducer.eventsInternal,
locais: state.apiReducer.locais
};
return {
token: state.apiReducer.token,
user: state.apiReducer.user,
team: state.apiReducer.team,
internalToken: state.apiReducer.internalToken,
eventsInternal: state.apiReducer.eventsInternal,
locais: state.apiReducer.locais
};
}
function mapDispatchToProps(dispatch) {
return bindActionCreators(Actions, dispatch);
return bindActionCreators(Actions, dispatch);
}
export default connect(
mapStateToProps,
mapDispatchToProps)(teamDetail);
mapStateToProps,
mapDispatchToProps
)(teamDetail);

View File

@ -77,12 +77,12 @@ export function getEventLocsVisited(teamId, tokenInternal) {
};
axios.defaults.baseURL = "https://api.enei.pt/api";
return dispatch => {
axios
.get(`/EventLocsVisited/t/${teamId}`)
.then(a => {
console.log("sucesso!");
console.log(a);
dispatch({
type: GET_LOCS_VISITED,
locais: a.data
@ -134,18 +134,39 @@ export function deleteTeam(data, tokenInternal) {
.then(a => {
console.log(a.data);
Alert.alert("SUCESSO!", "A equipa foi removida com sucesso");
axios
.get(`/api/Teams/u/${data.UserQr}`)
.then(a => {
console.log("sucesso!");
console.log(a);
dispatch({
type: GET_TEAM,
team: a.data
});
})
.catch(p => {
console.log(p);
dispatch({
type: GET_TEAM,
team: "none"
});
});
dispatch({
type: OPEN_MODAL
});
dispatch({
type: DELETE_TEAM
});
})
.catch(err => {
console.log(err);
Alert.alert("ERRO!", "Existiu um erro na remoção da equipa");
Alert.alert("ERRO!", "Existiu um erro na remoção da equipa!\nCertifica-te que removeste todos os elementos antes de apagar a equipa");
});
};
}
export function createTeam(team, tokenInternal) {
export function createTeam(team, tokenInternal,user) {
axios.defaults.baseURL = "https://api.enei.pt";
axios.defaults.headers.common = {
Authorization: `bearer ${tokenInternal}`
@ -157,6 +178,27 @@ export function createTeam(team, tokenInternal) {
.then(a => {
console.log(a.data);
Alert.alert("SUCESSO!", "A equipa foi criada com sucesso");
axios
.get(`/api/Teams/u/${user.Code}`)
.then(a => {
console.log("sucesso!");
console.log(a);
dispatch({
type: GET_TEAM,
team: a.data
});
})
.catch(p => {
console.log(p);
dispatch({
type: GET_TEAM,
team: "none"
});
});
dispatch({
type: OPEN_MODAL
});
dispatch({
type: CREATE_TEAM
});
@ -210,6 +252,25 @@ export function removeUserTeam(data, tokenInternal) {
console.log("sucesso!");
console.log(a.data);
Alert.alert("Sucesso!", "Elemento removido com sucesso!!");
axios
.get(`/api/Teams/u/${data.UserQR}`)
.then(a => {
console.log("sucesso!");
console.log(a);
dispatch({
type: GET_TEAM,
team: a.data
});
})
.catch(p => {
console.log(p);
dispatch({
type: GET_TEAM,
team: "none"
});
});
}
})
.catch(p => {
@ -223,7 +284,7 @@ export function removeUserTeam(data, tokenInternal) {
};
}
export function addUserTeam(data, tokenInternal) {
export function addUserTeam(data, tokenInternal,user) {
axios.defaults.headers.common = {
Authorization: `bearer ${tokenInternal}`
};
@ -236,7 +297,25 @@ export function addUserTeam(data, tokenInternal) {
console.log("sucesso!");
console.log(a.data);
Alert.alert("Sucesso!", "Elemento adicionado com sucesso!!");
}
axios
.get(`/api/Teams/u/${user.Code}`)
.then(a => {
console.log("sucesso!");
console.log(a);
dispatch({
type: GET_TEAM,
team: a.data
});
})
.catch(p => {
console.log(p);
dispatch({
type: GET_TEAM,
//team: "none"
});
});
})
.catch(p => {
console.log(p);
@ -247,7 +326,7 @@ export function addUserTeam(data, tokenInternal) {
type: OPEN_MODAL
});
};
add / member;
}
export function getUserTeam(user, tokenInternal) {
@ -261,10 +340,12 @@ export function getUserTeam(user, tokenInternal) {
.then(a => {
console.log("sucesso!");
console.log(a);
console.log("cenas aqui")
dispatch({
type: GET_TEAM,
team: a.data
});
})
.catch(p => {
console.log(p);
@ -1584,19 +1665,50 @@ export function getUserInfo(token) {
token: newToken.access_token
})
.then(a => {
dispatch({
type: LOGIN_INTERNAL,
internalToken: a.data.token
});
axios.defaults.headers.common = {
Authorization: `bearer ${a.data.token}`
};
axios.get(`/api/Teams/u/${obj.Code}`).then(a => {
console.log("sucesso!");
console.log(a);
axios.defaults.baseURL = "https://api.enei.pt";
axios.get(`/api/Teams/u/${obj.Code}`).then(v => {
console.log("sucesso cenas aqui!");
console.log(v);
axios.defaults.headers.common = {
Authorization: `bearer ${a.data.token}`
};
axios.defaults.baseURL = "https://api.enei.pt";
axios
.get(`api/EventLocsVisited/t/${v.data.id}`)
.then(c => {
console.log("sucesso!");
console.log(c);
dispatch({
type: GET_LOCS_VISITED,
locais: c.data
});
})
.catch(p => {
console.log(p);
Alert.alert("ERRO!", "erro a obter os locais visitados");
});
dispatch({
type: GET_TEAM,
team: a.data
team: v.data
});
});
var result = getE(obj, "", token);

View File

@ -119,7 +119,8 @@ const apiReducer = (state = apiState, action) => {
alojamento: action.payload.apiReducer.alojamento,
internalToken:"eyJhbGciOiJIUzUxMiIsInR5cCI6IkpXVCJ9.eyJuYW1laWQiOiIxIiwidW5pcXVlX25hbWUiOiJjZW5hIiwicm9sZSI6IkFkbWluIiwibmJmIjoxNTUyODcwODcwLCJleHAiOjE1NTU0NTkyNzAsImlhdCI6MTU1Mjg3MDg3MH0.wkBk-CUDMCaU-K9jI0pTRJ794IGCl-C9md39dMfHqa5zTf-gNpD76xEYea3PhIbW2dnUVgo0m1fxR1sW7k9LMg",
cromos: action.payload.apiReducer.cromos,
careerPath: action.payload.apiReducer.careerPath
careerPath: action.payload.apiReducer.careerPath,
locais: action.payload.apiReducer.locais
};
}

View File

@ -5,7 +5,6 @@
};
objectVersion = 46;
objects = {
/* Begin PBXBuildFile section */
00C302E51ABCBA2D00DB3ED1 /* libRCTActionSheet.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 00C302AC1ABCB8CE00DB3ED1 /* libRCTActionSheet.a */; };
00C302E71ABCBA2D00DB3ED1 /* libRCTGeolocation.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 00C302BA1ABCB90400DB3ED1 /* libRCTGeolocation.a */; };
@ -62,6 +61,9 @@
BE5EAC3A221B83CF00E92E5B /* Ionicons.ttf in Resources */ = {isa = PBXBuildFile; fileRef = BE302B75221B7C3B005626CF /* Ionicons.ttf */; };
BE5EAC41221B889900E92E5B /* libReactNativePermissions.a in Frameworks */ = {isa = PBXBuildFile; fileRef = BE5EAC40221B888C00E92E5B /* libReactNativePermissions.a */; };
E677346A94D54E90817979B0 /* libRNDeviceInfo-tvOS.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 3C4D43A092A4408B91B32E76 /* libRNDeviceInfo-tvOS.a */; };
95BB560D0FBE4259815182B3 /* libimageCropPicker.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 6DFE0E611CE9446B8B39E61E /* libimageCropPicker.a */; };
C4424512325C419A8C59B9B1 /* libRNImagePicker.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 75426ED753E94FDF955E27D9 /* libRNImagePicker.a */; };
36323C84F40A4AD98ED24867 /* libRNNetworkInfo.a in Frameworks */ = {isa = PBXBuildFile; fileRef = F17AA23BABD64924A34416D0 /* libRNNetworkInfo.a */; };
/* End PBXBuildFile section */
/* Begin PBXContainerItemProxy section */
@ -465,6 +467,12 @@
C00CE8A4E3B747F9816B91CF /* libBVLinearGradient.a */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 9; includeInIndex = 0; lastKnownFileType = archive.ar; path = libBVLinearGradient.a; sourceTree = "<group>"; };
C0906CC582484A7393F9B1F6 /* libAirMaps.a */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 9; includeInIndex = 0; lastKnownFileType = archive.ar; path = libAirMaps.a; sourceTree = "<group>"; };
EB0A5A258CBE4EEFAD3C358E /* libRNVectorIcons.a */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 9; includeInIndex = 0; lastKnownFileType = archive.ar; path = libRNVectorIcons.a; sourceTree = "<group>"; };
560B0A0D61754DCFA99F6FFB /* imageCropPicker.xcodeproj */ = {isa = PBXFileReference; name = "imageCropPicker.xcodeproj"; path = "../node_modules/react-native-image-crop-picker/ios/imageCropPicker.xcodeproj"; sourceTree = "<group>"; fileEncoding = undefined; lastKnownFileType = wrapper.pb-project; explicitFileType = undefined; includeInIndex = 0; };
6DFE0E611CE9446B8B39E61E /* libimageCropPicker.a */ = {isa = PBXFileReference; name = "libimageCropPicker.a"; path = "libimageCropPicker.a"; sourceTree = "<group>"; fileEncoding = undefined; lastKnownFileType = archive.ar; explicitFileType = undefined; includeInIndex = 0; };
ED5C7473CD764393A9F1944C /* RNImagePicker.xcodeproj */ = {isa = PBXFileReference; name = "RNImagePicker.xcodeproj"; path = "../node_modules/react-native-image-picker-m/ios/RNImagePicker.xcodeproj"; sourceTree = "<group>"; fileEncoding = undefined; lastKnownFileType = wrapper.pb-project; explicitFileType = undefined; includeInIndex = 0; };
75426ED753E94FDF955E27D9 /* libRNImagePicker.a */ = {isa = PBXFileReference; name = "libRNImagePicker.a"; path = "libRNImagePicker.a"; sourceTree = "<group>"; fileEncoding = undefined; lastKnownFileType = archive.ar; explicitFileType = undefined; includeInIndex = 0; };
293AF9FDDC2442BDBF3C2FE0 /* RNNetworkInfo.xcodeproj */ = {isa = PBXFileReference; name = "RNNetworkInfo.xcodeproj"; path = "../node_modules/react-native-network-info/ios/RNNetworkInfo.xcodeproj"; sourceTree = "<group>"; fileEncoding = undefined; lastKnownFileType = wrapper.pb-project; explicitFileType = undefined; includeInIndex = 0; };
F17AA23BABD64924A34416D0 /* libRNNetworkInfo.a */ = {isa = PBXFileReference; name = "libRNNetworkInfo.a"; path = "libRNNetworkInfo.a"; sourceTree = "<group>"; fileEncoding = undefined; lastKnownFileType = archive.ar; explicitFileType = undefined; includeInIndex = 0; };
/* End PBXFileReference section */
/* Begin PBXFrameworksBuildPhase section */
@ -499,6 +507,9 @@
69E1B84AE0DF486CB1B1D226 /* libBVLinearGradient.a in Frameworks */,
4EBB88037B054A508BF35245 /* libRNDeviceInfo.a in Frameworks */,
A52E07192CD249F7B10FDA66 /* libAirMaps.a in Frameworks */,
95BB560D0FBE4259815182B3 /* libimageCropPicker.a in Frameworks */,
C4424512325C419A8C59B9B1 /* libRNImagePicker.a in Frameworks */,
36323C84F40A4AD98ED24867 /* libRNNetworkInfo.a in Frameworks */,
);
runOnlyForDeploymentPostprocessing = 0;
};
@ -694,6 +705,9 @@
1908F5E093844AC5A143E888 /* BVLinearGradient.xcodeproj */,
5BA133418E6F4967BC5BC234 /* RNDeviceInfo.xcodeproj */,
A97F1617782E42EC83467F41 /* AirMaps.xcodeproj */,
560B0A0D61754DCFA99F6FFB /* imageCropPicker.xcodeproj */,
ED5C7473CD764393A9F1944C /* RNImagePicker.xcodeproj */,
293AF9FDDC2442BDBF3C2FE0 /* RNNetworkInfo.xcodeproj */,
);
name = Libraries;
sourceTree = "<group>";
@ -1530,6 +1544,9 @@
"$(SRCROOT)/../node_modules/react-native-linear-gradient/BVLinearGradient",
"$(SRCROOT)/../node_modules/react-native-device-info/ios/RNDeviceInfo",
"$(SRCROOT)..\node_modules\neact-native-mapslibios/**",
"$(SRCROOT)/../node_modules/react-native-image-crop-picker/ios/**",
"$(SRCROOT)/../node_modules/react-native-image-picker-m/ios",
"$(SRCROOT)/../node_modules/react-native-network-info/ios",
);
INFOPLIST_FILE = appTests/Info.plist;
IPHONEOS_DEPLOYMENT_TARGET = 9.0;
@ -1542,6 +1559,9 @@
"\"$(SRCROOT)/$(TARGET_NAME)\"",
"\"$(SRCROOT)/$(TARGET_NAME)\"",
"\"$(SRCROOT)/$(TARGET_NAME)\"",
"\"$(SRCROOT)/$(TARGET_NAME)\"",
"\"$(SRCROOT)/$(TARGET_NAME)\"",
"\"$(SRCROOT)/$(TARGET_NAME)\"",
);
OTHER_LDFLAGS = (
"-ObjC",
@ -1565,6 +1585,9 @@
"$(SRCROOT)/../node_modules/react-native-linear-gradient/BVLinearGradient",
"$(SRCROOT)/../node_modules/react-native-device-info/ios/RNDeviceInfo",
"$(SRCROOT)..\node_modules\neact-native-mapslibios/**",
"$(SRCROOT)/../node_modules/react-native-image-crop-picker/ios/**",
"$(SRCROOT)/../node_modules/react-native-image-picker-m/ios",
"$(SRCROOT)/../node_modules/react-native-network-info/ios",
);
INFOPLIST_FILE = appTests/Info.plist;
IPHONEOS_DEPLOYMENT_TARGET = 9.0;
@ -1577,6 +1600,9 @@
"\"$(SRCROOT)/$(TARGET_NAME)\"",
"\"$(SRCROOT)/$(TARGET_NAME)\"",
"\"$(SRCROOT)/$(TARGET_NAME)\"",
"\"$(SRCROOT)/$(TARGET_NAME)\"",
"\"$(SRCROOT)/$(TARGET_NAME)\"",
"\"$(SRCROOT)/$(TARGET_NAME)\"",
);
OTHER_LDFLAGS = (
"-ObjC",
@ -1601,6 +1627,9 @@
"$(SRCROOT)/../node_modules/react-native-linear-gradient/BVLinearGradient",
"$(SRCROOT)/../node_modules/react-native-device-info/ios/RNDeviceInfo",
"$(SRCROOT)..\node_modules\neact-native-mapslibios/**",
"$(SRCROOT)/../node_modules/react-native-image-crop-picker/ios/**",
"$(SRCROOT)/../node_modules/react-native-image-picker-m/ios",
"$(SRCROOT)/../node_modules/react-native-network-info/ios",
);
INFOPLIST_FILE = app/Info.plist;
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks";
@ -1627,6 +1656,9 @@
"$(SRCROOT)/../node_modules/react-native-linear-gradient/BVLinearGradient",
"$(SRCROOT)/../node_modules/react-native-device-info/ios/RNDeviceInfo",
"$(SRCROOT)..\node_modules\neact-native-mapslibios/**",
"$(SRCROOT)/../node_modules/react-native-image-crop-picker/ios/**",
"$(SRCROOT)/../node_modules/react-native-image-picker-m/ios",
"$(SRCROOT)/../node_modules/react-native-network-info/ios",
);
INFOPLIST_FILE = app/Info.plist;
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks";
@ -1660,6 +1692,9 @@
"$(SRCROOT)/../node_modules/react-native-linear-gradient/BVLinearGradient",
"$(SRCROOT)/../node_modules/react-native-device-info/ios/RNDeviceInfo",
"$(SRCROOT)..\node_modules\neact-native-mapslibios/**",
"$(SRCROOT)/../node_modules/react-native-image-crop-picker/ios/**",
"$(SRCROOT)/../node_modules/react-native-image-picker-m/ios",
"$(SRCROOT)/../node_modules/react-native-network-info/ios",
);
INFOPLIST_FILE = "app-tvOS/Info.plist";
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks";
@ -1671,6 +1706,9 @@
"\"$(SRCROOT)/$(TARGET_NAME)\"",
"\"$(SRCROOT)/$(TARGET_NAME)\"",
"\"$(SRCROOT)/$(TARGET_NAME)\"",
"\"$(SRCROOT)/$(TARGET_NAME)\"",
"\"$(SRCROOT)/$(TARGET_NAME)\"",
"\"$(SRCROOT)/$(TARGET_NAME)\"",
);
OTHER_LDFLAGS = (
"-ObjC",
@ -1703,6 +1741,9 @@
"$(SRCROOT)/../node_modules/react-native-linear-gradient/BVLinearGradient",
"$(SRCROOT)/../node_modules/react-native-device-info/ios/RNDeviceInfo",
"$(SRCROOT)..\node_modules\neact-native-mapslibios/**",
"$(SRCROOT)/../node_modules/react-native-image-crop-picker/ios/**",
"$(SRCROOT)/../node_modules/react-native-image-picker-m/ios",
"$(SRCROOT)/../node_modules/react-native-network-info/ios",
);
INFOPLIST_FILE = "app-tvOS/Info.plist";
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks";
@ -1714,6 +1755,9 @@
"\"$(SRCROOT)/$(TARGET_NAME)\"",
"\"$(SRCROOT)/$(TARGET_NAME)\"",
"\"$(SRCROOT)/$(TARGET_NAME)\"",
"\"$(SRCROOT)/$(TARGET_NAME)\"",
"\"$(SRCROOT)/$(TARGET_NAME)\"",
"\"$(SRCROOT)/$(TARGET_NAME)\"",
);
OTHER_LDFLAGS = (
"-ObjC",
@ -1744,6 +1788,9 @@
"$(SRCROOT)/../node_modules/react-native-linear-gradient/BVLinearGradient",
"$(SRCROOT)/../node_modules/react-native-device-info/ios/RNDeviceInfo",
"$(SRCROOT)..\node_modules\neact-native-mapslibios/**",
"$(SRCROOT)/../node_modules/react-native-image-crop-picker/ios/**",
"$(SRCROOT)/../node_modules/react-native-image-picker-m/ios",
"$(SRCROOT)/../node_modules/react-native-network-info/ios",
);
INFOPLIST_FILE = "app-tvOSTests/Info.plist";
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks";
@ -1755,6 +1802,9 @@
"\"$(SRCROOT)/$(TARGET_NAME)\"",
"\"$(SRCROOT)/$(TARGET_NAME)\"",
"\"$(SRCROOT)/$(TARGET_NAME)\"",
"\"$(SRCROOT)/$(TARGET_NAME)\"",
"\"$(SRCROOT)/$(TARGET_NAME)\"",
"\"$(SRCROOT)/$(TARGET_NAME)\"",
);
OTHER_LDFLAGS = (
"-ObjC",
@ -1785,6 +1835,9 @@
"$(SRCROOT)/../node_modules/react-native-linear-gradient/BVLinearGradient",
"$(SRCROOT)/../node_modules/react-native-device-info/ios/RNDeviceInfo",
"$(SRCROOT)..\node_modules\neact-native-mapslibios/**",
"$(SRCROOT)/../node_modules/react-native-image-crop-picker/ios/**",
"$(SRCROOT)/../node_modules/react-native-image-picker-m/ios",
"$(SRCROOT)/../node_modules/react-native-network-info/ios",
);
INFOPLIST_FILE = "app-tvOSTests/Info.plist";
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks";
@ -1796,6 +1849,9 @@
"\"$(SRCROOT)/$(TARGET_NAME)\"",
"\"$(SRCROOT)/$(TARGET_NAME)\"",
"\"$(SRCROOT)/$(TARGET_NAME)\"",
"\"$(SRCROOT)/$(TARGET_NAME)\"",
"\"$(SRCROOT)/$(TARGET_NAME)\"",
"\"$(SRCROOT)/$(TARGET_NAME)\"",
);
OTHER_LDFLAGS = (
"-ObjC",

View File

@ -4,7 +4,7 @@
<dict>
<key>UIAppFonts</key>
<array>
<string></string>
<string/>
<string>FontAwesome5_Solid.ttf</string>
<string>FontAwesome5_Regular.ttf</string>
<string>FontAwesome5_Brands.ttf</string>
@ -13,7 +13,7 @@
<string>Ionicons.ttf</string>
</array>
<key>LSApplicationCategoryType</key>
<string></string>
<string/>
<key>CFBundleDisplayName</key>
<string>app</string>
<key>CFBundleExecutable</key>
@ -48,7 +48,7 @@
</dict>
</dict>
<key>NSLocationWhenInUseUsageDescription</key>
<string></string>
<string/>
<key>UILaunchStoryboardName</key>
<string>LaunchScreen</string>
<key>UIRequiredDeviceCapabilities</key>

15
App/package-lock.json generated
View File

@ -7942,6 +7942,11 @@
}
}
},
"react-native-image-crop-picker": {
"version": "0.23.0",
"resolved": "https://registry.npmjs.org/react-native-image-crop-picker/-/react-native-image-crop-picker-0.23.0.tgz",
"integrity": "sha512-BmfP246feY+sElYArAR7/DGRT2kFCTvAdiBKcIH8sA7UbUNy2eGAZsXBZWtt917wm+RuhW98CoAsnKB3iH9IvQ=="
},
"react-native-image-overlay": {
"version": "0.1.2",
"resolved": "https://registry.npmjs.org/react-native-image-overlay/-/react-native-image-overlay-0.1.2.tgz",
@ -7950,6 +7955,16 @@
"prop-types": "^15.6.1"
}
},
"react-native-image-picker": {
"version": "0.28.0",
"resolved": "https://registry.npmjs.org/react-native-image-picker/-/react-native-image-picker-0.28.0.tgz",
"integrity": "sha512-lQfdOyC1mQ/pvfEaUGdoodO1A1clg9kf6YC1WdbWhA6XK+joBd9GQYf8SaCf6/7vM25U4ib+6ux4yvnrS1pOqQ=="
},
"react-native-image-picker-m": {
"version": "0.26.8",
"resolved": "https://registry.npmjs.org/react-native-image-picker-m/-/react-native-image-picker-m-0.26.8.tgz",
"integrity": "sha512-I9kcz7EL79KfmC+nAiEM5qzC14pj4AqrpqToXp008D0WSwpvzb2XFtwuZQChioK+HT6qkple50Jj8AYskJFIQg=="
},
"react-native-ionicons": {
"version": "4.5.5",
"resolved": "https://registry.npmjs.org/react-native-ionicons/-/react-native-ionicons-4.5.5.tgz",

View File

@ -27,7 +27,10 @@
"react-native-elements": "^1.0.0",
"react-native-fit-image": "^1.5.4",
"react-native-gesture-handler": "^1.0.15",
"react-native-image-crop-picker": "^0.23.0",
"react-native-image-overlay": "^0.1.2",
"react-native-image-picker": "^0.28.0",
"react-native-image-picker-m": "^0.26.8",
"react-native-ionicons": "^4.5.5",
"react-native-linear-gradient": "^2.5.3",
"react-native-loader": "^1.2.1",