UNPKG

clickable-json

Version:

Interactive JSON and JSON CRDT viewer and editor

29 lines 1.18 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.InputProvider = exports.useInput = exports.context = void 0; const React = require("react"); exports.context = React.createContext(null); const useInput = () => React.useContext(exports.context); exports.useInput = useInput; const InputProvider = ({ children }) => { const parentContext = (0, exports.useInput)(); const [focused, setFocused] = React.useState(false); React.useEffect(() => { if (parentContext) return; const onFocusIn = () => { setFocused(!!document.activeElement && document.activeElement.tagName === 'INPUT'); }; document.addEventListener('focus', onFocusIn, true); document.addEventListener('blur', onFocusIn, true); return () => { document.removeEventListener('focus', onFocusIn); document.removeEventListener('blur', onFocusIn); }; }, []); if (parentContext) return children; return React.createElement(exports.context.Provider, { value: { focused } }, children); }; exports.InputProvider = InputProvider; //# sourceMappingURL=input.js.map