@douyinfe/semi-ui 2.55.0 → 2.55.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -8,6 +8,7 @@ export interface CollapseContextType {
8
8
  expandIconPosition: 'left' | 'right';
9
9
  onClick: (activeKey: string, e: React.MouseEvent) => void;
10
10
  motion: boolean;
11
+ lazyRender: boolean;
11
12
  }
12
13
  declare const CollapseContext: React.Context<CollapseContextType>;
13
14
  export default CollapseContext;
@@ -11,6 +11,7 @@ export interface CollapseReactProps extends CollapseProps {
11
11
  children?: React.ReactNode;
12
12
  style?: CSSProperties;
13
13
  onChange?: (activeKey: CollapseProps['activeKey'], e: React.MouseEvent) => void;
14
+ lazyRender?: boolean;
14
15
  }
15
16
  export type { CollapseState };
16
17
  declare class Collapse extends BaseComponent<CollapseReactProps, CollapseState> {
@@ -28,6 +29,7 @@ declare class Collapse extends BaseComponent<CollapseReactProps, CollapseState>
28
29
  keepDOM: PropTypes.Requireable<boolean>;
29
30
  motion: PropTypes.Requireable<NonNullable<boolean | object>>;
30
31
  expandIconPosition: PropTypes.Requireable<string>;
32
+ lazyRender: PropTypes.Requireable<boolean>;
31
33
  };
32
34
  static __SemiComponentName__: string;
33
35
  static defaultProps: any;
@@ -66,6 +66,7 @@ class Collapse extends _baseComponent.default {
66
66
  const _a = this.props,
67
67
  {
68
68
  defaultActiveKey,
69
+ lazyRender,
69
70
  accordion,
70
71
  style,
71
72
  motion,
@@ -77,7 +78,7 @@ class Collapse extends _baseComponent.default {
77
78
  children,
78
79
  clickHeaderToExpand
79
80
  } = _a,
80
- rest = __rest(_a, ["defaultActiveKey", "accordion", "style", "motion", "className", "keepDOM", "expandIconPosition", "expandIcon", "collapseIcon", "children", "clickHeaderToExpand"]);
81
+ rest = __rest(_a, ["defaultActiveKey", "lazyRender", "accordion", "style", "motion", "className", "keepDOM", "expandIconPosition", "expandIcon", "collapseIcon", "children", "clickHeaderToExpand"]);
81
82
  const clsPrefix = (0, _classnames.default)(_constants.cssClasses.PREFIX, className);
82
83
  const {
83
84
  activeSet
@@ -94,7 +95,8 @@ class Collapse extends _baseComponent.default {
94
95
  keepDOM,
95
96
  expandIconPosition,
96
97
  onClick: this.onChange,
97
- motion
98
+ motion,
99
+ lazyRender
98
100
  }
99
101
  }, children));
100
102
  }
@@ -112,14 +114,16 @@ Collapse.propTypes = {
112
114
  className: _propTypes.default.string,
113
115
  keepDOM: _propTypes.default.bool,
114
116
  motion: _propTypes.default.oneOfType([_propTypes.default.bool, _propTypes.default.func, _propTypes.default.object]),
115
- expandIconPosition: _propTypes.default.oneOf(_constants.strings.iconPosition)
117
+ expandIconPosition: _propTypes.default.oneOf(_constants.strings.iconPosition),
118
+ lazyRender: _propTypes.default.bool
116
119
  };
117
- Collapse.__SemiComponentName__ = "Collapse";
120
+ Collapse.__SemiComponentName__ = 'Collapse';
118
121
  Collapse.defaultProps = (0, _utils.getDefaultPropsFromGlobalConfig)(Collapse.__SemiComponentName__, {
119
122
  defaultActiveKey: '',
120
123
  clickHeaderToExpand: true,
121
124
  onChange: _function.noop,
122
- expandIconPosition: 'right'
125
+ expandIconPosition: 'right',
126
+ lazyRender: false
123
127
  });
124
128
  var _default = Collapse;
125
129
  exports.default = _default;
@@ -92,7 +92,8 @@ class CollapsePanel extends _react.PureComponent {
92
92
  keepDOM,
93
93
  expandIconPosition,
94
94
  activeSet,
95
- motion
95
+ motion,
96
+ lazyRender
96
97
  } = this.context;
97
98
  const active = activeSet.has(itemKey);
98
99
  const itemCls = (0, _classnames.default)(className, {
@@ -117,6 +118,7 @@ class CollapsePanel extends _react.PureComponent {
117
118
  "aria-owns": this.ariaID,
118
119
  onClick: e => !disabled && this.handleClick(itemKey, e)
119
120
  }, this.renderHeader(active, children !== undefined && !disabled)), children && /*#__PURE__*/_react.default.createElement(_collapsible.default, {
121
+ lazyRender: lazyRender,
120
122
  isOpen: active,
121
123
  keepDOM: keepDOM,
122
124
  motion: motion,
@@ -29,6 +29,7 @@ declare class Collapsible extends BaseComponent<CollapsibleProps, CollapsibleSta
29
29
  foundation: CollapsibleFoundation;
30
30
  private domRef;
31
31
  private resizeObserver;
32
+ private hasBeenRendered;
32
33
  constructor(props: CollapsibleProps);
33
34
  get adapter(): CollapsibleAdapter<CollapsibleProps, CollapsibleState>;
34
35
  static getEntryInfo: (entry: ResizeObserverEntry) => {
@@ -18,6 +18,7 @@ class Collapsible extends _baseComponent.default {
18
18
  constructor(props) {
19
19
  super(props);
20
20
  this.domRef = /*#__PURE__*/_react.default.createRef();
21
+ this.hasBeenRendered = false;
21
22
  this.handleResize = entryList => {
22
23
  const entry = entryList[0];
23
24
  if (entry) {
@@ -114,7 +115,10 @@ class Collapsible extends _baseComponent.default {
114
115
  const wrapperCls = (0, _classnames.default)(`${_constants.cssClasses.PREFIX}-wrapper`, {
115
116
  [`${_constants.cssClasses.PREFIX}-transition`]: this.props.motion && this.state.isTransitioning
116
117
  }, this.props.className);
117
- const shouldRender = this.props.keepDOM && !this.props.lazyRender || this.props.collapseHeight !== 0 || this.state.visible || this.props.isOpen;
118
+ const shouldRender = this.props.keepDOM && (this.props.lazyRender ? this.hasBeenRendered : true) || this.props.collapseHeight !== 0 || this.state.visible || this.props.isOpen;
119
+ if (shouldRender && !this.hasBeenRendered) {
120
+ this.hasBeenRendered = true;
121
+ }
118
122
  return /*#__PURE__*/_react.default.createElement("div", Object.assign({
119
123
  className: wrapperCls,
120
124
  style: wrapperStyle,
@@ -142,7 +146,7 @@ Collapsible.defaultProps = (0, _utils.getDefaultPropsFromGlobalConfig)(Collapsib
142
146
  duration: 250,
143
147
  motion: true,
144
148
  keepDOM: false,
145
- lazyRender: true,
149
+ lazyRender: false,
146
150
  collapseHeight: 0,
147
151
  fade: false
148
152
  });
@@ -8,6 +8,7 @@ export interface CollapseContextType {
8
8
  expandIconPosition: 'left' | 'right';
9
9
  onClick: (activeKey: string, e: React.MouseEvent) => void;
10
10
  motion: boolean;
11
+ lazyRender: boolean;
11
12
  }
12
13
  declare const CollapseContext: React.Context<CollapseContextType>;
13
14
  export default CollapseContext;
@@ -11,6 +11,7 @@ export interface CollapseReactProps extends CollapseProps {
11
11
  children?: React.ReactNode;
12
12
  style?: CSSProperties;
13
13
  onChange?: (activeKey: CollapseProps['activeKey'], e: React.MouseEvent) => void;
14
+ lazyRender?: boolean;
14
15
  }
15
16
  export type { CollapseState };
16
17
  declare class Collapse extends BaseComponent<CollapseReactProps, CollapseState> {
@@ -28,6 +29,7 @@ declare class Collapse extends BaseComponent<CollapseReactProps, CollapseState>
28
29
  keepDOM: PropTypes.Requireable<boolean>;
29
30
  motion: PropTypes.Requireable<NonNullable<boolean | object>>;
30
31
  expandIconPosition: PropTypes.Requireable<string>;
32
+ lazyRender: PropTypes.Requireable<boolean>;
31
33
  };
32
34
  static __SemiComponentName__: string;
33
35
  static defaultProps: any;
@@ -17,7 +17,7 @@ import CollapsePanel from './item';
17
17
  import '@douyinfe/semi-foundation/lib/es/collapse/collapse.css';
18
18
  import { noop } from '@douyinfe/semi-foundation/lib/es/utils/function';
19
19
  import CollapseContext from './collapse-context';
20
- import { getDefaultPropsFromGlobalConfig } from "../_utils";
20
+ import { getDefaultPropsFromGlobalConfig } from '../_utils';
21
21
  class Collapse extends BaseComponent {
22
22
  constructor(props) {
23
23
  super(props);
@@ -59,6 +59,7 @@ class Collapse extends BaseComponent {
59
59
  const _a = this.props,
60
60
  {
61
61
  defaultActiveKey,
62
+ lazyRender,
62
63
  accordion,
63
64
  style,
64
65
  motion,
@@ -70,7 +71,7 @@ class Collapse extends BaseComponent {
70
71
  children,
71
72
  clickHeaderToExpand
72
73
  } = _a,
73
- rest = __rest(_a, ["defaultActiveKey", "accordion", "style", "motion", "className", "keepDOM", "expandIconPosition", "expandIcon", "collapseIcon", "children", "clickHeaderToExpand"]);
74
+ rest = __rest(_a, ["defaultActiveKey", "lazyRender", "accordion", "style", "motion", "className", "keepDOM", "expandIconPosition", "expandIcon", "collapseIcon", "children", "clickHeaderToExpand"]);
74
75
  const clsPrefix = cls(cssClasses.PREFIX, className);
75
76
  const {
76
77
  activeSet
@@ -87,7 +88,8 @@ class Collapse extends BaseComponent {
87
88
  keepDOM,
88
89
  expandIconPosition,
89
90
  onClick: this.onChange,
90
- motion
91
+ motion,
92
+ lazyRender
91
93
  }
92
94
  }, children));
93
95
  }
@@ -105,13 +107,15 @@ Collapse.propTypes = {
105
107
  className: PropTypes.string,
106
108
  keepDOM: PropTypes.bool,
107
109
  motion: PropTypes.oneOfType([PropTypes.bool, PropTypes.func, PropTypes.object]),
108
- expandIconPosition: PropTypes.oneOf(strings.iconPosition)
110
+ expandIconPosition: PropTypes.oneOf(strings.iconPosition),
111
+ lazyRender: PropTypes.bool
109
112
  };
110
- Collapse.__SemiComponentName__ = "Collapse";
113
+ Collapse.__SemiComponentName__ = 'Collapse';
111
114
  Collapse.defaultProps = getDefaultPropsFromGlobalConfig(Collapse.__SemiComponentName__, {
112
115
  defaultActiveKey: '',
113
116
  clickHeaderToExpand: true,
114
117
  onChange: noop,
115
- expandIconPosition: 'right'
118
+ expandIconPosition: 'right',
119
+ lazyRender: false
116
120
  });
117
121
  export default Collapse;
@@ -83,7 +83,8 @@ export default class CollapsePanel extends PureComponent {
83
83
  keepDOM,
84
84
  expandIconPosition,
85
85
  activeSet,
86
- motion
86
+ motion,
87
+ lazyRender
87
88
  } = this.context;
88
89
  const active = activeSet.has(itemKey);
89
90
  const itemCls = cls(className, {
@@ -108,6 +109,7 @@ export default class CollapsePanel extends PureComponent {
108
109
  "aria-owns": this.ariaID,
109
110
  onClick: e => !disabled && this.handleClick(itemKey, e)
110
111
  }, this.renderHeader(active, children !== undefined && !disabled)), children && /*#__PURE__*/React.createElement(Collapsible, {
112
+ lazyRender: lazyRender,
111
113
  isOpen: active,
112
114
  keepDOM: keepDOM,
113
115
  motion: motion,
@@ -29,6 +29,7 @@ declare class Collapsible extends BaseComponent<CollapsibleProps, CollapsibleSta
29
29
  foundation: CollapsibleFoundation;
30
30
  private domRef;
31
31
  private resizeObserver;
32
+ private hasBeenRendered;
32
33
  constructor(props: CollapsibleProps);
33
34
  get adapter(): CollapsibleAdapter<CollapsibleProps, CollapsibleState>;
34
35
  static getEntryInfo: (entry: ResizeObserverEntry) => {
@@ -11,6 +11,7 @@ class Collapsible extends BaseComponent {
11
11
  constructor(props) {
12
12
  super(props);
13
13
  this.domRef = /*#__PURE__*/React.createRef();
14
+ this.hasBeenRendered = false;
14
15
  this.handleResize = entryList => {
15
16
  const entry = entryList[0];
16
17
  if (entry) {
@@ -107,7 +108,10 @@ class Collapsible extends BaseComponent {
107
108
  const wrapperCls = cls(`${cssClasses.PREFIX}-wrapper`, {
108
109
  [`${cssClasses.PREFIX}-transition`]: this.props.motion && this.state.isTransitioning
109
110
  }, this.props.className);
110
- const shouldRender = this.props.keepDOM && !this.props.lazyRender || this.props.collapseHeight !== 0 || this.state.visible || this.props.isOpen;
111
+ const shouldRender = this.props.keepDOM && (this.props.lazyRender ? this.hasBeenRendered : true) || this.props.collapseHeight !== 0 || this.state.visible || this.props.isOpen;
112
+ if (shouldRender && !this.hasBeenRendered) {
113
+ this.hasBeenRendered = true;
114
+ }
111
115
  return /*#__PURE__*/React.createElement("div", Object.assign({
112
116
  className: wrapperCls,
113
117
  style: wrapperStyle,
@@ -135,7 +139,7 @@ Collapsible.defaultProps = getDefaultPropsFromGlobalConfig(Collapsible.__SemiCom
135
139
  duration: 250,
136
140
  motion: true,
137
141
  keepDOM: false,
138
- lazyRender: true,
142
+ lazyRender: false,
139
143
  collapseHeight: 0,
140
144
  fade: false
141
145
  });
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@douyinfe/semi-ui",
3
- "version": "2.55.0",
3
+ "version": "2.55.1",
4
4
  "description": "A modern, comprehensive, flexible design system and UI library. Connect DesignOps & DevOps. Quickly build beautiful React apps. Maintained by Douyin-fe team.",
5
5
  "main": "lib/cjs/index.js",
6
6
  "module": "lib/es/index.js",
@@ -20,12 +20,12 @@
20
20
  "@dnd-kit/core": "^6.0.8",
21
21
  "@dnd-kit/sortable": "^7.0.2",
22
22
  "@dnd-kit/utilities": "^3.2.1",
23
- "@douyinfe/semi-animation": "2.55.0",
24
- "@douyinfe/semi-animation-react": "2.55.0",
25
- "@douyinfe/semi-foundation": "2.55.0",
26
- "@douyinfe/semi-icons": "2.55.0",
27
- "@douyinfe/semi-illustrations": "2.55.0",
28
- "@douyinfe/semi-theme-default": "2.55.0",
23
+ "@douyinfe/semi-animation": "2.55.1",
24
+ "@douyinfe/semi-animation-react": "2.55.1",
25
+ "@douyinfe/semi-foundation": "2.55.1",
26
+ "@douyinfe/semi-icons": "2.55.1",
27
+ "@douyinfe/semi-illustrations": "2.55.1",
28
+ "@douyinfe/semi-theme-default": "2.55.1",
29
29
  "async-validator": "^3.5.0",
30
30
  "classnames": "^2.2.6",
31
31
  "copy-text-to-clipboard": "^2.1.1",
@@ -75,7 +75,7 @@
75
75
  ],
76
76
  "author": "",
77
77
  "license": "MIT",
78
- "gitHead": "21f02cad422b2d15d9f5d9b7b1ca96b0d21bb545",
78
+ "gitHead": "d74bd5368afc88bc49abc4ba432be9dd74fa707b",
79
79
  "devDependencies": {
80
80
  "@babel/plugin-proposal-decorators": "^7.15.8",
81
81
  "@babel/plugin-transform-runtime": "^7.15.8",