import React from 'react'; import PropTypes from 'prop-types'; import ImmutablePropTypes from 'react-immutable-proptypes'; import styled from 'react-emotion'; import { Icon, buttons, shadows } from 'netlify-cms-ui-default'; const StyledAuthenticationPage = styled.section` display: flex; flex-flow: column nowrap; align-items: center; justify-content: center; height: 100vh; ` const PageLogoIcon = styled(Icon)` color: #c4c6d2; margin-top: -300px; ` const LoginButton = styled.button` ${buttons.button}; ${shadows.dropDeep}; ${buttons.default}; ${buttons.gray}; padding: 0 30px; margin-top: -40px; display: flex; align-items: center; position: relative; ${Icon} { margin-right: 18px; } ` export default class AuthenticationPage extends React.Component { static propTypes = { onLogin: PropTypes.func.isRequired, inProgress: PropTypes.bool, config: ImmutablePropTypes.map.isRequired, }; componentWillMount() { /** * Allow login screen to be skipped for demo purposes. */ const skipLogin = this.props.config.getIn(['backend', 'login']) === false; if (skipLogin) { this.props.onLogin(this.state); } } handleLogin = (e) => { e.preventDefault(); this.props.onLogin(this.state); }; render() { const { inProgress } = this.props; return ( {inProgress ? "Logging in..." : "Login"} ); } }