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));
|
||
|
}
|
||
|
|
||
|
}
|