UNPKG

@atlaskit/spotlight

Version:

A spotlight introduces users to points of interest, from focused messages to multi-step tours.

37 lines (36 loc) 1.12 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.useOnClickOutside = void 0; var _react = require("react"); var _bindEventListener = require("bind-event-listener"); var _browserApis = require("@atlaskit/browser-apis"); var _context = require("../../controllers/context"); var useOnClickOutside = exports.useOnClickOutside = function useOnClickOutside(onClickOutside) { var _useContext = (0, _react.useContext)(_context.SpotlightContext), card = _useContext.card; var ref = card.ref; (0, _react.useEffect)(function () { var doc = (0, _browserApis.getDocument)(); if (!doc) { return; } var unbindMouseUp = (0, _bindEventListener.bind)(doc, { type: 'mouseup', listener: function listener(event) { if (!ref || !ref.current) { return; } var target = event.target instanceof Node ? event.target : null; if (ref.current.contains(target)) { return; } onClickOutside(event); } }); return function () { unbindMouseUp(); }; }, [onClickOutside, ref]); };