UNPKG

@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
"use strict"; 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; }; }