@alicloud/console-base-rc-side-panel 1.1.32-beta.1 → 1.1.32-beta.2
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.
- package/build/cjs/model/hook/use-effect-collapsed.js +41 -0
- package/build/cjs/model/hook/use-effects.js +2 -0
- package/build/cjs/model/reducer/reduce-set-collapsed.js +0 -2
- package/build/esm/model/hook/use-effect-collapsed.js +34 -0
- package/build/esm/model/hook/use-effects.js +2 -0
- package/build/esm/model/reducer/reduce-set-collapsed.js +0 -2
- package/build/types/model/hook/use-effect-collapsed.d.ts +1 -0
- package/package.json +1 -1
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
+
Object.defineProperty(exports, "__esModule", {
|
|
5
|
+
value: true
|
|
6
|
+
});
|
|
7
|
+
exports.default = useEffectCollapsed;
|
|
8
|
+
var _react = require("react");
|
|
9
|
+
var _consoleBaseMessengerSidePanel = require("@alicloud/console-base-messenger-side-panel");
|
|
10
|
+
var _useCollapsed = _interopRequireDefault(require("./use-collapsed"));
|
|
11
|
+
function useEffectCollapsed() {
|
|
12
|
+
var collapsed = (0, _useCollapsed.default)();
|
|
13
|
+
var collapsedRef = (0, _react.useRef)(collapsed);
|
|
14
|
+
var prevCollapsedRef = (0, _react.useRef)(undefined);
|
|
15
|
+
var hasInitializedRef = (0, _react.useRef)(false);
|
|
16
|
+
|
|
17
|
+
// 更新 ref 以保存最新的 collapsed 值
|
|
18
|
+
collapsedRef.current = collapsed;
|
|
19
|
+
|
|
20
|
+
// 首次挂载时,延迟发送初始状态(等待异步获取和动画完成)
|
|
21
|
+
(0, _react.useEffect)(function () {
|
|
22
|
+
var timer = setTimeout(function () {
|
|
23
|
+
if (!hasInitializedRef.current) {
|
|
24
|
+
hasInitializedRef.current = true;
|
|
25
|
+
prevCollapsedRef.current = collapsedRef.current;
|
|
26
|
+
(0, _consoleBaseMessengerSidePanel.sidePanelCollapsed)(collapsedRef.current);
|
|
27
|
+
}
|
|
28
|
+
}, 300);
|
|
29
|
+
return function () {
|
|
30
|
+
return clearTimeout(timer);
|
|
31
|
+
};
|
|
32
|
+
}, []);
|
|
33
|
+
|
|
34
|
+
// 状态变化时,立即发送
|
|
35
|
+
(0, _react.useEffect)(function () {
|
|
36
|
+
if (hasInitializedRef.current && prevCollapsedRef.current !== collapsed) {
|
|
37
|
+
prevCollapsedRef.current = collapsed;
|
|
38
|
+
(0, _consoleBaseMessengerSidePanel.sidePanelCollapsed)(collapsed);
|
|
39
|
+
}
|
|
40
|
+
}, [collapsed]);
|
|
41
|
+
}
|
|
@@ -7,7 +7,9 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
7
7
|
exports.default = useEffects;
|
|
8
8
|
var _useEffectToggleBodyClass = _interopRequireDefault(require("./use-effect-toggle-body-class"));
|
|
9
9
|
var _useEffectQuickTop = _interopRequireDefault(require("./use-effect-quick-top"));
|
|
10
|
+
var _useEffectCollapsed = _interopRequireDefault(require("./use-effect-collapsed"));
|
|
10
11
|
function useEffects() {
|
|
11
12
|
(0, _useEffectToggleBodyClass.default)();
|
|
12
13
|
(0, _useEffectQuickTop.default)();
|
|
14
|
+
(0, _useEffectCollapsed.default)();
|
|
13
15
|
}
|
|
@@ -6,9 +6,7 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
6
6
|
});
|
|
7
7
|
exports.default = reduceSetCollapsed;
|
|
8
8
|
var _immutabilityHelper = _interopRequireDefault(require("immutability-helper"));
|
|
9
|
-
var _consoleBaseMessengerSidePanel = require("@alicloud/console-base-messenger-side-panel");
|
|
10
9
|
function reduceSetCollapsed(state, payload) {
|
|
11
|
-
(0, _consoleBaseMessengerSidePanel.sidePanelCollapsed)(payload);
|
|
12
10
|
return (0, _immutabilityHelper.default)(state, {
|
|
13
11
|
collapsed: {
|
|
14
12
|
$set: payload
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import { useEffect, useRef } from 'react';
|
|
2
|
+
import { sidePanelCollapsed } from '@alicloud/console-base-messenger-side-panel';
|
|
3
|
+
import useCollapsed from './use-collapsed';
|
|
4
|
+
export default function useEffectCollapsed() {
|
|
5
|
+
var collapsed = useCollapsed();
|
|
6
|
+
var collapsedRef = useRef(collapsed);
|
|
7
|
+
var prevCollapsedRef = useRef(undefined);
|
|
8
|
+
var hasInitializedRef = useRef(false);
|
|
9
|
+
|
|
10
|
+
// 更新 ref 以保存最新的 collapsed 值
|
|
11
|
+
collapsedRef.current = collapsed;
|
|
12
|
+
|
|
13
|
+
// 首次挂载时,延迟发送初始状态(等待异步获取和动画完成)
|
|
14
|
+
useEffect(function () {
|
|
15
|
+
var timer = setTimeout(function () {
|
|
16
|
+
if (!hasInitializedRef.current) {
|
|
17
|
+
hasInitializedRef.current = true;
|
|
18
|
+
prevCollapsedRef.current = collapsedRef.current;
|
|
19
|
+
sidePanelCollapsed(collapsedRef.current);
|
|
20
|
+
}
|
|
21
|
+
}, 300);
|
|
22
|
+
return function () {
|
|
23
|
+
return clearTimeout(timer);
|
|
24
|
+
};
|
|
25
|
+
}, []);
|
|
26
|
+
|
|
27
|
+
// 状态变化时,立即发送
|
|
28
|
+
useEffect(function () {
|
|
29
|
+
if (hasInitializedRef.current && prevCollapsedRef.current !== collapsed) {
|
|
30
|
+
prevCollapsedRef.current = collapsed;
|
|
31
|
+
sidePanelCollapsed(collapsed);
|
|
32
|
+
}
|
|
33
|
+
}, [collapsed]);
|
|
34
|
+
}
|
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
import useEffectToggleBodyClass from './use-effect-toggle-body-class';
|
|
2
2
|
import useEffectQuickTop from './use-effect-quick-top';
|
|
3
|
+
import useEffectCollapsed from './use-effect-collapsed';
|
|
3
4
|
export default function useEffects() {
|
|
4
5
|
useEffectToggleBodyClass();
|
|
5
6
|
useEffectQuickTop();
|
|
7
|
+
useEffectCollapsed();
|
|
6
8
|
}
|
|
@@ -1,7 +1,5 @@
|
|
|
1
1
|
import update from 'immutability-helper';
|
|
2
|
-
import { sidePanelCollapsed } from '@alicloud/console-base-messenger-side-panel';
|
|
3
2
|
export default function reduceSetCollapsed(state, payload) {
|
|
4
|
-
sidePanelCollapsed(payload);
|
|
5
3
|
return update(state, {
|
|
6
4
|
collapsed: {
|
|
7
5
|
$set: payload
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export default function useEffectCollapsed(): void;
|