diff --git a/assets/css/src/progress_bar.styl b/assets/css/src/progress_bar.styl index 7476fb4733..4564316abe 100644 --- a/assets/css/src/progress_bar.styl +++ b/assets/css/src/progress_bar.styl @@ -28,3 +28,36 @@ .mailpoet_progress_bar background-color: hsla(191, 78%, 80%, 1) background-image: linear-gradient(top, hsla(191, 78%, 80%, 1), hsla(191, 76%, 67%, 1)) + +.mailpoet_stepped_progress_bar + margin: auto + width: 400px + &:before + position: relative + top: 9px + content: "" + display: block + height: 2px + width: 100% + border-radius: 2px + background-color: #d8d8d8 + margin: auto + +.mailpoet_stepped_progress_bar_step + display: inline-block + &:before + position: relative + content: "" + display: block + height: 14px + width: 14px + border-radius: 14px + background-color: #d8d8d8 + margin: auto + &.active + &:before + background-color: #979797 + +@media screen and (max-width 520px) + .mailpoet_stepped_progress_bar + width: 360px diff --git a/assets/js/src/common/stepped_progess_bar.jsx b/assets/js/src/common/stepped_progess_bar.jsx new file mode 100644 index 0000000000..ce1f6906d3 --- /dev/null +++ b/assets/js/src/common/stepped_progess_bar.jsx @@ -0,0 +1,27 @@ +import React from 'react'; + +const SteppedProgressBar = (props) => { + if (props.step > props.steps_count) { + return null; + } + return ( +
+ { + [...Array(props.steps_count).keys()].map(step => ( +
+ )) + } +
+ ); +}; + +SteppedProgressBar.propTypes = { + steps_count: React.PropTypes.number.isRequired, + step: React.PropTypes.number.isRequired, +}; + +module.exports = SteppedProgressBar;