UNPKG

grommet

Version:

focus on the essential experience

40 lines (32 loc) 1.23 kB
"use strict"; exports.__esModule = true; exports.AnnounceContext = void 0; var _react = _interopRequireDefault(require("react")); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } var createAnnouncer = function createAnnouncer() { var announcer = document.createElement('div'); announcer.style.left = '-100%'; announcer.style.right = '100%'; announcer.style.position = 'fixed'; announcer.style['z-index'] = '-1'; document.body.insertBefore(announcer, document.body.firstChild); return announcer; }; var AnnounceContext = _react["default"].createContext(function (message, mode, timeout) { if (mode === void 0) { mode = 'polite'; } if (timeout === void 0) { timeout = 500; } // we only create a new container if we don't have one already // we create a separate node so that grommet does not set aria-hidden to it var announcer = document.body.querySelector('[aria-live]') || createAnnouncer(); announcer.setAttribute('aria-live', 'off'); announcer.innerHTML = message; announcer.setAttribute('aria-live', mode); setTimeout(function () { announcer.innerHTML = ''; }, timeout); }); exports.AnnounceContext = AnnounceContext;