cnap-cobre/synapse

View on GitHub
frontend/src/components/LinkBeocatButton/LinkBeocatButton.js

Summary

Maintainability
A
0 mins
Test Coverage
// @flow
 
import { connect } from 'react-redux';
import React from 'react';
import { addModal } from '../../store/ui/modals/Modals';
import './beocatButton.scss';
 
type Props = {
hasLinkedAgaveAccount: boolean,
addModal({ modalType: string }): typeof undefined,
}
 
class LinkBeocatButton extends React.Component<Props> {
onButtonClick = () => {
const { addModal } = this.props;
addModal({
modalType: 'linkBeocatWizard',
});
};
 
render() {
const { hasLinkedAgaveAccount } = this.props;
 
const button = (
<button
title="Beocat"
className="btn btn-block btn-social btn-beocat"
onClick={this.onButtonClick}
type="button"
>
<img src="/dj-static/img/ksu-logo.svg" alt="K-State Logo" />
Link your Beocat Account
</button>
 
);
 
const linkAgaveButton = (
<a
href="/accounts/agave/login/?process=connect"
className="btn btn-block btn-social socialaccount_provider btn-agave"
>
<img src="/dj-static/img/agave_icon.png" alt="Agave Logo" />
First, link your Agave Account
</a>
);
 
return hasLinkedAgaveAccount ? button : linkAgaveButton;
}
}
 
const mapStateToProps = store => ({
hasLinkedAgaveAccount: store.userProfile.agave.length !== 0,
});
 
const mapDispatchToProps = {
addModal,
};
 
export default connect(
mapStateToProps,
mapDispatchToProps,
)(LinkBeocatButton);