@constructor-io/constructorio-ui-plp 1.6.1 → 1.6.3
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/dist/constructorio-ui-plp-bundled.js +12 -12
- package/lib/cjs/components/CioPlpGrid/CioPlpGrid.js +1 -0
- package/lib/cjs/components/Filters/index.css +2 -0
- package/lib/cjs/components/Groups/Groups.js +4 -2
- package/lib/cjs/version.js +1 -1
- package/lib/mjs/components/CioPlpGrid/CioPlpGrid.js +1 -0
- package/lib/mjs/components/Filters/index.css +2 -0
- package/lib/mjs/components/Groups/Groups.js +4 -2
- package/lib/mjs/version.js +1 -1
- package/lib/types/components/CioPlpGrid/CioPlpGrid.d.ts +6 -1
- package/lib/types/components/Groups/Groups.d.ts +16 -0
- package/lib/types/hooks/useCioPlp.d.ts +9 -3
- package/lib/types/version.d.ts +1 -1
- package/package.json +1 -1
|
@@ -70,6 +70,7 @@ function CioPlpGrid(props) {
|
|
|
70
70
|
react_1.default.createElement(Sort_1.default, Object.assign({ sortOptions: sort.sortOptions, isOpen: false }, sortConfigs)))),
|
|
71
71
|
react_1.default.createElement("div", { className: 'cio-product-tiles-container' },
|
|
72
72
|
react_1.default.createElement(MobileModal_1.default, { isOpen: isFilterOpen, setIsOpen: setIsFilterOpen },
|
|
73
|
+
isSearchPage && (react_1.default.createElement(Groups_1.default, Object.assign({ groups: data.response.groups }, groupsConfigs))),
|
|
73
74
|
react_1.default.createElement(Filters_1.default, { facets: filters.facets })), (_e = (_d = data.response) === null || _d === void 0 ? void 0 : _d.results) === null || _e === void 0 ? void 0 :
|
|
74
75
|
_e.map((item) => (react_1.default.createElement("div", { className: 'cio-product-tile', key: item.itemId },
|
|
75
76
|
react_1.default.createElement(ProductCard_1.default, { key: item.itemId, item: item }))))),
|
|
@@ -16,6 +16,7 @@
|
|
|
16
16
|
background: none;
|
|
17
17
|
display: flex;
|
|
18
18
|
flex-direction: row;
|
|
19
|
+
gap: 8px;
|
|
19
20
|
width: 100%;
|
|
20
21
|
justify-content: space-between;
|
|
21
22
|
align-items: center;
|
|
@@ -25,6 +26,7 @@
|
|
|
25
26
|
padding: 0 0 8px 0;
|
|
26
27
|
border-bottom: 1px solid #e1e1e1;
|
|
27
28
|
margin-bottom: 12px;
|
|
29
|
+
text-align: start;
|
|
28
30
|
}
|
|
29
31
|
|
|
30
32
|
.cio-see-all {
|
|
@@ -6,13 +6,15 @@ const classnames_1 = tslib_1.__importDefault(require("classnames"));
|
|
|
6
6
|
const useGroups_1 = tslib_1.__importDefault(require("../../hooks/useGroups"));
|
|
7
7
|
const FilterOptionListRow_1 = tslib_1.__importDefault(require("../Filters/FilterOptionListRow"));
|
|
8
8
|
function Groups(props) {
|
|
9
|
-
const { isCollapsed: isCollapsedDefault = false, title = 'Categories', children, groups } = props;
|
|
9
|
+
const { isCollapsed: isCollapsedDefault = false, title = 'Categories', children, groups, hideGroups, } = props;
|
|
10
10
|
const useGroupsReturn = (0, useGroups_1.default)(props);
|
|
11
11
|
const { optionsToRender, breadcrumbs, initialNumOptions, selectedGroupId, onOptionSelect, goToGroupFilter, isShowAll, setIsShowAll, } = useGroupsReturn;
|
|
12
12
|
const [isCollapsed, setIsCollapsed] = (0, react_1.useState)(isCollapsedDefault);
|
|
13
13
|
if (breadcrumbs.length === 0 && optionsToRender.length === 0)
|
|
14
14
|
return null;
|
|
15
|
-
|
|
15
|
+
if (hideGroups)
|
|
16
|
+
return null;
|
|
17
|
+
return (react_1.default.createElement(react_1.default.Fragment, null, typeof children === 'function' ? (children(useGroupsReturn)) : (react_1.default.createElement("div", { className: 'cio-groups-container' },
|
|
16
18
|
react_1.default.createElement("button", { className: 'cio-filter-header', type: 'button', onClick: () => setIsCollapsed(!isCollapsed) },
|
|
17
19
|
title,
|
|
18
20
|
react_1.default.createElement("i", { className: `cio-arrow ${isCollapsed ? 'cio-arrow-up' : 'cio-arrow-down'}` })),
|
package/lib/cjs/version.js
CHANGED
|
@@ -66,6 +66,7 @@ export default function CioPlpGrid(props) {
|
|
|
66
66
|
React.createElement(Sort, { sortOptions: sort.sortOptions, isOpen: false, ...sortConfigs }))),
|
|
67
67
|
React.createElement("div", { className: 'cio-product-tiles-container' },
|
|
68
68
|
React.createElement(MobileModal, { isOpen: isFilterOpen, setIsOpen: setIsFilterOpen },
|
|
69
|
+
isSearchPage && (React.createElement(Groups, { groups: data.response.groups, ...groupsConfigs })),
|
|
69
70
|
React.createElement(Filters, { facets: filters.facets })),
|
|
70
71
|
data.response?.results?.map((item) => (React.createElement("div", { className: 'cio-product-tile', key: item.itemId },
|
|
71
72
|
React.createElement(ProductCard, { key: item.itemId, item: item }))))),
|
|
@@ -16,6 +16,7 @@
|
|
|
16
16
|
background: none;
|
|
17
17
|
display: flex;
|
|
18
18
|
flex-direction: row;
|
|
19
|
+
gap: 8px;
|
|
19
20
|
width: 100%;
|
|
20
21
|
justify-content: space-between;
|
|
21
22
|
align-items: center;
|
|
@@ -25,6 +26,7 @@
|
|
|
25
26
|
padding: 0 0 8px 0;
|
|
26
27
|
border-bottom: 1px solid #e1e1e1;
|
|
27
28
|
margin-bottom: 12px;
|
|
29
|
+
text-align: start;
|
|
28
30
|
}
|
|
29
31
|
|
|
30
32
|
.cio-see-all {
|
|
@@ -3,13 +3,15 @@ import classNames from 'classnames';
|
|
|
3
3
|
import useGroups from '../../hooks/useGroups';
|
|
4
4
|
import FilterOptionListRow from '../Filters/FilterOptionListRow';
|
|
5
5
|
export default function Groups(props) {
|
|
6
|
-
const { isCollapsed: isCollapsedDefault = false, title = 'Categories', children, groups } = props;
|
|
6
|
+
const { isCollapsed: isCollapsedDefault = false, title = 'Categories', children, groups, hideGroups, } = props;
|
|
7
7
|
const useGroupsReturn = useGroups(props);
|
|
8
8
|
const { optionsToRender, breadcrumbs, initialNumOptions, selectedGroupId, onOptionSelect, goToGroupFilter, isShowAll, setIsShowAll, } = useGroupsReturn;
|
|
9
9
|
const [isCollapsed, setIsCollapsed] = useState(isCollapsedDefault);
|
|
10
10
|
if (breadcrumbs.length === 0 && optionsToRender.length === 0)
|
|
11
11
|
return null;
|
|
12
|
-
|
|
12
|
+
if (hideGroups)
|
|
13
|
+
return null;
|
|
14
|
+
return (React.createElement(React.Fragment, null, typeof children === 'function' ? (children(useGroupsReturn)) : (React.createElement("div", { className: 'cio-groups-container' },
|
|
13
15
|
React.createElement("button", { className: 'cio-filter-header', type: 'button', onClick: () => setIsCollapsed(!isCollapsed) },
|
|
14
16
|
title,
|
|
15
17
|
React.createElement("i", { className: `cio-arrow ${isCollapsed ? 'cio-arrow-up' : 'cio-arrow-down'}` })),
|
package/lib/mjs/version.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
export default '1.6.
|
|
1
|
+
export default '1.6.3';
|
|
@@ -23,7 +23,12 @@ export type CioPlpGridProps = {
|
|
|
23
23
|
*/
|
|
24
24
|
filterConfigs?: Omit<UseFilterProps, 'facets'>;
|
|
25
25
|
/**
|
|
26
|
-
*
|
|
26
|
+
* Configuration options for the Groups component.
|
|
27
|
+
* - `initialNumOptions`: Number of group options to show initially (default: 5).
|
|
28
|
+
* Remaining options are hidden under "Show All" button.
|
|
29
|
+
* - `isCollapsed`: Whether the groups section starts collapsed (default: false).
|
|
30
|
+
* - `title`: Custom title for the groups section (default: "Categories").
|
|
31
|
+
* - `hideGroups`: Whether to hide the groups component entirely (default: false).
|
|
27
32
|
*/
|
|
28
33
|
groupsConfigs?: Omit<GroupsProps, 'groups'>;
|
|
29
34
|
};
|
|
@@ -1,9 +1,25 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
2
|
import useGroups, { UseGroupProps } from '../../hooks/useGroups';
|
|
3
3
|
import { IncludeRenderProps } from '../../types';
|
|
4
|
+
/**
|
|
5
|
+
* Props for the Groups component
|
|
6
|
+
*/
|
|
4
7
|
export interface GroupsProps extends UseGroupProps {
|
|
8
|
+
/**
|
|
9
|
+
* Initial collapsed state of the groups filter panel
|
|
10
|
+
* @default false
|
|
11
|
+
*/
|
|
5
12
|
isCollapsed?: boolean;
|
|
13
|
+
/**
|
|
14
|
+
* Title displayed in the groups filter header
|
|
15
|
+
* @default Categories
|
|
16
|
+
*/
|
|
6
17
|
title?: string;
|
|
18
|
+
/**
|
|
19
|
+
* Whether to hide the entire groups component
|
|
20
|
+
* @default false
|
|
21
|
+
*/
|
|
22
|
+
hideGroups?: boolean;
|
|
7
23
|
}
|
|
8
24
|
export type GroupsWithRenderProps = IncludeRenderProps<GroupsProps, ReturnType<typeof useGroups>>;
|
|
9
25
|
export default function Groups(props: GroupsWithRenderProps): React.JSX.Element | null;
|
|
@@ -4,7 +4,7 @@ import { UseFilterProps } from './useFilter';
|
|
|
4
4
|
import { UseSortProps } from './useSort';
|
|
5
5
|
import { UsePaginationProps } from './usePagination';
|
|
6
6
|
import { UseBrowseResultsProps } from './useBrowseResults';
|
|
7
|
-
import {
|
|
7
|
+
import { GroupsProps } from '../components/Groups';
|
|
8
8
|
export interface UseCioPlpHook extends PlpContextValue {
|
|
9
9
|
}
|
|
10
10
|
export type UseCioPlpProps = UseSearchResultsProps & UseBrowseResultsProps & {
|
|
@@ -21,9 +21,15 @@ export type UseCioPlpProps = UseSearchResultsProps & UseBrowseResultsProps & {
|
|
|
21
21
|
*/
|
|
22
22
|
filterConfigs?: Omit<UseFilterProps, 'facets'>;
|
|
23
23
|
/**
|
|
24
|
-
*
|
|
24
|
+
* Configuration options for the Groups component.
|
|
25
|
+
* - `initialNumOptions`: Number of group options to show initially (default: 5).
|
|
26
|
+
* Remaining options are hidden under "Show All" button.
|
|
27
|
+
* - `isCollapsed`: Whether the groups section starts collapsed (default: false).
|
|
28
|
+
* - `title`: Custom title for the groups section (default: "Categories").
|
|
29
|
+
* - `hideGroups`: Whether to hide the groups component entirely (default: false).
|
|
30
|
+
* - `isHiddenGroupFn`: Function to determine if a group should be hidden (default: undefined).
|
|
25
31
|
*/
|
|
26
|
-
groupsConfigs?: Omit<
|
|
32
|
+
groupsConfigs?: Omit<GroupsProps, 'groups'>;
|
|
27
33
|
};
|
|
28
34
|
export default function useCioPlp(props?: UseCioPlpProps): {
|
|
29
35
|
isSearchPage: boolean;
|
package/lib/types/version.d.ts
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
declare const _default: "1.6.
|
|
1
|
+
declare const _default: "1.6.3";
|
|
2
2
|
export default _default;
|