final app
326
App/app/App.js
|
@ -16,7 +16,7 @@ import {
|
|||
TouchableOpacity,
|
||||
TextInput,
|
||||
NetInfo,
|
||||
Animated
|
||||
Animated, Linking,
|
||||
} from "react-native";
|
||||
|
||||
import { bindActionCreators } from "redux";
|
||||
|
@ -34,12 +34,12 @@ import Modal from "react-native-modal";
|
|||
import Router from "./Router";
|
||||
|
||||
import Icon from "react-native-vector-icons/Ionicons";
|
||||
|
||||
import IconFA from "react-native-vector-icons/FontAwesome5"
|
||||
const SCREEN_HEIGHT = Dimensions.get("window").height;
|
||||
const SCREEN_WIDTH = Dimensions.get("window").width;
|
||||
|
||||
import Swiper from "react-native-swiper";
|
||||
import resetPassword from "./screens/resetPassword";
|
||||
//import resetPassword from "./screens/resetPassword";
|
||||
var TimerMixin = require("react-timer-mixin");
|
||||
|
||||
function handleConnectivityChange() {
|
||||
|
@ -48,7 +48,7 @@ function handleConnectivityChange() {
|
|||
|
||||
class App extends Component {
|
||||
|
||||
|
||||
|
||||
|
||||
handleConnectivityChange = isConnected => {
|
||||
this.setState({ isConnected });
|
||||
|
@ -88,8 +88,8 @@ class App extends Component {
|
|||
userDetails: { username: "", password: "" },
|
||||
isConnected: true,
|
||||
modalOpen: false,
|
||||
modalResetPassword:false,
|
||||
resetText:''
|
||||
modalResetPassword: false,
|
||||
resetText: ''
|
||||
};
|
||||
}
|
||||
_print = () => {
|
||||
|
@ -105,13 +105,13 @@ class App extends Component {
|
|||
|
||||
componentDidMount() {
|
||||
//this.props.hold();
|
||||
|
||||
|
||||
|
||||
|
||||
this.setState({ isModalVisible: false });
|
||||
//verifica se o utilizador tem token guardado
|
||||
this.props.checkUser(this.props.token);
|
||||
|
||||
|
||||
}
|
||||
componentWillUnmount() {
|
||||
NetInfo.isConnected.removeEventListener(
|
||||
|
@ -119,14 +119,14 @@ class App extends Component {
|
|||
this.handleConnectivityChange
|
||||
);
|
||||
}
|
||||
_toggle=()=>{
|
||||
this.setState({modalResetPassword:false})
|
||||
_toggle = () => {
|
||||
this.setState({ modalResetPassword: false })
|
||||
}
|
||||
//faz call
|
||||
_reset=()=>{
|
||||
_reset = () => {
|
||||
//fecha modal
|
||||
this.props.resetPassword(this.props.token,this.state.resetText),
|
||||
this.setState({modalResetPassword:false})
|
||||
this.props.resetPassword(this.props.token, this.state.resetText),
|
||||
this.setState({ modalResetPassword: false })
|
||||
//faz call
|
||||
}
|
||||
|
||||
|
@ -148,8 +148,8 @@ class App extends Component {
|
|||
};
|
||||
|
||||
render() {
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
if (!this.props.logged && this.props.onHold) {
|
||||
|
@ -167,69 +167,69 @@ class App extends Component {
|
|||
return <Router />;
|
||||
}
|
||||
return (
|
||||
|
||||
|
||||
<View style={styles.slide2}>
|
||||
|
||||
|
||||
<Modal
|
||||
isVisible={this.props.UI_loginScannerActive}
|
||||
onBackdropPress={this._toggle}
|
||||
onBackButtonPress={this._toggle}
|
||||
animationInTiming={1100}
|
||||
animationOutTiming={1100}
|
||||
style={{marginTop:-20}}
|
||||
>
|
||||
|
||||
<QRCodeScanner
|
||||
onRead={this.onSuccess}
|
||||
|
||||
cameraStyle={styles.cameraContainer}
|
||||
showMarker={true}
|
||||
/>
|
||||
<Button
|
||||
onPress={this.props.closeLoginQRScan}
|
||||
title={"Fechar Scan"}
|
||||
color={"#CC1A17"}
|
||||
></Button>
|
||||
<Text style={{textAlign:'center', fontSize:12, margin:10,marginBottom:5, color:'white'}}>
|
||||
Sim, o quadrado não está centrado. Era só para testar a tua atenção!
|
||||
isVisible={this.props.UI_loginScannerActive}
|
||||
onBackdropPress={this._toggle}
|
||||
onBackButtonPress={this._toggle}
|
||||
animationInTiming={1100}
|
||||
animationOutTiming={1100}
|
||||
style={{ marginTop: -20 }}
|
||||
>
|
||||
|
||||
<QRCodeScanner
|
||||
onRead={this.onSuccess}
|
||||
|
||||
cameraStyle={styles.cameraContainer}
|
||||
showMarker={true}
|
||||
/>
|
||||
<Button
|
||||
onPress={this.props.closeLoginQRScan}
|
||||
title={"Fechar Scan"}
|
||||
color={"#CC1A17"}
|
||||
></Button>
|
||||
<Text style={{ textAlign: 'center', fontSize: 12, margin: 10, marginBottom: 5, color: 'white' }}>
|
||||
Sim, o quadrado não está centrado. Era só para testar a tua atenção!
|
||||
</Text>
|
||||
|
||||
|
||||
|
||||
</Modal>
|
||||
|
||||
|
||||
|
||||
</Modal>
|
||||
<Modal
|
||||
isVisible={this.state.modalResetPassword}
|
||||
onBackdropPress={this._toggle}
|
||||
onBackButtonPress={this._toggle}
|
||||
animationInTiming={1100}
|
||||
animationOutTiming={1100}
|
||||
>
|
||||
|
||||
<View style={{ backgroundColor: "white" , padding:20,paddingBottom:0, alignItems:'center'}}>
|
||||
<View>
|
||||
<Text style={{textAlign:'center',fontSize:23, fontWeight:'bold', color:'#CC1A17', margin:30}}>Reset Password</Text>
|
||||
<Text style={{textAlign:'center', }}>Deves introduzir o email com o qual efectuaste a compra do bilhete.</Text>
|
||||
<TextInput
|
||||
style={styles.resetPassword}
|
||||
onFocus={this._print}
|
||||
maxLength={50}
|
||||
blurOnSubmit={true}
|
||||
|
||||
onChangeText={r => this.setState({ resetText:r })}
|
||||
clearButtonMode="always"
|
||||
value={this.state.resetText}
|
||||
clearTextOnFocus={true}
|
||||
onSubmitEditing={Keyboard.dismiss}
|
||||
placeholder="Email ou Qr code"
|
||||
/>
|
||||
|
||||
<Button
|
||||
onPress={this._reset}
|
||||
title={"Enviar"}
|
||||
color={"#CC1A17"}
|
||||
></Button>
|
||||
<Text style={{textAlign:'center', fontSize:12, margin:10,marginBottom:5}}> Caso tenhas problemas com este processo deves contactar a comissão organizadora atravês do email geral.</Text>
|
||||
|
||||
>
|
||||
|
||||
<View style={{ backgroundColor: "white", padding: 20, paddingBottom: 0, alignItems: 'center' }}>
|
||||
<View>
|
||||
<Text style={{ textAlign: 'center', fontSize: 23, fontWeight: 'bold', color: '#CC1A17', margin: 30 }}>Reset Password</Text>
|
||||
<Text style={{ textAlign: 'center', }}>Deves introduzir o email com o qual efectuaste a compra do bilhete.</Text>
|
||||
<TextInput
|
||||
style={styles.resetPassword}
|
||||
onFocus={this._print}
|
||||
maxLength={50}
|
||||
blurOnSubmit={true}
|
||||
|
||||
onChangeText={r => this.setState({ resetText: r })}
|
||||
clearButtonMode="always"
|
||||
value={this.state.resetText}
|
||||
clearTextOnFocus={true}
|
||||
onSubmitEditing={Keyboard.dismiss}
|
||||
placeholder="Email ou Qr code"
|
||||
/>
|
||||
|
||||
<Button
|
||||
onPress={this._reset}
|
||||
title={"Enviar"}
|
||||
color={"#CC1A17"}
|
||||
></Button>
|
||||
<Text style={{ textAlign: 'center', fontSize: 12, margin: 10, marginBottom: 5 }}> Caso tenhas problemas com este processo deves contactar a comissão organizadora atravês do email geral.</Text>
|
||||
|
||||
</View>
|
||||
</View>
|
||||
</Modal>
|
||||
|
@ -239,7 +239,7 @@ class App extends Component {
|
|||
|
||||
justifyContent: "center",
|
||||
alignItems: "center",
|
||||
margin:20
|
||||
margin: 20
|
||||
}}
|
||||
>
|
||||
<Image
|
||||
|
@ -247,83 +247,107 @@ class App extends Component {
|
|||
source={require("./assets/img/logo2.png")}
|
||||
/>
|
||||
</View>
|
||||
{!this.props.loadingLogin &&
|
||||
<View styles={styles.loginContainer}>
|
||||
<View style={styles.inputSection}>
|
||||
{!this.props.loadingLogin &&
|
||||
<View styles={styles.loginContainer}>
|
||||
<View style={styles.inputSection}>
|
||||
<TextInput
|
||||
style={styles.input}
|
||||
placeholder={this.state.username}
|
||||
onChangeText={searchString => {
|
||||
this.setState({ username: searchString });
|
||||
}}
|
||||
maxLength={15}
|
||||
underlineColorAndroid="transparent"
|
||||
/>
|
||||
<TouchableOpacity onPress={this._scanQr}>
|
||||
<View style={styles.scanQR}>
|
||||
<Icon
|
||||
style={styles.searchIcon}
|
||||
name="ios-qr-scanner"
|
||||
size={40}
|
||||
color="#000"
|
||||
/>
|
||||
|
||||
</View>
|
||||
</TouchableOpacity>
|
||||
</View>
|
||||
|
||||
<TextInput
|
||||
style={styles.input}
|
||||
placeholder={this.state.username}
|
||||
onChangeText={searchString => {
|
||||
this.setState({ username:searchString });
|
||||
}}
|
||||
maxLength={15}
|
||||
underlineColorAndroid="transparent"
|
||||
style={styles.passwordInput}
|
||||
onFocus={this._print}
|
||||
maxLength={10}
|
||||
blurOnSubmit={true}
|
||||
secureTextEntry={true}
|
||||
onChangeText={text => this.setState({ text })}
|
||||
clearButtonMode="always"
|
||||
value={this.state.text}
|
||||
clearTextOnFocus={true}
|
||||
onSubmitEditing={Keyboard.dismiss}
|
||||
placeholder="Password"
|
||||
/>
|
||||
<TouchableOpacity onPress={this._scanQr}>
|
||||
<View style={styles.scanQR}>
|
||||
<Icon
|
||||
style={styles.searchIcon}
|
||||
name="ios-qr-scanner"
|
||||
size={40}
|
||||
color="#000"
|
||||
/>
|
||||
|
||||
{!this.props.loadingLogin &&
|
||||
<View style={{ alignItems: 'center', margin: 20 }}>
|
||||
<TouchableOpacity onPress={this._tryLogin} style={{ backgroundColor: '#CC1A17', borderRadius: 3 }}>
|
||||
<Text style={{ color: 'white', fontSize: 20, margin: 10, width: 150, textAlign: 'center', }}>Login</Text>
|
||||
</TouchableOpacity>
|
||||
</View>
|
||||
</TouchableOpacity>
|
||||
</View>
|
||||
}
|
||||
|
||||
<TextInput
|
||||
style={styles.passwordInput}
|
||||
onFocus={this._print}
|
||||
maxLength={10}
|
||||
blurOnSubmit={true}
|
||||
secureTextEntry={true}
|
||||
onChangeText={text => this.setState({ text })}
|
||||
clearButtonMode="always"
|
||||
value={this.state.text}
|
||||
clearTextOnFocus={true}
|
||||
onSubmitEditing={Keyboard.dismiss}
|
||||
placeholder="Password"
|
||||
/>
|
||||
{ !this.props.loadingLogin &&
|
||||
<View style={{alignItems:'center', margin:20}}>
|
||||
<TouchableOpacity onPress={this._tryLogin} style={{backgroundColor:'#CC1A17',borderRadius:3}}>
|
||||
<Text style={{color:'white', fontSize:20, margin:10, width:150,textAlign:'center',}}>Login</Text>
|
||||
</TouchableOpacity>
|
||||
</View>
|
||||
}
|
||||
|
||||
</View>
|
||||
}{
|
||||
this.props.loadingLogin &&
|
||||
<View style={{margin:100}}>
|
||||
<ActivityIndicator size="large" color="#CC1A17" />
|
||||
</View>
|
||||
}
|
||||
</View>
|
||||
}{
|
||||
this.props.loadingLogin &&
|
||||
<View style={{ margin: 100 }}>
|
||||
<ActivityIndicator size="large" color="#CC1A17" />
|
||||
</View>
|
||||
}
|
||||
<View style={styles.buttons}>
|
||||
<TouchableOpacity style={styles.button}>
|
||||
<TouchableOpacity style={styles.button} onPress={() => {
|
||||
Linking.canOpenURL("https://www.facebook.com/ENEIConf/").then(supported => {
|
||||
if (supported) {
|
||||
Linking.openURL("https://www.facebook.com/ENEIConf/");
|
||||
} else {
|
||||
|
||||
}
|
||||
});
|
||||
}}>
|
||||
<Icon name="logo-facebook" size={40} />
|
||||
</TouchableOpacity>
|
||||
<TouchableOpacity style={styles.button}>
|
||||
<Icon name="logo-instagram" size={40} />
|
||||
</TouchableOpacity>
|
||||
<TouchableOpacity style={styles.button}>
|
||||
<Icon name="md-heart" size={40} />
|
||||
</TouchableOpacity>
|
||||
</View>
|
||||
<View style={styles.footer}>
|
||||
<View style={styles.textRow}>
|
||||
<RkText rkType="primary3">Não sabes a password?</RkText>
|
||||
<RkButton rkType="clear" onPress={this.onSignUpButtonPressed}>
|
||||
<TouchableOpacity onPress={() => {this.setState({modalResetPassword:true})}}>
|
||||
<RkText style={{ color: "#CC1A17", fontWeight:'bold' }} kType="header6">
|
||||
Reset Password
|
||||
<TouchableOpacity style={styles.button} onPress={() => {
|
||||
Linking.canOpenURL("https://www.instagram.com/eneiconf/").then(supported => {
|
||||
if (supported) {
|
||||
Linking.openURL("https://www.instagram.com/eneiconf/");
|
||||
} else {
|
||||
|
||||
}
|
||||
});
|
||||
}}>
|
||||
<Icon name="logo-instagram" size={40} />
|
||||
</TouchableOpacity>
|
||||
<TouchableOpacity style={styles.button} onPress={() => {
|
||||
Linking.canOpenURL("https://enei.pt").then(supported => {
|
||||
if (supported) {
|
||||
Linking.openURL("https://enei.pt");
|
||||
} else {
|
||||
|
||||
}
|
||||
});
|
||||
}}>
|
||||
<IconFA name="globe" size={35}/>
|
||||
</TouchableOpacity>
|
||||
</View>
|
||||
<View style={styles.footer}>
|
||||
<View style={styles.textRow}>
|
||||
<RkText rkType="primary3">Não sabes a password?</RkText>
|
||||
<RkButton rkType="clear" onPress={this.onSignUpButtonPressed}>
|
||||
<TouchableOpacity onPress={() => { this.setState({ modalResetPassword: true }) }}>
|
||||
<RkText style={{ color: "#CC1A17", fontWeight: 'bold' }} kType="header6">
|
||||
Reset Password
|
||||
</RkText>
|
||||
</TouchableOpacity>
|
||||
</RkButton>
|
||||
</View>
|
||||
</TouchableOpacity>
|
||||
</RkButton>
|
||||
</View>
|
||||
</View>
|
||||
</View >
|
||||
);
|
||||
}
|
||||
}
|
||||
|
@ -344,15 +368,15 @@ const overlayColor = "rgba(0,0,0,0.30)";
|
|||
|
||||
const styles = {
|
||||
cameraContainer: {
|
||||
height: Dimensions.get('window').height ,
|
||||
height: Dimensions.get('window').height,
|
||||
},
|
||||
resetPassword:{
|
||||
|
||||
|
||||
resetPassword: {
|
||||
|
||||
|
||||
|
||||
borderColor: "#bfbdbd",
|
||||
borderWidth: 1,
|
||||
margin:20,
|
||||
margin: 20,
|
||||
marginTop: 60,
|
||||
marginBottom: 60,
|
||||
|
||||
|
@ -367,7 +391,7 @@ const styles = {
|
|||
paddingLeft: SCREEN_WIDTH * 0.05
|
||||
},
|
||||
passwordInput: {
|
||||
|
||||
|
||||
|
||||
borderColor: "#bfbdbd",
|
||||
borderWidth: 1,
|
||||
|
@ -389,19 +413,19 @@ const styles = {
|
|||
},
|
||||
scanQR: {
|
||||
//flexDirection: 'row',
|
||||
flex:1,
|
||||
//paddingTop: 5,
|
||||
flex: 1,
|
||||
//paddingTop: 5,
|
||||
backgroundColor: 10,
|
||||
alignItems:'center',
|
||||
padding:5,
|
||||
paddingRight:15,
|
||||
alignItems: 'center',
|
||||
padding: 5,
|
||||
paddingRight: 15,
|
||||
|
||||
//width: 80,
|
||||
// paddingLeft: 10,
|
||||
// paddingLeft: 10,
|
||||
backgroundColor: "#CC1A17",
|
||||
borderBottomRightRadius: 3,
|
||||
borderTopRightRadius: 3,
|
||||
// height: "100%"
|
||||
// height: "100%"
|
||||
},
|
||||
inputSection: {
|
||||
flexDirection: "row",
|
||||
|
@ -578,7 +602,7 @@ mapStateToProps = (state, props) => {
|
|||
modalOpen: state.apiReducer.modalOpen,
|
||||
modalInfo: state.apiReducer.modalInfo,
|
||||
type: state.apiReducer.type,
|
||||
loadingLogin:state.apiReducer.loadingLogin
|
||||
loadingLogin: state.apiReducer.loadingLogin
|
||||
};
|
||||
};
|
||||
|
||||
|
|
|
@ -37,7 +37,7 @@ import editCalendar from './screens/editCalendar';
|
|||
import choosePath from './screens/choosePath';
|
||||
import calendarDetail from './screens/calendarDetail';
|
||||
|
||||
import resetPassword from './screens/resetPassword';
|
||||
//import resetPassword from './screens/resetPassword';
|
||||
|
||||
import eventDetail from './screens/eventDetail';
|
||||
|
||||
|
@ -227,9 +227,7 @@ const Stack = createStackNavigator({
|
|||
screen: teamDetail,
|
||||
},
|
||||
|
||||
resetPassword:{
|
||||
screen:resetPassword
|
||||
},
|
||||
|
||||
event:{
|
||||
screen: event
|
||||
}
|
||||
|
|
|
@ -53,7 +53,6 @@ class eventDetail extends React.Component {
|
|||
header: (
|
||||
<NavAbsolute
|
||||
navigation={navigation}
|
||||
// title={navigation.state.params.info.name}
|
||||
/>
|
||||
)
|
||||
});
|
||||
|
|
|
@ -1,29 +0,0 @@
|
|||
import React, {Component} from 'react';
|
||||
import {
|
||||
ActivityIndicator,
|
||||
AsyncStorage,
|
||||
Button,
|
||||
StatusBar,
|
||||
StyleSheet,
|
||||
View,
|
||||
} from 'react-native';
|
||||
import {UtilStyles} from '../assets/styles'
|
||||
|
||||
export default class resetPassword extends Component {
|
||||
|
||||
constructor() {
|
||||
super();
|
||||
this._bootstrapAsync();
|
||||
}
|
||||
|
||||
|
||||
|
||||
// Render Loading
|
||||
render() {
|
||||
return (
|
||||
<View style={UtilStyles.containerLoading}>
|
||||
<Text>Reset Password</Text>
|
||||
</View>
|
||||
);
|
||||
}
|
||||
}
|
|
@ -89,10 +89,12 @@ class teamDetail extends React.Component {
|
|||
margin: 10,
|
||||
padding: 10,
|
||||
borderRadius: 3,
|
||||
fontSize: 15
|
||||
fontSize: 15,
|
||||
|
||||
}}
|
||||
onChangeText={n => this.setState({ nome: n })}
|
||||
value={this.state.nome}
|
||||
maxLength = {30}
|
||||
/>
|
||||
</View>
|
||||
|
||||
|
@ -104,6 +106,14 @@ class teamDetail extends React.Component {
|
|||
alignContent: "center",
|
||||
alignItems: "center"
|
||||
}}
|
||||
onPress={()=>{
|
||||
this.props.changeTeamName(this.props.internalToken, {
|
||||
TeamID:this.props.team.id,
|
||||
nome:this.state.nome,
|
||||
UserQR:this.props.user.Code,
|
||||
})
|
||||
|
||||
}}
|
||||
>
|
||||
<Text>Guardar</Text>
|
||||
<IconFA name="user-edit" size={22} />
|
||||
|
@ -153,7 +163,6 @@ class teamDetail extends React.Component {
|
|||
style={{ width: 50, height: 50 }}
|
||||
source={require("../assets/logo_black.jpg")}
|
||||
/>
|
||||
|
||||
</View>
|
||||
)}
|
||||
/>
|
||||
|
|
|
@ -34,6 +34,7 @@ import {
|
|||
LOGIN_INTERNAL,
|
||||
CHANGE_PASSWORD
|
||||
} from "./actionTypes"; //Import the actions types constant we defined in our actions
|
||||
var validator = require("email-validator");
|
||||
|
||||
import moment from "moment";
|
||||
|
||||
|
@ -59,7 +60,7 @@ export function scanQrCode(data, tokenInternal) {
|
|||
axios
|
||||
.post("/api/Scan", data)
|
||||
.then(a => {
|
||||
|
||||
|
||||
Alert.alert("SUCESSO!", "Cromo adicionado com sucesso!");
|
||||
dispatch({
|
||||
type: SCAN_QR
|
||||
|
@ -72,13 +73,50 @@ export function scanQrCode(data, tokenInternal) {
|
|||
};
|
||||
}
|
||||
|
||||
export function changeTeamName(){
|
||||
export function changeTeamName(tokenInternal, team) {
|
||||
|
||||
axios.defaults.headers.common = {
|
||||
Authorization: `bearer ${tokenInternal}`
|
||||
};
|
||||
axios.defaults.baseURL = "https://api.enei.pt/api";
|
||||
return dispatch => {
|
||||
axios.post('/Teams/changename', team).then(p => {
|
||||
console.log(p);
|
||||
Alert.alert("Sucesso!!", "Nome alterado com sucesso");
|
||||
axios.defaults.baseURL = "https://api.enei.pt/api";
|
||||
axios.defaults.headers.common = {
|
||||
Authorization: `bearer ${tokenInternal}`
|
||||
};
|
||||
console.log("Token: ")
|
||||
console.log(tokenInternal)
|
||||
axios
|
||||
.get(`/Teams/u/${team.UserQR}`)
|
||||
.then(a => {
|
||||
console.log("sucesso!");
|
||||
console.log(a);
|
||||
console.log("cenas aqui")
|
||||
dispatch({
|
||||
type: GET_TEAM,
|
||||
team: a.data
|
||||
});
|
||||
|
||||
})
|
||||
.catch(p => {
|
||||
console.log(p);
|
||||
|
||||
});
|
||||
|
||||
dispatch({
|
||||
type: OPEN_MODAL
|
||||
});
|
||||
|
||||
|
||||
})
|
||||
.catch(err => {
|
||||
Alert.alert("ERRO!", "Ocorreu um erro a alterar o nome da equipa")
|
||||
})
|
||||
|
||||
}
|
||||
}
|
||||
export function getEventLocsVisited(teamId, tokenInternal) {
|
||||
axios.defaults.headers.common = {
|
||||
|
@ -91,7 +129,7 @@ export function getEventLocsVisited(teamId, tokenInternal) {
|
|||
axios
|
||||
.get(`/EventLocsVisited/t/${teamId}`)
|
||||
.then(a => {
|
||||
|
||||
|
||||
dispatch({
|
||||
type: GET_LOCS_VISITED,
|
||||
locais: a.data
|
||||
|
@ -99,7 +137,7 @@ export function getEventLocsVisited(teamId, tokenInternal) {
|
|||
})
|
||||
.catch(p => {
|
||||
console.log(p);
|
||||
// Alert.alert("ERRO!", "erro a obter os locais visitados");
|
||||
// Alert.alert("ERRO!", "erro a obter os locais visitados");
|
||||
});
|
||||
};
|
||||
}
|
||||
|
@ -144,26 +182,26 @@ export function deleteTeam(data, tokenInternal) {
|
|||
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"
|
||||
});
|
||||
});
|
||||
.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: OPEN_MODAL
|
||||
});
|
||||
dispatch({
|
||||
type: DELETE_TEAM
|
||||
});
|
||||
|
@ -175,7 +213,7 @@ export function deleteTeam(data, tokenInternal) {
|
|||
};
|
||||
}
|
||||
|
||||
export function createTeam(team, tokenInternal,user) {
|
||||
export function createTeam(team, tokenInternal, user) {
|
||||
axios.defaults.baseURL = "https://api.enei.pt";
|
||||
axios.defaults.headers.common = {
|
||||
Authorization: `bearer ${tokenInternal}`
|
||||
|
@ -188,26 +226,26 @@ export function createTeam(team, tokenInternal,user) {
|
|||
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"
|
||||
});
|
||||
});
|
||||
.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: OPEN_MODAL
|
||||
});
|
||||
dispatch({
|
||||
type: CREATE_TEAM
|
||||
});
|
||||
|
@ -262,24 +300,24 @@ export function removeUserTeam(data, tokenInternal) {
|
|||
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"
|
||||
});
|
||||
});
|
||||
.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 => {
|
||||
|
@ -293,7 +331,7 @@ export function removeUserTeam(data, tokenInternal) {
|
|||
};
|
||||
}
|
||||
|
||||
export function addUserTeam(data, tokenInternal,user) {
|
||||
export function addUserTeam(data, tokenInternal, user) {
|
||||
axios.defaults.headers.common = {
|
||||
Authorization: `bearer ${tokenInternal}`
|
||||
};
|
||||
|
@ -306,25 +344,25 @@ export function addUserTeam(data, tokenInternal,user) {
|
|||
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"
|
||||
});
|
||||
});
|
||||
.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);
|
||||
|
@ -335,7 +373,7 @@ export function addUserTeam(data, tokenInternal,user) {
|
|||
type: OPEN_MODAL
|
||||
});
|
||||
};
|
||||
|
||||
|
||||
}
|
||||
|
||||
export function getUserTeam(user, tokenInternal) {
|
||||
|
@ -354,7 +392,7 @@ export function getUserTeam(user, tokenInternal) {
|
|||
type: GET_TEAM,
|
||||
team: a.data
|
||||
});
|
||||
|
||||
|
||||
})
|
||||
.catch(p => {
|
||||
console.log(p);
|
||||
|
@ -378,8 +416,8 @@ export function waitLogin() {
|
|||
};
|
||||
}
|
||||
|
||||
var getEAsync = function(user, careerPath, token) {
|
||||
return new Promise(function(resolve, reject) {
|
||||
var getEAsync = function (user, careerPath, token) {
|
||||
return new Promise(function (resolve, reject) {
|
||||
console.log("career path: ");
|
||||
var cenas = [];
|
||||
let events = [];
|
||||
|
@ -397,7 +435,7 @@ var getEAsync = function(user, careerPath, token) {
|
|||
};
|
||||
axios
|
||||
.get("/Attendee/AvailableSessions")
|
||||
.then(function(response) {
|
||||
.then(function (response) {
|
||||
// handle success
|
||||
console.log("available");
|
||||
console.log(response);
|
||||
|
@ -535,16 +573,16 @@ var getEAsync = function(user, careerPath, token) {
|
|||
day: result["15"][key].day
|
||||
});
|
||||
}
|
||||
a = _.sortBy(a, function(o) {
|
||||
a = _.sortBy(a, function (o) {
|
||||
return o.time;
|
||||
});
|
||||
b = _.sortBy(b, function(o) {
|
||||
b = _.sortBy(b, function (o) {
|
||||
return o.time;
|
||||
});
|
||||
c = _.sortBy(c, function(o) {
|
||||
c = _.sortBy(c, function (o) {
|
||||
return o.time;
|
||||
});
|
||||
d = _.sortBy(d, function(o) {
|
||||
d = _.sortBy(d, function (o) {
|
||||
return o.time;
|
||||
});
|
||||
|
||||
|
@ -563,7 +601,7 @@ var getEAsync = function(user, careerPath, token) {
|
|||
al: alojamento
|
||||
};
|
||||
})
|
||||
.catch(function(error) {
|
||||
.catch(function (error) {
|
||||
alert("Error a obter sessões disponíveis!!");
|
||||
console.log(error);
|
||||
});
|
||||
|
@ -574,8 +612,8 @@ var getEAsync = function(user, careerPath, token) {
|
|||
});
|
||||
};
|
||||
|
||||
var checkAndRefresh = function(token) {
|
||||
return new Promise(function(resolve, reject) {
|
||||
var checkAndRefresh = function (token) {
|
||||
return new Promise(function (resolve, reject) {
|
||||
//verificar se já expirou a validade do token
|
||||
if (token == undefined || token.access_token == undefined) {
|
||||
reject("user logged out");
|
||||
|
@ -632,7 +670,7 @@ var checkAndRefresh = function(token) {
|
|||
access_token: parsed.access_token,
|
||||
refresh_token: parsed.refresh_token,
|
||||
expirationDateToken:
|
||||
Math.round(new Date().getTime() / 1000) + (parsed.expires_in -2)
|
||||
Math.round(new Date().getTime() / 1000) + (parsed.expires_in - 2)
|
||||
};
|
||||
|
||||
console.log(parsed);
|
||||
|
@ -642,12 +680,12 @@ var checkAndRefresh = function(token) {
|
|||
} else {
|
||||
console.log(
|
||||
"Tempo restante token: " +
|
||||
Math.round(
|
||||
(token.expirationDateToken -
|
||||
Math.round(new Date().getTime() / 1000)) /
|
||||
60
|
||||
) +
|
||||
" Minutos"
|
||||
Math.round(
|
||||
(token.expirationDateToken -
|
||||
Math.round(new Date().getTime() / 1000)) /
|
||||
60
|
||||
) +
|
||||
" Minutos"
|
||||
);
|
||||
resolve(token);
|
||||
}
|
||||
|
@ -901,7 +939,7 @@ export function removeSession(user, token, idSession) {
|
|||
axios
|
||||
.get("/Attendee/AvailableSessions")
|
||||
|
||||
.then(function(response) {
|
||||
.then(function (response) {
|
||||
console.log(response);
|
||||
|
||||
var sessions = response.data;
|
||||
|
@ -940,7 +978,7 @@ export function removeSession(user, token, idSession) {
|
|||
getEvents(user, careerPath, token);
|
||||
});
|
||||
})
|
||||
.catch(function(error) {
|
||||
.catch(function (error) {
|
||||
alert("Erro a obter sessões disponíveis!!");
|
||||
|
||||
console.log(error);
|
||||
|
@ -994,7 +1032,7 @@ export function signSession(user, token, idSession) {
|
|||
axios
|
||||
.get("/Attendee/AvailableSessions")
|
||||
|
||||
.then(function(response) {
|
||||
.then(function (response) {
|
||||
console.log(response);
|
||||
|
||||
var sessions = response.data;
|
||||
|
@ -1039,7 +1077,7 @@ export function signSession(user, token, idSession) {
|
|||
});
|
||||
});
|
||||
})
|
||||
.catch(function(error) {
|
||||
.catch(function (error) {
|
||||
console.log(error);
|
||||
});
|
||||
} else {
|
||||
|
@ -1079,7 +1117,7 @@ export function getSessions(token) {
|
|||
|
||||
axios
|
||||
.get("/Attendee/AvailableSessions")
|
||||
.then(function(response) {
|
||||
.then(function (response) {
|
||||
var sessions = response.data;
|
||||
|
||||
var careerPath = getCareerPath(sessions);
|
||||
|
@ -1106,7 +1144,7 @@ export function getSessions(token) {
|
|||
//guests: response.data
|
||||
});
|
||||
})
|
||||
.catch(function(error) {
|
||||
.catch(function (error) {
|
||||
alert("Error a obter sessões disponíveis!!");
|
||||
console.log(error);
|
||||
});
|
||||
|
@ -1130,7 +1168,7 @@ export function getAvailableGuestlists(token) {
|
|||
};
|
||||
axios
|
||||
.get("/Attendee/AvailableGuestlists")
|
||||
.then(function(response) {
|
||||
.then(function (response) {
|
||||
// handle success
|
||||
console.log(response);
|
||||
dispatch({
|
||||
|
@ -1139,11 +1177,11 @@ export function getAvailableGuestlists(token) {
|
|||
token: newToken
|
||||
});
|
||||
})
|
||||
.catch(function(error) {
|
||||
.catch(function (error) {
|
||||
// handle error
|
||||
console.log(error);
|
||||
})
|
||||
.then(function() {
|
||||
.then(function () {
|
||||
// always executed
|
||||
});
|
||||
})
|
||||
|
@ -1167,7 +1205,7 @@ export function getAvailableGuestlists(token) {
|
|||
*/
|
||||
export function changeGuestList(token, guestID) {
|
||||
axios.defaults.baseURL = "https://tickets.enei.pt/internal/api";
|
||||
console.log("Guest ID: "+ guestID)
|
||||
console.log("Guest ID: " + guestID)
|
||||
return dispatch => {
|
||||
checkAndRefresh(token)
|
||||
.then(newToken => {
|
||||
|
@ -1179,15 +1217,15 @@ export function changeGuestList(token, guestID) {
|
|||
|
||||
axios
|
||||
.get(full)
|
||||
.then(function(response) {
|
||||
.then(function (response) {
|
||||
axios
|
||||
.get("/Attendee/AvailableSessions")
|
||||
|
||||
.then(function(response) {
|
||||
.then(function (response) {
|
||||
// handle success
|
||||
|
||||
//console.log(response);
|
||||
console.log("SUcesso a trocar para :"+ guestID)
|
||||
console.log("SUcesso a trocar para :" + guestID)
|
||||
var cenas = [];
|
||||
c = getCareerPath(response.data);
|
||||
const result = flow(
|
||||
|
@ -1213,18 +1251,18 @@ export function changeGuestList(token, guestID) {
|
|||
//guests: response.data
|
||||
});
|
||||
})
|
||||
.catch(function(error) {
|
||||
.catch(function (error) {
|
||||
alert("Error a obter sessões disponíveis!!");
|
||||
console.log(error);
|
||||
});
|
||||
})
|
||||
.catch(function(error) {
|
||||
.catch(function (error) {
|
||||
// handle error
|
||||
console.log(response);
|
||||
console.log(error);
|
||||
alert("Erro a mudar de career path");
|
||||
})
|
||||
.then(function() {
|
||||
.then(function () {
|
||||
// always executed
|
||||
});
|
||||
})
|
||||
|
@ -1267,7 +1305,7 @@ export function getAvailableSessions(token) {
|
|||
};
|
||||
axios
|
||||
.get("/Attendee/AvailableSessions")
|
||||
.then(function(response) {
|
||||
.then(function (response) {
|
||||
// handle success
|
||||
console.log(response);
|
||||
|
||||
|
@ -1286,7 +1324,7 @@ export function getAvailableSessions(token) {
|
|||
token: newToken
|
||||
});
|
||||
})
|
||||
.catch(function(error) {
|
||||
.catch(function (error) {
|
||||
alert("Error a obter sessões disponíveis!!");
|
||||
console.log(error);
|
||||
});
|
||||
|
@ -1375,7 +1413,7 @@ function getE(user, careerPath, token) {
|
|||
d = [];
|
||||
|
||||
//MEU DEUS QUE É ISTO???
|
||||
if (careerPath != undefined && careerPath.code =="IA" || careerPath.code=="WEB") {
|
||||
if (careerPath != undefined && careerPath.code == "IA" || careerPath.code == "WEB") {
|
||||
b.push({
|
||||
Id: 22,
|
||||
time: "13:30",
|
||||
|
@ -1425,7 +1463,7 @@ function getE(user, careerPath, token) {
|
|||
place: "Cantina do ISEC"
|
||||
});
|
||||
}
|
||||
if (careerPath != undefined && careerPath.code =="IOT" || careerPath.code =="NET") {
|
||||
if (careerPath != undefined && careerPath.code == "IOT" || careerPath.code == "NET") {
|
||||
b.push({
|
||||
Id: 22,
|
||||
time: "12:15",
|
||||
|
@ -1475,7 +1513,7 @@ function getE(user, careerPath, token) {
|
|||
place: "Cantina do ISEC"
|
||||
});
|
||||
}
|
||||
if (careerPath != undefined && careerPath.code =="DS" || careerPath.code=="MOB") {
|
||||
if (careerPath != undefined && careerPath.code == "DS" || careerPath.code == "MOB") {
|
||||
b.push({
|
||||
Id: 22,
|
||||
time: "12:45",
|
||||
|
@ -1525,7 +1563,7 @@ function getE(user, careerPath, token) {
|
|||
place: "Cantina do ISEC"
|
||||
});
|
||||
}
|
||||
|
||||
|
||||
a.push({
|
||||
Id: 48,
|
||||
time: "21:00",
|
||||
|
@ -1554,7 +1592,7 @@ function getE(user, careerPath, token) {
|
|||
description:
|
||||
"A sessão de abertura vai-se realizar no nosso auditório principal. Poderás ver a apresentação das várias atividades que irão decorrer no evento.",
|
||||
name: "Sessão de Abertura",
|
||||
|
||||
|
||||
Enrolled: 700,
|
||||
MaxAttendees: 300,
|
||||
day: "12",
|
||||
|
@ -1615,7 +1653,7 @@ function getE(user, careerPath, token) {
|
|||
Enrolled: result["12"][key].Enrolled,
|
||||
MaxAttendees: result["12"][key].MaxAttendees,
|
||||
day: result["12"][key].day,
|
||||
place:""
|
||||
place: ""
|
||||
});
|
||||
}
|
||||
|
||||
|
@ -1630,7 +1668,7 @@ function getE(user, careerPath, token) {
|
|||
Enrolled: result["13"][key].Enrolled,
|
||||
MaxAttendees: result["13"][key].MaxAttendees,
|
||||
day: result["13"][key].day,
|
||||
place:""
|
||||
place: ""
|
||||
});
|
||||
}
|
||||
for (let key in result["14"]) {
|
||||
|
@ -1644,7 +1682,7 @@ function getE(user, careerPath, token) {
|
|||
Enrolled: result["14"][key].Enrolled,
|
||||
MaxAttendees: result["14"][key].MaxAttendees,
|
||||
day: result["14"][key].day,
|
||||
place:""
|
||||
place: ""
|
||||
});
|
||||
}
|
||||
|
||||
|
@ -1662,16 +1700,16 @@ function getE(user, careerPath, token) {
|
|||
place: ""
|
||||
});
|
||||
}
|
||||
a = _.sortBy(a, function(o) {
|
||||
a = _.sortBy(a, function (o) {
|
||||
return o.time;
|
||||
});
|
||||
b = _.sortBy(b, function(o) {
|
||||
b = _.sortBy(b, function (o) {
|
||||
return o.time;
|
||||
});
|
||||
c = _.sortBy(c, function(o) {
|
||||
c = _.sortBy(c, function (o) {
|
||||
return o.time;
|
||||
});
|
||||
d = _.sortBy(d, function(o) {
|
||||
d = _.sortBy(d, function (o) {
|
||||
return o.time;
|
||||
});
|
||||
|
||||
|
@ -1705,6 +1743,36 @@ export function getEvents(user, careerPath, token) {
|
|||
};
|
||||
}
|
||||
|
||||
export function resetPassword(token, password) {
|
||||
var type = 0;
|
||||
axios.defaults.baseURL = "https://tickets.enei.pt/internal/api";
|
||||
|
||||
if (validator.validate(password)) {
|
||||
|
||||
type = 0 //
|
||||
|
||||
} else {
|
||||
|
||||
type = 1;
|
||||
|
||||
}
|
||||
|
||||
var type;
|
||||
|
||||
return dispatch => {
|
||||
axios
|
||||
.get(`/User/RecoverPassword?input=${password}+&type=${type}`)
|
||||
.then(function (response) {
|
||||
|
||||
Alert.alert("Sucesso!", "Foi enviado um email com o pedido de recuperação.");
|
||||
})
|
||||
.catch(() => {
|
||||
Alert.alert("Error!!", "Ocorreu um erro.")
|
||||
})
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
export function login(user, pass) {
|
||||
return dispatch => {
|
||||
console.log("user: " + user + " password: " + pass);
|
||||
|
@ -1779,7 +1847,7 @@ export function login(user, pass) {
|
|||
console.log(parsed)
|
||||
var obj = {
|
||||
access_token: parsed.access_token,
|
||||
expirationDateToken: Math.round(new Date().getTime() / 1000) + (parsed.expires_in-2),
|
||||
expirationDateToken: Math.round(new Date().getTime() / 1000) + (parsed.expires_in - 2),
|
||||
refresh_token: parsed.refresh_token,
|
||||
valid: true
|
||||
};
|
||||
|
@ -1824,7 +1892,7 @@ export function getUserInfo(token) {
|
|||
};
|
||||
|
||||
fetch("https://tickets.enei.pt/internal/api/Attendee/Detail", obj)
|
||||
.then(function(res) {
|
||||
.then(function (res) {
|
||||
let obj = JSON.parse(res._bodyText);
|
||||
console.log(obj);
|
||||
axios.defaults.baseURL = "https://api.enei.pt";
|
||||
|
@ -1844,7 +1912,7 @@ export function getUserInfo(token) {
|
|||
Authorization: `bearer ${a.data.token}`
|
||||
};
|
||||
|
||||
axios.defaults.baseURL = "https://api.enei.pt";
|
||||
axios.defaults.baseURL = "https://api.enei.pt";
|
||||
|
||||
axios.get(`/api/Teams/u/${obj.Code}`).then(v => {
|
||||
|
||||
|
@ -1855,26 +1923,26 @@ export function getUserInfo(token) {
|
|||
Authorization: `bearer ${a.data.token}`
|
||||
};
|
||||
axios.defaults.baseURL = "https://api.enei.pt";
|
||||
|
||||
|
||||
axios
|
||||
.get(`api/EventLocsVisited/t/${v.data.id}`)
|
||||
.then(c => {
|
||||
.get(`api / EventLocsVisited / t / ${v.data.id}`)
|
||||
.then(c => {
|
||||
|
||||
console.log("sucesso!");
|
||||
console.log("sucesso!");
|
||||
|
||||
console.log(c);
|
||||
|
||||
dispatch({
|
||||
type: GET_LOCS_VISITED,
|
||||
locais: c.data
|
||||
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");
|
||||
});
|
||||
|
||||
})
|
||||
.catch(p => {
|
||||
console.log(p);
|
||||
// Alert.alert("ERRO!", "erro a obter os locais visitados");
|
||||
});
|
||||
|
||||
|
||||
dispatch({
|
||||
type: GET_TEAM,
|
||||
team: v.data
|
||||
|
@ -1917,7 +1985,7 @@ export function getUserInfo(token) {
|
|||
token: newToken
|
||||
});
|
||||
})
|
||||
.catch(function(res) {
|
||||
.catch(function (res) {
|
||||
console.log("erro");
|
||||
// dispatch({ type: USER_INFO,onHold:false});
|
||||
alert("Erro a obter a informação pessoal.");
|
||||
|
|
|
@ -29,7 +29,8 @@ export {checkUser,
|
|||
deleteTeam,
|
||||
getCromos,
|
||||
getEventLocsVisited,
|
||||
scanQrCode
|
||||
scanQrCode,
|
||||
changeTeamName
|
||||
|
||||
} from "./api"
|
||||
|
||||
|
|
|
@ -5,6 +5,7 @@
|
|||
};
|
||||
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 */; };
|
||||
|
@ -35,10 +36,12 @@
|
|||
2D16E6881FA4F8E400B85C8A /* libReact.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 2D16E6891FA4F8E400B85C8A /* libReact.a */; };
|
||||
2DCD954D1E0B4F2C00145EB5 /* appTests.m in Sources */ = {isa = PBXBuildFile; fileRef = 00E356F21AD99517003FC87E /* appTests.m */; };
|
||||
2DF0FFEE2056DD460020B375 /* libReact.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 3DAD3EA31DF850E9000B6D8A /* libReact.a */; };
|
||||
36323C84F40A4AD98ED24867 /* libRNNetworkInfo.a in Frameworks */ = {isa = PBXBuildFile; fileRef = F17AA23BABD64924A34416D0 /* libRNNetworkInfo.a */; };
|
||||
4EBB88037B054A508BF35245 /* libRNDeviceInfo.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 0F42241E0235464C91B24049 /* libRNDeviceInfo.a */; };
|
||||
514DB1DF2E3B452F9EF272E3 /* libRNVectorIcons-tvOS.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 95B0A42B6CD8441E904E6EB9 /* libRNVectorIcons-tvOS.a */; };
|
||||
69E1B84AE0DF486CB1B1D226 /* libBVLinearGradient.a in Frameworks */ = {isa = PBXBuildFile; fileRef = C00CE8A4E3B747F9816B91CF /* libBVLinearGradient.a */; };
|
||||
832341BD1AAA6AB300B99B32 /* libRCTText.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 832341B51AAA6A8300B99B32 /* libRCTText.a */; };
|
||||
95BB560D0FBE4259815182B3 /* libimageCropPicker.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 6DFE0E611CE9446B8B39E61E /* libimageCropPicker.a */; };
|
||||
A52E07192CD249F7B10FDA66 /* libAirMaps.a in Frameworks */ = {isa = PBXBuildFile; fileRef = C0906CC582484A7393F9B1F6 /* libAirMaps.a */; };
|
||||
ADBDB9381DFEBF1600ED6528 /* libRCTBlob.a in Frameworks */ = {isa = PBXBuildFile; fileRef = ADBDB9271DFEBF0700ED6528 /* libRCTBlob.a */; };
|
||||
BE104176D74E47E9A369B15A /* libRNVectorIcons.a in Frameworks */ = {isa = PBXBuildFile; fileRef = EB0A5A258CBE4EEFAD3C358E /* libRNVectorIcons.a */; };
|
||||
|
@ -60,10 +63,8 @@
|
|||
BE5EAB86221B7D5400E92E5B /* Zocial.ttf in Resources */ = {isa = PBXBuildFile; fileRef = BE5EAB77221B7D5400E92E5B /* Zocial.ttf */; };
|
||||
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 */; };
|
||||
E677346A94D54E90817979B0 /* libRNDeviceInfo-tvOS.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 3C4D43A092A4408B91B32E76 /* libRNDeviceInfo-tvOS.a */; };
|
||||
/* End PBXBuildFile section */
|
||||
|
||||
/* Begin PBXContainerItemProxy section */
|
||||
|
@ -340,6 +341,27 @@
|
|||
remoteGlobalIDString = 358F4ED71D1E81A9004DF814;
|
||||
remoteInfo = RCTBlob;
|
||||
};
|
||||
B531CE5B224BE135002E8E5F /* PBXContainerItemProxy */ = {
|
||||
isa = PBXContainerItemProxy;
|
||||
containerPortal = 560B0A0D61754DCFA99F6FFB /* imageCropPicker.xcodeproj */;
|
||||
proxyType = 2;
|
||||
remoteGlobalIDString = 3400A8081CEB54A6008A0BC7;
|
||||
remoteInfo = imageCropPicker;
|
||||
};
|
||||
B531CE5E224BE135002E8E5F /* PBXContainerItemProxy */ = {
|
||||
isa = PBXContainerItemProxy;
|
||||
containerPortal = ED5C7473CD764393A9F1944C /* RNImagePicker.xcodeproj */;
|
||||
proxyType = 2;
|
||||
remoteGlobalIDString = 014A3B5C1C6CF33500B6D375;
|
||||
remoteInfo = RNImagePicker;
|
||||
};
|
||||
B531CE61224BE135002E8E5F /* PBXContainerItemProxy */ = {
|
||||
isa = PBXContainerItemProxy;
|
||||
containerPortal = 293AF9FDDC2442BDBF3C2FE0 /* RNNetworkInfo.xcodeproj */;
|
||||
proxyType = 2;
|
||||
remoteGlobalIDString = 045BEB3C1B52EA6A0013C1B9;
|
||||
remoteInfo = RNNetworkInfo;
|
||||
};
|
||||
BE302B6B221B7860005626CF /* PBXContainerItemProxy */ = {
|
||||
isa = PBXContainerItemProxy;
|
||||
containerPortal = BE302B67221B7860005626CF /* RNCamera.xcodeproj */;
|
||||
|
@ -434,13 +456,17 @@
|
|||
13B07FB71A68108700A75B9A /* main.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = main.m; path = app/main.m; sourceTree = "<group>"; };
|
||||
146833FF1AC3E56700842450 /* React.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = React.xcodeproj; path = "../node_modules/react-native/React/React.xcodeproj"; sourceTree = "<group>"; };
|
||||
1908F5E093844AC5A143E888 /* BVLinearGradient.xcodeproj */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 9; includeInIndex = 0; lastKnownFileType = "wrapper.pb-project"; name = BVLinearGradient.xcodeproj; path = "../node_modules/react-native-linear-gradient/BVLinearGradient.xcodeproj"; sourceTree = "<group>"; };
|
||||
293AF9FDDC2442BDBF3C2FE0 /* RNNetworkInfo.xcodeproj */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 9; includeInIndex = 0; lastKnownFileType = "wrapper.pb-project"; name = RNNetworkInfo.xcodeproj; path = "../node_modules/react-native-network-info/ios/RNNetworkInfo.xcodeproj"; sourceTree = "<group>"; };
|
||||
2D02E47B1E0B4A5D006451C7 /* app-tvOS.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = "app-tvOS.app"; sourceTree = BUILT_PRODUCTS_DIR; };
|
||||
2D02E4901E0B4A5D006451C7 /* app-tvOSTests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = "app-tvOSTests.xctest"; sourceTree = BUILT_PRODUCTS_DIR; };
|
||||
2D16E6891FA4F8E400B85C8A /* libReact.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; path = libReact.a; sourceTree = BUILT_PRODUCTS_DIR; };
|
||||
3C4D43A092A4408B91B32E76 /* libRNDeviceInfo-tvOS.a */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 9; includeInIndex = 0; lastKnownFileType = archive.ar; path = "libRNDeviceInfo-tvOS.a"; sourceTree = "<group>"; };
|
||||
560B0A0D61754DCFA99F6FFB /* imageCropPicker.xcodeproj */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 9; includeInIndex = 0; lastKnownFileType = "wrapper.pb-project"; name = imageCropPicker.xcodeproj; path = "../node_modules/react-native-image-crop-picker/ios/imageCropPicker.xcodeproj"; sourceTree = "<group>"; };
|
||||
5BA133418E6F4967BC5BC234 /* RNDeviceInfo.xcodeproj */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 9; includeInIndex = 0; lastKnownFileType = "wrapper.pb-project"; name = RNDeviceInfo.xcodeproj; path = "../node_modules/react-native-device-info/ios/RNDeviceInfo.xcodeproj"; sourceTree = "<group>"; };
|
||||
5E91572D1DD0AC6500FF2AA8 /* RCTAnimation.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = RCTAnimation.xcodeproj; path = "../node_modules/react-native/Libraries/NativeAnimation/RCTAnimation.xcodeproj"; sourceTree = "<group>"; };
|
||||
664970B9D10A41A18B44727F /* RNVectorIcons.xcodeproj */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 9; includeInIndex = 0; lastKnownFileType = "wrapper.pb-project"; name = RNVectorIcons.xcodeproj; path = "../node_modules/react-native-vector-icons/RNVectorIcons.xcodeproj"; sourceTree = "<group>"; };
|
||||
6DFE0E611CE9446B8B39E61E /* libimageCropPicker.a */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 9; includeInIndex = 0; lastKnownFileType = archive.ar; path = libimageCropPicker.a; sourceTree = "<group>"; };
|
||||
75426ED753E94FDF955E27D9 /* libRNImagePicker.a */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 9; includeInIndex = 0; lastKnownFileType = archive.ar; path = libRNImagePicker.a; sourceTree = "<group>"; };
|
||||
78C398B01ACF4ADC00677621 /* RCTLinking.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = RCTLinking.xcodeproj; path = "../node_modules/react-native/Libraries/LinkingIOS/RCTLinking.xcodeproj"; sourceTree = "<group>"; };
|
||||
832341B01AAA6A8300B99B32 /* RCTText.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = RCTText.xcodeproj; path = "../node_modules/react-native/Libraries/Text/RCTText.xcodeproj"; sourceTree = "<group>"; };
|
||||
95B0A42B6CD8441E904E6EB9 /* libRNVectorIcons-tvOS.a */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 9; includeInIndex = 0; lastKnownFileType = archive.ar; path = "libRNVectorIcons-tvOS.a"; sourceTree = "<group>"; };
|
||||
|
@ -467,12 +493,8 @@
|
|||
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; };
|
||||
ED5C7473CD764393A9F1944C /* RNImagePicker.xcodeproj */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 9; includeInIndex = 0; lastKnownFileType = "wrapper.pb-project"; name = RNImagePicker.xcodeproj; path = "../node_modules/react-native-image-picker-m/ios/RNImagePicker.xcodeproj"; sourceTree = "<group>"; };
|
||||
F17AA23BABD64924A34416D0 /* libRNNetworkInfo.a */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 9; includeInIndex = 0; lastKnownFileType = archive.ar; path = libRNNetworkInfo.a; sourceTree = "<group>"; };
|
||||
/* End PBXFileReference section */
|
||||
|
||||
/* Begin PBXFrameworksBuildPhase section */
|
||||
|
@ -757,6 +779,30 @@
|
|||
name = Products;
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
B531CE54224BE134002E8E5F /* Products */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
B531CE5C224BE135002E8E5F /* libimageCropPicker.a */,
|
||||
);
|
||||
name = Products;
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
B531CE56224BE134002E8E5F /* Products */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
B531CE62224BE135002E8E5F /* libRNNetworkInfo.a */,
|
||||
);
|
||||
name = Products;
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
B531CE58224BE134002E8E5F /* Products */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
B531CE5F224BE135002E8E5F /* libRNImagePicker.a */,
|
||||
);
|
||||
name = Products;
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
BE302B68221B7860005626CF /* Products */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
|
@ -804,6 +850,9 @@
|
|||
0F42241E0235464C91B24049 /* libRNDeviceInfo.a */,
|
||||
C0906CC582484A7393F9B1F6 /* libAirMaps.a */,
|
||||
3C4D43A092A4408B91B32E76 /* libRNDeviceInfo-tvOS.a */,
|
||||
6DFE0E611CE9446B8B39E61E /* libimageCropPicker.a */,
|
||||
75426ED753E94FDF955E27D9 /* libRNImagePicker.a */,
|
||||
F17AA23BABD64924A34416D0 /* libRNNetworkInfo.a */,
|
||||
);
|
||||
name = "Recovered References";
|
||||
sourceTree = "<group>";
|
||||
|
@ -960,6 +1009,7 @@
|
|||
developmentRegion = English;
|
||||
hasScannedForEncodings = 0;
|
||||
knownRegions = (
|
||||
English,
|
||||
en,
|
||||
Base,
|
||||
);
|
||||
|
@ -975,6 +1025,10 @@
|
|||
ProductGroup = BE5EAC32221B835A00E92E5B /* Products */;
|
||||
ProjectRef = 1908F5E093844AC5A143E888 /* BVLinearGradient.xcodeproj */;
|
||||
},
|
||||
{
|
||||
ProductGroup = B531CE54224BE134002E8E5F /* Products */;
|
||||
ProjectRef = 560B0A0D61754DCFA99F6FFB /* imageCropPicker.xcodeproj */;
|
||||
},
|
||||
{
|
||||
ProductGroup = 00C302A81ABCB8CE00DB3ED1 /* Products */;
|
||||
ProjectRef = 00C302A71ABCB8CE00DB3ED1 /* RCTActionSheet.xcodeproj */;
|
||||
|
@ -1039,6 +1093,14 @@
|
|||
ProductGroup = BE302B6F221B7AC7005626CF /* Products */;
|
||||
ProjectRef = BE302B6E221B7AC7005626CF /* RNGestureHandler.xcodeproj */;
|
||||
},
|
||||
{
|
||||
ProductGroup = B531CE58224BE134002E8E5F /* Products */;
|
||||
ProjectRef = ED5C7473CD764393A9F1944C /* RNImagePicker.xcodeproj */;
|
||||
},
|
||||
{
|
||||
ProductGroup = B531CE56224BE134002E8E5F /* Products */;
|
||||
ProjectRef = 293AF9FDDC2442BDBF3C2FE0 /* RNNetworkInfo.xcodeproj */;
|
||||
},
|
||||
{
|
||||
ProductGroup = BE5EABF2221B834400E92E5B /* Products */;
|
||||
ProjectRef = 664970B9D10A41A18B44727F /* RNVectorIcons.xcodeproj */;
|
||||
|
@ -1314,6 +1376,27 @@
|
|||
remoteRef = ADBDB9261DFEBF0700ED6528 /* PBXContainerItemProxy */;
|
||||
sourceTree = BUILT_PRODUCTS_DIR;
|
||||
};
|
||||
B531CE5C224BE135002E8E5F /* libimageCropPicker.a */ = {
|
||||
isa = PBXReferenceProxy;
|
||||
fileType = archive.ar;
|
||||
path = libimageCropPicker.a;
|
||||
remoteRef = B531CE5B224BE135002E8E5F /* PBXContainerItemProxy */;
|
||||
sourceTree = BUILT_PRODUCTS_DIR;
|
||||
};
|
||||
B531CE5F224BE135002E8E5F /* libRNImagePicker.a */ = {
|
||||
isa = PBXReferenceProxy;
|
||||
fileType = archive.ar;
|
||||
path = libRNImagePicker.a;
|
||||
remoteRef = B531CE5E224BE135002E8E5F /* PBXContainerItemProxy */;
|
||||
sourceTree = BUILT_PRODUCTS_DIR;
|
||||
};
|
||||
B531CE62224BE135002E8E5F /* libRNNetworkInfo.a */ = {
|
||||
isa = PBXReferenceProxy;
|
||||
fileType = archive.ar;
|
||||
path = libRNNetworkInfo.a;
|
||||
remoteRef = B531CE61224BE135002E8E5F /* PBXContainerItemProxy */;
|
||||
sourceTree = BUILT_PRODUCTS_DIR;
|
||||
};
|
||||
BE302B6C221B7860005626CF /* libRNCamera.a */ = {
|
||||
isa = PBXReferenceProxy;
|
||||
fileType = archive.ar;
|
||||
|
|
|
@ -51,9 +51,9 @@
|
|||
</BuildActionEntries>
|
||||
</BuildAction>
|
||||
<TestAction
|
||||
buildConfiguration = "Debug"
|
||||
selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
|
||||
selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
|
||||
buildConfiguration = "Release"
|
||||
selectedDebuggerIdentifier = ""
|
||||
selectedLauncherIdentifier = "Xcode.IDEFoundation.Launcher.PosixSpawn"
|
||||
shouldUseLaunchSchemeArgsEnv = "YES">
|
||||
<Testables>
|
||||
<TestableReference
|
||||
|
@ -108,16 +108,15 @@
|
|||
savedToolIdentifier = ""
|
||||
useCustomWorkingDirectory = "NO"
|
||||
debugDocumentVersioning = "YES">
|
||||
<BuildableProductRunnable
|
||||
runnableDebuggingMode = "0">
|
||||
<MacroExpansion>
|
||||
<BuildableReference
|
||||
BuildableIdentifier = "primary"
|
||||
BlueprintIdentifier = "13B07F861A680F5B00A75B9A"
|
||||
BuildableName = "app.app"
|
||||
BlueprintName = "app"
|
||||
ReferencedContainer = "container:app.xcodeproj">
|
||||
BlueprintIdentifier = "83CBBA2D1A601D0E00E9B192"
|
||||
BuildableName = "libReact.a"
|
||||
BlueprintName = "React"
|
||||
ReferencedContainer = "container:../node_modules/react-native/React/React.xcodeproj">
|
||||
</BuildableReference>
|
||||
</BuildableProductRunnable>
|
||||
</MacroExpansion>
|
||||
</ProfileAction>
|
||||
<AnalyzeAction
|
||||
buildConfiguration = "Debug">
|
||||
|
|
|
@ -1,9 +1,12 @@
|
|||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<document type="com.apple.InterfaceBuilder3.CocoaTouch.XIB" version="3.0" toolsVersion="7702" systemVersion="14D136" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" launchScreen="YES" useTraitCollections="YES">
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<document type="com.apple.InterfaceBuilder3.CocoaTouch.XIB" version="3.0" toolsVersion="14490.70" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" launchScreen="YES" useTraitCollections="YES" colorMatched="YES">
|
||||
<device id="retina6_1" orientation="portrait">
|
||||
<adaptation id="fullscreen"/>
|
||||
</device>
|
||||
<dependencies>
|
||||
<deployment identifier="iOS"/>
|
||||
<plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="7701"/>
|
||||
<capability name="Constraints with non-1.0 multipliers" minToolsVersion="5.1"/>
|
||||
<plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="14490.49"/>
|
||||
<capability name="documents saved in the Xcode 8 format" minToolsVersion="8.0"/>
|
||||
</dependencies>
|
||||
<objects>
|
||||
<placeholder placeholderIdentifier="IBFilesOwner" id="-1" userLabel="File's Owner"/>
|
||||
|
@ -12,20 +15,20 @@
|
|||
<rect key="frame" x="0.0" y="0.0" width="480" height="480"/>
|
||||
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
|
||||
<subviews>
|
||||
<label opaque="NO" clipsSubviews="YES" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Powered by React Native" textAlignment="center" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" minimumFontSize="9" translatesAutoresizingMaskIntoConstraints="NO" id="8ie-xW-0ye">
|
||||
<label opaque="NO" clipsSubviews="YES" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" misplaced="YES" text="Henrique Dias" textAlignment="center" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" minimumFontSize="9" translatesAutoresizingMaskIntoConstraints="NO" id="8ie-xW-0ye">
|
||||
<rect key="frame" x="20" y="439" width="441" height="21"/>
|
||||
<fontDescription key="fontDescription" type="system" pointSize="17"/>
|
||||
<color key="textColor" cocoaTouchSystemColor="darkTextColor"/>
|
||||
<nil key="highlightedColor"/>
|
||||
</label>
|
||||
<label opaque="NO" clipsSubviews="YES" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="app" textAlignment="center" lineBreakMode="middleTruncation" baselineAdjustment="alignBaselines" minimumFontSize="18" translatesAutoresizingMaskIntoConstraints="NO" id="kId-c2-rCX">
|
||||
<label opaque="NO" clipsSubviews="YES" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" misplaced="YES" text="ENEI 2019" textAlignment="center" lineBreakMode="middleTruncation" baselineAdjustment="alignBaselines" minimumFontSize="18" translatesAutoresizingMaskIntoConstraints="NO" id="kId-c2-rCX">
|
||||
<rect key="frame" x="20" y="140" width="441" height="43"/>
|
||||
<fontDescription key="fontDescription" type="boldSystem" pointSize="36"/>
|
||||
<color key="textColor" cocoaTouchSystemColor="darkTextColor"/>
|
||||
<nil key="highlightedColor"/>
|
||||
</label>
|
||||
</subviews>
|
||||
<color key="backgroundColor" white="1" alpha="1" colorSpace="custom" customColorSpace="calibratedWhite"/>
|
||||
<color key="backgroundColor" red="1" green="1" blue="1" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
|
||||
<constraints>
|
||||
<constraint firstItem="kId-c2-rCX" firstAttribute="centerY" secondItem="iN0-l3-epB" secondAttribute="bottom" multiplier="1/3" constant="1" id="5cJ-9S-tgC"/>
|
||||
<constraint firstAttribute="centerX" secondItem="kId-c2-rCX" secondAttribute="centerX" id="Koa-jz-hwk"/>
|
||||
|
|
|
@ -1,48 +1,57 @@
|
|||
{
|
||||
"images" : [
|
||||
{
|
||||
"idiom" : "iphone",
|
||||
"size" : "20x20",
|
||||
"idiom" : "iphone",
|
||||
"filename" : "Icon-App-20x20@2x.png",
|
||||
"scale" : "2x"
|
||||
},
|
||||
{
|
||||
"idiom" : "iphone",
|
||||
"size" : "20x20",
|
||||
"idiom" : "iphone",
|
||||
"filename" : "Icon-App-20x20@3x.png",
|
||||
"scale" : "3x"
|
||||
},
|
||||
{
|
||||
"idiom" : "iphone",
|
||||
"size" : "29x29",
|
||||
"idiom" : "iphone",
|
||||
"filename" : "Icon-App-29x29@2x.png",
|
||||
"scale" : "2x"
|
||||
},
|
||||
{
|
||||
"idiom" : "iphone",
|
||||
"size" : "29x29",
|
||||
"idiom" : "iphone",
|
||||
"filename" : "Icon-App-29x29@3x.png",
|
||||
"scale" : "3x"
|
||||
},
|
||||
{
|
||||
"idiom" : "iphone",
|
||||
"size" : "40x40",
|
||||
"idiom" : "iphone",
|
||||
"filename" : "Icon-App-40x40@2x.png",
|
||||
"scale" : "2x"
|
||||
},
|
||||
{
|
||||
"idiom" : "iphone",
|
||||
"size" : "40x40",
|
||||
"idiom" : "iphone",
|
||||
"filename" : "Icon-App-40x40@3x.png",
|
||||
"scale" : "3x"
|
||||
},
|
||||
{
|
||||
"idiom" : "iphone",
|
||||
"size" : "60x60",
|
||||
"idiom" : "iphone",
|
||||
"filename" : "Icon-App-60x60@2x.png",
|
||||
"scale" : "2x"
|
||||
},
|
||||
{
|
||||
"idiom" : "iphone",
|
||||
"size" : "60x60",
|
||||
"idiom" : "iphone",
|
||||
"filename" : "Icon-App-60x60@3x.png",
|
||||
"scale" : "3x"
|
||||
},
|
||||
{
|
||||
"idiom" : "ios-marketing",
|
||||
"size" : "1024x1024",
|
||||
"idiom" : "ios-marketing",
|
||||
"filename" : "ItunesArtwork@2x.png",
|
||||
"scale" : "1x"
|
||||
}
|
||||
],
|
||||
|
|
After Width: | Height: | Size: 4.2 KiB |
After Width: | Height: | Size: 4.9 KiB |
After Width: | Height: | Size: 4.8 KiB |
After Width: | Height: | Size: 5.6 KiB |
After Width: | Height: | Size: 5.4 KiB |
After Width: | Height: | Size: 6.4 KiB |
After Width: | Height: | Size: 6.4 KiB |
After Width: | Height: | Size: 8.3 KiB |
After Width: | Height: | Size: 40 KiB |
|
@ -2,20 +2,8 @@
|
|||
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
|
||||
<plist version="1.0">
|
||||
<dict>
|
||||
<key>UIAppFonts</key>
|
||||
<array>
|
||||
<string/>
|
||||
<string>FontAwesome5_Solid.ttf</string>
|
||||
<string>FontAwesome5_Regular.ttf</string>
|
||||
<string>FontAwesome5_Brands.ttf</string>
|
||||
<string>FontAwesome.ttf</string>
|
||||
<string>Foundation.ttf</string>
|
||||
<string>Ionicons.ttf</string>
|
||||
</array>
|
||||
<key>LSApplicationCategoryType</key>
|
||||
<string/>
|
||||
<key>CFBundleDisplayName</key>
|
||||
<string>app</string>
|
||||
<string>ENEI 2019</string>
|
||||
<key>CFBundleExecutable</key>
|
||||
<string>$(EXECUTABLE_NAME)</string>
|
||||
<key>CFBundleIdentifier</key>
|
||||
|
@ -27,11 +15,13 @@
|
|||
<key>CFBundlePackageType</key>
|
||||
<string>APPL</string>
|
||||
<key>CFBundleShortVersionString</key>
|
||||
<string>1.0</string>
|
||||
<string>1.1</string>
|
||||
<key>CFBundleSignature</key>
|
||||
<string>????</string>
|
||||
<key>CFBundleVersion</key>
|
||||
<string>1</string>
|
||||
<string>8</string>
|
||||
<key>LSApplicationCategoryType</key>
|
||||
<string></string>
|
||||
<key>LSRequiresIPhoneOS</key>
|
||||
<true/>
|
||||
<key>NSAppTransportSecurity</key>
|
||||
|
@ -47,21 +37,45 @@
|
|||
</dict>
|
||||
</dict>
|
||||
</dict>
|
||||
<key>NSAppleMusicUsageDescription</key>
|
||||
<string>Not used, just added this key because i used react-native and needed this keys for approval.</string>
|
||||
<key>NSBluetoothPeripheralUsageDescription</key>
|
||||
<string>Not used, just added this key because i used react-native and needed this keys for approval.</string>
|
||||
<key>NSCalendarsUsageDescription</key>
|
||||
<string>Not used, just added this key because i used react-native and needed this keys for approval.</string>
|
||||
<key>NSCameraUsageDescription</key>
|
||||
<string>Not used, just added this key because i used react-native and needed this keys for approval.</string>
|
||||
<key>NSLocationWhenInUseUsageDescription</key>
|
||||
<string/>
|
||||
<string>Not used, just added this key because i used react-native and needed this keys for approval.</string>
|
||||
<key>NSMicrophoneUsageDescription</key>
|
||||
<string>Not used, just added this key because i used react-native and needed this keys for approval.</string>
|
||||
<key>NSMotionUsageDescription</key>
|
||||
<string>Not used, just added this key because i used react-native and needed this keys for approval.</string>
|
||||
<key>NSPhotoLibraryAddUsageDescription</key>
|
||||
<string>Not used, just added this key because i used react-native and needed this keys for approval.</string>
|
||||
<key>NSPhotoLibraryUsageDescription</key>
|
||||
<string>Not used, just added this key because i used react-native and needed this keys for approval.</string>
|
||||
<key>NSSpeechRecognitionUsageDescription</key>
|
||||
<string>Not used, just added this key because i used react-native and needed this keys for approval.</string>
|
||||
<key>UIAppFonts</key>
|
||||
<array>
|
||||
<string>MaterialIcons.ttf</string>
|
||||
<string>FontAwesome5_Solid.ttf</string>
|
||||
<string>FontAwesome5_Regular.ttf</string>
|
||||
<string>FontAwesome5_Brands.ttf</string>
|
||||
<string>FontAwesome.ttf</string>
|
||||
<string>Foundation.ttf</string>
|
||||
<string>Ionicons.ttf</string>
|
||||
</array>
|
||||
<key>UILaunchStoryboardName</key>
|
||||
<string>LaunchScreen</string>
|
||||
<key>UIRequiredDeviceCapabilities</key>
|
||||
<array>
|
||||
<string>armv7</string>
|
||||
</array>
|
||||
<key>NSCameraUsageDescription</key>
|
||||
<string>$(PRODUCT_NAME) camera use</string>
|
||||
<key>UISupportedInterfaceOrientations</key>
|
||||
<array>
|
||||
<string>UIInterfaceOrientationPortrait</string>
|
||||
<string>UIInterfaceOrientationLandscapeLeft</string>
|
||||
<string>UIInterfaceOrientationLandscapeRight</string>
|
||||
</array>
|
||||
<key>UIViewControllerBasedStatusBarAppearance</key>
|
||||
<false/>
|
||||
|
|
|
@ -829,6 +829,46 @@
|
|||
"to-fast-properties": "^2.0.0"
|
||||
}
|
||||
},
|
||||
"@expo/vector-icons": {
|
||||
"version": "github:expo/vector-icons#d0fb774a001b047d223cfa5e9537220b20591efd",
|
||||
"from": "github:expo/vector-icons#expo-font-fix",
|
||||
"requires": {
|
||||
"lodash": "^4.17.4",
|
||||
"react-native-vector-icons": "6.0.0"
|
||||
},
|
||||
"dependencies": {
|
||||
"react-native-vector-icons": {
|
||||
"version": "6.0.0",
|
||||
"resolved": "https://registry.npmjs.org/react-native-vector-icons/-/react-native-vector-icons-6.0.0.tgz",
|
||||
"integrity": "sha512-uF3oWb3TV42uXi2apVOZHw9oy9Nr5SXDVwOo1umQWo/yYCrDzXyVfq14DzezgEbJ9jfc/yghBelj0agkXmOKlg==",
|
||||
"requires": {
|
||||
"lodash": "^4.0.0",
|
||||
"prop-types": "^15.6.2",
|
||||
"yargs": "^8.0.2"
|
||||
}
|
||||
},
|
||||
"yargs": {
|
||||
"version": "8.0.2",
|
||||
"resolved": "https://registry.npmjs.org/yargs/-/yargs-8.0.2.tgz",
|
||||
"integrity": "sha1-YpmpBVsc78lp/355wdkY3Osiw2A=",
|
||||
"requires": {
|
||||
"camelcase": "^4.1.0",
|
||||
"cliui": "^3.2.0",
|
||||
"decamelize": "^1.1.1",
|
||||
"get-caller-file": "^1.0.1",
|
||||
"os-locale": "^2.0.0",
|
||||
"read-pkg-up": "^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": "^7.0.0"
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"@expo/websql": {
|
||||
"version": "1.0.1",
|
||||
"resolved": "https://registry.npmjs.org/@expo/websql/-/websql-1.0.1.tgz",
|
||||
|
@ -2918,6 +2958,7 @@
|
|||
"integrity": "sha512-xo8wZ9/4F3P1xN9nKFSJM3Gb2m0p05aRncjgFF+jxM5XfvKkUrzW0a6FYOY/h/r2r1wyQI7OTBPTiTH/GxuwgA==",
|
||||
"requires": {
|
||||
"@babel/runtime": "^7.1.2",
|
||||
"@expo/vector-icons": "github:expo/vector-icons#expo-font-fix",
|
||||
"@expo/websql": "^1.0.1",
|
||||
"@types/fbemitter": "^2.0.32",
|
||||
"@types/invariant": "^2.2.29",
|
||||
|
@ -2979,6 +3020,7 @@
|
|||
"qs": "^6.5.0",
|
||||
"react-native-branch": "2.2.5",
|
||||
"react-native-gesture-handler": "~1.0.14",
|
||||
"react-native-maps": "github:expo/react-native-maps#v0.22.1-exp.0",
|
||||
"react-native-reanimated": "1.0.0-alpha.11",
|
||||
"react-native-screens": "1.0.0-alpha.22",
|
||||
"react-native-svg": "8.0.10",
|
||||
|
@ -2988,14 +3030,6 @@
|
|||
"whatwg-fetch": "^2.0.4"
|
||||
},
|
||||
"dependencies": {
|
||||
"@expo/vector-icons": {
|
||||
"version": "github:expo/vector-icons#d0fb774a001b047d223cfa5e9537220b20591efd",
|
||||
"from": "github:expo/vector-icons#d0fb774a001b047d223cfa5e9537220b20591efd",
|
||||
"requires": {
|
||||
"lodash": "^4.17.4",
|
||||
"react-native-vector-icons": "6.0.0"
|
||||
}
|
||||
},
|
||||
"ansi-regex": {
|
||||
"version": "3.0.0",
|
||||
"resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz",
|
||||
|
@ -3032,47 +3066,17 @@
|
|||
},
|
||||
"react-native-maps": {
|
||||
"version": "github:expo/react-native-maps#e6f98ff7272e5d0a7fe974a41f28593af2d77bb2",
|
||||
"from": "github:expo/react-native-maps#e6f98ff7272e5d0a7fe974a41f28593af2d77bb2"
|
||||
"from": "github:expo/react-native-maps#v0.22.1-exp.0"
|
||||
},
|
||||
"react-native-screens": {
|
||||
"version": "1.0.0-alpha.22",
|
||||
"resolved": "https://registry.npmjs.org/react-native-screens/-/react-native-screens-1.0.0-alpha.22.tgz",
|
||||
"integrity": "sha512-kSyAt0AeVU6N7ZonfV6dP6iZF8B7Bce+tk3eujXhzBGsLg0VSLnU7uE9VqJF0xdQrHR91ZjGgVMieo/8df9KTA=="
|
||||
},
|
||||
"react-native-vector-icons": {
|
||||
"version": "6.0.0",
|
||||
"resolved": "https://registry.npmjs.org/react-native-vector-icons/-/react-native-vector-icons-6.0.0.tgz",
|
||||
"integrity": "sha512-uF3oWb3TV42uXi2apVOZHw9oy9Nr5SXDVwOo1umQWo/yYCrDzXyVfq14DzezgEbJ9jfc/yghBelj0agkXmOKlg==",
|
||||
"requires": {
|
||||
"lodash": "^4.0.0",
|
||||
"prop-types": "^15.6.2",
|
||||
"yargs": "^8.0.2"
|
||||
}
|
||||
},
|
||||
"whatwg-fetch": {
|
||||
"version": "2.0.4",
|
||||
"resolved": "https://registry.npmjs.org/whatwg-fetch/-/whatwg-fetch-2.0.4.tgz",
|
||||
"integrity": "sha512-dcQ1GWpOD/eEQ97k66aiEVpNnapVj90/+R+SXTPYGHpYBBypfKJEQjLrvMZ7YXbKm21gXd4NcuxUTjiv1YtLng=="
|
||||
},
|
||||
"yargs": {
|
||||
"version": "8.0.2",
|
||||
"resolved": "https://registry.npmjs.org/yargs/-/yargs-8.0.2.tgz",
|
||||
"integrity": "sha1-YpmpBVsc78lp/355wdkY3Osiw2A=",
|
||||
"requires": {
|
||||
"camelcase": "^4.1.0",
|
||||
"cliui": "^3.2.0",
|
||||
"decamelize": "^1.1.1",
|
||||
"get-caller-file": "^1.0.1",
|
||||
"os-locale": "^2.0.0",
|
||||
"read-pkg-up": "^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": "^7.0.0"
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
|
@ -3742,7 +3746,8 @@
|
|||
},
|
||||
"ansi-regex": {
|
||||
"version": "2.1.1",
|
||||
"bundled": true
|
||||
"bundled": true,
|
||||
"optional": true
|
||||
},
|
||||
"aproba": {
|
||||
"version": "1.2.0",
|
||||
|
@ -3760,11 +3765,13 @@
|
|||
},
|
||||
"balanced-match": {
|
||||
"version": "1.0.0",
|
||||
"bundled": true
|
||||
"bundled": true,
|
||||
"optional": true
|
||||
},
|
||||
"brace-expansion": {
|
||||
"version": "1.1.11",
|
||||
"bundled": true,
|
||||
"optional": true,
|
||||
"requires": {
|
||||
"balanced-match": "^1.0.0",
|
||||
"concat-map": "0.0.1"
|
||||
|
@ -3777,15 +3784,18 @@
|
|||
},
|
||||
"code-point-at": {
|
||||
"version": "1.1.0",
|
||||
"bundled": true
|
||||
"bundled": true,
|
||||
"optional": true
|
||||
},
|
||||
"concat-map": {
|
||||
"version": "0.0.1",
|
||||
"bundled": true
|
||||
"bundled": true,
|
||||
"optional": true
|
||||
},
|
||||
"console-control-strings": {
|
||||
"version": "1.1.0",
|
||||
"bundled": true
|
||||
"bundled": true,
|
||||
"optional": true
|
||||
},
|
||||
"core-util-is": {
|
||||
"version": "1.0.2",
|
||||
|
@ -3888,7 +3898,8 @@
|
|||
},
|
||||
"inherits": {
|
||||
"version": "2.0.3",
|
||||
"bundled": true
|
||||
"bundled": true,
|
||||
"optional": true
|
||||
},
|
||||
"ini": {
|
||||
"version": "1.3.5",
|
||||
|
@ -3898,6 +3909,7 @@
|
|||
"is-fullwidth-code-point": {
|
||||
"version": "1.0.0",
|
||||
"bundled": true,
|
||||
"optional": true,
|
||||
"requires": {
|
||||
"number-is-nan": "^1.0.0"
|
||||
}
|
||||
|
@ -3910,17 +3922,20 @@
|
|||
"minimatch": {
|
||||
"version": "3.0.4",
|
||||
"bundled": true,
|
||||
"optional": true,
|
||||
"requires": {
|
||||
"brace-expansion": "^1.1.7"
|
||||
}
|
||||
},
|
||||
"minimist": {
|
||||
"version": "0.0.8",
|
||||
"bundled": true
|
||||
"bundled": true,
|
||||
"optional": true
|
||||
},
|
||||
"minipass": {
|
||||
"version": "2.2.4",
|
||||
"bundled": true,
|
||||
"optional": true,
|
||||
"requires": {
|
||||
"safe-buffer": "^5.1.1",
|
||||
"yallist": "^3.0.0"
|
||||
|
@ -3937,6 +3952,7 @@
|
|||
"mkdirp": {
|
||||
"version": "0.5.1",
|
||||
"bundled": true,
|
||||
"optional": true,
|
||||
"requires": {
|
||||
"minimist": "0.0.8"
|
||||
}
|
||||
|
@ -4009,7 +4025,8 @@
|
|||
},
|
||||
"number-is-nan": {
|
||||
"version": "1.0.1",
|
||||
"bundled": true
|
||||
"bundled": true,
|
||||
"optional": true
|
||||
},
|
||||
"object-assign": {
|
||||
"version": "4.1.1",
|
||||
|
@ -4019,6 +4036,7 @@
|
|||
"once": {
|
||||
"version": "1.4.0",
|
||||
"bundled": true,
|
||||
"optional": true,
|
||||
"requires": {
|
||||
"wrappy": "1"
|
||||
}
|
||||
|
@ -4094,7 +4112,8 @@
|
|||
},
|
||||
"safe-buffer": {
|
||||
"version": "5.1.1",
|
||||
"bundled": true
|
||||
"bundled": true,
|
||||
"optional": true
|
||||
},
|
||||
"safer-buffer": {
|
||||
"version": "2.1.2",
|
||||
|
@ -4124,6 +4143,7 @@
|
|||
"string-width": {
|
||||
"version": "1.0.2",
|
||||
"bundled": true,
|
||||
"optional": true,
|
||||
"requires": {
|
||||
"code-point-at": "^1.0.0",
|
||||
"is-fullwidth-code-point": "^1.0.0",
|
||||
|
@ -4141,6 +4161,7 @@
|
|||
"strip-ansi": {
|
||||
"version": "3.0.1",
|
||||
"bundled": true,
|
||||
"optional": true,
|
||||
"requires": {
|
||||
"ansi-regex": "^2.0.0"
|
||||
}
|
||||
|
@ -4179,11 +4200,13 @@
|
|||
},
|
||||
"wrappy": {
|
||||
"version": "1.0.2",
|
||||
"bundled": true
|
||||
"bundled": true,
|
||||
"optional": true
|
||||
},
|
||||
"yallist": {
|
||||
"version": "3.0.2",
|
||||
"bundled": true
|
||||
"bundled": true,
|
||||
"optional": true
|
||||
}
|
||||
}
|
||||
},
|
||||
|
|