@workday/canvas-kit-react
Version:
The parent module that contains all Workday Canvas Kit React components
37 lines (36 loc) • 1.42 kB
JavaScript
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.useCloseOnFullscreenExit = void 0;
const react_1 = __importDefault(require("react"));
const screenfull_1 = __importDefault(require("screenfull"));
const common_1 = require("@workday/canvas-kit-react/common");
const usePopupModel_1 = require("./usePopupModel");
/**
* Closes the popup when fullscreen is exited. Entering/exiting fullscreen changes the context of
* the entire screen. This should be added to popup types that are very context sensitive like
* Tooltips.
*/
exports.useCloseOnFullscreenExit = (0, common_1.createElemPropsHook)(usePopupModel_1.usePopupModel)(model => {
const handler = react_1.default.useCallback((event) => {
if (!screenfull_1.default.isFullscreen) {
model.events.hide(event);
}
}, [model.events]);
const visible = model.state.visibility !== 'hidden';
react_1.default.useEffect(() => {
if (!visible) {
return;
}
if (screenfull_1.default.isEnabled) {
screenfull_1.default.on('change', handler);
return () => {
screenfull_1.default.off('change', handler);
};
}
return;
}, [handler, visible]);
return {};
});
;