@mui/styles
Version:
MUI Styles - The legacy JSS-based styling solution of Material UI.
47 lines (46 loc) • 1.67 kB
JavaScript
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard").default;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = void 0;
var React = _interopRequireWildcard(require("react"));
var _jss = require("jss");
var _StylesProvider = _interopRequireDefault(require("../StylesProvider"));
var _createGenerateClassName = _interopRequireDefault(require("../createGenerateClassName"));
var _jsxRuntime = require("react/jsx-runtime");
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 _jss.SheetsRegistry();
// A new class name generator
const generateClassName = (0, _createGenerateClassName.default)();
return /*#__PURE__*/(0, _jsxRuntime.jsx)(_StylesProvider.default, {
sheetsManager: sheetsManager,
serverGenerateClassName: generateClassName,
sheetsRegistry: this.sheetsRegistry,
...this.options,
children: children
});
}
toString() {
return this.sheetsRegistry ? this.sheetsRegistry.toString() : '';
}
getStyleElement(props) {
return /*#__PURE__*/React.createElement('style', {
id: 'jss-server-side',
key: 'jss-server-side',
dangerouslySetInnerHTML: {
__html: this.toString()
},
...props
});
}
}
exports.default = ServerStyleSheets;
;