UNPKG

@itwin/itwinui-react

Version:

A react component library for iTwinUI

47 lines (46 loc) 1.6 kB
'use strict'; Object.defineProperty(exports, '__esModule', { value: true, }); Object.defineProperty(exports, 'useWarningLogger', { enumerable: true, get: function () { return useWarningLogger; }, }); const _interop_require_wildcard = require('@swc/helpers/_/_interop_require_wildcard'); const _react = /*#__PURE__*/ _interop_require_wildcard._(require('react')); const _dev = require('../functions/dev.js'); const _dom = require('../functions/dom.js'); const _React = _react; const ReactInternals = _React.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED; const useWarningLogger = 'development' !== process.env.NODE_ENV || _dev.isUnitTest ? () => () => {} : function () { let loggedRef = _react.useRef(false); let timeoutRef = _react.useRef(void 0); let stack = ReactInternals?.ReactDebugCurrentFrame?.getCurrentStack?.(); let componentName = stack?.trim().split('\n')[1]?.trim(); let prefix = componentName ? `Warning (${componentName}):` : 'Warning:'; let logWarning = _react.useCallback( (message) => { timeoutRef.current = (0, _dom.getWindow)()?.setTimeout(() => { if (!loggedRef.current) { console.error(prefix, message); loggedRef.current = true; } }); }, [prefix], ); _react.useEffect( () => () => { if (timeoutRef.current) (0, _dom.getWindow)()?.clearTimeout(timeoutRef.current); }, [], ); return logWarning; };