// @flow import React from 'react'; import styled from 'styled-components'; type Props = { onClick: Function, disabled?: boolean, isNew?: boolean, isSaving?: boolean, }; class SaveAction extends React.Component { props: Props; onClick = (ev: MouseEvent) => { if (this.props.disabled) return; ev.preventDefault(); this.props.onClick(); }; render() { const { isSaving, isNew, disabled } = this.props; return ( {isNew ? isSaving ? 'Publishing…' : 'Publish' : isSaving ? 'Saving…' : 'Save'} ); } } const Link = styled.a` display: flex; align-items: center; opacity: ${props => (props.disabled ? 0.5 : 1)}; pointer-events: ${props => (props.disabled ? 'none' : 'auto')}; cursor: ${props => (props.disabled ? 'default' : 'pointer')}; `; export default SaveAction;