12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849 |
- var isBrowser = typeof document !== 'undefined';
- function getRegisteredStyles(registered, registeredStyles, classNames) {
- var rawClassName = '';
- classNames.split(' ').forEach(function (className) {
- if (registered[className] !== undefined) {
- registeredStyles.push(registered[className]);
- } else {
- rawClassName += className + " ";
- }
- });
- return rawClassName;
- }
- var insertStyles = function insertStyles(cache, serialized, isStringTag) {
- var className = cache.key + "-" + serialized.name;
-
- if ( // we only need to add the styles to the registered cache if the
- // class name could be used further down
- // the tree but if it's a string tag, we know it won't
- // so we don't have to add it to registered cache.
- // this improves memory usage since we can avoid storing the whole style string
- (isStringTag === false || // we need to always store it if we're in compat mode and
- // in node since emotion-server relies on whether a style is in
- // the registered cache to know whether a style is global or not
- // also, note that this check will be dead code eliminated in the browser
- isBrowser === false && cache.compat !== undefined) && cache.registered[className] === undefined) {
- cache.registered[className] = serialized.styles;
- }
-
- if (cache.inserted[serialized.name] === undefined) {
- var stylesForSSR = '';
- var current = serialized;
-
- do {
- var maybeStyles = cache.insert("." + className, current, cache.sheet, true);
-
- if (!isBrowser && maybeStyles !== undefined) {
- stylesForSSR += maybeStyles;
- }
-
- current = current.next;
- } while (current !== undefined);
-
- if (!isBrowser && stylesForSSR.length !== 0) {
- return stylesForSSR;
- }
- }
- };
-
- export { getRegisteredStyles, insertStyles };
|