@blocklet/list 0.8.20 → 0.8.23

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/lib/base.js CHANGED
@@ -11,15 +11,15 @@ var _styledComponents = _interopRequireDefault(require("styled-components"));
11
11
 
12
12
  var _Sort = _interopRequireDefault(require("@mui/icons-material/Sort"));
13
13
 
14
- var _FilterList = _interopRequireDefault(require("@mui/icons-material/FilterList"));
15
-
16
14
  var _material = require("@mui/material");
17
15
 
16
+ var _Face = _interopRequireDefault(require("@mui/icons-material/Face"));
17
+
18
18
  var _filter = require("./contexts/filter");
19
19
 
20
20
  var _customSelect = _interopRequireDefault(require("./components/custom-select"));
21
21
 
22
- var _filterAuthor = _interopRequireDefault(require("./components/filter-author"));
22
+ var _filter2 = require("./components/filter");
23
23
 
24
24
  var _utils = require("./libs/utils");
25
25
 
@@ -29,12 +29,10 @@ var _aside = _interopRequireDefault(require("./components/aside"));
29
29
 
30
30
  var _search = _interopRequireDefault(require("./components/search"));
31
31
 
32
- var _categorySelect = _interopRequireDefault(require("./components/category-select"));
33
-
34
32
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
35
33
 
36
34
  const ListBase = () => {
37
- var _getSortOptions$find, _getPrices$find;
35
+ var _sortOptions$find, _priceOptions$find;
38
36
 
39
37
  const {
40
38
  handleDeveloper,
@@ -42,9 +40,16 @@ const ListBase = () => {
42
40
  filters,
43
41
  developerName,
44
42
  handleSort,
43
+ handleCategory,
44
+ handlePrice,
45
45
  t,
46
- handlePrice
46
+ getCategoryLocale,
47
+ priceOptions
47
48
  } = (0, _filter.useFilterContext)();
49
+ const sortOptions = (0, _utils.getSortOptions)(t);
50
+ const sortLocale = ((_sortOptions$find = sortOptions.find(f => f.value === filters.sortBy)) === null || _sortOptions$find === void 0 ? void 0 : _sortOptions$find.name) || t('sort.sort');
51
+ const categoryLocale = getCategoryLocale(filters.category);
52
+ const priceLocale = (_priceOptions$find = priceOptions.find(price => price.value === filters.price)) === null || _priceOptions$find === void 0 ? void 0 : _priceOptions$find.name;
48
53
  return /*#__PURE__*/_react.default.createElement(_material.Box, {
49
54
  display: "flex",
50
55
  alignItems: "flex-start",
@@ -52,65 +57,48 @@ const ListBase = () => {
52
57
  }, /*#__PURE__*/_react.default.createElement(_material.Hidden, {
53
58
  mdDown: true
54
59
  }, /*#__PURE__*/_react.default.createElement(_aside.default, null)), /*#__PURE__*/_react.default.createElement(StyledMin, null, /*#__PURE__*/_react.default.createElement(_material.Box, {
55
- className: "marketplace-header",
60
+ className: "filter-bar",
56
61
  display: "flex",
57
62
  alignItems: "center"
58
- }, /*#__PURE__*/_react.default.createElement(_material.Hidden, {
59
- mdDown: true
60
- }, !!filters.developer && /*#__PURE__*/_react.default.createElement(_filterAuthor.default, {
61
- user: developerName,
62
- deleteUserTag: () => {
63
- handleDeveloper(null);
64
- }
65
- })), /*#__PURE__*/_react.default.createElement(_material.Box, {
66
- mt: 0,
67
- className: "searchContainer"
68
- }, /*#__PURE__*/_react.default.createElement(_material.Hidden, {
69
- mdUp: true
70
63
  }, /*#__PURE__*/_react.default.createElement(StyledSearch, {
71
- className: "search",
64
+ className: "search-container",
72
65
  placeholder: t('common.searchStore')
73
- }))), /*#__PURE__*/_react.default.createElement(_material.Box, {
66
+ }), /*#__PURE__*/_react.default.createElement(_material.Box, {
74
67
  mt: 0,
75
- ml: "10px",
76
- className: "filterContainer"
68
+ ml: "16px",
69
+ className: "filter-container"
77
70
  }, /*#__PURE__*/_react.default.createElement(_material.Hidden, {
78
71
  mdUp: true
79
- }, /*#__PURE__*/_react.default.createElement(_categorySelect.default, null)), /*#__PURE__*/_react.default.createElement(_customSelect.default, {
72
+ }, /*#__PURE__*/_react.default.createElement(_filter2.FilterIcon, null)), /*#__PURE__*/_react.default.createElement(_customSelect.default, {
80
73
  value: filters.sortBy,
81
- options: (0, _utils.getSortOptions)(t),
82
- title: ((_getSortOptions$find = (0, _utils.getSortOptions)(t).find(f => f.value === filters.sortBy)) === null || _getSortOptions$find === void 0 ? void 0 : _getSortOptions$find.name) || t('sort.sort'),
74
+ options: sortOptions,
75
+ title: sortLocale,
83
76
  icon: /*#__PURE__*/_react.default.createElement(_Sort.default, null),
84
77
  onChange: v => {
85
78
  handleSort(v);
86
79
  }
87
- }))), /*#__PURE__*/_react.default.createElement(_material.Hidden, {
88
- mdUp: true
89
- }, /*#__PURE__*/_react.default.createElement(_material.Box, {
80
+ }))), /*#__PURE__*/_react.default.createElement(_material.Box, {
90
81
  display: "flex",
91
82
  flexWrap: "wrap",
92
83
  alignItems: "center",
93
- justifyContent: filters.developer ? 'space-between' : 'flex-end'
94
- }, !!filters.developer && /*#__PURE__*/_react.default.createElement(_filterAuthor.default, {
95
- user: developerName,
96
- deleteUserTag: () => {
84
+ mb: "16px"
85
+ }, /*#__PURE__*/_react.default.createElement(_filter2.CustomChip, {
86
+ label: developerName,
87
+ icon: /*#__PURE__*/_react.default.createElement(_Face.default, null),
88
+ onDelete: () => {
97
89
  handleDeveloper(null);
98
- },
99
- style: {
100
- marginBottom: '16px'
101
90
  }
102
- }), /*#__PURE__*/_react.default.createElement(_customSelect.default, {
103
- value: filters.price,
104
- icon: /*#__PURE__*/_react.default.createElement(_FilterList.default, null),
105
- options: (0, _utils.getPrices)(t),
106
- title: ((_getPrices$find = (0, _utils.getPrices)(t).find(f => f.value === filters.price)) === null || _getPrices$find === void 0 ? void 0 : _getPrices$find.name) || t('common.price'),
107
- onChange: v => {
108
- handlePrice(v);
109
- },
110
- style: {
111
- marginBottom: '16px'
91
+ }), /*#__PURE__*/_react.default.createElement(_filter2.CustomChip, {
92
+ label: categoryLocale,
93
+ onDelete: () => {
94
+ handleCategory(null);
95
+ }
96
+ }), /*#__PURE__*/_react.default.createElement(_filter2.CustomChip, {
97
+ label: priceLocale,
98
+ onDelete: () => {
99
+ handlePrice(null);
112
100
  }
113
- }))), /*#__PURE__*/_react.default.createElement(_list.default, {
101
+ })), /*#__PURE__*/_react.default.createElement(_list.default, {
114
102
  blocklets: blockletList
115
103
  })));
116
104
  };
@@ -118,7 +106,7 @@ const ListBase = () => {
118
106
  const StyledMin = _styledComponents.default.main.withConfig({
119
107
  displayName: "base__StyledMin",
120
108
  componentId: "sc-wumzlv-0"
121
- })(["flex:1;width:100%;min-width:0;.marketplace-header{justify-content:space-between;margin-bottom:20px;}.sort-button{white-space:nowrap;}.search{margin-left:0px;}@media (max-width:", "px){.searchContainer{flex:1;}.search{width:100%;}.filterContainer{flex:1;display:flex;justify-content:flex-end;}}@media (max-width:750px){.searchContainer{width:100%;}.filterContainer{width:100%;margin-left:0;display:flex;justify-content:space-between;}.search{margin-bottom:20px;width:100%;}.marketplace-header{display:flex;flex-direction:column;align-items:flex-start;}}@media (max-width:", "px){.sort-button{font-size:12px;}}"], props => props.theme.breakpoints.values.md, props => props.theme.breakpoints.values.md);
109
+ })(["flex:1;width:100%;min-width:0;.filter-bar{justify-content:space-between;margin-bottom:", ";}.sort-button{white-space:nowrap;}.search-container{flex:2;margin-left:0px;}.filter-container{flex:1;display:flex;justify-content:flex-end;}@media (max-width:", "px){.search-container{width:100%;margin-bottom:", ";}.filter-container{margin-left:0;display:flex;justify-content:flex-start;}.filter-bar{display:flex;flex-direction:column;align-items:flex-start;}}@media (max-width:", "px){.sort-button{font-size:12px;}}"], props => props.theme.spacing(2), props => props.theme.breakpoints.values.md, props => props.theme.spacing(2), props => props.theme.breakpoints.values.md);
122
110
 
123
111
  const StyledSearch = (0, _styledComponents.default)(_search.default).withConfig({
124
112
  displayName: "base__StyledSearch",
@@ -0,0 +1,53 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = void 0;
7
+
8
+ var _react = _interopRequireDefault(require("react"));
9
+
10
+ var _styledComponents = _interopRequireDefault(require("styled-components"));
11
+
12
+ var _filter = require("../contexts/filter");
13
+
14
+ var _filter2 = require("./filter");
15
+
16
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
17
+
18
+ const Aside = () => {
19
+ const {
20
+ selectedCategory,
21
+ handleCategory,
22
+ t,
23
+ handlePrice,
24
+ filters,
25
+ categoryOptions,
26
+ priceOptions
27
+ } = (0, _filter.useFilterContext)();
28
+ return /*#__PURE__*/_react.default.createElement(StyledAside, null, /*#__PURE__*/_react.default.createElement("div", null, /*#__PURE__*/_react.default.createElement(_filter2.FilterGroup, {
29
+ title: t('common.price'),
30
+ options: priceOptions,
31
+ value: filters.price,
32
+ onChange: handlePrice
33
+ })), /*#__PURE__*/_react.default.createElement("div", {
34
+ style: {
35
+ marginTop: '32px'
36
+ }
37
+ }, /*#__PURE__*/_react.default.createElement(_filter2.FilterGroup, {
38
+ title: t('common.category'),
39
+ options: categoryOptions,
40
+ value: selectedCategory,
41
+ onChange: handleCategory
42
+ })));
43
+ };
44
+
45
+ const StyledAside = _styledComponents.default.aside.withConfig({
46
+ displayName: "aside__StyledAside",
47
+ componentId: "sc-1wkvsv6-0"
48
+ })(["width:220px;margin-right:", ";height:100%;"], props => props.theme.spacing(2));
49
+
50
+ Aside.propTypes = {};
51
+ Aside.defaultProps = {};
52
+ var _default = Aside;
53
+ exports.default = _default;
@@ -13,11 +13,7 @@ var _styledComponents = _interopRequireDefault(require("styled-components"));
13
13
 
14
14
  var _material = require("@mui/material");
15
15
 
16
- var _Face = _interopRequireDefault(require("@mui/icons-material/Face"));
17
-
18
- var _filter = require("../contexts/filter");
19
-
20
- const _excluded = ["user", "deleteUserTag"];
16
+ const _excluded = ["label", "icon", "onDelete"];
21
17
 
22
18
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
23
19
 
@@ -26,38 +22,35 @@ function _objectWithoutProperties(source, excluded) { if (source == null) return
26
22
  function _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }
27
23
 
28
24
  const StyleDiv = _styledComponents.default.div.withConfig({
29
- displayName: "filter-author__StyleDiv",
30
- componentId: "sc-hnnc9f-0"
31
- })([".MuiChip-root{border-radius:4px;height:initial;text-transform:capitalize;}"]);
25
+ displayName: "custom-chip__StyleDiv",
26
+ componentId: "sc-4q1qqt-0"
27
+ })([".MuiChip-root{border-radius:4px;height:initial;text-transform:capitalize;margin-right:", ";padding:4px 0;}"], props => props.theme.spacing(2));
32
28
 
33
- const FilterAuthor = _ref => {
29
+ const FilterChip = _ref => {
34
30
  let {
35
- user,
36
- deleteUserTag
31
+ label,
32
+ icon,
33
+ onDelete
37
34
  } = _ref,
38
35
  containerProps = _objectWithoutProperties(_ref, _excluded);
39
36
 
40
- const {
41
- t
42
- } = (0, _filter.useFilterContext)();
43
- if (!user) return null;
37
+ if (!label) return null;
44
38
  return /*#__PURE__*/_react.default.createElement(StyleDiv, containerProps, /*#__PURE__*/_react.default.createElement(_material.Chip, {
45
- icon: /*#__PURE__*/_react.default.createElement(_Face.default, null),
46
- label: t('blocklet.owner', {
47
- name: user
48
- }),
49
- onDelete: () => {
50
- deleteUserTag();
51
- }
39
+ icon: icon,
40
+ label: label,
41
+ onDelete: onDelete
52
42
  }));
53
43
  };
54
44
 
55
- FilterAuthor.propTypes = {
56
- user: _propTypes.default.string.isRequired,
57
- deleteUserTag: _propTypes.default.func
45
+ FilterChip.propTypes = {
46
+ label: _propTypes.default.string,
47
+ onDelete: _propTypes.default.func,
48
+ icon: _propTypes.default.element
58
49
  };
59
- FilterAuthor.defaultProps = {
60
- deleteUserTag: () => {}
50
+ FilterChip.defaultProps = {
51
+ onDelete: () => {},
52
+ icon: null,
53
+ label: null
61
54
  };
62
- var _default = FilterAuthor;
55
+ var _default = FilterChip;
63
56
  exports.default = _default;
@@ -0,0 +1,53 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = void 0;
7
+
8
+ var _react = _interopRequireDefault(require("react"));
9
+
10
+ var _propTypes = _interopRequireDefault(require("prop-types"));
11
+
12
+ var _styledComponents = _interopRequireDefault(require("styled-components"));
13
+
14
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
15
+
16
+ function FilterGroup(_ref) {
17
+ let {
18
+ options,
19
+ onChange,
20
+ title,
21
+ value
22
+ } = _ref;
23
+ return /*#__PURE__*/_react.default.createElement(StyledDiv, null, /*#__PURE__*/_react.default.createElement("div", {
24
+ className: "title"
25
+ }, title), /*#__PURE__*/_react.default.createElement("div", {
26
+ className: "list"
27
+ }, options.map(item => {
28
+ return /*#__PURE__*/_react.default.createElement("div", {
29
+ title: item.name,
30
+ key: item.value,
31
+ "data-cy": "filter",
32
+ className: value === item.value ? 'select item' : 'item',
33
+ onClick: () => onChange(item.value)
34
+ }, item.name);
35
+ })));
36
+ }
37
+
38
+ const StyledDiv = _styledComponents.default.div.withConfig({
39
+ displayName: "group__StyledDiv",
40
+ componentId: "sc-1lj02tr-0"
41
+ })([".title{font-size:18px;font-weight:bold;margin-bottom:", ";}.list{}.item{font-size:16px;font-weight:bold;padding:", " ", ";color:#9397a1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;text-transform:capitalize;cursor:pointer;&:hover{background-color:", ";color:initial;}}.select{color:", ";}"], props => props.theme.spacing(2), props => props.theme.spacing(2), props => props.theme.spacing(1), props => props.theme.palette.grey[50], props => props.theme.palette.primary.main);
42
+
43
+ FilterGroup.propTypes = {
44
+ title: _propTypes.default.string.isRequired,
45
+ options: _propTypes.default.array.isRequired,
46
+ onChange: _propTypes.default.func.isRequired,
47
+ value: _propTypes.default.oneOfType([_propTypes.default.string, _propTypes.default.number])
48
+ };
49
+ FilterGroup.defaultProps = {
50
+ value: null
51
+ };
52
+ var _default = FilterGroup;
53
+ exports.default = _default;
@@ -0,0 +1,93 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = void 0;
7
+
8
+ var _react = _interopRequireWildcard(require("react"));
9
+
10
+ var _styledComponents = _interopRequireDefault(require("styled-components"));
11
+
12
+ var _FilterAltOutlined = _interopRequireDefault(require("@mui/icons-material/FilterAltOutlined"));
13
+
14
+ var _Dialog = _interopRequireDefault(require("@arcblock/ux/lib/Dialog"));
15
+
16
+ var _Button = _interopRequireDefault(require("@mui/material/Button"));
17
+
18
+ var _filter = require("../../contexts/filter");
19
+
20
+ var _group = _interopRequireDefault(require("./group"));
21
+
22
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
23
+
24
+ function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
25
+
26
+ function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
27
+
28
+ function FilterIcon() {
29
+ const {
30
+ selectedCategory,
31
+ handleCategory,
32
+ t,
33
+ handlePrice,
34
+ filters,
35
+ categoryOptions,
36
+ priceOptions
37
+ } = (0, _filter.useFilterContext)();
38
+ const [open, setOpen] = (0, _react.useState)(false);
39
+
40
+ const handelChange = (type, value) => {
41
+ if (type === 'category') {
42
+ handleCategory(value);
43
+ }
44
+
45
+ if (type === 'price') {
46
+ handlePrice(value);
47
+ }
48
+
49
+ setOpen(false);
50
+ };
51
+
52
+ return /*#__PURE__*/_react.default.createElement(StyledDiv, null, /*#__PURE__*/_react.default.createElement(_Button.default, {
53
+ variant: "outlined",
54
+ className: "filter-button",
55
+ onClick: () => setOpen(true)
56
+ }, /*#__PURE__*/_react.default.createElement(_FilterAltOutlined.default, {
57
+ className: "filter-icon",
58
+ fontSize: "small"
59
+ })), /*#__PURE__*/_react.default.createElement(_Dialog.default, {
60
+ fullWidth: true,
61
+ title: "",
62
+ open: open,
63
+ onClose: () => setOpen(false)
64
+ }, /*#__PURE__*/_react.default.createElement(_group.default, {
65
+ title: t('common.price'),
66
+ options: priceOptions,
67
+ value: filters.price,
68
+ onChange: v => {
69
+ handelChange('price', v);
70
+ }
71
+ }), /*#__PURE__*/_react.default.createElement("div", {
72
+ style: {
73
+ marginTop: '32px'
74
+ }
75
+ }, /*#__PURE__*/_react.default.createElement(_group.default, {
76
+ title: t('common.category'),
77
+ options: categoryOptions,
78
+ value: selectedCategory,
79
+ onChange: v => {
80
+ handelChange('category', v);
81
+ }
82
+ }))));
83
+ }
84
+
85
+ const StyledDiv = _styledComponents.default.div.withConfig({
86
+ displayName: "icon__StyledDiv",
87
+ componentId: "sc-17rafy1-0"
88
+ })([".filter-button{margin-right:16px;border-color:rgb(240,240,240);padding:5px 8px;min-width:initial;}.filter-icon{cursor:pointer;color:", ";}"], props => props.theme.palette.grey[500]);
89
+
90
+ FilterIcon.propTypes = {};
91
+ FilterIcon.defaultProps = {};
92
+ var _default = FilterIcon;
93
+ exports.default = _default;
@@ -0,0 +1,31 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ Object.defineProperty(exports, "CustomChip", {
7
+ enumerable: true,
8
+ get: function get() {
9
+ return _customChip.default;
10
+ }
11
+ });
12
+ Object.defineProperty(exports, "FilterGroup", {
13
+ enumerable: true,
14
+ get: function get() {
15
+ return _group.default;
16
+ }
17
+ });
18
+ Object.defineProperty(exports, "FilterIcon", {
19
+ enumerable: true,
20
+ get: function get() {
21
+ return _icon.default;
22
+ }
23
+ });
24
+
25
+ var _icon = _interopRequireDefault(require("./icon"));
26
+
27
+ var _customChip = _interopRequireDefault(require("./custom-chip"));
28
+
29
+ var _group = _interopRequireDefault(require("./group"));
30
+
31
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
@@ -105,8 +105,7 @@ function BlockletList(_ref) {
105
105
  }
106
106
 
107
107
  return /*#__PURE__*/_react.default.createElement(_Grid.default, Object.assign({
108
- container: true,
109
- spacing: 4
108
+ container: true
110
109
  }, rest), blocklets.map(blocklet => /*#__PURE__*/_react.default.createElement(StyledGrid, {
111
110
  item: true,
112
111
  lg: 4,
@@ -128,7 +127,7 @@ BlockletList.defaultProps = {};
128
127
  const StyledGrid = (0, _styledComponents.default)(_Grid.default).withConfig({
129
128
  displayName: "list__StyledGrid",
130
129
  componentId: "sc-jzgpev-0"
131
- })(["@media (max-width:", "px){&.MuiGrid-item{padding-bottom:0px;padding-left:16px;padding-right:4px;}}"], props => props.theme.breakpoints.values.sm);
130
+ })(["@media (max-width:", "px){&.MuiGrid-item{padding-bottom:0px;margin-left:", ";padding-right:", ";}}@media (min-width:", "px){&.MuiGrid-item{margin-bottom:", ";}}"], props => props.theme.breakpoints.values.sm, props => props.theme.spacing(-2), props => props.theme.spacing(0.5), props => props.theme.breakpoints.values.sm, props => props.theme.spacing(2));
132
131
  const CustomEmpty = (0, _styledComponents.default)(_Empty.default).withConfig({
133
132
  displayName: "list__CustomEmpty",
134
133
  componentId: "sc-jzgpev-1"
@@ -94,7 +94,7 @@ Search.defaultProps = {
94
94
  const StyledSearch = (0, _styledComponents.default)(_material.OutlinedInput).withConfig({
95
95
  displayName: "search__StyledSearch",
96
96
  componentId: "sc-1ehlqka-0"
97
- })(["background-color:#fff;border-radius:12px;font-size:16px;margin:0 10px;.MuiInputBase-input{padding:12px 0px 12px 0px;}.MuiOutlinedInput-notchedOutline{border:none;}.Mui-focused{background-color:#f6f6f6;.MuiInputBase-input::placeholder{color:transparent;}}@media (max-width:", "px){font-size:14px;border-radius:6px;.MuiInputBase-input{padding:8px 0 8px 10px;}}"], props => props.theme.breakpoints.values.md);
97
+ })(["background-color:#fff;font-size:14px;border-radius:6px;.MuiInputBase-input{padding:8px 0 8px 10px;}.MuiOutlinedInput-notchedOutline{border:none;}.Mui-focused{background-color:#f6f6f6;.MuiInputBase-input::placeholder{color:transparent;}}"]);
98
98
  const StyledSearchIcon = (0, _styledComponents.default)(_Search.default).withConfig({
99
99
  displayName: "search__StyledSearchIcon",
100
100
  componentId: "sc-1ehlqka-1"
@@ -44,8 +44,6 @@ exports.FilterConsumer = Consumer;
44
44
 
45
45
  function FilterProvider(_ref) {
46
46
  let {
47
- onSelectBlocklet,
48
- selectedBlocklets,
49
47
  filters,
50
48
  children,
51
49
  baseUrl,
@@ -152,6 +150,8 @@ function FilterProvider(_ref) {
152
150
  return (0, _utils.replaceTranslate)(_locale.default[locale][key], data);
153
151
  };
154
152
 
153
+ const categoryOptions = (0, _react.useMemo)(() => (0, _utils.getCategoryOptions)(categoryList, locale), [categoryList, locale]);
154
+ const priceOptions = (0, _utils.getPrices)(translate);
155
155
  const filterStore = {
156
156
  errors: {
157
157
  fetchBlockletsError,
@@ -173,8 +173,8 @@ function FilterProvider(_ref) {
173
173
  baseUrl,
174
174
  blockletRender,
175
175
  locale,
176
- selectedBlocklets,
177
- onSelectBlocklet,
176
+ categoryOptions,
177
+ priceOptions,
178
178
  handleSort: sort => {
179
179
  const changeData = _objectSpread(_objectSpread({}, filters), {}, {
180
180
  sortBy: sort,
@@ -206,7 +206,7 @@ function FilterProvider(_ref) {
206
206
  onFilterChange(changeData);
207
207
  } else {
208
208
  const changeData = _objectSpread(_objectSpread({}, filters), {}, {
209
- category
209
+ category: category === filters.category ? undefined : category
210
210
  });
211
211
 
212
212
  onFilterChange(changeData);
package/lib/libs/utils.js CHANGED
@@ -3,7 +3,7 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
- exports.urlStringify = exports.replaceTranslate = exports.removeUndefined = exports.getStoreDetail = exports.getSortOptions = exports.getPrices = exports.getCategories = exports.formatLogoPath = exports.formatError = exports.filterBlockletByPrice = void 0;
6
+ exports.urlStringify = exports.replaceTranslate = exports.removeUndefined = exports.getStoreDetail = exports.getSortOptions = exports.getPrices = exports.getCategoryOptions = exports.getCategories = exports.formatLogoPath = exports.formatError = exports.filterBlockletByPrice = void 0;
7
7
 
8
8
  var _urlJoin = _interopRequireDefault(require("url-join"));
9
9
 
@@ -47,6 +47,17 @@ const getPrices = t => {
47
47
  value: 'payment'
48
48
  }];
49
49
  };
50
+
51
+ exports.getPrices = getPrices;
52
+
53
+ const getCategoryOptions = function getCategoryOptions() {
54
+ let list = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];
55
+ let locale = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'en';
56
+ return list.map(item => ({
57
+ name: item.locales[locale],
58
+ value: item.name
59
+ }));
60
+ };
50
61
  /**
51
62
  * 从开发者所属 blocklets 中的得到 Categories
52
63
  * @param {*} list
@@ -55,7 +66,7 @@ const getPrices = t => {
55
66
  */
56
67
 
57
68
 
58
- exports.getPrices = getPrices;
69
+ exports.getCategoryOptions = getCategoryOptions;
59
70
 
60
71
  const getCategories = (list, developerDid) => {
61
72
  const filterList = list.filter(item => developerDid ? item.owner.did === developerDid : true);
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@blocklet/list",
3
- "version": "0.8.20",
3
+ "version": "0.8.23",
4
4
  "description": "Common ux components of blocklet",
5
5
  "publishConfig": {
6
6
  "access": "public"
@@ -37,7 +37,7 @@
37
37
  "react": ">=18.1.0"
38
38
  },
39
39
  "dependencies": {
40
- "@arcblock/ux": "^2.1.4",
40
+ "@arcblock/ux": "^2.1.7",
41
41
  "@emotion/react": "^11.9.0",
42
42
  "@emotion/styled": "^11.8.1",
43
43
  "@mui/icons-material": "^5.6.2",
@@ -58,5 +58,5 @@
58
58
  "babel-plugin-inline-react-svg": "^2.0.1",
59
59
  "babel-plugin-styled-components": "^1.10.7"
60
60
  },
61
- "gitHead": "a74898c47a9d7e7d14462500ddb677292f2bd68b"
61
+ "gitHead": "e9fb9d4b9e5f58781f5d5d202b8b066e1e6481ba"
62
62
  }