UNPKG

@atlaskit/onboarding

Version:

An onboarding spotlight introduces new features to users through focused messages or multi-step tours.

31 lines (30 loc) 1.38 kB
import { useCallback, useContext, useEffect, useMemo, useRef } from 'react'; import { SpotlightContext } from './spotlight-manager'; /** * Use spotlight hook returns information about available spotlight targets. * * @deprecated Use `@atlaskit/spotlight` instead. */ export default function useSpotlight() { var _useContext = useContext(SpotlightContext), targets = _useContext.targets; var targetRef = useRef(targets); useEffect(function () { targetRef.current = targets; }, [targets]); var isTargetRendered = useCallback(function (target) { return !!targetRef.current[target]; }, []); var checkVisibility = useCallback(function (target) { return function (options) { var _targetRef$current$ta, _targetRef$current$ta2, _targetRef$current$ta3; return (_targetRef$current$ta = (_targetRef$current$ta2 = targetRef.current[target]) === null || _targetRef$current$ta2 === void 0 || (_targetRef$current$ta3 = _targetRef$current$ta2.checkVisibility) === null || _targetRef$current$ta3 === void 0 ? void 0 : _targetRef$current$ta3.call(_targetRef$current$ta2, options)) !== null && _targetRef$current$ta !== void 0 ? _targetRef$current$ta : false; }; }, []); return useMemo(function () { return { isTargetRendered: isTargetRendered, checkVisibility: checkVisibility }; }, [isTargetRendered, checkVisibility]); }