PromucFlow_constructor/app/client/src/utils/hooks/useProceedToNextTourStep.tsx
2021-05-20 17:33:08 +05:30

23 lines
789 B
TypeScript

import { TourType } from "entities/Tour";
import { useDispatch, useSelector } from "react-redux";
import { AppState } from "reducers";
import { getActiveTourIndex, getActiveTourType } from "selectors/tourSelectors";
import { proceedToNextTourStep } from "actions/tourActions";
const useProceedToNextTourStep = (tourType: TourType, tourIndex: number) => {
const dispatch = useDispatch();
const isCurrentStepActive = useSelector(
(state: AppState) => getActiveTourIndex(state) === tourIndex,
);
const isCurrentTourActive = useSelector(
(state: AppState) => getActiveTourType(state) === tourType,
);
const isActive = isCurrentStepActive && isCurrentTourActive;
return () => isActive && dispatch(proceedToNextTourStep());
};
export default useProceedToNextTourStep;