File "progress-bar-item.js"
Full Path: /home/warrior1/public_html/wp-content/plugins/elementor/app/modules/onboarding/assets/js/components/progress-bar/progress-bar-item.js
File size: 1.18 KB
MIME-type: text/x-java
Charset: utf-8
import { useContext } from 'react';
import { OnboardingContext } from '../../context/context';
export default function ProgressBarItem( props ) {
const { state } = useContext( OnboardingContext ),
stepCompleted = 'completed' === state.steps[ props.id ],
stepSkipped = 'skipped' === state.steps[ props.id ];
let itemClasses = 'e-onboarding__progress-bar-item';
if ( props.id === state.currentStep ) {
itemClasses += ' e-onboarding__progress-bar-item--active';
} else if ( stepCompleted ) {
itemClasses += ' e-onboarding__progress-bar-item--completed';
} else if ( stepSkipped ) {
itemClasses += ' e-onboarding__progress-bar-item--skipped';
}
return (
// eslint-disable-next-line jsx-a11y/click-events-have-key-events, jsx-a11y/no-static-element-interactions
<div onClick={ props.onClick } className={ itemClasses }>
<div className="e-onboarding__progress-bar-item-icon">
{ stepCompleted ? <i className="eicon-check" /> : props.index + 1 }
</div>
{ props.title }
</div>
);
}
ProgressBarItem.propTypes = {
index: PropTypes.number.isRequired,
id: PropTypes.string.isRequired,
title: PropTypes.string.isRequired,
route: PropTypes.string,
onClick: PropTypes.func,
};