mirror of
https://github.com/idanoo/GoScrobble.git
synced 2024-11-25 09:55:15 +00:00
50 lines
1.7 KiB
JavaScript
50 lines
1.7 KiB
JavaScript
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 };
|