UNPKG

@wordpress/components

Version:
46 lines (40 loc) 1.03 kB
import { createElement } from "@wordpress/element"; /** * External dependencies */ import { CacheProvider } from '@emotion/react'; import createCache from '@emotion/cache'; import memoize from 'memize'; import * as uuid from 'uuid'; /** * Internal dependencies */ const uuidCache = new Set(); const memoizedCreateCacheWithContainer = memoize(container => { // Emotion only accepts alphabetical and hyphenated keys so we just // strip the numbers from the UUID. It _should_ be fine. let key = uuid.v4().replace(/[0-9]/g, ''); while (uuidCache.has(key)) { key = uuid.v4().replace(/[0-9]/g, ''); } uuidCache.add(key); return createCache({ container, key }); }); export function StyleProvider(props) { const { children, document } = props; if (!document) { return null; } const cache = memoizedCreateCacheWithContainer(document.head); return createElement(CacheProvider, { value: cache }, children); } export default StyleProvider; //# sourceMappingURL=index.js.map