import React from 'react';
import { StyleSheet, Text } from 'react-native';
import { AppNavigator } from './navigation/AppNavigation';
import { AppProvider } from './redux/AppProvider';
import { AppEvents, EventDispatcher } from './lib/events/eventDispatcher';
const styles = StyleSheet.create({
text: {
},
});
type AppState = {
error: boolean;
resetKey: number;
};
export class App extends React.Component<{}, AppState> {
state: AppState = {
error: false,
resetKey: 0,
};
eventDispatcher = new EventDispatcher();
componentDidMount() {
this.eventDispatcher.on(AppEvents.LOGOUT, this.logout);
}
componentWillUnmount() {
this.eventDispatcher.removeListener(AppEvents.LOGOUT, this.logout);
}
componentDidCatch() {
this.setState({ error: true });
}
private logout = () => {
this.setState({ resetKey: this.state.resetKey + 1 });
}
private resetError = () => {
this.setState({ error: false });
}
renderError() {
return (
Error
);
}
render() {
if (this.state.error) {
return this.renderError();
}
return (
);
}
}