App.js 3.06 KB
/**
 * Sample React Native App
 * https://github.com/facebook/react-native
 * @flow
 */

import React, {Component} from 'react';
import {
	UIManager,
	View,
	StatusBar
} from 'react-native';
import {StackNavigator,} from 'react-navigation'
import CardStackStyleInterpolator from "react-navigation/src/views/CardStack/CardStackStyleInterpolator"
import {fromBottom, fromRight, fromBottomLikeAndroid} from "./src/utils/navigationUtil";
import Home from './src/pages/Home'
import Write from './src/pages/Write'
import TaskList from './src/pages/TaskList'
import TaskDetail from './src/pages/TaskDetail'
import AddChildrenTask from './src/pages/AddChildrenTask'
import AddWorkers from './src/pages/AddWorkers'
import OptionChoose from './src/pages/OptionChoose'
import AddList from './src/pages/AddList'
import ImageView from './src/pages/ImageView'
import UserList from './src/pages/UserList'
import {updateFocus} from 'react-navigation-is-focused-hoc';
import ActivePage from './src/components/ActivePage'
import {isAndroid} from "./src/components/SearchBar";
import {getIdentityId, getPassportId, identityId, passportId, ownerUserId} from "./src/service/rpc";
import {HeaderLeft} from "./src/pages/Home";
import {observable} from 'mobx'
export const _listId=observable(null)
export const _title=observable(null)
export const _objectType=observable(null)
export const _taskId=observable(null)
const Normal = StackNavigator({
	Home: {screen: Home},
	TaskList: {screen: TaskList},
	TaskDetail: {screen: TaskDetail},
	AddWorkers: {screen: AddWorkers},
	AddList: {screen: AddList},
	UserList: {screen: UserList},
}, {
	transitionConfig: () => ({
		screenInterpolator: CardStackStyleInterpolator.forHorizontal,
	}),
	cardStyle: {
		backgroundColor: 'white',
	},
	navigationOptions: (navigation) => {
		return {
			headerStyle: {backgroundColor: '#38383d'},
			headerTitleStyle: {color: 'white', fontSize: 18, textAlign: 'center', alignSelf: 'center',fontWeight:"600",paddingHorizontal:20},
		}
	}
})
const Main = StackNavigator({
	Normal: {screen: Normal},
	Write: {screen: Write},
	AddChildrenTask: {screen: AddChildrenTask},
	OptionChoose: {screen: OptionChoose},
	ImageView: {screen: ImageView}
}, {
	mode: 'modal',
	headerMode: 'none',
	transitionConfig: () => ({screenInterpolator: fromBottomLikeAndroid}),
	cardStyle: {
		backgroundColor: 'rgba(0,0,0,0)',
	},
})

class App extends React.Component {
	async componentWillMount() {
		const {jj,title,objectType,taskId}=this.props
		if(taskId){
			_taskId.set(taskId)
		}
		if(jj){
			console.log(this.props)
			_listId.set(jj)
			_title.set(title)
			_objectType.set(objectType)
		}
		UIManager.setLayoutAnimationEnabledExperimental && UIManager.setLayoutAnimationEnabledExperimental(true);
		await Promise.all([getPassportId(), getIdentityId()])
		if (!!identityId && !!passportId && !!ownerUserId) {
			this.forceUpdate()
		}
	}

	render() {
		if (!!identityId && !!passportId && !!ownerUserId) {

			return (
					<Main
						onNavigationStateChange={(prevState, currentState) => {
							updateFocus(currentState)
						}}
					/>)

		}
		return <ActivePage/>

	}
}

export default App