import React, { Component } from 'react'; import PropTypes from 'prop-types'; import { connect } from 'react-redux'; import { withRouter, Link } from 'react-router-dom'; import clsx from 'clsx'; import { tutorials } from './tutorials'; import { fade } from '@material-ui/core/styles/colorManipulator'; import { withStyles } from '@material-ui/core/styles'; import withWidth, { isWidthUp } from '@material-ui/core/withWidth'; import Button from '@material-ui/core/Button'; import Stepper from '@material-ui/core/Stepper'; import Step from '@material-ui/core/Step'; import StepLabel from '@material-ui/core/StepLabel'; import Tooltip from '@material-ui/core/Tooltip'; const styles = (theme) => ({ verticalStepper: { padding: 0, width: '30px', }, stepIcon: { borderStyle: `solid`, // borderWidth: '2px', borderRadius: '50%', width: '12px', height: '12px', margin: '0 auto' }, stepIconMedium: { width: '18px', height: '18px', }, stepIconLarge: { width: '24px', height: '24px' }, stepIconTransparent: { borderColor: `transparent`, cursor: 'default' }, stepIconSuccess: { borderColor: theme.palette.primary.main, }, stepIconError: { borderColor: theme.palette.error.dark, }, stepIconOther: { borderColor: theme.palette.secondary.main, }, stepIconActiveSuccess: { backgroundColor: fade(theme.palette.primary.main, 0.6) }, stepIconActiveError: { backgroundColor: fade(theme.palette.error.dark, 0.6) }, stepIconActiveOther: { backgroundColor: fade(theme.palette.secondary.main, 0.6) }, progress: { position: 'absolute', top: 0, right: 0, marginRight: '5px', width: '3px', }, progressForeground: { backgroundColor: theme.palette.primary.main }, progressBackground: { backgroundColor: fade(theme.palette.primary.main, 0.2), height: '100%', borderRadius: '2px' } }); class StepperVertical extends Component { constructor(props){ super(props); this.state = { tutorialArray: props.currentTutorialId === 0 ? tutorials.slice(props.currentTutorialId, props.currentTutorialId+5) : props.currentTutorialId === 1 ? tutorials.slice(props.currentTutorialId-1, props.currentTutorialId+4) : props.currentTutorialId === tutorials.length-1 ? tutorials.slice(props.currentTutorialId-4, props.currentTutorialId+5) : props.currentTutorialId === tutorials.length-2 ? tutorials.slice(props.currentTutorialId-3, props.currentTutorialId+4) : tutorials.slice(props.currentTutorialId-2, props.currentTutorialId+3), selectedVerticalTutorialId: props.currentTutorialId }; } componentDidUpdate(props){ if(props.currentTutorialId !== this.props.currentTutorialId){ this.setState({ tutorialArray: props.currentTutorialId === 0 ? tutorials.slice(props.currentTutorialId, props.currentTutorialId+5) : props.currentTutorialId === 1 ? tutorials.slice(props.currentTutorialId-1, props.currentTutorialId+4) : props.currentTutorialId === tutorials.length-1 ? tutorials.slice(props.currentTutorialId-4, props.currentTutorialId+5) : props.currentTutorialId === tutorials.length-2 ? tutorials.slice(props.currentTutorialId-3, props.currentTutorialId+4) : tutorials.slice(props.currentTutorialId-2, props.currentTutorialId+3), selectedVerticalTutorialId: props.currentTutorialId }); } } verticalStepper = (step) => { var newTutorialId = this.state.selectedVerticalTutorialId + step; var tutorialArray = newTutorialId === 0 ? tutorials.slice(newTutorialId, newTutorialId+5) : newTutorialId === 1 ? tutorials.slice(newTutorialId-1, newTutorialId+4) : newTutorialId === tutorials.length-1 ? tutorials.slice(newTutorialId-4, newTutorialId+5) : newTutorialId === tutorials.length-2 ? tutorials.slice(newTutorialId-3, newTutorialId+4) : tutorials.slice(newTutorialId-2, newTutorialId+3); this.setState({ tutorialArray: tutorialArray, selectedVerticalTutorialId: newTutorialId }); } render() { var tutorialId = this.props.currentTutorialId; var selectedVerticalTutorialId = this.state.selectedVerticalTutorialId; return ( isWidthUp('sm', this.props.width) ?