@alicloud/console-base-rc-side-panel 1.1.10 → 1.1.12-beta.0

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.
Files changed (78) hide show
  1. package/build/cjs/model/const/index.js +2 -4
  2. package/build/cjs/model/enum/index.js +0 -1
  3. package/build/cjs/model/hook/index.js +1 -15
  4. package/build/cjs/model/hook/use-effects.js +0 -2
  5. package/build/cjs/model/reducer/index.js +0 -3
  6. package/build/cjs/ui/index.js +4 -3
  7. package/build/cjs/ui/rc/side-panel-item-button/index.js +14 -28
  8. package/build/cjs/ui/rc/side-panel-item-button/styles.js +32 -0
  9. package/build/cjs/ui/rc/side-panel-item-wrap/index.js +1 -1
  10. package/build/cjs/ui/rc-container/collapse-aside/index.js +28 -0
  11. package/build/cjs/ui/rc-container/collapse-aside/styles.js +36 -0
  12. package/build/cjs/ui/rc-container/collapse-toggle/index.js +30 -58
  13. package/build/cjs/ui/rc-container/collapse-toggle/styles.js +43 -0
  14. package/build/cjs/ui/rc-container/index.js +11 -5
  15. package/build/cjs/ui/rc-container/item/index.js +55 -20
  16. package/build/cjs/ui/rc-container/items/index.js +27 -8
  17. package/build/esm/model/const/index.js +1 -3
  18. package/build/esm/model/enum/index.js +0 -1
  19. package/build/esm/model/hook/index.js +1 -3
  20. package/build/esm/model/hook/use-effects.js +0 -2
  21. package/build/esm/model/reducer/index.js +0 -3
  22. package/build/esm/ui/index.js +5 -4
  23. package/build/esm/ui/rc/side-panel-item-button/index.js +15 -25
  24. package/build/esm/ui/rc/side-panel-item-button/styles.js +22 -0
  25. package/build/esm/ui/rc/side-panel-item-wrap/index.js +1 -1
  26. package/build/esm/ui/rc-container/collapse-aside/index.js +19 -0
  27. package/build/esm/ui/rc-container/collapse-aside/styles.js +27 -0
  28. package/build/esm/ui/rc-container/collapse-toggle/index.js +31 -59
  29. package/build/esm/ui/rc-container/collapse-toggle/styles.js +34 -0
  30. package/build/esm/ui/rc-container/index.js +3 -3
  31. package/build/esm/ui/rc-container/item/index.js +56 -21
  32. package/build/esm/ui/rc-container/items/index.js +28 -10
  33. package/build/types/model/const/index.d.ts +0 -1
  34. package/build/types/model/enum/index.d.ts +1 -2
  35. package/build/types/model/hook/index.d.ts +0 -2
  36. package/build/types/model/types/action.d.ts +1 -1
  37. package/build/types/model/types/common.d.ts +49 -12
  38. package/build/types/model/types/props.d.ts +0 -8
  39. package/build/types/model/types/state.d.ts +0 -1
  40. package/build/types/ui/rc/side-panel-item-button/index.d.ts +2 -2
  41. package/build/types/ui/rc/side-panel-item-button/styles.d.ts +4 -0
  42. package/build/types/ui/rc-container/collapse-aside/index.d.ts +1 -0
  43. package/build/types/ui/rc-container/collapse-aside/styles.d.ts +3 -0
  44. package/build/types/ui/rc-container/collapse-toggle/styles.d.ts +10 -0
  45. package/build/types/ui/rc-container/index.d.ts +2 -2
  46. package/build/types/ui/rc-container/item/index.d.ts +1 -1
  47. package/build/types/ui/rc-container/items/index.d.ts +2 -6
  48. package/package.json +4 -2
  49. package/build/cjs/model/hook/use-dispatch-set-quick-top-visible.js +0 -19
  50. package/build/cjs/model/hook/use-effect-quick-top.js +0 -40
  51. package/build/cjs/model/hook/use-handle-go-top.js +0 -22
  52. package/build/cjs/model/hook/use-handle-set-quick-top-visible.js +0 -19
  53. package/build/cjs/model/hook/use-quick-top.js +0 -19
  54. package/build/cjs/model/reducer/reduce-set-quick-top-visible.js +0 -15
  55. package/build/cjs/ui/rc-container/items-bottom/index.js +0 -28
  56. package/build/cjs/ui/rc-container/items-bottom/quick-top/index.js +0 -29
  57. package/build/cjs/ui/rc-container/items-top/index.js +0 -20
  58. package/build/cjs/ui/types/index.js +0 -5
  59. package/build/esm/model/hook/use-dispatch-set-quick-top-visible.js +0 -12
  60. package/build/esm/model/hook/use-effect-quick-top.js +0 -33
  61. package/build/esm/model/hook/use-handle-go-top.js +0 -15
  62. package/build/esm/model/hook/use-handle-set-quick-top-visible.js +0 -12
  63. package/build/esm/model/hook/use-quick-top.js +0 -12
  64. package/build/esm/model/reducer/reduce-set-quick-top-visible.js +0 -8
  65. package/build/esm/ui/rc-container/items-bottom/index.js +0 -21
  66. package/build/esm/ui/rc-container/items-bottom/quick-top/index.js +0 -22
  67. package/build/esm/ui/rc-container/items-top/index.js +0 -13
  68. package/build/esm/ui/types/index.js +0 -1
  69. package/build/types/model/hook/use-dispatch-set-quick-top-visible.d.ts +0 -1
  70. package/build/types/model/hook/use-effect-quick-top.d.ts +0 -1
  71. package/build/types/model/hook/use-handle-go-top.d.ts +0 -1
  72. package/build/types/model/hook/use-handle-set-quick-top-visible.d.ts +0 -1
  73. package/build/types/model/hook/use-quick-top.d.ts +0 -6
  74. package/build/types/model/reducer/reduce-set-quick-top-visible.d.ts +0 -2
  75. package/build/types/ui/rc-container/items-bottom/index.d.ts +0 -1
  76. package/build/types/ui/rc-container/items-bottom/quick-top/index.d.ts +0 -1
  77. package/build/types/ui/rc-container/items-top/index.d.ts +0 -1
  78. package/build/types/ui/types/index.d.ts +0 -5
@@ -1,31 +1,48 @@
1
- import { ButtonProps } from '@alicloud/console-base-rc-button';
2
1
  import { EasyIconValue } from '@alicloud/console-base-rc-easy-icon';
3
2
  import { TooltipPropsV1 } from '@alicloud/console-base-rc-tooltip';
4
- export interface ISidePanelItemProps extends Omit<ButtonProps, 'label' | 'size' | 'theme' | 'iconLeft' | 'iconRight' | 'onMouseEnter' | 'onMouseLeave'> {
3
+ export interface SidePanelItemButtonProps {
5
4
  /**
6
5
  * 默认用于 tooltip,也是按钮 aria-label 属性
7
6
  */
8
7
  title: string;
9
8
  /**
10
- * 图标(请尽可能用正方形),如果是组件则直接用,当它是字符串的时候,会智能判断
9
+ * 入口图标,如果是组件则直接用,当它是字符串的时候,会智能判断
11
10
  */
12
11
  icon: EasyIconValue;
13
12
  /**
14
- * 只显示图标,不需要背景
13
+ * 入口仅显示图标,不需要背景
15
14
  */
16
15
  onlyShowIcon?: boolean;
17
16
  /**
18
- * 当需要复杂的 tooltip 时,可以用这个 prop
17
+ * 入口埋点信息
19
18
  */
20
- tooltip?: string | React.ReactElement;
19
+ spm?: string;
21
20
  /**
22
- * 当 Tooltip 没有条件用 JSX,必须是字符串但又需要展示成 HTML 时,可以用 `tooltipAsHtml: true`
21
+ * 入口点击链接
23
22
  */
24
- tooltipAsHtml?: boolean;
23
+ href?: string;
24
+ /**
25
+ * 入口链接打开方式
26
+ */
27
+ target?: string;
28
+ /**
29
+ * 入口自定义 data-* 属性
30
+ */
31
+ [dataName: `data-${string}`]: unknown;
32
+ /**
33
+ * 按钮点击后的回调函数
34
+ */
35
+ onClick?: (e: React.MouseEvent<HTMLButtonElement>) => void;
25
36
  /**
26
- * tooltip 的配置
37
+ * 记住按下动作,用 messenger onSidePanelItemActiveChange 进行受控
27
38
  */
28
- tooltipOptions?: Omit<TooltipPropsV1, 'title'> | null;
39
+ active?: boolean;
40
+ /**
41
+ * 设置 active 使当前工具处于 active 状态,并使用此回调受控
42
+ */
43
+ onActiveChange?(active: boolean): void;
44
+ }
45
+ export interface ISidePanelItemProps extends SidePanelItemButtonProps {
29
46
  /**
30
47
  * 右上角徽标,数字展示数字,true 展示小红点
31
48
  */
@@ -35,9 +52,29 @@ export interface ISidePanelItemProps extends Omit<ButtonProps, 'label' | 'size'
35
52
  */
36
53
  mark?: 'NEW' | 'HOT';
37
54
  /**
38
- * 设置 active 使当前工具处于 active 状态,并使用此回调受控
55
+ * 按钮提示框,不传则默认显示 title
39
56
  */
40
- onActiveChange?(active: boolean): void;
57
+ tooltip?: string | React.ReactElement;
58
+ /**
59
+ * 按钮提示框支持 HTML 字符串
60
+ */
61
+ tooltipAsHtml?: boolean;
62
+ /**
63
+ * 按钮提示框的配置
64
+ */
65
+ tooltipOptions?: Omit<TooltipPropsV1, 'title'>;
66
+ /**
67
+ * 入口 ID
68
+ */
69
+ id?: string;
70
+ /**
71
+ * 入口 ClassName
72
+ */
73
+ className?: string;
74
+ /**
75
+ * 入口自定义样式
76
+ */
77
+ style?: React.CSSProperties;
41
78
  }
42
79
  export interface ISidePanelItemPropsWithKey extends ISidePanelItemProps {
43
80
  key: string;
@@ -26,14 +26,6 @@ export interface IModelProps {
26
26
  * 位于折叠点【推入按钮】上部的内容,将会跟随推入按钮做出入运动,嵌入 sidePanel 后,它将会隐藏
27
27
  */
28
28
  collapsedAside?: JSX.Element | null;
29
- /**
30
- * 给一个 DOM 节点,组件会监测它的滚动情况,并判断是否展示快速置顶按钮
31
- */
32
- quickTopContainer?: Window | HTMLElement | null;
33
- /**
34
- * QuickTop 显隐变化时的回调,可用于日志
35
- */
36
- onQuickTopVisibleChange?(visible: boolean): void;
37
29
  /**
38
30
  * 是否展示推入按钮
39
31
  */
@@ -1,4 +1,3 @@
1
1
  export interface IModelState {
2
2
  collapsed: boolean;
3
- quickTopVisible: boolean;
4
3
  }
@@ -1,5 +1,5 @@
1
- import { ISidePanelItemButtonProps } from "../../types";
1
+ import { SidePanelItemButtonProps } from '../../../model/types/common';
2
2
  /**
3
3
  * 工具的按钮
4
4
  */
5
- export default function SidePanelItemButton({ title, onlyShowIcon, ...props }: ISidePanelItemButtonProps): JSX.Element;
5
+ export default function SidePanelItemButton({ title, icon, onlyShowIcon, active, ...rest }: SidePanelItemButtonProps): JSX.Element;
@@ -0,0 +1,4 @@
1
+ export declare const ScButton: import("styled-components").StyledComponent<import("react").ForwardRefExoticComponent<import("@alicloud/console-base-rc-button").ButtonProps & import("react").RefAttributes<HTMLDivElement>>, any, {
2
+ $onlyShowIcon: boolean;
3
+ $active: boolean;
4
+ }, never>;
@@ -0,0 +1 @@
1
+ export default function CollapseAside(): JSX.Element | null;
@@ -0,0 +1,3 @@
1
+ import { CSSTransition } from 'react-transition-group';
2
+ export declare const ScCSSTransition: import("styled-components").StyledComponent<typeof CSSTransition, any, {}, never>;
3
+ export declare const ScCollapseAsideWrap: import("styled-components").StyledComponent<"div", any, {}, never>;
@@ -0,0 +1,10 @@
1
+ import { SidePanelItemButton } from '../../rc';
2
+ interface IScProps {
3
+ $collapsed: boolean;
4
+ $isSimpleCN: boolean;
5
+ $hovered: boolean;
6
+ }
7
+ export declare const ScCollapseToggleWrap: import("styled-components").StyledComponent<"div", any, {}, never>;
8
+ export declare const ScCollapseToggle: import("styled-components").StyledComponent<"div", any, IScProps, never>;
9
+ export declare const ScCollapseToggleButton: import("styled-components").StyledComponent<typeof SidePanelItemButton, any, IScProps, never>;
10
+ export {};
@@ -1,3 +1,3 @@
1
- export { default as ItemsTop } from './items-top';
2
- export { default as ItemsBottom } from './items-bottom';
1
+ export { ItemsTop, ItemsBottom } from './items';
3
2
  export { default as CollapseToggle } from './collapse-toggle';
3
+ export { default as CollapseAside } from './collapse-aside';
@@ -1,2 +1,2 @@
1
1
  import { SidePanelItemProps } from '../../../model';
2
- export default function Item({ id, className, style, active, title, icon, unread, mark, tooltip, tooltipAsHtml, tooltipOptions, onlyShowIcon, onClick, onActiveChange, ...rest }: SidePanelItemProps): JSX.Element;
2
+ export default function Item({ title, unread, mark, tooltip, tooltipAsHtml, tooltipOptions, active, onActiveChange, onClick, id, className, style, ...rest }: SidePanelItemProps): JSX.Element;
@@ -1,6 +1,2 @@
1
- import { SidePanelItemPropsWithKey } from '../../../model';
2
- interface IProps {
3
- items: SidePanelItemPropsWithKey[];
4
- }
5
- export default function Items({ items }: IProps): JSX.Element;
6
- export {};
1
+ export declare function ItemsTop(): JSX.Element;
2
+ export declare function ItemsBottom(): JSX.Element | null;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@alicloud/console-base-rc-side-panel",
3
- "version": "1.1.10",
3
+ "version": "1.1.12-beta.0",
4
4
  "description": "ConsoleBase 组件 - 右侧边栏",
5
5
  "license": "MIT",
6
6
  "sideEffects": false,
@@ -23,6 +23,7 @@
23
23
  "@alicloud/demo-rc-elements": "^1.13.0",
24
24
  "@alicloud/ts-config": "^1.1.3",
25
25
  "@types/react": "^17.0.58",
26
+ "@types/react-transition-group": "^4.4.6",
26
27
  "@types/styled-components": "^5.1.26",
27
28
  "react": "^17.0.2",
28
29
  "styled-components": "^5.3.10",
@@ -49,7 +50,8 @@
49
50
  "@alicloud/react-hook-is-unmounted": "^1.3.4",
50
51
  "@alicloud/react-hook-mouse-hover": "^1.0.2",
51
52
  "@alicloud/typescript-missing-helpers": "^1.3.4",
52
- "immutability-helper": "^3.1.1"
53
+ "immutability-helper": "^3.1.1",
54
+ "react-transition-group": "^4.4.5"
53
55
  },
54
56
  "scripts": {
55
57
  "start": "breezr start-storybook",
@@ -1,19 +0,0 @@
1
- "use strict";
2
-
3
- var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
- Object.defineProperty(exports, "__esModule", {
5
- value: true
6
- });
7
- exports.default = useDispatchSetQuickTopVisible;
8
- var _react = require("react");
9
- var _enum = require("../enum");
10
- var _useModelDispatch = _interopRequireDefault(require("./_use-model-dispatch"));
11
- function useDispatchSetQuickTopVisible() {
12
- var dispatch = (0, _useModelDispatch.default)();
13
- return (0, _react.useCallback)(function (payload) {
14
- return dispatch({
15
- type: _enum.EAction.SET_QUICK_TOP_VISIBLE,
16
- payload: payload
17
- });
18
- }, [dispatch]);
19
- }
@@ -1,40 +0,0 @@
1
- "use strict";
2
-
3
- var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
- Object.defineProperty(exports, "__esModule", {
5
- value: true
6
- });
7
- exports.default = useEffectQuickTop;
8
- var _react = require("react");
9
- var _const = require("../const");
10
- var _useModelProps2 = _interopRequireDefault(require("./_use-model-props"));
11
- var _useVisible = _interopRequireDefault(require("./use-visible"));
12
- var _useCollapsed = _interopRequireDefault(require("./use-collapsed"));
13
- var _useHandleSetQuickTopVisible = _interopRequireDefault(require("./use-handle-set-quick-top-visible"));
14
- function useEffectQuickTop() {
15
- var _useModelProps = (0, _useModelProps2.default)(),
16
- quickTopContainer = _useModelProps.quickTopContainer;
17
- var visible = (0, _useVisible.default)();
18
- var collapsed = (0, _useCollapsed.default)();
19
- var handleSetQuickTopVisible = (0, _useHandleSetQuickTopVisible.default)();
20
- var handleToggleVisible = (0, _react.useCallback)(function () {
21
- if (!quickTopContainer) {
22
- return;
23
- }
24
- handleSetQuickTopVisible((quickTopContainer.scrollY || quickTopContainer.scrollTop) > _const.QUICK_TOP_VISIBLE_OFFSET);
25
- }, [quickTopContainer, handleSetQuickTopVisible]);
26
-
27
- // container 变化导致 handleToggleVisible 变化,此时需要执行一次
28
- (0, _react.useEffect)(handleToggleVisible, [handleToggleVisible]);
29
-
30
- // 对 container 进行 scroll 的事件绑定
31
- (0, _react.useEffect)(function () {
32
- if (!quickTopContainer || !visible || collapsed) {
33
- return;
34
- }
35
- quickTopContainer.addEventListener('scroll', handleToggleVisible);
36
- return function () {
37
- return quickTopContainer.removeEventListener('scroll', handleToggleVisible);
38
- };
39
- }, [visible, collapsed, quickTopContainer, handleToggleVisible]);
40
- }
@@ -1,22 +0,0 @@
1
- "use strict";
2
-
3
- var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
- Object.defineProperty(exports, "__esModule", {
5
- value: true
6
- });
7
- exports.default = useHandleGoTop;
8
- var _react = require("react");
9
- var _mereDom = require("@alicloud/mere-dom");
10
- var _useQuickTop2 = _interopRequireDefault(require("./use-quick-top"));
11
- function useHandleGoTop() {
12
- var _useQuickTop = (0, _useQuickTop2.default)(),
13
- container = _useQuickTop.container;
14
- return (0, _react.useCallback)(function () {
15
- if (!container) {
16
- return;
17
- }
18
- (0, _mereDom.scrollTo)(container, {
19
- top: 0
20
- });
21
- }, [container]);
22
- }
@@ -1,19 +0,0 @@
1
- "use strict";
2
-
3
- var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
- Object.defineProperty(exports, "__esModule", {
5
- value: true
6
- });
7
- exports.default = useHandleSetQuickTopVisible;
8
- var _react = require("react");
9
- var _useDispatchSetQuickTopVisible = _interopRequireDefault(require("./use-dispatch-set-quick-top-visible"));
10
- var _useModelProps2 = _interopRequireDefault(require("./_use-model-props"));
11
- function useHandleSetQuickTopVisible() {
12
- var _useModelProps = (0, _useModelProps2.default)(),
13
- onQuickTopVisibleChange = _useModelProps.onQuickTopVisibleChange;
14
- var dispatchSetQuickTopVisible = (0, _useDispatchSetQuickTopVisible.default)();
15
- return (0, _react.useCallback)(function (visible) {
16
- dispatchSetQuickTopVisible(visible);
17
- onQuickTopVisibleChange === null || onQuickTopVisibleChange === void 0 ? void 0 : onQuickTopVisibleChange(visible);
18
- }, [dispatchSetQuickTopVisible, onQuickTopVisibleChange]);
19
- }
@@ -1,19 +0,0 @@
1
- "use strict";
2
-
3
- var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
- Object.defineProperty(exports, "__esModule", {
5
- value: true
6
- });
7
- exports.default = useQuickTop;
8
- var _useModelProps2 = _interopRequireDefault(require("./_use-model-props"));
9
- var _useModelState2 = _interopRequireDefault(require("./_use-model-state"));
10
- function useQuickTop() {
11
- var _useModelProps = (0, _useModelProps2.default)(),
12
- quickTopContainer = _useModelProps.quickTopContainer;
13
- var _useModelState = (0, _useModelState2.default)(),
14
- quickTopVisible = _useModelState.quickTopVisible;
15
- return {
16
- container: quickTopContainer,
17
- visible: quickTopVisible
18
- };
19
- }
@@ -1,15 +0,0 @@
1
- "use strict";
2
-
3
- var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
- Object.defineProperty(exports, "__esModule", {
5
- value: true
6
- });
7
- exports.default = reduceSetQuickTopVisible;
8
- var _immutabilityHelper = _interopRequireDefault(require("immutability-helper"));
9
- function reduceSetQuickTopVisible(state, payload) {
10
- return (0, _immutabilityHelper.default)(state, {
11
- quickTopVisible: {
12
- $set: payload
13
- }
14
- });
15
- }
@@ -1,28 +0,0 @@
1
- "use strict";
2
-
3
- var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
- Object.defineProperty(exports, "__esModule", {
5
- value: true
6
- });
7
- exports.default = ItemsBottom;
8
- var _react = _interopRequireDefault(require("react"));
9
- var _styledComponents = _interopRequireDefault(require("styled-components"));
10
- var _consoleBaseThemeScBase = require("@alicloud/console-base-theme-sc-base");
11
- var _consoleBaseRcFlex = _interopRequireDefault(require("@alicloud/console-base-rc-flex"));
12
- var _const = require("../../const");
13
- var _model = require("../../../model");
14
- var _items = _interopRequireDefault(require("../items"));
15
- var _quickTop = _interopRequireDefault(require("./quick-top"));
16
- var ScHr = (0, _styledComponents.default)(_consoleBaseThemeScBase.HrBase).withConfig({
17
- componentId: "sc-1rxhuz5-0"
18
- })(["margin:", "px 4px;"], _const.SPACING_Y);
19
- function ItemsBottom() {
20
- var quickTop = (0, _model.useQuickTop)();
21
- var children = (0, _model.useChildren)();
22
- var items = (0, _model.useItemsBottom)();
23
- return /*#__PURE__*/_react.default.createElement(_consoleBaseRcFlex.default, {
24
- vertical: true
25
- }, quickTop.container && quickTop.visible ? /*#__PURE__*/_react.default.createElement(_quickTop.default, null) : null, children || items.length ? /*#__PURE__*/_react.default.createElement(ScHr, null) : null, children || /*#__PURE__*/_react.default.createElement(_items.default, {
26
- items: items
27
- }));
28
- }
@@ -1,29 +0,0 @@
1
- "use strict";
2
-
3
- var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
- Object.defineProperty(exports, "__esModule", {
5
- value: true
6
- });
7
- exports.default = QuickTop;
8
- var _react = _interopRequireDefault(require("react"));
9
- var _consoleBaseRcIcon = _interopRequireDefault(require("@alicloud/console-base-rc-icon"));
10
- var _model = require("../../../../model");
11
- var _intl = _interopRequireDefault(require("../../../intl"));
12
- var _rc = require("../../../rc");
13
- var _consoleBaseRcTooltip = require("@alicloud/console-base-rc-tooltip");
14
- function QuickTop() {
15
- var handleGoTop = (0, _model.useHandleGoTop)();
16
- var title = (0, _intl.default)('op:back_to_top');
17
- return /*#__PURE__*/_react.default.createElement(_consoleBaseRcTooltip.TooltipV1, {
18
- title: title,
19
- placement: "left",
20
- destroyTooltipOnHide: true,
21
- fixed: true
22
- }, /*#__PURE__*/_react.default.createElement(_rc.SidePanelItemWrap, null, /*#__PURE__*/_react.default.createElement(_rc.SidePanelItemButton, {
23
- title: title,
24
- label: /*#__PURE__*/_react.default.createElement(_consoleBaseRcIcon.default, {
25
- type: "go-top"
26
- }),
27
- onClick: handleGoTop
28
- })));
29
- }
@@ -1,20 +0,0 @@
1
- "use strict";
2
-
3
- var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
- Object.defineProperty(exports, "__esModule", {
5
- value: true
6
- });
7
- exports.default = ItemsTop;
8
- var _react = _interopRequireDefault(require("react"));
9
- var _consoleBaseRcFlex = _interopRequireDefault(require("@alicloud/console-base-rc-flex"));
10
- var _model = require("../../../model");
11
- var _items = _interopRequireDefault(require("../items"));
12
- function ItemsTop() {
13
- var items = (0, _model.useItemsTop)();
14
- return /*#__PURE__*/_react.default.createElement(_consoleBaseRcFlex.default, {
15
- vertical: true,
16
- flex: true
17
- }, /*#__PURE__*/_react.default.createElement(_items.default, {
18
- items: items
19
- }));
20
- }
@@ -1,5 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
@@ -1,12 +0,0 @@
1
- import { useCallback } from 'react';
2
- import { EAction } from '../enum';
3
- import useModelDispatch from './_use-model-dispatch';
4
- export default function useDispatchSetQuickTopVisible() {
5
- var dispatch = useModelDispatch();
6
- return useCallback(function (payload) {
7
- return dispatch({
8
- type: EAction.SET_QUICK_TOP_VISIBLE,
9
- payload: payload
10
- });
11
- }, [dispatch]);
12
- }
@@ -1,33 +0,0 @@
1
- import { useCallback, useEffect } from 'react';
2
- import { QUICK_TOP_VISIBLE_OFFSET } from '../const';
3
- import useModelProps from './_use-model-props';
4
- import useVisible from './use-visible';
5
- import useCollapsed from './use-collapsed';
6
- import useHandleSetQuickTopVisible from './use-handle-set-quick-top-visible';
7
- export default function useEffectQuickTop() {
8
- var _useModelProps = useModelProps(),
9
- quickTopContainer = _useModelProps.quickTopContainer;
10
- var visible = useVisible();
11
- var collapsed = useCollapsed();
12
- var handleSetQuickTopVisible = useHandleSetQuickTopVisible();
13
- var handleToggleVisible = useCallback(function () {
14
- if (!quickTopContainer) {
15
- return;
16
- }
17
- handleSetQuickTopVisible((quickTopContainer.scrollY || quickTopContainer.scrollTop) > QUICK_TOP_VISIBLE_OFFSET);
18
- }, [quickTopContainer, handleSetQuickTopVisible]);
19
-
20
- // container 变化导致 handleToggleVisible 变化,此时需要执行一次
21
- useEffect(handleToggleVisible, [handleToggleVisible]);
22
-
23
- // 对 container 进行 scroll 的事件绑定
24
- useEffect(function () {
25
- if (!quickTopContainer || !visible || collapsed) {
26
- return;
27
- }
28
- quickTopContainer.addEventListener('scroll', handleToggleVisible);
29
- return function () {
30
- return quickTopContainer.removeEventListener('scroll', handleToggleVisible);
31
- };
32
- }, [visible, collapsed, quickTopContainer, handleToggleVisible]);
33
- }
@@ -1,15 +0,0 @@
1
- import { useCallback } from 'react';
2
- import { scrollTo } from '@alicloud/mere-dom';
3
- import useQuickTop from './use-quick-top';
4
- export default function useHandleGoTop() {
5
- var _useQuickTop = useQuickTop(),
6
- container = _useQuickTop.container;
7
- return useCallback(function () {
8
- if (!container) {
9
- return;
10
- }
11
- scrollTo(container, {
12
- top: 0
13
- });
14
- }, [container]);
15
- }
@@ -1,12 +0,0 @@
1
- import { useCallback } from 'react';
2
- import useDispatchSetQuickTopVisible from './use-dispatch-set-quick-top-visible';
3
- import useModelProps from './_use-model-props';
4
- export default function useHandleSetQuickTopVisible() {
5
- var _useModelProps = useModelProps(),
6
- onQuickTopVisibleChange = _useModelProps.onQuickTopVisibleChange;
7
- var dispatchSetQuickTopVisible = useDispatchSetQuickTopVisible();
8
- return useCallback(function (visible) {
9
- dispatchSetQuickTopVisible(visible);
10
- onQuickTopVisibleChange === null || onQuickTopVisibleChange === void 0 ? void 0 : onQuickTopVisibleChange(visible);
11
- }, [dispatchSetQuickTopVisible, onQuickTopVisibleChange]);
12
- }
@@ -1,12 +0,0 @@
1
- import useModelProps from './_use-model-props';
2
- import useModelState from './_use-model-state';
3
- export default function useQuickTop() {
4
- var _useModelProps = useModelProps(),
5
- quickTopContainer = _useModelProps.quickTopContainer;
6
- var _useModelState = useModelState(),
7
- quickTopVisible = _useModelState.quickTopVisible;
8
- return {
9
- container: quickTopContainer,
10
- visible: quickTopVisible
11
- };
12
- }
@@ -1,8 +0,0 @@
1
- import update from 'immutability-helper';
2
- export default function reduceSetQuickTopVisible(state, payload) {
3
- return update(state, {
4
- quickTopVisible: {
5
- $set: payload
6
- }
7
- });
8
- }
@@ -1,21 +0,0 @@
1
- import React from 'react';
2
- import styled from 'styled-components';
3
- import { HrBase } from '@alicloud/console-base-theme-sc-base';
4
- import Flex from '@alicloud/console-base-rc-flex';
5
- import { SPACING_Y } from '../../const';
6
- import { useChildren, useItemsBottom, useQuickTop } from '../../../model';
7
- import Items from '../items';
8
- import QuickTop from './quick-top';
9
- var ScHr = styled(HrBase).withConfig({
10
- componentId: "sc-1rxhuz5-0"
11
- })(["margin:", "px 4px;"], SPACING_Y);
12
- export default function ItemsBottom() {
13
- var quickTop = useQuickTop();
14
- var children = useChildren();
15
- var items = useItemsBottom();
16
- return /*#__PURE__*/React.createElement(Flex, {
17
- vertical: true
18
- }, quickTop.container && quickTop.visible ? /*#__PURE__*/React.createElement(QuickTop, null) : null, children || items.length ? /*#__PURE__*/React.createElement(ScHr, null) : null, children || /*#__PURE__*/React.createElement(Items, {
19
- items: items
20
- }));
21
- }
@@ -1,22 +0,0 @@
1
- import React from 'react';
2
- import Icon from '@alicloud/console-base-rc-icon';
3
- import { useHandleGoTop } from '../../../../model';
4
- import intl from '../../../intl';
5
- import { SidePanelItemWrap, SidePanelItemButton } from '../../../rc';
6
- import { TooltipV1 } from '@alicloud/console-base-rc-tooltip';
7
- export default function QuickTop() {
8
- var handleGoTop = useHandleGoTop();
9
- var title = intl('op:back_to_top');
10
- return /*#__PURE__*/React.createElement(TooltipV1, {
11
- title: title,
12
- placement: "left",
13
- destroyTooltipOnHide: true,
14
- fixed: true
15
- }, /*#__PURE__*/React.createElement(SidePanelItemWrap, null, /*#__PURE__*/React.createElement(SidePanelItemButton, {
16
- title: title,
17
- label: /*#__PURE__*/React.createElement(Icon, {
18
- type: "go-top"
19
- }),
20
- onClick: handleGoTop
21
- })));
22
- }
@@ -1,13 +0,0 @@
1
- import React from 'react';
2
- import Flex from '@alicloud/console-base-rc-flex';
3
- import { useItemsTop } from '../../../model';
4
- import Items from '../items';
5
- export default function ItemsTop() {
6
- var items = useItemsTop();
7
- return /*#__PURE__*/React.createElement(Flex, {
8
- vertical: true,
9
- flex: true
10
- }, /*#__PURE__*/React.createElement(Items, {
11
- items: items
12
- }));
13
- }
@@ -1 +0,0 @@
1
- export {};
@@ -1 +0,0 @@
1
- export default function useDispatchSetQuickTopVisible(): (payload: boolean) => void;
@@ -1 +0,0 @@
1
- export default function useEffectQuickTop(): void;
@@ -1 +0,0 @@
1
- export default function useHandleGoTop(): () => void;
@@ -1 +0,0 @@
1
- export default function useHandleSetQuickTopVisible(): (visible: boolean) => void;
@@ -1,6 +0,0 @@
1
- interface IQuickTop {
2
- container?: Window | HTMLElement | null;
3
- visible: boolean;
4
- }
5
- export default function useQuickTop(): IQuickTop;
6
- export {};
@@ -1,2 +0,0 @@
1
- import { IModelState } from '../types';
2
- export default function reduceSetQuickTopVisible(state: IModelState, payload: boolean): IModelState;
@@ -1 +0,0 @@
1
- export default function ItemsBottom(): JSX.Element | null;
@@ -1 +0,0 @@
1
- export default function QuickTop(): JSX.Element;
@@ -1 +0,0 @@
1
- export default function ItemsTop(): JSX.Element;
@@ -1,5 +0,0 @@
1
- import { ButtonProps } from '@alicloud/console-base-rc-button';
2
- export interface ISidePanelItemButtonProps extends Omit<ButtonProps, 'size' | 'theme' | 'title'> {
3
- title?: string;
4
- onlyShowIcon?: boolean;
5
- }