import React, {Component, PropTypes} from "react";
import {StyleSheet, View, Text, TouchableOpacity, Navigator, AsyncStorage} from "react-native";
import Simple from "./Simple";
import AdvancedEffects from "./AdvancedEffects";
import Hearts from "./Hearts";
import Tests from "./Tests";
import Animated from "./Animated";
const screens = { Simple, AdvancedEffects, Hearts, Tests, Animated };
const homeRoute = {
id: "home",
title: "gl-react Showcase"
};
const routes = [
{ id: "Simple" },
{ id: "AdvancedEffects" },
{ id: "Hearts" },
{ id: "Tests" },
{ id: "Animated" },
];
const styles = StyleSheet.create({
root: {
backgroundColor: "#333",
flex: 1,
},
navBar: {
backgroundColor: "#000"
},
leftButtonContainer: {
},
leftButtonText: {
color: "#999",
paddingLeft: 6,
},
title: {
color: "#999",
fontSize: 14
},
home: {
flex: 1,
marginTop: 40,
},
homeLink: {
padding: 20,
},
homeText: {
fontSize: 24,
color: "#ccc",
fontWeight: "bold",
},
});
class Home extends Component {
static propTypes = {
openScreen: PropTypes.func.isRequired
};
render () {
const { openScreen } = this.props;
return
{routes.map(route =>
openScreen(route)}>
{route.id}
)}
;
}
}
export default class App extends Component {
static propTypes = {};
constructor (props) {
super(props);
this.state = {
initialRoute: homeRoute
};
/*
new Promise((success, failure) =>
AsyncStorage.getItem("route", (error, result) => {
if (error) failure(error);
else success(result);
}))
.then(result => {
const route = JSON.parse(result);
if (!route) throw new Error("invalid route");
return route;
})
.catch(() => homeRoute)
.then(initialRoute => this.setState({ initialRoute }));
*/
}
renderScene = (route, navigator) => {
if (route.id === homeRoute.id) {
return navigator.push(route)} />;
}
const Screen = screens[route.id];
return ;
};
render () {
const { initialRoute } = this.state;
if (!initialRoute) return ;
return (
index === 0 ? null :
navigator.pop()}
style={styles.leftButtonContainer}>
{"< BACK"}
,
RightButton: () => {},
Title: route =>
{route.title || route.id}
}}
/>
}
/>
);
}
}