@blocklet/list 0.8.13 → 0.8.16

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 (40) hide show
  1. package/lib/base.js +21 -24
  2. package/lib/components/{aside.js → aside/aside.js} +11 -12
  3. package/lib/components/aside/category-link-list.js +78 -0
  4. package/lib/components/aside/index.js +13 -0
  5. package/lib/components/category-select.js +55 -0
  6. package/lib/components/{button.js → custom-select/button.js} +1 -1
  7. package/lib/components/{custom-select.js → custom-select/custom-select.js} +8 -6
  8. package/lib/components/custom-select/index.js +13 -0
  9. package/lib/components/filter-author.js +2 -3
  10. package/lib/components/{empty.js → list/empty.js} +6 -8
  11. package/lib/components/list/index.js +13 -0
  12. package/lib/components/{list.js → list/list.js} +12 -12
  13. package/lib/components/search.js +17 -18
  14. package/lib/contexts/{store.js → filter.js} +90 -159
  15. package/lib/index.js +6 -16
  16. package/lib/libs/prop-types.js +34 -0
  17. package/lib/{tools → libs}/utils.js +6 -6
  18. package/package.json +60 -64
  19. package/src/base.js +17 -18
  20. package/src/components/{aside.js → aside/aside.js} +7 -8
  21. package/src/components/aside/category-link-list.js +53 -0
  22. package/src/components/aside/index.js +3 -0
  23. package/src/components/category-select.js +43 -0
  24. package/src/components/{button.js → custom-select/button.js} +0 -0
  25. package/src/components/{custom-select.js → custom-select/custom-select.js} +5 -4
  26. package/src/components/custom-select/index.js +3 -0
  27. package/src/components/filter-author.js +2 -3
  28. package/src/components/{empty.js → list/empty.js} +7 -8
  29. package/src/components/list/index.js +3 -0
  30. package/src/components/{list.js → list/list.js} +10 -10
  31. package/src/components/search.js +12 -12
  32. package/src/contexts/filter.js +196 -0
  33. package/src/index.js +6 -16
  34. package/src/libs/prop-types.js +26 -0
  35. package/src/{tools → libs}/utils.js +6 -6
  36. package/lib/components/categories.js +0 -143
  37. package/lib/hooks/page-state.js +0 -69
  38. package/src/components/categories.js +0 -129
  39. package/src/contexts/store.js +0 -266
  40. package/src/hooks/page-state.js +0 -53
package/lib/base.js CHANGED
@@ -9,19 +9,19 @@ var _react = _interopRequireDefault(require("react"));
9
9
 
10
10
  var _styledComponents = _interopRequireDefault(require("styled-components"));
11
11
 
12
- var _Sort = _interopRequireDefault(require("mdi-material-ui/Sort"));
12
+ var _Sort = _interopRequireDefault(require("@mui/icons-material/Sort"));
13
13
 
14
14
  var _FilterList = _interopRequireDefault(require("@mui/icons-material/FilterList"));
15
15
 
16
16
  var _material = require("@mui/material");
17
17
 
18
- var _store = require("./contexts/store");
18
+ var _filter = require("./contexts/filter");
19
19
 
20
20
  var _customSelect = _interopRequireDefault(require("./components/custom-select"));
21
21
 
22
22
  var _filterAuthor = _interopRequireDefault(require("./components/filter-author"));
23
23
 
24
- var _utils = require("./tools/utils");
24
+ var _utils = require("./libs/utils");
25
25
 
26
26
  var _list = _interopRequireDefault(require("./components/list"));
27
27
 
@@ -29,23 +29,22 @@ var _aside = _interopRequireDefault(require("./components/aside"));
29
29
 
30
30
  var _search = _interopRequireDefault(require("./components/search"));
31
31
 
32
- var _categories = require("./components/categories");
32
+ var _categorySelect = _interopRequireDefault(require("./components/category-select"));
33
33
 
34
34
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
35
35
 
36
36
  const ListBase = () => {
37
37
  var _getSortOptions$find, _getPrices$find;
38
38
 
39
- const searchStore = (0, _store.useSearchContext)();
40
39
  const {
41
- sortParams,
42
- history,
40
+ handleDeveloper,
43
41
  blockletList,
44
- queryParams,
42
+ filters,
45
43
  developerName,
46
44
  handleSort,
47
- t
48
- } = searchStore;
45
+ t,
46
+ handlePrice
47
+ } = (0, _filter.useFilterContext)();
49
48
  return /*#__PURE__*/_react.default.createElement(_material.Box, {
50
49
  display: "flex",
51
50
  alignItems: "flex-start",
@@ -58,10 +57,10 @@ const ListBase = () => {
58
57
  alignItems: "center"
59
58
  }, /*#__PURE__*/_react.default.createElement(_material.Hidden, {
60
59
  mdDown: true
61
- }, !!queryParams.get('developer') && /*#__PURE__*/_react.default.createElement(_filterAuthor.default, {
60
+ }, !!filters.developer && /*#__PURE__*/_react.default.createElement(_filterAuthor.default, {
62
61
  user: developerName,
63
62
  deleteUserTag: () => {
64
- history.push('/');
63
+ handleDeveloper(null);
65
64
  }
66
65
  })), /*#__PURE__*/_react.default.createElement(_material.Box, {
67
66
  mt: 0,
@@ -77,13 +76,11 @@ const ListBase = () => {
77
76
  className: "filterContainer"
78
77
  }, /*#__PURE__*/_react.default.createElement(_material.Hidden, {
79
78
  mdUp: true
80
- }, /*#__PURE__*/_react.default.createElement(_categories.CategorySelect, null)), /*#__PURE__*/_react.default.createElement(_customSelect.default, {
81
- value: sortParams.sort,
79
+ }, /*#__PURE__*/_react.default.createElement(_categorySelect.default, null)), /*#__PURE__*/_react.default.createElement(_customSelect.default, {
80
+ value: filters.sortBy,
82
81
  options: (0, _utils.getSortOptions)(t),
83
- title: ((_getSortOptions$find = (0, _utils.getSortOptions)(t).find(f => f.value === sortParams.sort)) === null || _getSortOptions$find === void 0 ? void 0 : _getSortOptions$find.name) || t('sort.sort'),
84
- icon: /*#__PURE__*/_react.default.createElement(_material.SvgIcon, {
85
- component: _Sort.default
86
- }),
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'),
83
+ icon: /*#__PURE__*/_react.default.createElement(_Sort.default, null),
87
84
  onChange: v => {
88
85
  handleSort(v);
89
86
  }
@@ -93,22 +90,22 @@ const ListBase = () => {
93
90
  display: "flex",
94
91
  flexWrap: "wrap",
95
92
  alignItems: "center",
96
- justifyContent: queryParams.get('developer') ? 'space-between' : 'flex-end'
97
- }, !!queryParams.get('developer') && /*#__PURE__*/_react.default.createElement(_filterAuthor.default, {
93
+ justifyContent: filters.developer ? 'space-between' : 'flex-end'
94
+ }, !!filters.developer && /*#__PURE__*/_react.default.createElement(_filterAuthor.default, {
98
95
  user: developerName,
99
96
  deleteUserTag: () => {
100
- history.push('/');
97
+ handleDeveloper(null);
101
98
  },
102
99
  style: {
103
100
  marginBottom: '16px'
104
101
  }
105
102
  }), /*#__PURE__*/_react.default.createElement(_customSelect.default, {
106
- value: queryParams.get('price'),
103
+ value: filters.price,
107
104
  icon: /*#__PURE__*/_react.default.createElement(_FilterList.default, null),
108
105
  options: (0, _utils.getPrices)(t),
109
- title: ((_getPrices$find = (0, _utils.getPrices)(t).find(f => f.value === queryParams.get('price'))) === null || _getPrices$find === void 0 ? void 0 : _getPrices$find.name) || t('common.price'),
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'),
110
107
  onChange: v => {
111
- searchStore.handlePriceFilter(v);
108
+ handlePrice(v);
112
109
  },
113
110
  style: {
114
111
  marginBottom: '16px'
@@ -11,23 +11,22 @@ var _material = require("@mui/material");
11
11
 
12
12
  var _styledComponents = _interopRequireDefault(require("styled-components"));
13
13
 
14
- var _store = require("../contexts/store");
14
+ var _filter = require("../../contexts/filter");
15
15
 
16
- var _utils = require("../tools/utils");
16
+ var _utils = require("../../libs/utils");
17
17
 
18
- var _search = _interopRequireDefault(require("./search"));
18
+ var _search = _interopRequireDefault(require("../search"));
19
19
 
20
- var _categories = require("./categories");
20
+ var _categoryLinkList = _interopRequireDefault(require("./category-link-list"));
21
21
 
22
22
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
23
23
 
24
24
  const Aside = () => {
25
- const searchStore = (0, _store.useSearchContext)();
26
25
  const {
27
- queryParams,
28
- handlePriceFilter,
26
+ filters,
27
+ handlePrice,
29
28
  t
30
- } = searchStore;
29
+ } = (0, _filter.useFilterContext)();
31
30
  return /*#__PURE__*/_react.default.createElement(StyledAside, null, /*#__PURE__*/_react.default.createElement(_search.default, {
32
31
  placeholder: t('common.searchStore')
33
32
  }), /*#__PURE__*/_react.default.createElement(_material.Box, {
@@ -37,10 +36,10 @@ const Aside = () => {
37
36
  key: item.value,
38
37
  control: /*#__PURE__*/_react.default.createElement(_material.Checkbox, {
39
38
  onClick: () => {
40
- handlePriceFilter(item.value);
39
+ handlePrice(item.value);
41
40
  },
42
41
  size: "small",
43
- checked: item.value === queryParams.get('price')
42
+ checked: item.value === filters.price
44
43
  }),
45
44
  label: item.name
46
45
  }))), /*#__PURE__*/_react.default.createElement(_material.List, {
@@ -51,12 +50,12 @@ const Aside = () => {
51
50
  border: '1px solid #dadce0',
52
51
  margin: '16px 16px'
53
52
  }
54
- }), /*#__PURE__*/_react.default.createElement(_categories.CategoryLinkList, null)));
53
+ }), /*#__PURE__*/_react.default.createElement(_categoryLinkList.default, null)));
55
54
  };
56
55
 
57
56
  const StyledAside = _styledComponents.default.aside.withConfig({
58
57
  displayName: "aside__StyledAside",
59
- componentId: "sc-1wkvsv6-0"
58
+ componentId: "sc-1vh5fc3-0"
60
59
  })(["width:220px;margin-right:20px;background-color:", ";height:100%;padding:15px 0px;border-radius:8px;.MuiListItemText-root{width:100%;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;}.payments{display:flex;padding:0 16px;.MuiFormControlLabel-label{color:#5f6368;font-size:1rem;}}.MuiListItem-root{text-transform:capitalize;.category > span{font-weight:", ";}>:not(.category){.MuiListItemText-primary{color:#5f6368;}}&.Mui-selected{background-color:", "!important;border-radius:4px;.MuiListItemText-primary{color:#fff !important;}}}@media (max-width:", "px){.MuiListItemText-primary{font-size:16px;}}"], props => props.theme.palette.grey[50], props => props.theme.typography.fontWeightBold, props => props.theme.palette.primary.main, props => props.theme.breakpoints.values.md);
61
60
 
62
61
  Aside.propTypes = {};
@@ -0,0 +1,78 @@
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 _material = require("@mui/material");
11
+
12
+ var _urlJoin = _interopRequireDefault(require("url-join"));
13
+
14
+ var _filter = require("../../contexts/filter");
15
+
16
+ var _utils = require("../../libs/utils");
17
+
18
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
19
+
20
+ function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
21
+
22
+ function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
23
+
24
+ function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
25
+
26
+ /**
27
+ * 宽屏幕下的分类列表
28
+ * @returns
29
+ */
30
+ const CategoryLinkList = () => {
31
+ const {
32
+ categoryList,
33
+ selectedCategory,
34
+ filters,
35
+ baseUrl,
36
+ handleCategory,
37
+ t,
38
+ locale
39
+ } = (0, _filter.useFilterContext)();
40
+
41
+ const handleClick = (e, name) => {
42
+ handleCategory(name);
43
+ e.preventDefault();
44
+ return false;
45
+ };
46
+
47
+ const content = /*#__PURE__*/_react.default.createElement("div", {
48
+ style: {
49
+ marginRight: '16px'
50
+ }
51
+ }, /*#__PURE__*/_react.default.createElement(_material.ListItem, {
52
+ selected: !selectedCategory,
53
+ button: true,
54
+ onClick: e => handleClick(e, 'all')
55
+ }, /*#__PURE__*/_react.default.createElement(_material.ListItemText, {
56
+ primary: t('category.all')
57
+ })), categoryList.map(item => /*#__PURE__*/_react.default.createElement(_material.ListItem, {
58
+ key: item._id,
59
+ title: item.locales[locale],
60
+ component: _material.Link,
61
+ to: "".concat((0, _urlJoin.default)(baseUrl, '/search'), "?").concat((0, _utils.urlStringify)(_objectSpread(_objectSpread({}, filters), {}, {
62
+ category: item.name
63
+ }))),
64
+ onClick: e => handleClick(e, item.name),
65
+ button: true,
66
+ selected: item.name === selectedCategory
67
+ }, /*#__PURE__*/_react.default.createElement(_material.ListItemText, {
68
+ primary: item.locales[locale]
69
+ }))));
70
+
71
+ return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement(_material.ListItem, null, /*#__PURE__*/_react.default.createElement(_material.ListItemText, {
72
+ className: "category",
73
+ primary: t('common.category')
74
+ })), content);
75
+ };
76
+
77
+ var _default = CategoryLinkList;
78
+ exports.default = _default;
@@ -0,0 +1,13 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = void 0;
7
+
8
+ var _aside = _interopRequireDefault(require("./aside"));
9
+
10
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
11
+
12
+ var _default = _aside.default;
13
+ exports.default = _default;
@@ -0,0 +1,55 @@
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 _material = require("@mui/material");
11
+
12
+ var _filter = require("../contexts/filter");
13
+
14
+ var _customSelect = _interopRequireDefault(require("./custom-select"));
15
+
16
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
17
+
18
+ /**
19
+ * 小屏幕下的分类选择器
20
+ * @returns
21
+ */
22
+ const CategorySelect = () => {
23
+ var _categoryList$find;
24
+
25
+ const {
26
+ categoryList,
27
+ selectedCategory,
28
+ handleCategory,
29
+ t,
30
+ locale
31
+ } = (0, _filter.useFilterContext)();
32
+
33
+ const itemRender = item => {
34
+ return /*#__PURE__*/_react.default.createElement(_material.MenuItem, {
35
+ className: ['my-select__option', selectedCategory !== null && selectedCategory !== void 0 && selectedCategory.includes(item.name) ? 'my-select__option--active' : ''].join(' '),
36
+ key: item._id,
37
+ value: item.name,
38
+ onClick: () => handleCategory(item.name)
39
+ }, item.locales[locale]);
40
+ };
41
+
42
+ return /*#__PURE__*/_react.default.createElement(_customSelect.default, {
43
+ value: selectedCategory || 'all',
44
+ options: categoryList,
45
+ title: ((_categoryList$find = categoryList.find(i => i.name === selectedCategory)) === null || _categoryList$find === void 0 ? void 0 : _categoryList$find.locales[locale]) || t('category.all'),
46
+ itemRender: itemRender,
47
+ prepend: /*#__PURE__*/_react.default.createElement(_material.MenuItem, {
48
+ value: "all",
49
+ onClick: () => handleCategory('all')
50
+ }, t('category.all'))
51
+ });
52
+ };
53
+
54
+ var _default = CategorySelect;
55
+ exports.default = _default;
@@ -27,7 +27,7 @@ function _objectWithoutPropertiesLoose(source, excluded) { if (source == null) r
27
27
 
28
28
  const StyledButton = (0, _styledComponents.default)(_material.Button).withConfig({
29
29
  displayName: "button__StyledButton",
30
- componentId: "sc-ia5dpm-0"
30
+ componentId: "sc-8rpkj0-0"
31
31
  })(["border-radius:4px;"]);
32
32
  const Button = /*#__PURE__*/(0, _react.forwardRef)((_ref, ref) => {
33
33
  let {
@@ -15,7 +15,9 @@ var _propTypes = _interopRequireDefault(require("prop-types"));
15
15
 
16
16
  var _material = require("@mui/material");
17
17
 
18
- var _mdiMaterialUi = require("mdi-material-ui");
18
+ var _Check = _interopRequireDefault(require("@mui/icons-material/Check"));
19
+
20
+ var _KeyboardArrowDown = _interopRequireDefault(require("@mui/icons-material/KeyboardArrowDown"));
19
21
 
20
22
  var _cloneDeep = _interopRequireDefault(require("lodash/cloneDeep"));
21
23
 
@@ -111,14 +113,14 @@ const CustomSelect = _ref => {
111
113
  className: "my-select__icon"
112
114
  }, icon), title, multiple && currentValue.length > 1 && " (".concat(currentValue.length, ")"), /*#__PURE__*/_react.default.createElement(_material.SvgIcon, {
113
115
  className: "my-select__arrowdown",
114
- component: _mdiMaterialUi.ChevronDown,
116
+ component: _KeyboardArrowDown.default,
115
117
  fontSize: "small"
116
118
  })), /*#__PURE__*/_react.default.createElement(_material.Popper, {
117
119
  open: open,
118
120
  anchorEl: anchorRef.current,
119
121
  transition: true,
120
122
  style: {
121
- zIndex: '1'
123
+ zIndex: '9999'
122
124
  }
123
125
  }, _ref2 => {
124
126
  let {
@@ -145,7 +147,7 @@ const CustomSelect = _ref => {
145
147
  onClick: () => toggle(option),
146
148
  className: ['my-select__option', containsValue(option.value) ? 'my-select__option--active' : ''].join(' ')
147
149
  }, multiple && /*#__PURE__*/_react.default.createElement(_material.SvgIcon, {
148
- component: _mdiMaterialUi.Check,
150
+ component: _Check.default,
149
151
  className: ['my-select__option__icon', containsValue(option.value) ? 'my-select__option__icon--active' : ''].join(' ')
150
152
  }), option.name);
151
153
  })))));
@@ -178,11 +180,11 @@ CustomSelect.defaultProps = {
178
180
  };
179
181
  const StyledButton = (0, _styledComponents.default)(_button.default).withConfig({
180
182
  displayName: "custom-select__StyledButton",
181
- componentId: "sc-v6xs6u-0"
183
+ componentId: "sc-15u16ye-0"
182
184
  })(["border:1px solid #f0f0f0;padding:6px 8px 6px 12px;font-weight:", ";font-size:16px;color:#666;line-height:1;text-transform:none;min-width:100px;& + &{margin-left:10px;}&.my-select__selector--active{&,.my-select__arrowdown,.my-select__icon svg{color:", ";}}.my-select__arrowdown{color:#999;font-size:16px;margin-left:6px;}.my-select__icon{font-size:0;svg{color:#999;font-size:18px;margin-right:3px;}}"], props => props.theme.typography.fontWeightBold, props => props.theme.palette.primary.main);
183
185
  const StyledMenuList = (0, _styledComponents.default)(_material.MenuList).withConfig({
184
186
  displayName: "custom-select__StyledMenuList",
185
- componentId: "sc-v6xs6u-1"
187
+ componentId: "sc-15u16ye-1"
186
188
  })([".my-select__option__icon{color:transparent;font-size:16px;margin:0 3px 0 -5px;}.my-select__option{font-size:16px;color:#999;}.my-select__option--active{&,.my-select__option__icon{color:", ";}}"], props => props.theme.palette.primary.main);
187
189
  var _default = CustomSelect;
188
190
  exports.default = _default;
@@ -0,0 +1,13 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = void 0;
7
+
8
+ var _customSelect = _interopRequireDefault(require("./custom-select"));
9
+
10
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
11
+
12
+ var _default = _customSelect.default;
13
+ exports.default = _default;
@@ -15,7 +15,7 @@ var _material = require("@mui/material");
15
15
 
16
16
  var _Face = _interopRequireDefault(require("@mui/icons-material/Face"));
17
17
 
18
- var _store = require("../contexts/store");
18
+ var _filter = require("../contexts/filter");
19
19
 
20
20
  const _excluded = ["user", "deleteUserTag"];
21
21
 
@@ -37,10 +37,9 @@ const FilterAuthor = _ref => {
37
37
  } = _ref,
38
38
  containerProps = _objectWithoutProperties(_ref, _excluded);
39
39
 
40
- const searchStore = (0, _store.useSearchContext)();
41
40
  const {
42
41
  t
43
- } = searchStore;
42
+ } = (0, _filter.useFilterContext)();
44
43
  if (!user) return null;
45
44
  return /*#__PURE__*/_react.default.createElement(StyleDiv, containerProps, /*#__PURE__*/_react.default.createElement(_material.Chip, {
46
45
  icon: /*#__PURE__*/_react.default.createElement(_Face.default, null),
@@ -13,15 +13,14 @@ var _Box = _interopRequireDefault(require("@mui/material/Box"));
13
13
 
14
14
  var _Typography = _interopRequireDefault(require("@mui/material/Typography"));
15
15
 
16
- var _store = require("../contexts/store");
16
+ var _filter = require("../../contexts/filter");
17
17
 
18
18
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
19
19
 
20
20
  const NoResults = () => {
21
- const searchStore = (0, _store.useSearchContext)();
22
21
  const {
23
22
  t
24
- } = searchStore;
23
+ } = (0, _filter.useFilterContext)();
25
24
  return /*#__PURE__*/_react.default.createElement(_Typography.default, {
26
25
  style: {
27
26
  textAlign: 'center'
@@ -37,11 +36,10 @@ const NoResultsTips = _ref => {
37
36
  filterTip,
38
37
  keywordTip
39
38
  } = _ref;
40
- const searchStore = (0, _store.useSearchContext)();
41
39
  const {
42
40
  t,
43
41
  locale
44
- } = searchStore;
42
+ } = (0, _filter.useFilterContext)();
45
43
 
46
44
  const getSplit = () => {
47
45
  if (locale === 'zh') return '、';
@@ -71,18 +69,18 @@ const EmptyTitle = _ref2 => {
71
69
  let {
72
70
  primaryStart,
73
71
  primaryEnd,
74
- search
72
+ filter
75
73
  } = _ref2;
76
74
  return /*#__PURE__*/_react.default.createElement(_Typography.default, {
77
75
  variant: "subtitle2"
78
76
  }, /*#__PURE__*/_react.default.createElement("span", null, primaryStart), /*#__PURE__*/_react.default.createElement("span", {
79
77
  className: "primary"
80
- }, " ", search, " "), /*#__PURE__*/_react.default.createElement("span", null, primaryEnd, " "));
78
+ }, " ", filter, " "), /*#__PURE__*/_react.default.createElement("span", null, primaryEnd, " "));
81
79
  };
82
80
 
83
81
  exports.EmptyTitle = EmptyTitle;
84
82
  EmptyTitle.propTypes = {
85
83
  primaryStart: _propTypes.default.string.isRequired,
86
84
  primaryEnd: _propTypes.default.string.isRequired,
87
- search: _propTypes.default.string.isRequired
85
+ filter: _propTypes.default.string.isRequired
88
86
  };
@@ -0,0 +1,13 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = void 0;
7
+
8
+ var _list = _interopRequireDefault(require("./list"));
9
+
10
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
11
+
12
+ var _default = _list.default;
13
+ exports.default = _default;
@@ -23,9 +23,9 @@ var _CircularProgress = _interopRequireDefault(require("@mui/material/CircularPr
23
23
 
24
24
  var _empty = require("./empty");
25
25
 
26
- var _store = require("../contexts/store");
26
+ var _filter = require("../../contexts/filter");
27
27
 
28
- var _utils = require("../tools/utils");
28
+ var _utils = require("../../libs/utils");
29
29
 
30
30
  const _excluded = ["blocklets"];
31
31
 
@@ -48,10 +48,10 @@ function BlockletList(_ref) {
48
48
  selectedCategory,
49
49
  blockletList,
50
50
  getCategoryLocale,
51
- queryParams,
51
+ filters,
52
52
  t
53
- } = (0, _store.useSearchContext)();
54
- const showFilterTip = !!selectedCategory || !!queryParams.get('price');
53
+ } = (0, _filter.useFilterContext)();
54
+ const showFilterTip = !!selectedCategory || !!filters.price;
55
55
 
56
56
  if (errors.fetchBlockletsError) {
57
57
  return /*#__PURE__*/_react.default.createElement(_Alert.default, {
@@ -68,22 +68,22 @@ function BlockletList(_ref) {
68
68
  }, /*#__PURE__*/_react.default.createElement(_CircularProgress.default, null));
69
69
  }
70
70
 
71
- if (queryParams.get('search') && showFilterTip && blockletList.length === 0) {
71
+ if (filters.keyword && showFilterTip && blockletList.length === 0) {
72
72
  return /*#__PURE__*/_react.default.createElement(CustomEmpty, null, /*#__PURE__*/_react.default.createElement(_empty.EmptyTitle, {
73
73
  primaryStart: t('blocklet.noBlockletPart1'),
74
74
  primaryEnd: t('blocklet.noBlockletPart2'),
75
- search: queryParams.get('search')
75
+ filter: filters.keyword
76
76
  }), /*#__PURE__*/_react.default.createElement(_empty.NoResultsTips, {
77
77
  keywordTip: true,
78
78
  filterTip: true
79
79
  }));
80
80
  }
81
81
 
82
- if (queryParams.get('search') && blockletList.length === 0) {
82
+ if (filters.keyword && blockletList.length === 0) {
83
83
  return /*#__PURE__*/_react.default.createElement(CustomEmpty, null, /*#__PURE__*/_react.default.createElement(_empty.EmptyTitle, {
84
84
  primaryStart: t('blocklet.noBlockletPart1'),
85
85
  primaryEnd: t('blocklet.noBlockletPart2'),
86
- search: queryParams.get('search')
86
+ filter: filters.keyword
87
87
  }), /*#__PURE__*/_react.default.createElement(_empty.NoResultsTips, {
88
88
  keywordTip: true
89
89
  }));
@@ -94,7 +94,7 @@ function BlockletList(_ref) {
94
94
  return /*#__PURE__*/_react.default.createElement(CustomEmpty, null, categoryLocale ? /*#__PURE__*/_react.default.createElement(_empty.EmptyTitle, {
95
95
  primaryStart: t('blocklet.noCategoryResults1'),
96
96
  primaryEnd: t('blocklet.noCategoryResults2'),
97
- search: categoryLocale
97
+ filter: categoryLocale
98
98
  }) : /*#__PURE__*/_react.default.createElement(_empty.NoResults, null), /*#__PURE__*/_react.default.createElement(_empty.NoResultsTips, {
99
99
  filterTip: true
100
100
  }));
@@ -127,9 +127,9 @@ BlockletList.propTypes = {
127
127
  BlockletList.defaultProps = {};
128
128
  const StyledGrid = (0, _styledComponents.default)(_Grid.default).withConfig({
129
129
  displayName: "list__StyledGrid",
130
- componentId: "sc-anbsot-0"
130
+ componentId: "sc-jzgpev-0"
131
131
  })(["@media (max-width:", "px){&.MuiGrid-item{padding-bottom:0px;padding-left:16px;padding-right:4px;}}"], props => props.theme.breakpoints.values.sm);
132
132
  const CustomEmpty = (0, _styledComponents.default)(_Empty.default).withConfig({
133
133
  displayName: "list__CustomEmpty",
134
- componentId: "sc-anbsot-1"
134
+ componentId: "sc-jzgpev-1"
135
135
  })(["text-align:center;.primary{color:", ";}.tips{margin-top:", ";}"], props => props.theme.palette.primary.main, props => props.theme.spacing(1));
@@ -9,7 +9,9 @@ var _react = _interopRequireWildcard(require("react"));
9
9
 
10
10
  var _propTypes = _interopRequireDefault(require("prop-types"));
11
11
 
12
- var _mdiMaterialUi = require("mdi-material-ui");
12
+ var _Search = _interopRequireDefault(require("@mui/icons-material/Search"));
13
+
14
+ var _Close = _interopRequireDefault(require("@mui/icons-material/Close"));
13
15
 
14
16
  var _material = require("@mui/material");
15
17
 
@@ -17,7 +19,7 @@ var _ahooks = require("ahooks");
17
19
 
18
20
  var _styledComponents = _interopRequireDefault(require("styled-components"));
19
21
 
20
- var _store = require("../contexts/store");
22
+ var _filter = require("../contexts/filter");
21
23
 
22
24
  const _excluded = ["placeholder"];
23
25
 
@@ -37,15 +39,12 @@ const Search = _ref => {
37
39
  } = _ref,
38
40
  rest = _objectWithoutProperties(_ref, _excluded);
39
41
 
40
- const searchStore = (0, _store.useSearchContext)();
41
- const {
42
- queryParams,
43
- handleSearchKeyword
44
- } = searchStore;
45
- const [searchStr, setSearchStr] = (0, _react.useState)(queryParams.get('search') || '');
46
42
  const {
47
- run: handleSearch
48
- } = (0, _ahooks.useDebounceFn)(handleSearchKeyword, {
43
+ filters,
44
+ handleKeyword
45
+ } = (0, _filter.useFilterContext)();
46
+ const [searchStr, setSearchStr] = (0, _react.useState)(filters.keyword || '');
47
+ const debouncedSearch = (0, _ahooks.useDebounceFn)(handleKeyword, {
49
48
  wait: 300
50
49
  });
51
50
 
@@ -54,12 +53,12 @@ const Search = _ref => {
54
53
  value
55
54
  } = event.target;
56
55
  setSearchStr(value);
57
- handleSearch(value);
56
+ debouncedSearch.run(value);
58
57
  };
59
58
 
60
59
  const handleClose = () => {
61
60
  setSearchStr('');
62
- handleSearchKeyword();
61
+ handleKeyword();
63
62
  };
64
63
 
65
64
  return /*#__PURE__*/_react.default.createElement(StyledSearch, Object.assign({
@@ -68,7 +67,7 @@ const Search = _ref => {
68
67
  },
69
68
  startAdornment: /*#__PURE__*/_react.default.createElement(_material.InputAdornment, {
70
69
  position: "start"
71
- }, /*#__PURE__*/_react.default.createElement(StyledMagnify, null)),
70
+ }, /*#__PURE__*/_react.default.createElement(StyledSearchIcon, null)),
72
71
  onChange: handleChange,
73
72
  placeholder: placeholder,
74
73
  value: searchStr,
@@ -76,7 +75,7 @@ const Search = _ref => {
76
75
  "data-cy": "search",
77
76
  endAdornment: searchStr && /*#__PURE__*/_react.default.createElement(_material.InputAdornment, {
78
77
  position: "end"
79
- }, /*#__PURE__*/_react.default.createElement(StyledClose, {
78
+ }, /*#__PURE__*/_react.default.createElement(StyledCloseIcon, {
80
79
  "data-cy": "search-delete",
81
80
  onClick: handleClose
82
81
  }))
@@ -93,12 +92,12 @@ const StyledSearch = (0, _styledComponents.default)(_material.OutlinedInput).wit
93
92
  displayName: "search__StyledSearch",
94
93
  componentId: "sc-1ehlqka-0"
95
94
  })(["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);
96
- const StyledMagnify = (0, _styledComponents.default)(_mdiMaterialUi.Magnify).withConfig({
97
- displayName: "search__StyledMagnify",
95
+ const StyledSearchIcon = (0, _styledComponents.default)(_Search.default).withConfig({
96
+ displayName: "search__StyledSearchIcon",
98
97
  componentId: "sc-1ehlqka-1"
99
98
  })(["color:", ";font-size:28px;@media (max-width:", "px){font-size:24px;}"], props => props.theme.palette.grey[500], props => props.theme.breakpoints.values.md);
100
- const StyledClose = (0, _styledComponents.default)(_mdiMaterialUi.Close).withConfig({
101
- displayName: "search__StyledClose",
99
+ const StyledCloseIcon = (0, _styledComponents.default)(_Close.default).withConfig({
100
+ displayName: "search__StyledCloseIcon",
102
101
  componentId: "sc-1ehlqka-2"
103
102
  })(["color:", ";font-size:16px;cursor:pointer;"], props => props.theme.palette.grey[500]);
104
103
  var _default = Search;