mirror of
https://github.com/idanoo/GoScrobble.git
synced 2024-11-25 09:55:15 +00:00
39 lines
1.2 KiB
JavaScript
39 lines
1.2 KiB
JavaScript
import _extends from "@babel/runtime/helpers/esm/extends";
|
|
import React from 'react';
|
|
import { SheetsRegistry } from 'jss';
|
|
import StylesProvider from '../StylesProvider';
|
|
import createGenerateClassName from '../createGenerateClassName';
|
|
export default class ServerStyleSheets {
|
|
constructor(options = {}) {
|
|
this.options = options;
|
|
}
|
|
|
|
collect(children) {
|
|
// This is needed in order to deduplicate the injection of CSS in the page.
|
|
const sheetsManager = new Map(); // This is needed in order to inject the critical CSS.
|
|
|
|
this.sheetsRegistry = new SheetsRegistry(); // A new class name generator
|
|
|
|
const generateClassName = createGenerateClassName();
|
|
return /*#__PURE__*/React.createElement(StylesProvider, _extends({
|
|
sheetsManager: sheetsManager,
|
|
serverGenerateClassName: generateClassName,
|
|
sheetsRegistry: this.sheetsRegistry
|
|
}, this.options), children);
|
|
}
|
|
|
|
toString() {
|
|
return this.sheetsRegistry ? this.sheetsRegistry.toString() : '';
|
|
}
|
|
|
|
getStyleElement(props) {
|
|
return /*#__PURE__*/React.createElement('style', _extends({
|
|
id: 'jss-server-side',
|
|
key: 'jss-server-side',
|
|
dangerouslySetInnerHTML: {
|
|
__html: this.toString()
|
|
}
|
|
}, props));
|
|
}
|
|
|
|
} |