index.js 2.96 KB
/**
 * Created by Cassie on 208/03/21.
 */
import React, { Component } from 'react';
import {
    StyleSheet,
    View,
    NativeModules,
    AsyncStorage,
    Platform
} from 'react-native';
import {StackNavigator,TabNavigator,NavigationActions} from 'react-navigation';

import {getHeaderHeight,getHeaderPadding,getFooterBottom} from "./utils/utils";
import SignIn from "./pages/signIn";
import Register from "./pages/register";
import ForgetPwd from "./pages/forgetPwd";
import Home from "./pages/home";

const Navigator = StackNavigator(
    {
        // SignIn:{screen:SignIn},
        // Register:{screen:Register},
        // ForgetPwd:{screen:ForgetPwd},
        Home:{screen:Home}
    },
    {
        navigationOptions:{
            headerStyle:{
                paddingTop:getHeaderPadding(),
                height:getHeaderHeight(),
                backgroundColor:'#f8f8f8',
            },
            headerTitleStyle:{
                alignSelf:'center',
                alignItems:'center',
                justifyContent:'center',
                flexDirection:'column',
                color:'#000',
                fontSize:18,
                fontWeight:'bold',
            },
        }
    },
);

const defaultGetStateForAction = Navigator.router.getStateForAction;
Navigator.router.getStateForAction = (action,state) => {
    if(action.routeName && action.routeName == 'Home'){
        return defaultGetStateForAction(NavigationActions.reset({
            index: 0,
            actions: [
                NavigationActions.navigate({routeName: 'Home'})
            ]
        }))
    }else{
        return defaultGetStateForAction(action,state);
    }
};

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

    componentWillMount(){
        if(Platform.OS == 'ios'){
            NativeModules.BlueToolManage.getCurrentStatus().then((data) => {
                if(data == '1'){
                    this.getPhoneNumber();
                }else if(data == '0'){
                    this.setState({
                        loading:false
                    });
                }
            })
        }else if(Platform.OS == 'android'){
            this.getPhoneNumber();
        }
    };

    getPhoneNumber(){
        NativeModules.BlueToolManage.getPhoneNumber().then((number) => {
            if(Platform.OS == 'android'){
                AsyncStorage.removeItem('phoneNumber');
                AsyncStorage.setItem('phoneNumber',JSON.stringify(number));
            }else{
                global.phoneNumber = number;
            }
            this.setState({
                loading:false
            });
        })
    }

    render(){
        return(
            <View style={styles.root}>
                {!this.state.loading && <Navigator />}
            </View>
        );
    }
}
const styles = StyleSheet.create({
    root:{
        flex:1,
        marginBottom:getFooterBottom(),
    }
});