Nelze vybrat více než 25 témat Téma musí začínat písmenem nebo číslem, může obsahovat pomlčky („-“) a může být dlouhé až 35 znaků.

StepProgress.js 1.2KB

12345678910111213141516171819202122232425262728293031323334353637383940414243
  1. import React from "react";
  2. import PropTypes from "prop-types";
  3. import { ComponentContainer, Progress, StepBar, StepLine } from "./StepProgress.styled";
  4. import { ReactComponent as Checkmark } from "../../assets/images/svg/checkmark.svg";
  5. const StepProgress = (props) => {
  6. const steps = [];
  7. for (let i = 1; i <= props.numberOfSteps; i++) {
  8. steps.push({
  9. done: i < props.current,
  10. current: i === props.current,
  11. });
  12. }
  13. return (
  14. <ComponentContainer done>
  15. {steps.map((item, index) =>
  16. index === 0 ? (
  17. <StepBar current={item.current} done={item.done}>
  18. {item.done ? <Checkmark /> : index+1}
  19. </StepBar>
  20. ) : (
  21. <React.Fragment key={index}>
  22. <StepLine done={item.done || item.current} >
  23. <Progress done={item.done || item.current} />
  24. </StepLine>
  25. <StepBar current={item.current} done={item.done}>
  26. {item.done ? <Checkmark /> : index+1}
  27. </StepBar>
  28. </React.Fragment>
  29. )
  30. )}
  31. </ComponentContainer>
  32. );
  33. };
  34. StepProgress.propTypes = {
  35. children: PropTypes.node,
  36. handleNext: PropTypes.node,
  37. current: PropTypes.number,
  38. numberOfSteps: PropTypes.number,
  39. };
  40. export default StepProgress;