@mui/system
Version:
MUI System is a set of CSS utilities to help you build custom designs more efficiently. It makes it possible to rapidly lay out custom designs.
34 lines (31 loc) • 995 B
JavaScript
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = unstable_memoTheme;
var _preprocessStyles = _interopRequireDefault(require("./preprocessStyles"));
/* eslint-disable @typescript-eslint/naming-convention */
// We need to pass an argument as `{ theme }` for PigmentCSS, but we don't want to
// allocate more objects.
const arg = {
theme: undefined
};
/**
* Memoize style function on theme.
* Intended to be used in styled() calls that only need access to the theme.
*/
function unstable_memoTheme(styleFn) {
let lastValue;
let lastTheme;
return function styleMemoized(props) {
let value = lastValue;
if (value === undefined || props.theme !== lastTheme) {
arg.theme = props.theme;
value = (0, _preprocessStyles.default)(styleFn(arg));
lastValue = value;
lastTheme = props.theme;
}
return value;
};
}
;