23 lines
789 B
TypeScript
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;
|