diff --git a/lecture5/email-client-context/app/contexts/EmailsContext.jsx b/lecture5/email-client-context/app/contexts/EmailsContext.jsx
new file mode 100644
index 0000000..5835d59
--- /dev/null
+++ b/lecture5/email-client-context/app/contexts/EmailsContext.jsx
@@ -0,0 +1,32 @@
+import React from 'react';
+
+import { fetchEmails } from '../actions';
+const { Provider, Consumer } = React.createContext();
+
+class EmailsProvider extends React.Component {
+ state = {
+ emails: [],
+ };
+
+ fetchEmails = async () => {
+ const {emails} = await fetchEmails();
+ return this.setState(state => ({
+ emails: [...state.emails, ...emails],
+ }));
+ };
+ render(){
+ return(
+
+ {this.props.children}
+
+ );
+ }
+}
+
+export { EmailsProvider, Consumer as EmailsConsumer };
diff --git a/lecture5/email-client-context/app/index.jsx b/lecture5/email-client-context/app/index.jsx
index c6611a7..9a2f85b 100644
--- a/lecture5/email-client-context/app/index.jsx
+++ b/lecture5/email-client-context/app/index.jsx
@@ -3,55 +3,45 @@ import { render } from 'react-dom';
import { BrowserRouter as Router, Route, Switch } from 'react-router-dom';
import { AuthProvider, UserProvider, EmailsProvider } from './contexts';
-import { HomePage, LoginPage } from './containers';
+import { HomePage, LoginPage, EmailPage } from './containers';
+import { EntryController } from './controllers';
import { login, fetchEmails } from './actions';
class App extends React.Component {
state = {
user: undefined,
- emails: [],
+ //emails: [],
};
updateUser = user => this.setState({ user });
- fetchEmails = async () => {
- const { emails } = await fetchEmails();
-
- return this.setState(state => ({
- emails: [...state.emails, ...emails],
- }));
- };
render() {
- const { user, emails } = this.state;
+ const { user } = this.state;
return (
- (
-
-
-
-
-
- )}
- />
-
+
+
+ (
+
+
+
+
+
+
+
+
+
+ )}
+ />
+
);