@synerise/ds-manageable-list 0.26.72 → 0.28.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.
package/CHANGELOG.md CHANGED
@@ -3,6 +3,28 @@
3
3
  All notable changes to this project will be documented in this file.
4
4
  See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
5
5
 
6
+ # [0.28.0](https://github.com/Synerise/synerise-design/compare/@synerise/ds-manageable-list@0.27.0...@synerise/ds-manageable-list@0.28.0) (2024-10-01)
7
+
8
+
9
+ ### Features
10
+
11
+ * **menu:** maxToShowItems props ([982d12c](https://github.com/Synerise/synerise-design/commit/982d12cf00dfd271bd75e3228e0e231ab26dc7f1))
12
+
13
+
14
+
15
+
16
+
17
+ # [0.27.0](https://github.com/Synerise/synerise-design/compare/@synerise/ds-manageable-list@0.26.72...@synerise/ds-manageable-list@0.27.0) (2024-09-26)
18
+
19
+
20
+ ### Features
21
+
22
+ * **manageable-list:** customisable toggle button ([7e0a2e5](https://github.com/Synerise/synerise-design/commit/7e0a2e550885ed581b2c4ec90319432c543b24c7))
23
+
24
+
25
+
26
+
27
+
6
28
  ## [0.26.72](https://github.com/Synerise/synerise-design/compare/@synerise/ds-manageable-list@0.26.71...@synerise/ds-manageable-list@0.26.72) (2024-09-26)
7
29
 
8
30
  **Note:** Version bump only for package @synerise/ds-manageable-list
@@ -1,6 +1,6 @@
1
1
  import React from 'react';
2
2
  import { ManageableListProps } from './ManageableList.types';
3
- declare const ManageableList: (<T extends object>({ className, onItemAdd, onItemSelect, onItemDuplicate, onItemRemove, onItemEdit, onChangeOrder, items, maxToShowItems, loading, type, addButtonDisabled, changeOrderDisabled, greyBackground, placeholder, selectedItemId, searchQuery, expanderDisabled, onExpand, expandedIds, texts, changeOrderByButtons, additionalActions, style, renderCustomToggleButton, }: ManageableListProps<T>) => React.JSX.Element) & {
3
+ declare const ManageableList: (<T extends object>({ className, onItemAdd, onItemSelect, onItemDuplicate, onItemRemove, onItemEdit, onChangeOrder, items, maxToShowItems, visibleItemsLimit, loading, type, addButtonDisabled, changeOrderDisabled, greyBackground, placeholder, selectedItemId, searchQuery, expanderDisabled, onExpand, expandedIds, texts, changeOrderByButtons, additionalActions, style, renderCustomToggleButton, }: ManageableListProps<T>) => React.JSX.Element) & {
4
4
  ManageableListContainer: import("styled-components").StyledComponent<"div", any, {
5
5
  listType: string;
6
6
  greyBackground: boolean;
@@ -23,6 +23,7 @@ var SORTABLE_CONFIG = {
23
23
  group: 'column-manager',
24
24
  forceFallback: true
25
25
  };
26
+ var INITIALLY_VISIBLE_COUNT = 5;
26
27
 
27
28
  var ManageableListComponent = function ManageableListComponent(_ref) {
28
29
  var className = _ref.className,
@@ -34,7 +35,9 @@ var ManageableListComponent = function ManageableListComponent(_ref) {
34
35
  onChangeOrder = _ref.onChangeOrder,
35
36
  items = _ref.items,
36
37
  _ref$maxToShowItems = _ref.maxToShowItems,
37
- maxToShowItems = _ref$maxToShowItems === void 0 ? 5 : _ref$maxToShowItems,
38
+ maxToShowItems = _ref$maxToShowItems === void 0 ? INITIALLY_VISIBLE_COUNT : _ref$maxToShowItems,
39
+ _ref$visibleItemsLimi = _ref.visibleItemsLimit,
40
+ visibleItemsLimit = _ref$visibleItemsLimi === void 0 ? INITIALLY_VISIBLE_COUNT : _ref$visibleItemsLimi,
38
41
  loading = _ref.loading,
39
42
  _ref$type = _ref.type,
40
43
  type = _ref$type === void 0 ? ListType.DEFAULT : _ref$type,
@@ -61,6 +64,7 @@ var ManageableListComponent = function ManageableListComponent(_ref) {
61
64
  allItemsVisible = _useState[0],
62
65
  setAllItemsVisible = _useState[1];
63
66
 
67
+ var visibleLimit = visibleItemsLimit || maxToShowItems;
64
68
  var getExpandedIds = useCallback(function () {
65
69
  return expandedIds !== undefined ? expandedIds : items.filter(function (item) {
66
70
  return item.expanded;
@@ -161,11 +165,11 @@ var ManageableListComponent = function ManageableListComponent(_ref) {
161
165
  }, texts);
162
166
  }, [texts]);
163
167
  var getItemsOverLimit = useMemo(function () {
164
- return items.length - maxToShowItems;
165
- }, [items, maxToShowItems]);
168
+ return items.length - visibleLimit;
169
+ }, [items, visibleLimit]);
166
170
  var visibleItems = useMemo(function () {
167
- return allItemsVisible ? items : items.slice(0, maxToShowItems);
168
- }, [allItemsVisible, maxToShowItems, items]);
171
+ return allItemsVisible ? items : items.slice(0, visibleLimit);
172
+ }, [allItemsVisible, visibleLimit, items]);
169
173
  var buttonLabel = useMemo(function () {
170
174
  return allItemsVisible ? itemTexts.showLessLabel : itemTexts.showMoreLabel;
171
175
  }, [allItemsVisible, itemTexts.showLessLabel, itemTexts.showMoreLabel]);
@@ -215,11 +219,11 @@ var ManageableListComponent = function ManageableListComponent(_ref) {
215
219
  additionalActions: additionalActions
216
220
  });
217
221
  }, [items.length, type, onItemSelect, onItemEdit, onItemRemove, onItemDuplicate, onExpand, changeOrderByButtons, onMoveTop, onMoveBottom, onChangeOrder, changeOrderDisabled, greyBackground, selectedItemId, itemTexts, searchQuery, expanderDisabled, allExpandedIds, additionalActions]);
218
- var toggleMoreItemsButton = items.length > maxToShowItems ? renderCustomToggleButton && renderCustomToggleButton({
222
+ var toggleMoreItemsButton = items.length > visibleLimit ? renderCustomToggleButton && renderCustomToggleButton({
219
223
  onClick: toggleAllItems,
220
224
  allItemsVisible: allItemsVisible,
221
225
  total: items.length,
222
- limit: maxToShowItems
226
+ limit: visibleLimit
223
227
  }) || /*#__PURE__*/React.createElement(S.ShowMoreButton, {
224
228
  onClick: toggleAllItems,
225
229
  "data-testid": "show-more-button"
@@ -1,4 +1,5 @@
1
1
  import type { CSSProperties, ReactNode, ReactText } from 'react';
2
+ import type { ExactlyOne } from '@synerise/ds-utils';
2
3
  import type { ItemProps } from './Item/Item.types';
3
4
  export declare enum ExpansionBehaviour {
4
5
  DEFAULT = "default",
@@ -18,7 +19,6 @@ export type AdditionalAction = {
18
19
  };
19
20
  export type ManageableListProps<T extends object> = {
20
21
  className?: string;
21
- maxToShowItems: number;
22
22
  onItemAdd?: (addParams?: {
23
23
  name: string;
24
24
  }) => void;
@@ -59,7 +59,14 @@ export type ManageableListProps<T extends object> = {
59
59
  limit: number;
60
60
  allItemsVisible: boolean;
61
61
  }) => ReactNode;
62
- };
62
+ } & ExactlyOne<{
63
+ /**
64
+ * @deprecated - use visibleItemsLimit prop instead
65
+ */
66
+ maxToShowItems: number;
67
+ }, {
68
+ visibleItemsLimit: number;
69
+ }>;
63
70
  export type Texts = {
64
71
  addItemLabel?: ReactNode;
65
72
  showMoreLabel?: ReactNode;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@synerise/ds-manageable-list",
3
- "version": "0.26.72",
3
+ "version": "0.28.0",
4
4
  "description": "ManageableList UI Component for the Synerise Design System",
5
5
  "license": "ISC",
6
6
  "repository": "Synerise/synerise-design",
@@ -34,21 +34,21 @@
34
34
  ],
35
35
  "types": "dist/index.d.ts",
36
36
  "dependencies": {
37
- "@synerise/ds-avatar": "^0.17.13",
38
- "@synerise/ds-button": "^0.21.12",
39
- "@synerise/ds-dropdown": "^0.18.16",
40
- "@synerise/ds-icon": "^0.65.7",
41
- "@synerise/ds-inline-edit": "^0.8.12",
42
- "@synerise/ds-input": "^0.24.6",
43
- "@synerise/ds-list": "^0.6.86",
44
- "@synerise/ds-menu": "^0.19.16",
45
- "@synerise/ds-modal": "^0.17.43",
46
- "@synerise/ds-popconfirm": "^0.10.53",
47
- "@synerise/ds-result": "^0.7.6",
48
- "@synerise/ds-tags": "^0.10.10",
49
- "@synerise/ds-tooltip": "^0.14.42",
50
- "@synerise/ds-typography": "^0.15.3",
51
- "@synerise/ds-utils": "^0.29.4",
37
+ "@synerise/ds-avatar": "^0.17.14",
38
+ "@synerise/ds-button": "^0.21.13",
39
+ "@synerise/ds-dropdown": "^0.18.17",
40
+ "@synerise/ds-icon": "^0.65.8",
41
+ "@synerise/ds-inline-edit": "^0.8.13",
42
+ "@synerise/ds-input": "^0.24.7",
43
+ "@synerise/ds-list": "^0.6.87",
44
+ "@synerise/ds-menu": "^0.20.0",
45
+ "@synerise/ds-modal": "^0.17.44",
46
+ "@synerise/ds-popconfirm": "^0.10.54",
47
+ "@synerise/ds-result": "^0.7.7",
48
+ "@synerise/ds-tags": "^0.10.11",
49
+ "@synerise/ds-tooltip": "^0.14.43",
50
+ "@synerise/ds-typography": "^0.15.4",
51
+ "@synerise/ds-utils": "^0.30.0",
52
52
  "moment": "^2.30.1",
53
53
  "react-animate-height": "^2.0.23",
54
54
  "react-intl": "3.12.0",
@@ -61,5 +61,5 @@
61
61
  "react": ">=16.9.0 <= 17.0.2",
62
62
  "styled-components": "^5.0.1"
63
63
  },
64
- "gitHead": "fc06bd0f13401a57329fb92985b735de33108dbc"
64
+ "gitHead": "2389b995aa44e42ec1dd9a177c7ab1f1a0001a70"
65
65
  }