Blame view

天文台pc/tianwentai-ui/node_modules/@mui/system/memoTheme.js 995 Bytes
bc518174   王天杨   提交两个项目文件
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
  "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;
    };
  }