From 90e357d28ecfad049586b1d6c8e7fe9b954a5331 Mon Sep 17 00:00:00 2001 From: Shubham Singal Date: Sat, 2 Mar 2019 13:23:43 +0530 Subject: [PATCH 1/3] added emailscontext.jsx --- .../app/contexts/EmailsContext.js | 5 --- .../app/contexts/EmailsContext.jsx | 37 +++++++++++++++++++ lecture5/email-client-context/app/index.jsx | 20 +--------- 3 files changed, 38 insertions(+), 24 deletions(-) delete mode 100644 lecture5/email-client-context/app/contexts/EmailsContext.js create mode 100644 lecture5/email-client-context/app/contexts/EmailsContext.jsx diff --git a/lecture5/email-client-context/app/contexts/EmailsContext.js b/lecture5/email-client-context/app/contexts/EmailsContext.js deleted file mode 100644 index 744c935..0000000 --- a/lecture5/email-client-context/app/contexts/EmailsContext.js +++ /dev/null @@ -1,5 +0,0 @@ -import React from 'react'; - -const { Provider, Consumer } = React.createContext(); - -export { Provider as EmailsProvider, Consumer as EmailsConsumer }; 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..0739de2 --- /dev/null +++ b/lecture5/email-client-context/app/contexts/EmailsContext.jsx @@ -0,0 +1,37 @@ +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..27fc2ae 100644 --- a/lecture5/email-client-context/app/index.jsx +++ b/lecture5/email-client-context/app/index.jsx @@ -4,24 +4,14 @@ import { BrowserRouter as Router, Route, Switch } from 'react-router-dom'; import { AuthProvider, UserProvider, EmailsProvider } from './contexts'; import { HomePage, LoginPage } from './containers'; -import { login, fetchEmails } from './actions'; class App extends React.Component { state = { user: undefined, - 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; @@ -37,15 +27,7 @@ class App extends React.Component { state: { user }, actions: {}, }}> - + From 3cc117af1d6b7a5906a35e3e5e11ef87085a54f8 Mon Sep 17 00:00:00 2001 From: Shubham Singal Date: Sat, 2 Mar 2019 13:27:09 +0530 Subject: [PATCH 2/3] modified index.jsx --- lecture5/email-client-context/app/index.jsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lecture5/email-client-context/app/index.jsx b/lecture5/email-client-context/app/index.jsx index 27fc2ae..b2db827 100644 --- a/lecture5/email-client-context/app/index.jsx +++ b/lecture5/email-client-context/app/index.jsx @@ -13,7 +13,7 @@ class App extends React.Component { updateUser = user => this.setState({ user }); render() { - const { user, emails } = this.state; + const { user } = this.state; return ( From 50595cbdd358dc95a9d92d5625d84a2179ef8e7a Mon Sep 17 00:00:00 2001 From: Shubham Singal Date: Sat, 2 Mar 2019 15:49:01 +0530 Subject: [PATCH 3/3] destructed emails in render --- lecture5/email-client-context/app/contexts/EmailsContext.jsx | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/lecture5/email-client-context/app/contexts/EmailsContext.jsx b/lecture5/email-client-context/app/contexts/EmailsContext.jsx index 0739de2..bdb2856 100644 --- a/lecture5/email-client-context/app/contexts/EmailsContext.jsx +++ b/lecture5/email-client-context/app/contexts/EmailsContext.jsx @@ -18,11 +18,12 @@ class EmailsProvider extends React.Component { }; render() { + const { emails } = this.state; return (