This repository has been archived on 2022-08-14. You can view files and clone it, but cannot push or open issues or pull requests.
Files
outline/frontend/scenes/SlackAuth/SlackAuth.js
2016-08-28 10:59:34 -07:00

49 lines
1.1 KiB
JavaScript

import React from 'react';
import { observer } from 'mobx-react';
import { browserHistory } from 'react-router';
import { client } from 'utils/ApiClient';
@observer(['user'])
class SlackAuth extends React.Component {
static propTypes = {
user: React.PropTypes.object.isRequired,
location: React.PropTypes.object.isRequired,
route: React.PropTypes.object.isRequired,
}
componentDidMount = async () => {
const { error, code, state } = this.props.location.query;
if (error) {
if (error === 'access_denied') {
// User selected "Deny" access on Slack OAuth
browserHistory.push('/');
} else {
browserHistory.push('/auth/error');
}
return;
}
if (this.props.route.apiPath) {
try {
await client.post(this.props.route.apiPath, { code });
browserHistory.replace('/dashboard');
} catch (e) {
browserHistory.push('/auth-error');
return;
}
} else {
// Regular Slack authentication
this.props.user.authWithSlack(code, state);
}
}
render() {
return (
<div></div>
);
}
}
export default SlackAuth;