@cloud-ru/ds-uikit-product-header 1.2.2 → 1.3.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 (34) hide show
  1. package/CHANGELOG.md +10 -0
  2. package/README.md +273 -3
  3. package/dist/cjs/components/MainMenu/helperComponents/Content/Content.js +1 -1
  4. package/dist/cjs/components/MainMenu/helperComponents/Content/helperComponents/SortableGroup/SortableGroup.d.ts +3 -2
  5. package/dist/cjs/components/MainMenu/helperComponents/Content/helperComponents/SortableGroup/SortableGroup.js +4 -4
  6. package/dist/cjs/components/MainMenu/helperComponents/Content/helperComponents/SortableGroup/components/SortableGroupCards.d.ts +2 -1
  7. package/dist/cjs/components/MainMenu/helperComponents/Content/helperComponents/SortableGroup/components/SortableGroupCards.js +2 -2
  8. package/dist/cjs/components/MainMenu/helperComponents/Content/helperComponents/SortableGroup/components/SubCategory/SubCategory.d.ts +2 -1
  9. package/dist/cjs/components/MainMenu/helperComponents/Content/helperComponents/SortableGroup/components/SubCategory/SubCategory.js +2 -2
  10. package/dist/cjs/components/MainMenu/helperComponents/ServiceCard/ServiceCard.js +4 -2
  11. package/dist/cjs/components/MainMenu/index.d.ts +1 -0
  12. package/dist/cjs/components/MainMenu/index.js +3 -0
  13. package/dist/cjs/components/MainMenu/types.d.ts +2 -0
  14. package/dist/esm/components/MainMenu/helperComponents/Content/Content.js +1 -1
  15. package/dist/esm/components/MainMenu/helperComponents/Content/helperComponents/SortableGroup/SortableGroup.d.ts +3 -2
  16. package/dist/esm/components/MainMenu/helperComponents/Content/helperComponents/SortableGroup/SortableGroup.js +4 -4
  17. package/dist/esm/components/MainMenu/helperComponents/Content/helperComponents/SortableGroup/components/SortableGroupCards.d.ts +2 -1
  18. package/dist/esm/components/MainMenu/helperComponents/Content/helperComponents/SortableGroup/components/SortableGroupCards.js +2 -2
  19. package/dist/esm/components/MainMenu/helperComponents/Content/helperComponents/SortableGroup/components/SubCategory/SubCategory.d.ts +2 -1
  20. package/dist/esm/components/MainMenu/helperComponents/Content/helperComponents/SortableGroup/components/SubCategory/SubCategory.js +2 -2
  21. package/dist/esm/components/MainMenu/helperComponents/ServiceCard/ServiceCard.js +4 -2
  22. package/dist/esm/components/MainMenu/index.d.ts +1 -0
  23. package/dist/esm/components/MainMenu/index.js +1 -0
  24. package/dist/esm/components/MainMenu/types.d.ts +2 -0
  25. package/dist/tsconfig.cjs.tsbuildinfo +1 -1
  26. package/dist/tsconfig.esm.tsbuildinfo +1 -1
  27. package/package.json +10 -10
  28. package/src/components/MainMenu/helperComponents/Content/Content.tsx +3 -2
  29. package/src/components/MainMenu/helperComponents/Content/helperComponents/SortableGroup/SortableGroup.tsx +6 -0
  30. package/src/components/MainMenu/helperComponents/Content/helperComponents/SortableGroup/components/SortableGroupCards.tsx +3 -0
  31. package/src/components/MainMenu/helperComponents/Content/helperComponents/SortableGroup/components/SubCategory/SubCategory.tsx +3 -1
  32. package/src/components/MainMenu/helperComponents/ServiceCard/ServiceCard.tsx +4 -2
  33. package/src/components/MainMenu/index.ts +1 -0
  34. package/src/components/MainMenu/types.ts +2 -0
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@cloud-ru/ds-uikit-product-header",
3
- "version": "1.2.2",
3
+ "version": "1.3.0",
4
4
  "description": "Продуктовая шапка консоли — HeaderLayout, MainMenu, UserMenu, Logo, PathBreadcrumbs и PlatformLogo.",
5
5
  "repository": {
6
6
  "type": "git",
@@ -48,28 +48,28 @@
48
48
  "@cloud-ru/ds-accordion": "^1.0.6",
49
49
  "@cloud-ru/ds-adaptive": "^1.0.1",
50
50
  "@cloud-ru/ds-avatar": "^1.0.2",
51
- "@cloud-ru/ds-button": "^1.0.2",
52
51
  "@cloud-ru/ds-breadcrumbs": "^1.0.13",
53
52
  "@cloud-ru/ds-divider": "^1.0.1",
54
- "@cloud-ru/ds-icons": "^1.1.0",
53
+ "@cloud-ru/ds-drag-and-drop": "^1.1.1",
54
+ "@cloud-ru/ds-button": "^1.0.2",
55
55
  "@cloud-ru/ds-drawer": "^1.1.1",
56
56
  "@cloud-ru/ds-info-block": "^1.0.1",
57
- "@cloud-ru/ds-drag-and-drop": "^1.1.1",
58
57
  "@cloud-ru/ds-list": "^2.1.2",
58
+ "@cloud-ru/ds-icons": "^1.1.0",
59
+ "@cloud-ru/ds-locale": "^1.0.0",
59
60
  "@cloud-ru/ds-modal": "^1.1.1",
60
61
  "@cloud-ru/ds-portal-context": "^1.0.1",
61
- "@cloud-ru/ds-locale": "^1.0.0",
62
- "@cloud-ru/ds-search": "^1.0.6",
63
62
  "@cloud-ru/ds-promo-tag": "^1.0.1",
63
+ "@cloud-ru/ds-scroll": "^1.0.2",
64
64
  "@cloud-ru/ds-segment-control": "^1.0.4",
65
- "@cloud-ru/ds-skeleton": "^1.0.1",
66
65
  "@cloud-ru/ds-theme": "^1.1.0",
67
- "@cloud-ru/ds-scroll": "^1.0.2",
66
+ "@cloud-ru/ds-search": "^1.0.6",
67
+ "@cloud-ru/ds-typography": "^1.0.0",
68
+ "@cloud-ru/ds-skeleton": "^1.0.1",
68
69
  "@cloud-ru/ds-tooltip": "^1.0.4",
69
- "@cloud-ru/ds-uikit-product-card-predefined": "^3.0.4",
70
70
  "@cloud-ru/ds-uikit-product-switch-row": "^1.0.5",
71
+ "@cloud-ru/ds-uikit-product-card-predefined": "^3.0.4",
71
72
  "@cloud-ru/ds-uikit-product-title-clickable": "^1.0.7",
72
- "@cloud-ru/ds-typography": "^1.0.0",
73
73
  "@cloud-ru/ds-utils": "^1.1.0"
74
74
  },
75
75
  "publishConfig": {
@@ -225,7 +225,7 @@ export function Content({
225
225
  return (
226
226
  <SortableContext items={visibleGroups.map(({ id }) => id)} strategy={verticalListSortingStrategy}>
227
227
  <Accordion selectionMode='multiple' expanded={expandedIds} onExpandedChange={onExpandedChange}>
228
- {visibleGroups.map(({ id, label, icon, items, favoritesEnabled = true, blockColor, highlight }) => (
228
+ {visibleGroups.map(({ id, label, icon, items, favoritesEnabled, blockColor, highlight }) => (
229
229
  <SortableGroup
230
230
  key={id}
231
231
  id={id}
@@ -237,7 +237,8 @@ export function Content({
237
237
  showDescription={showDescription}
238
238
  isMobile={isMobile}
239
239
  enableServiceDrag={enableServiceDrag}
240
- favorite={favoritesEnabled ? favorite : undefined}
240
+ favorite={favorite}
241
+ groupFavoritesEnabled={favoritesEnabled}
241
242
  onServiceClick={handleLinkClick}
242
243
  highlight={highlight}
243
244
  />
@@ -20,6 +20,8 @@ export type SortableGroupProps = Omit<SortableGroupCardsProps, 'groupId'> &
20
20
  blockColor?: LinksGroupBlockColor;
21
21
 
22
22
  highlight?: boolean;
23
+
24
+ groupFavoritesEnabled?: boolean;
23
25
  };
24
26
 
25
27
  export function SortableGroup({
@@ -32,6 +34,7 @@ export function SortableGroup({
32
34
  isMobile,
33
35
  enableServiceDrag,
34
36
  favorite,
37
+ groupFavoritesEnabled = true,
35
38
  onServiceClick,
36
39
  blockColor,
37
40
  highlight,
@@ -89,6 +92,7 @@ export function SortableGroup({
89
92
  isMobile={isMobile}
90
93
  enableServiceDrag={enableServiceDrag}
91
94
  favorite={favorite}
95
+ groupFavoritesEnabled={groupFavoritesEnabled}
92
96
  onServiceClick={onServiceClick}
93
97
  />
94
98
  </Accordion.CollapseBlockTertiary>
@@ -104,6 +108,7 @@ export function SortableGroupDragPreview({
104
108
  showDescription,
105
109
  isMobile,
106
110
  favorite,
111
+ groupFavoritesEnabled,
107
112
  blockColor,
108
113
  highlight,
109
114
  }: Omit<SortableGroupProps, 'enableServiceDrag'>) {
@@ -128,6 +133,7 @@ export function SortableGroupDragPreview({
128
133
  showDescription={showDescription}
129
134
  isMobile={isMobile}
130
135
  favorite={favorite}
136
+ groupFavoritesEnabled={groupFavoritesEnabled}
131
137
  />
132
138
  )}
133
139
  </div>
@@ -11,6 +11,7 @@ export type SortableGroupCardsProps = Pick<
11
11
  groupId: string;
12
12
  items: InnerLink[];
13
13
  enableServiceDrag?: boolean;
14
+ groupFavoritesEnabled?: boolean;
14
15
  };
15
16
 
16
17
  export function SortableGroupCards({
@@ -20,6 +21,7 @@ export function SortableGroupCards({
20
21
  isMobile,
21
22
  enableServiceDrag,
22
23
  favorite,
24
+ groupFavoritesEnabled,
23
25
  onServiceClick,
24
26
  }: SortableGroupCardsProps) {
25
27
  return (
@@ -41,6 +43,7 @@ export function SortableGroupCards({
41
43
  isMobile={isMobile}
42
44
  dragDisabled={!enableServiceDrag}
43
45
  favorite={favorite}
46
+ groupFavoritesEnabled={groupFavoritesEnabled}
44
47
  onServiceClick={onServiceClick}
45
48
  />
46
49
  );
@@ -14,6 +14,7 @@ export type SubCategoryProps = Pick<
14
14
  > & {
15
15
  groupId: string;
16
16
  dragDisabled?: boolean;
17
+ groupFavoritesEnabled?: boolean;
17
18
  };
18
19
 
19
20
  export function SubCategory({
@@ -24,6 +25,7 @@ export function SubCategory({
24
25
  dragDisabled,
25
26
  favorite,
26
27
  onServiceClick,
28
+ groupFavoritesEnabled,
27
29
  }: SubCategoryProps) {
28
30
  const subcategoryId = getSubCategoryId(groupId, service.id);
29
31
  const nestedGroupId = getNestedServiceGroupId(groupId, service.id);
@@ -54,7 +56,7 @@ export function SubCategory({
54
56
  showDescription={showDescription}
55
57
  isMobile={isMobile}
56
58
  dragDisabled={dragDisabled}
57
- favorite={favorite}
59
+ favorite={groupFavoritesEnabled ? favorite : undefined}
58
60
  onServiceClick={onServiceClick}
59
61
  />
60
62
  }
@@ -31,13 +31,14 @@ export function ServiceCard({
31
31
  expandable,
32
32
  }: ServiceCardProps) {
33
33
  const isInFavorites = favorite?.value.includes(service.id) ?? false;
34
+ const isFavoriteEnabled = service.favoritesEnabled ?? true;
34
35
 
35
36
  const favoriteProps: CardServiceLightProps['favorite'] =
36
37
  !dragPreview && favorite
37
38
  ? {
38
39
  checked: isInFavorites,
39
40
  onChange: favorite.onChange(service.id),
40
- enabled: !service.disabled,
41
+ enabled: !service.disabled && isFavoriteEnabled,
41
42
  }
42
43
  : undefined;
43
44
 
@@ -83,7 +84,8 @@ export function DraggableServiceCard({
83
84
  dragDisabled,
84
85
  ...props
85
86
  }: DraggableServiceCardProps) {
86
- const disabled = dragDisabled || service.disabled || favorite?.value.includes(service.id);
87
+ const isFavoriteEnabled = service.favoritesEnabled ?? true;
88
+ const disabled = dragDisabled || service.disabled || favorite?.value.includes(service.id) || !isFavoriteEnabled;
87
89
 
88
90
  const { attributes, listeners, setNodeRef, isDragging } = useDraggable({
89
91
  id: getServiceSourceDragId(groupId, service.id),
@@ -1,4 +1,5 @@
1
1
  export * from './MainMenu';
2
+ export { MenuMobile } from './helperComponents/MenuMobile';
2
3
  export * from './helperComponents/Banners';
3
4
  export * from './helperComponents/Favorites';
4
5
  export * from './types';
@@ -36,6 +36,8 @@ export type InnerLink = {
36
36
  disabled?: boolean;
37
37
  hidden?: boolean;
38
38
  badge?: CardServiceLightProps['promoTag'];
39
+ /** Разрешено ли добавление карточки в избранное. default=true - разрешено */
40
+ favoritesEnabled?: boolean;
39
41
  /**
40
42
  * Вложенные сервисы подкатегории.
41
43
  *