import classNames from 'classnames/bind' import Button from './button' import Text from './text' const cx = classNames.bind(_s) export default class ProgressBar extends PureComponent { static propTypes = { progress: PropTypes.number, small: PropTypes.bool, title: PropTypes.string, } render() { const { progress, small, title, href } = this.props const completed = Math.min(parseFloat(progress), 100) const style = { width: `${completed}%`, } const containerOptions = { href, className: cx({ default: 1, backgroundPanel: !small, backgroundSubtle2: small, noUnderline: 1, circle: 1, overflowHidden: 1, cursorPointer: 1, height22PX: !small, height4PX: small, }), } return ( <Button noClasses {...containerOptions} > <div className={[_s.default, _s.backgroundColorBrandDark, _s.circle, _s.height100PC].join(' ')} style={style} /> <div className={[_s.default, _s.positionAbsolute, _s.width100PC, _s.height100PC, _s.alignItemsCenter, _s.justifyContentCenter].join(' ')}> { !!title && <Text size='small' weight='bold' color='white'> {title} </Text> } </div> </Button> ) } }