@arcblock/ux 2.9.41 → 2.9.43

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.
@@ -4,6 +4,7 @@ import clsx from 'clsx';
4
4
  import MoreHorizIcon from '@mui/icons-material/MoreHoriz';
5
5
  import ExpandMoreIcon from '@mui/icons-material/ExpandMore';
6
6
  import MenuIcon from '@mui/icons-material/Menu';
7
+ import { useMemoizedFn } from 'ahooks';
7
8
  import { HorizontalStyle, InlineStyle } from './style';
8
9
  import { jsx as _jsx } from "react/jsx-runtime";
9
10
  import { jsxs as _jsxs } from "react/jsx-runtime";
@@ -90,7 +91,7 @@ function NavMenu({
90
91
  });
91
92
  });
92
93
  };
93
- const checkItemsFit = () => {
94
+ const checkItemsFit = useMemoizedFn(() => {
94
95
  let totalWidthUsed = 0;
95
96
  let newHiddenCount = 0;
96
97
  let leftAllHidden = false;
@@ -113,7 +114,7 @@ function NavMenu({
113
114
  if (newHiddenCount !== hiddenItemCount) {
114
115
  setHiddenItemCount(newHiddenCount);
115
116
  }
116
- };
117
+ }, [hiddenItemCount]);
117
118
  useEffect(() => {
118
119
  if (mode === 'horizontal') {
119
120
  checkItemsFit();
@@ -124,7 +125,7 @@ function NavMenu({
124
125
  }
125
126
  return undefined;
126
127
  // eslint-disable-next-line react-hooks/exhaustive-deps
127
- }, [mode, hiddenItemCount]);
128
+ }, [mode]);
128
129
  useEffect(() => {
129
130
  // NavMenu#activeId 和 Item#active prop 都可以用来控制激活状态 (一般不会混用这两种方式)
130
131
  // 如果未传入 NavMenu#activeId, 应该避免设置一个空值的 activeId 状态 (会与 Item#active 冲突)
@@ -10,6 +10,7 @@ var _clsx = _interopRequireDefault(require("clsx"));
10
10
  var _MoreHoriz = _interopRequireDefault(require("@mui/icons-material/MoreHoriz"));
11
11
  var _ExpandMore = _interopRequireDefault(require("@mui/icons-material/ExpandMore"));
12
12
  var _Menu = _interopRequireDefault(require("@mui/icons-material/Menu"));
13
+ var _ahooks = require("ahooks");
13
14
  var _style = require("./style");
14
15
  var _jsxRuntime = require("react/jsx-runtime");
15
16
  const _excluded = ["items", "mode", "children", "activeId", "textColor", "activeTextColor", "bgColor", "onSelected"],
@@ -104,7 +105,7 @@ function NavMenu(_ref) {
104
105
  });
105
106
  });
106
107
  };
107
- const checkItemsFit = () => {
108
+ const checkItemsFit = (0, _ahooks.useMemoizedFn)(() => {
108
109
  var _navMenuRef$current;
109
110
  let totalWidthUsed = 0;
110
111
  let newHiddenCount = 0;
@@ -128,7 +129,7 @@ function NavMenu(_ref) {
128
129
  if (newHiddenCount !== hiddenItemCount) {
129
130
  setHiddenItemCount(newHiddenCount);
130
131
  }
131
- };
132
+ }, [hiddenItemCount]);
132
133
  (0, _react.useEffect)(() => {
133
134
  if (mode === 'horizontal') {
134
135
  checkItemsFit();
@@ -139,7 +140,7 @@ function NavMenu(_ref) {
139
140
  }
140
141
  return undefined;
141
142
  // eslint-disable-next-line react-hooks/exhaustive-deps
142
- }, [mode, hiddenItemCount]);
143
+ }, [mode]);
143
144
  (0, _react.useEffect)(() => {
144
145
  // NavMenu#activeId 和 Item#active prop 都可以用来控制激活状态 (一般不会混用这两种方式)
145
146
  // 如果未传入 NavMenu#activeId, 应该避免设置一个空值的 activeId 状态 (会与 Item#active 冲突)
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@arcblock/ux",
3
- "version": "2.9.41",
3
+ "version": "2.9.43",
4
4
  "description": "Common used react components for arcblock products",
5
5
  "keywords": [
6
6
  "react",
@@ -354,12 +354,12 @@
354
354
  "@mui/material": "^5.15.0",
355
355
  "react": ">=18.2.0"
356
356
  },
357
- "gitHead": "154277973374b78a94c72767693bc38eaa6c6b50",
357
+ "gitHead": "2299d749c24452b4cebe4c094d682f9af1f3d9bf",
358
358
  "dependencies": {
359
359
  "@arcblock/did-motif": "^1.1.13",
360
- "@arcblock/icons": "^2.9.41",
361
- "@arcblock/nft-display": "^2.9.41",
362
- "@arcblock/react-hooks": "^2.9.41",
360
+ "@arcblock/icons": "^2.9.43",
361
+ "@arcblock/nft-display": "^2.9.43",
362
+ "@arcblock/react-hooks": "^2.9.43",
363
363
  "@babel/plugin-syntax-dynamic-import": "^7.8.3",
364
364
  "@emotion/react": "^11.10.4",
365
365
  "@emotion/styled": "^11.10.4",
@@ -15,6 +15,7 @@ import clsx from 'clsx';
15
15
  import MoreHorizIcon from '@mui/icons-material/MoreHoriz';
16
16
  import ExpandMoreIcon from '@mui/icons-material/ExpandMore';
17
17
  import MenuIcon from '@mui/icons-material/Menu';
18
+ import { useMemoizedFn } from 'ahooks';
18
19
  import { HorizontalStyle, InlineStyle } from './style';
19
20
 
20
21
  const NavMenuContext = createContext();
@@ -56,6 +57,7 @@ function NavMenu({ items, mode, children, activeId, textColor, activeTextColor,
56
57
  const close = useCallback((id) => {
57
58
  setState((prev) => ({ ...prev, openedIds: prev.openedIds.filter((item) => item !== id) }));
58
59
  }, []);
60
+
59
61
  const contextValue = useMemo(() => {
60
62
  return {
61
63
  ...state,
@@ -82,7 +84,7 @@ function NavMenu({ items, mode, children, activeId, textColor, activeTextColor,
82
84
  });
83
85
  });
84
86
  };
85
- const checkItemsFit = () => {
87
+ const checkItemsFit = useMemoizedFn(() => {
86
88
  let totalWidthUsed = 0;
87
89
  let newHiddenCount = 0;
88
90
  let leftAllHidden = false;
@@ -110,7 +112,7 @@ function NavMenu({ items, mode, children, activeId, textColor, activeTextColor,
110
112
  if (newHiddenCount !== hiddenItemCount) {
111
113
  setHiddenItemCount(newHiddenCount);
112
114
  }
113
- };
115
+ }, [hiddenItemCount]);
114
116
 
115
117
  useEffect(() => {
116
118
  if (mode === 'horizontal') {
@@ -123,7 +125,7 @@ function NavMenu({ items, mode, children, activeId, textColor, activeTextColor,
123
125
  }
124
126
  return undefined;
125
127
  // eslint-disable-next-line react-hooks/exhaustive-deps
126
- }, [mode, hiddenItemCount]);
128
+ }, [mode]);
127
129
 
128
130
  useEffect(() => {
129
131
  // NavMenu#activeId 和 Item#active prop 都可以用来控制激活状态 (一般不会混用这两种方式)