Secure your code as it's written. Use Snyk Code to scan source code in minutes - no build needed - and fix issues immediately.
const { actions } = step || {};
const { prev, next } = actions || {};
if ([STATUS.FINISHED, STATUS.SKIPPED].includes(status)) {
// Need to set our running state to false, so we can restart if we click start again.
handleStateChange({ open: false, stepIndex: 0, stepsKey: '' });
} else if (data.action === 'close' || data.type === 'tour:end') {
handleStateChange({
stepIndex: 0,
open: false
});
} else if (
[
EVENTS.STEP_AFTER,
EVENTS.TARGET_NOT_FOUND,
EVENTS.TOUR_START
].includes(type)
) {
const newStepIndex = index + (action === ACTIONS.PREV ? -1 : 1);
// Update state to advance the tour
let delay = 400;
if (action === 'prev' && prev) {
prev();
}
if (action === 'next' && next) {
next();
}
if (action === 'start' && prev && index === 0) {
prev();
const handleJoyrideCallback = (data) => {
const {
action, index, type, status,
} = data;
if ([EVENTS.TOUR_START].includes(type)) {
document.addEventListener('mouseup', onClick);
} else if ([ACTIONS.START].includes(action) && index === 0) {
// if the guide is restarted there will be no EVENTS.TOUR_START, the EventListener must
// be added on ACTION.START and step 0.
document.addEventListener('mouseup', onClick);
} else if ([ACTIONS.CLOSE].includes(action) || [STATUS.FINISHED, STATUS.SKIPPED].includes(status)) {
if (runGuide) {
endGuide();
}
} else if ([EVENTS.STEP_AFTER].includes(type)) {
const newStepIndex = index + (action === ACTIONS.PREV ? -1 : 1);
if (action !== ACTIONS.PREV && !readyToProceed(newStepIndex)) {
// we are not ready to proceed to the next step. Reset the current step.
// The stop/start of the guide is needed to reset the Joyride events, or it will
// be somewhere in between steps, statewise.
setRunGuide(false);