index.js 3.12 KB
/**
 * Created by Cassie on 2018/03/06
 */
import React, { Component } from 'react';
import {
    AppRegistry,
    StyleSheet,
    View,
    TouchableOpacity,
    Image,
    NativeModules,
    ActivityIndicator
} from 'react-native';
import { StackNavigator, TabNavigator } from 'react-navigation';

import {getHeaderHeight,getHeaderPadding,getFooterBottom,xnToast} from "./utils/utils";
import Home from './pages/home';
import Detail from './pages/components/detail';
import PlateList from './pages/components/plateList';
import PlateName from './pages/components/plateName';
import SubmitSuccess from './pages/components/submitSuccess';
import FloorDetail from './pages/components/floorDetail';
import Search from './pages/components/search';
import Post from './pages/components/post';
import AppService from "./service/AppService";

const Navigator = StackNavigator(
    {
        Home:{screen:Home},
        Detail:{screen:Detail},
        PlateList:{screen:PlateList},
        PlateName:{screen:PlateName},
        SubmitSuccess:{screen:SubmitSuccess},
        FloorDetail:{screen:FloorDetail},
        Search:{screen:Search},
        Post:{screen:Post}
    },
    {
        navigationOptions:({navigation}) => ({
            headerStyle:{
                elevation:0, // 去掉阴影
                paddingTop:getHeaderPadding(),
                height:getHeaderHeight(),
                backgroundColor:'#1c1c20',
            },
            headerTitleStyle:{
                alignSelf:'center',
                alignItems:'center',
                justifyContent:'center',
                flexDirection:'column',
                color:'#fff',
                fontSize:18,
                fontWeight:'bold',
            },
        }),
    },
);

class App extends Component{
    constructor(props){
        super(props);
        this.state = {
            loading:true
        };
    }

    componentWillMount(){
        NativeModules.security.getFormId().then((response) => {
            global.forumId = response;
            NativeModules.security.getPassportId().then((result) => {
                    AppService.getPassport({id:result}).then(data=>{
                        if(data.message) {
                            xnToast(data.message);
                            return
                        }
                        if(data.errors.length > 0) {
                            xnToast(data.errors[0].message);
                        }else{
                            this.state.loading = false;
                            global.passportId = data.passport.id;
                            global.userId = data.passport.userId;
                            global.userName = data.passport.userName;
                        }
                    });
                }
            ).catch((error) => {
                console.log(error)
            });
        });
    }

    render() {
        return (
            <View style={styles.root}>
                {/*加载中*/}
                <Navigator />
            </View>
        );
    }
}
const styles = StyleSheet.create({
    root:{
        flex:1,
        marginBottom:getFooterBottom(),
    }
});

export default App;