diff --git a/components/Feed.jsx b/components/Feed.jsx index 0e577fa..dfeb160 100644 --- a/components/Feed.jsx +++ b/components/Feed.jsx @@ -5,37 +5,29 @@ import timeago from "timeago"; import api from "./api"; import transformers from "./feed-transformers"; -function throwError(err) { - setTimeout(() => { - console.log(err.stack); - throw err; - }); -} - export default class Feed extends React.Component { state = { messages: [], }; componentDidMount() { - request - .get(api("feeds")) + this.updateFeed(); + } - .then(res => { - const messages = _(res.data) - .map((messages, type) => transformers[type](messages)) - .flatten() - .value(); + async updateFeed() { + const res = await request.get(api("feeds")); + const messages = _(res.data) + .map((messages, type) => transformers[type](messages)) + .flatten() + .value(); - this.setState({ - messages: _(messages) - .sortBy("timestamp") - .reverse() - .value() - .slice(0, 40), - }); - }) - .catch(throwError); + this.setState({ + messages: _(messages) + .sortBy("timestamp") + .reverse() + .value() + .slice(0, 40), + }); } render() { diff --git a/components/InviteForm.jsx b/components/InviteForm.jsx index ec1dcd2..b1ea2d6 100644 --- a/components/InviteForm.jsx +++ b/components/InviteForm.jsx @@ -12,7 +12,7 @@ export default class InviteForm extends React.Component { error: null, }; - onSubmit = e => { + onSubmit = async e => { e.preventDefault(); this.setState({ @@ -21,12 +21,14 @@ export default class InviteForm extends React.Component { error: null, }); - request - .post(api("invites"), { + try { + await request.post(api("invites"), { email: this.state.email.trim(), - }) - .then(this.handleSuccess) - .catch(this.handleError); + }); + this.handleSuccess(); + } catch (error) { + this.handleError(error); + } }; handleSuccess = () => { diff --git a/components/Members.jsx b/components/Members.jsx index 841baeb..c724f3b 100644 --- a/components/Members.jsx +++ b/components/Members.jsx @@ -9,19 +9,20 @@ export default class Members extends React.Component { }; componentDidMount() { - request.get(api("members")).then( - function(res) { - this.setState({ - members: _.shuffle(res.data), - }); - }.bind(this) - ); + this.refreshMembers(); + } + + async refreshMembers() { + const res = await request.get(api("members")); + this.setState({ + members: _.shuffle(res.data), + }); } render() { - var members = this.state.members.map(function(member, i) { + var members = this.state.members.map(member => { var src = `${member.avatar_url}&s=120`; - return ; + return ; }); return (