@blocklet/list 0.10.31 → 0.10.33

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.
@@ -4,9 +4,7 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
6
  exports.default = void 0;
7
-
8
7
  const flat = require('flat');
9
-
10
8
  const en = {
11
9
  common: {
12
10
  searchStore: 'Search the store',
package/lib/base.js CHANGED
@@ -4,44 +4,25 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
6
  exports.default = void 0;
7
-
8
7
  var _styled = _interopRequireDefault(require("@emotion/styled"));
9
-
10
8
  var _Sort = _interopRequireDefault(require("@mui/icons-material/Sort"));
11
-
12
9
  var _material = require("@mui/material");
13
-
14
10
  var _Face = _interopRequireDefault(require("@mui/icons-material/Face"));
15
-
16
11
  var _reactErrorBoundary = require("react-error-boundary");
17
-
18
12
  var _ErrorBoundary = require("@arcblock/ux/lib/ErrorBoundary");
19
-
20
13
  var _filter = require("./contexts/filter");
21
-
22
14
  var _customSelect = _interopRequireDefault(require("./components/custom-select"));
23
-
24
15
  var _filter2 = require("./components/filter");
25
-
26
16
  var _utils = require("./libs/utils");
27
-
28
17
  var _list = _interopRequireDefault(require("./components/list"));
29
-
30
18
  var _aside = _interopRequireDefault(require("./components/aside"));
31
-
32
19
  var _autocomplete = _interopRequireDefault(require("./components/autocomplete"));
33
-
34
20
  var _jsxRuntime = require("react/jsx-runtime");
35
-
36
21
  var _templateObject, _templateObject2;
37
-
38
22
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
39
-
40
23
  function _taggedTemplateLiteral(strings, raw) { if (!raw) { raw = strings.slice(0); } return Object.freeze(Object.defineProperties(strings, { raw: { value: Object.freeze(raw) } })); }
41
-
42
24
  function ListBase() {
43
25
  var _sortOptions$find, _priceOptions$find;
44
-
45
26
  const {
46
27
  handleDeveloper,
47
28
  blockletList,
@@ -132,10 +113,7 @@ function ListBase() {
132
113
  })]
133
114
  });
134
115
  }
135
-
136
116
  const StyledMin = _styled.default.main(_templateObject || (_templateObject = _taggedTemplateLiteral(["\n display: flex;\n flex-direction: column;\n flex: 1;\n width: 100%;\n height: 100%;\n .filter-bar {\n justify-content: space-between;\n margin-bottom: ", ";\n }\n .sort-button {\n white-space: nowrap;\n }\n .bl-search-container {\n flex: 2;\n margin-left: 0px;\n }\n\n .filter-container {\n flex: 1;\n display: flex;\n justify-content: flex-end;\n }\n @media (max-width: ", "px) {\n .bl-search-container {\n width: 100%;\n margin-bottom: ", ";\n }\n .filter-container {\n margin-left: 0;\n display: flex;\n justify-content: flex-start;\n }\n .filter-bar {\n display: flex;\n flex-direction: column;\n align-items: flex-start;\n }\n }\n @media (max-width: ", "px) {\n .sort-button {\n font-size: 12px;\n }\n }\n"])), props => props.theme.spacing(2), props => props.theme.breakpoints.values.md, props => props.theme.spacing(2), props => props.theme.breakpoints.values.md);
137
-
138
117
  const FilterContainer = _styled.default.div(_templateObject2 || (_templateObject2 = _taggedTemplateLiteral(["\n position: sticky;\n top: 0;\n z-index: 9;\n background-color: white;\n"])));
139
-
140
118
  var _default = ListBase;
141
119
  exports.default = _default;
@@ -4,21 +4,13 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
6
  exports.default = void 0;
7
-
8
7
  var _styled = _interopRequireDefault(require("@emotion/styled"));
9
-
10
8
  var _filter = require("../contexts/filter");
11
-
12
9
  var _filter2 = require("./filter");
13
-
14
10
  var _jsxRuntime = require("react/jsx-runtime");
15
-
16
11
  var _templateObject;
17
-
18
12
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
19
-
20
13
  function _taggedTemplateLiteral(strings, raw) { if (!raw) { raw = strings.slice(0); } return Object.freeze(Object.defineProperties(strings, { raw: { value: Object.freeze(raw) } })); }
21
-
22
14
  function Aside() {
23
15
  const {
24
16
  selectedCategory,
@@ -50,9 +42,7 @@ function Aside() {
50
42
  })]
51
43
  });
52
44
  }
53
-
54
45
  const StyledAside = _styled.default.aside(_templateObject || (_templateObject = _taggedTemplateLiteral(["\n width: 220px;\n margin-right: ", ";\n height: 100%;\n position: sticky;\n top: 0;\n overflow-y: auto;\n z-index: auto;\n"])), props => props.theme.spacing(2));
55
-
56
46
  Aside.propTypes = {};
57
47
  Aside.defaultProps = {};
58
48
  var _default = Aside;
@@ -4,41 +4,23 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
6
  exports.default = Autocomplete;
7
-
8
7
  var _react = require("react");
9
-
10
8
  var _propTypes = _interopRequireDefault(require("prop-types"));
11
-
12
9
  var _client = require("react-dom/client");
13
-
14
10
  var _autocompleteJs = require("@algolia/autocomplete-js");
15
-
16
11
  var _reactHotkeysHook = require("react-hotkeys-hook");
17
-
18
12
  var _urlJoin = _interopRequireDefault(require("url-join"));
19
-
20
13
  var _constant = _interopRequireDefault(require("../../libs/constant"));
21
-
22
14
  var _utils = require("../../libs/utils");
23
-
24
15
  var _filter = require("../../contexts/filter");
25
-
26
16
  var _jsxRuntime = require("react/jsx-runtime");
27
-
28
17
  const _excluded = ["query", "state"];
29
-
30
18
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
31
-
32
19
  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; }
33
-
34
20
  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; }
35
-
36
21
  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; }
37
-
38
22
  function _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }
39
-
40
23
  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; }
41
-
42
24
  function Autocomplete(_ref) {
43
25
  let {
44
26
  onSelect,
@@ -55,54 +37,46 @@ function Autocomplete(_ref) {
55
37
  handleKeyword,
56
38
  t
57
39
  } = (0, _filter.useFilterContext)();
58
-
59
40
  const getBlocklets = async params => {
60
41
  const {
61
42
  data
62
43
  } = await storeApi.get(_constant.default.blockletsPath, {
63
44
  params
64
45
  });
65
- const blocklets = data.dataList || []; // 头部插入的一条 item 用于展示 `点击展开 xx条 结果`,如果没有blocklet 返回,不展示
66
-
46
+ const blocklets = data.dataList || [];
47
+ // 头部插入的一条 item 用于展示 `点击展开 xx条 结果`,如果没有blocklet 返回,不展示
67
48
  if (blocklets.length > 0) {
68
49
  blocklets.unshift({
69
50
  type: 'more-result',
70
51
  total: data.total || 0
71
52
  });
72
53
  }
73
-
74
54
  return blocklets;
75
55
  };
76
-
77
56
  const onSubmit = autocompleteState => {
78
57
  handleKeyword(autocompleteState.state.query);
79
58
  autocompleteState.setIsOpen(false);
80
59
  };
81
-
82
60
  const setFocus = () => {
83
61
  if (containerRef.current) {
84
62
  // see: https://discourse.algolia.com/t/autocomplete-focus-input-field/4019/5
85
63
  setTimeout(() => {
86
64
  const input = containerRef.current.querySelector('input.bl-autocomplete-input');
87
-
88
65
  if (input) {
89
66
  input.focus();
90
67
  }
91
68
  });
92
69
  }
93
70
  };
94
-
95
71
  const onReset = autocompleteState => {
96
72
  autocompleteState.setIsOpen(false);
97
73
  setFocus();
98
74
  };
99
-
100
75
  const onStateChange = _ref2 => {
101
76
  let {
102
77
  prevState,
103
78
  state
104
79
  } = _ref2;
105
-
106
80
  // 当搜索框中的值清空时, 更新页面中的搜索结果
107
81
  if (prevState.query !== state.query) {
108
82
  if (!state.query) {
@@ -110,7 +84,6 @@ function Autocomplete(_ref) {
110
84
  }
111
85
  }
112
86
  };
113
-
114
87
  (0, _reactHotkeysHook.useHotkeys)('ctrl + k, command + k', e => {
115
88
  e.stopPropagation();
116
89
  e.preventDefault();
@@ -126,7 +99,6 @@ function Autocomplete(_ref) {
126
99
  if (!containerRef.current) {
127
100
  return undefined;
128
101
  }
129
-
130
102
  const search = (0, _autocompleteJs.autocomplete)({
131
103
  container: containerRef.current,
132
104
  renderer: {
@@ -134,23 +106,18 @@ function Autocomplete(_ref) {
134
106
  Fragment: _react.Fragment,
135
107
  render: () => {}
136
108
  },
137
-
138
109
  render(_ref3, root) {
139
110
  let {
140
111
  children
141
112
  } = _ref3;
142
-
143
113
  if (!panelRootRef.current || rootRef.current !== root) {
144
114
  var _panelRootRef$current;
145
-
146
115
  rootRef.current = root;
147
116
  (_panelRootRef$current = panelRootRef.current) === null || _panelRootRef$current === void 0 ? void 0 : _panelRootRef$current.unmount();
148
117
  panelRootRef.current = (0, _client.createRoot)(root);
149
118
  }
150
-
151
119
  panelRootRef.current.render(wrapChildren(children));
152
120
  },
153
-
154
121
  autoFocus: true,
155
122
  openOnFocus: false,
156
123
  classNames: {
@@ -164,80 +131,64 @@ function Autocomplete(_ref) {
164
131
  initialState: {
165
132
  query: filters.keyword
166
133
  },
167
-
168
134
  onStateChange(autocompleteState) {
169
135
  onStateChange(autocompleteState);
170
136
  },
171
-
172
137
  onSubmit,
173
-
174
138
  onReset(autocompleteState) {
175
139
  onReset(autocompleteState);
176
140
  },
177
-
178
141
  getSources(_ref4) {
179
142
  let {
180
- query,
181
- state
182
- } = _ref4,
183
- setters = _objectWithoutProperties(_ref4, _excluded);
184
-
143
+ query,
144
+ state
145
+ } = _ref4,
146
+ setters = _objectWithoutProperties(_ref4, _excluded);
185
147
  const params = _objectSpread(_objectSpread({}, filters), {}, {
186
148
  sortBy: _constant.default[filters.sortBy],
187
149
  page: 1,
188
150
  pageSize: 10,
189
151
  keyword: query
190
152
  });
191
-
192
153
  return (0, _utils.debounced)([{
193
154
  sourceId: 'blocklets',
194
-
195
155
  getItems() {
196
156
  return getBlocklets(params);
197
157
  },
198
-
199
158
  // 选中后填充 搜索框中值
200
159
  getItemInputValue(_ref5) {
201
160
  let {
202
161
  item
203
162
  } = _ref5;
204
-
205
163
  if (item.type === 'more-result') {
206
164
  return query;
207
165
  }
208
-
209
166
  return item.title;
210
167
  },
211
-
212
168
  // 选中或者点击自动完成列表中的 item 时触发
213
169
  onSelect(_ref6) {
214
170
  let {
215
171
  event,
216
172
  item
217
173
  } = _ref6;
218
-
219
174
  if (item.type === 'more-result') {
220
175
  setters.setIsOpen(false);
221
176
  return handleKeyword(query);
222
177
  }
223
-
224
178
  if (event.type === 'keydown') {
225
179
  return handleKeyword(item.title);
226
180
  }
227
-
228
181
  return onSelect({
229
182
  blocklet: item,
230
183
  detailUrl: (0, _urlJoin.default)(endpoint, "/blocklets/".concat(item.did)),
231
184
  storeUrl: endpoint
232
185
  });
233
186
  },
234
-
235
187
  templates: {
236
188
  item(_ref7) {
237
189
  let {
238
190
  item
239
191
  } = _ref7;
240
-
241
192
  if (item.type === 'more-result') {
242
193
  return /*#__PURE__*/(0, _jsxRuntime.jsx)("div", {
243
194
  children: t('autocomplete.expandResult', {
@@ -246,32 +197,28 @@ function Autocomplete(_ref) {
246
197
  })
247
198
  });
248
199
  }
249
-
250
200
  return blockletRender({
251
201
  blocklet: item,
252
202
  autocompleteSetters: setters
253
203
  });
254
204
  },
255
-
256
205
  noResults() {
257
206
  return t('blocklet.noResults');
258
207
  }
259
-
260
208
  }
261
209
  }]);
262
210
  }
263
-
264
211
  });
265
212
  return () => {
266
213
  search.destroy();
267
- }; // eslint-disable-next-line react-hooks/exhaustive-deps
214
+ };
215
+ // eslint-disable-next-line react-hooks/exhaustive-deps
268
216
  }, [filters, blockletRender]);
269
217
  return /*#__PURE__*/(0, _jsxRuntime.jsx)("div", {
270
218
  className: "bl-search-container",
271
219
  ref: containerRef
272
220
  });
273
221
  }
274
-
275
222
  Autocomplete.propTypes = {
276
223
  onSelect: _propTypes.default.func.isRequired,
277
224
  wrapChildren: _propTypes.default.func
@@ -4,45 +4,29 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
6
  exports.default = void 0;
7
-
8
7
  var _react = require("react");
9
-
10
8
  var _propTypes = _interopRequireDefault(require("prop-types"));
11
-
12
9
  var _material = require("@mui/material");
13
-
14
10
  var _styled = _interopRequireDefault(require("@emotion/styled"));
15
-
16
11
  var _jsxRuntime = require("react/jsx-runtime");
17
-
18
12
  const _excluded = ["children", "rounded", "loading", "disabled"];
19
-
20
13
  var _templateObject;
21
-
22
14
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
23
-
24
15
  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; }
25
-
26
16
  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; }
27
-
28
17
  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; }
29
-
30
18
  function _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }
31
-
32
19
  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; }
33
-
34
20
  function _taggedTemplateLiteral(strings, raw) { if (!raw) { raw = strings.slice(0); } return Object.freeze(Object.defineProperties(strings, { raw: { value: Object.freeze(raw) } })); }
35
-
36
21
  const StyledButton = (0, _styled.default)(_material.Button)(_templateObject || (_templateObject = _taggedTemplateLiteral(["\n border-radius: 4px;\n"])));
37
22
  const Button = /*#__PURE__*/(0, _react.forwardRef)((_ref, ref) => {
38
23
  let {
39
- children,
40
- rounded,
41
- loading,
42
- disabled
43
- } = _ref,
44
- rest = _objectWithoutProperties(_ref, _excluded);
45
-
24
+ children,
25
+ rounded,
26
+ loading,
27
+ disabled
28
+ } = _ref,
29
+ rest = _objectWithoutProperties(_ref, _excluded);
46
30
  return /*#__PURE__*/(0, _jsxRuntime.jsx)(StyledButton, _objectSpread(_objectSpread({
47
31
  ref: ref,
48
32
  disableElevation: true,
@@ -4,55 +4,35 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
6
  exports.default = void 0;
7
-
8
7
  var _react = require("react");
9
-
10
8
  var _styles = require("@mui/material/styles");
11
-
12
9
  var _styled = _interopRequireDefault(require("@emotion/styled"));
13
-
14
10
  var _propTypes = _interopRequireDefault(require("prop-types"));
15
-
16
11
  var _material = require("@mui/material");
17
-
18
12
  var _KeyboardArrowDown = _interopRequireDefault(require("@mui/icons-material/KeyboardArrowDown"));
19
-
20
13
  var _isEmpty = _interopRequireDefault(require("lodash/isEmpty"));
21
-
22
14
  var _button = _interopRequireDefault(require("./button"));
23
-
24
15
  var _jsxRuntime = require("react/jsx-runtime");
25
-
26
16
  var _templateObject, _templateObject2;
27
-
28
17
  const _excluded = ["title", "value", "icon", "prepend", "options", "onChange", "itemRender"];
29
-
30
18
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
31
-
32
19
  function _taggedTemplateLiteral(strings, raw) { if (!raw) { raw = strings.slice(0); } return Object.freeze(Object.defineProperties(strings, { raw: { value: Object.freeze(raw) } })); }
33
-
34
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; }
35
-
36
21
  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; }
37
-
38
22
  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; }
39
-
40
23
  function _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }
41
-
42
24
  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; }
43
-
44
25
  function CustomSelect(_ref) {
45
26
  let {
46
- title,
47
- value,
48
- icon,
49
- prepend,
50
- options,
51
- onChange,
52
- itemRender
53
- } = _ref,
54
- buttonProps = _objectWithoutProperties(_ref, _excluded);
55
-
27
+ title,
28
+ value,
29
+ icon,
30
+ prepend,
31
+ options,
32
+ onChange,
33
+ itemRender
34
+ } = _ref,
35
+ buttonProps = _objectWithoutProperties(_ref, _excluded);
56
36
  const anchorRef = (0, _react.useRef)(null);
57
37
  const theme = (0, _styles.useTheme)();
58
38
  const [open, setOpen] = (0, _react.useState)(false);
@@ -67,20 +47,16 @@ function CustomSelect(_ref) {
67
47
  const openMenu = (0, _react.useCallback)(() => {
68
48
  setOpen(true);
69
49
  }, []);
70
-
71
50
  function toggle(option) {
72
51
  setCurrentValue(option.value);
73
52
  onChange(option.value);
74
-
75
53
  if (isSm) {
76
54
  closeMenu();
77
55
  }
78
56
  }
79
-
80
57
  function containsValue(optionValue) {
81
58
  return optionValue === currentValue;
82
59
  }
83
-
84
60
  return /*#__PURE__*/(0, _jsxRuntime.jsxs)(_jsxRuntime.Fragment, {
85
61
  children: [/*#__PURE__*/(0, _jsxRuntime.jsxs)(StyledButton, _objectSpread(_objectSpread({
86
62
  ref: anchorRef,
@@ -124,7 +100,6 @@ function CustomSelect(_ref) {
124
100
  if (itemRender) {
125
101
  return itemRender(option);
126
102
  }
127
-
128
103
  return /*#__PURE__*/(0, _jsxRuntime.jsx)(_material.MenuItem, {
129
104
  onClick: () => toggle(option),
130
105
  className: ['my-select__option', containsValue(option.value) ? 'my-select__option--active' : ''].join(' '),
@@ -139,7 +114,6 @@ function CustomSelect(_ref) {
139
114
  })]
140
115
  });
141
116
  }
142
-
143
117
  CustomSelect.propTypes = {
144
118
  options: _propTypes.default.array.isRequired,
145
119
  value: _propTypes.default.oneOfType([_propTypes.default.string, _propTypes.default.number, _propTypes.default.array]),
@@ -4,10 +4,7 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
6
  exports.default = void 0;
7
-
8
7
  var _customSelect = _interopRequireDefault(require("./custom-select"));
9
-
10
8
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
11
-
12
9
  var _default = _customSelect.default;
13
10
  exports.default = _default;
@@ -4,43 +4,27 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
6
  exports.default = void 0;
7
-
8
7
  var _propTypes = _interopRequireDefault(require("prop-types"));
9
-
10
8
  var _styled = _interopRequireDefault(require("@emotion/styled"));
11
-
12
9
  var _material = require("@mui/material");
13
-
14
10
  var _jsxRuntime = require("react/jsx-runtime");
15
-
16
11
  const _excluded = ["label", "icon", "onDelete"];
17
-
18
12
  var _templateObject;
19
-
20
13
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
21
-
22
14
  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; }
23
-
24
15
  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; }
25
-
26
16
  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; }
27
-
28
17
  function _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }
29
-
30
18
  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; }
31
-
32
19
  function _taggedTemplateLiteral(strings, raw) { if (!raw) { raw = strings.slice(0); } return Object.freeze(Object.defineProperties(strings, { raw: { value: Object.freeze(raw) } })); }
33
-
34
20
  const StyleDiv = _styled.default.div(_templateObject || (_templateObject = _taggedTemplateLiteral(["\n .MuiChip-root {\n border-radius: 4px;\n height: initial;\n text-transform: capitalize;\n margin-right: ", ";\n padding: 4px 0;\n }\n"])), props => props.theme.spacing(2));
35
-
36
21
  function FilterChip(_ref) {
37
22
  let {
38
- label,
39
- icon,
40
- onDelete
41
- } = _ref,
42
- containerProps = _objectWithoutProperties(_ref, _excluded);
43
-
23
+ label,
24
+ icon,
25
+ onDelete
26
+ } = _ref,
27
+ containerProps = _objectWithoutProperties(_ref, _excluded);
44
28
  if (!label) return null;
45
29
  return /*#__PURE__*/(0, _jsxRuntime.jsx)(StyleDiv, _objectSpread(_objectSpread({}, containerProps), {}, {
46
30
  children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_material.Chip, {
@@ -52,7 +36,6 @@ function FilterChip(_ref) {
52
36
  })
53
37
  }));
54
38
  }
55
-
56
39
  FilterChip.propTypes = {
57
40
  label: _propTypes.default.string,
58
41
  onDelete: _propTypes.default.func,
@@ -4,19 +4,12 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
6
  exports.default = void 0;
7
-
8
7
  var _propTypes = _interopRequireDefault(require("prop-types"));
9
-
10
8
  var _styled = _interopRequireDefault(require("@emotion/styled"));
11
-
12
9
  var _jsxRuntime = require("react/jsx-runtime");
13
-
14
10
  var _templateObject;
15
-
16
11
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
17
-
18
12
  function _taggedTemplateLiteral(strings, raw) { if (!raw) { raw = strings.slice(0); } return Object.freeze(Object.defineProperties(strings, { raw: { value: Object.freeze(raw) } })); }
19
-
20
13
  function FilterGroup(_ref) {
21
14
  let {
22
15
  options,
@@ -42,9 +35,7 @@ function FilterGroup(_ref) {
42
35
  })]
43
36
  });
44
37
  }
45
-
46
38
  const StyledDiv = _styled.default.div(_templateObject || (_templateObject = _taggedTemplateLiteral(["\n .title {\n font-size: 18px;\n font-weight: bold;\n margin-bottom: ", ";\n }\n .list {\n }\n .item {\n font-size: 16px;\n padding: ", ";\n color: #9397a1;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n text-transform: capitalize;\n cursor: pointer;\n &:hover {\n background-color: ", ";\n color: initial;\n font-weight: bold;\n }\n }\n .select {\n color: ", ";\n font-weight: bold;\n }\n"])), props => props.theme.spacing(1), props => props.theme.spacing(1), props => props.theme.palette.grey[50], props => props.theme.palette.primary.main);
47
-
48
39
  FilterGroup.propTypes = {
49
40
  title: _propTypes.default.string.isRequired,
50
41
  options: _propTypes.default.array.isRequired,
@@ -4,29 +4,17 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
6
  exports.default = void 0;
7
-
8
7
  var _react = require("react");
9
-
10
8
  var _styled = _interopRequireDefault(require("@emotion/styled"));
11
-
12
9
  var _FilterAltOutlined = _interopRequireDefault(require("@mui/icons-material/FilterAltOutlined"));
13
-
14
10
  var _Dialog = _interopRequireDefault(require("@arcblock/ux/lib/Dialog"));
15
-
16
11
  var _Button = _interopRequireDefault(require("@mui/material/Button"));
17
-
18
12
  var _filter = require("../../contexts/filter");
19
-
20
13
  var _group = _interopRequireDefault(require("./group"));
21
-
22
14
  var _jsxRuntime = require("react/jsx-runtime");
23
-
24
15
  var _templateObject;
25
-
26
16
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
27
-
28
17
  function _taggedTemplateLiteral(strings, raw) { if (!raw) { raw = strings.slice(0); } return Object.freeze(Object.defineProperties(strings, { raw: { value: Object.freeze(raw) } })); }
29
-
30
18
  function FilterIcon() {
31
19
  const {
32
20
  selectedCategory,
@@ -38,19 +26,15 @@ function FilterIcon() {
38
26
  priceOptions
39
27
  } = (0, _filter.useFilterContext)();
40
28
  const [open, setOpen] = (0, _react.useState)(false);
41
-
42
29
  const handelChange = (type, value) => {
43
30
  if (type === 'category') {
44
31
  handleCategory(value);
45
32
  }
46
-
47
33
  if (type === 'price') {
48
34
  handlePrice(value);
49
35
  }
50
-
51
36
  setOpen(false);
52
37
  };
53
-
54
38
  return /*#__PURE__*/(0, _jsxRuntime.jsxs)(StyledDiv, {
55
39
  children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_Button.default, {
56
40
  variant: "outlined",
@@ -88,9 +72,7 @@ function FilterIcon() {
88
72
  })]
89
73
  });
90
74
  }
91
-
92
75
  const StyledDiv = _styled.default.div(_templateObject || (_templateObject = _taggedTemplateLiteral(["\n .filter-button {\n margin-right: 16px;\n border-color: rgb(240, 240, 240);\n padding: 5px 8px;\n min-width: initial;\n }\n .filter-icon {\n cursor: pointer;\n color: ", ";\n }\n"])), props => props.theme.palette.grey[500]);
93
-
94
76
  FilterIcon.propTypes = {};
95
77
  FilterIcon.defaultProps = {};
96
78
  var _default = FilterIcon;
@@ -21,11 +21,7 @@ Object.defineProperty(exports, "FilterIcon", {
21
21
  return _icon.default;
22
22
  }
23
23
  });
24
-
25
24
  var _icon = _interopRequireDefault(require("./icon"));
26
-
27
25
  var _customChip = _interopRequireDefault(require("./custom-chip"));
28
-
29
26
  var _group = _interopRequireDefault(require("./group"));
30
-
31
27
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
@@ -6,19 +6,12 @@ Object.defineProperty(exports, "__esModule", {
6
6
  exports.EmptyTitle = EmptyTitle;
7
7
  exports.NoResults = NoResults;
8
8
  exports.NoResultsTips = NoResultsTips;
9
-
10
9
  var _propTypes = _interopRequireDefault(require("prop-types"));
11
-
12
10
  var _Box = _interopRequireDefault(require("@mui/material/Box"));
13
-
14
11
  var _Typography = _interopRequireDefault(require("@mui/material/Typography"));
15
-
16
12
  var _filter = require("../../contexts/filter");
17
-
18
13
  var _jsxRuntime = require("react/jsx-runtime");
19
-
20
14
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
21
-
22
15
  function NoResults() {
23
16
  const {
24
17
  t
@@ -31,7 +24,6 @@ function NoResults() {
31
24
  children: t('blocklet.noResults')
32
25
  });
33
26
  }
34
-
35
27
  function NoResultsTips(_ref) {
36
28
  let {
37
29
  filterTip,
@@ -41,12 +33,10 @@ function NoResultsTips(_ref) {
41
33
  t,
42
34
  locale
43
35
  } = (0, _filter.useFilterContext)();
44
-
45
36
  const getSplit = () => {
46
37
  if (locale === 'zh') return '、';
47
38
  return ' , ';
48
39
  };
49
-
50
40
  return /*#__PURE__*/(0, _jsxRuntime.jsxs)(_Box.default, {
51
41
  className: "tips",
52
42
  children: [/*#__PURE__*/(0, _jsxRuntime.jsx)("span", {
@@ -61,7 +51,6 @@ function NoResultsTips(_ref) {
61
51
  })]
62
52
  });
63
53
  }
64
-
65
54
  NoResultsTips.propTypes = {
66
55
  filterTip: _propTypes.default.bool,
67
56
  keywordTip: _propTypes.default.bool
@@ -70,7 +59,6 @@ NoResultsTips.defaultProps = {
70
59
  filterTip: false,
71
60
  keywordTip: false
72
61
  };
73
-
74
62
  function EmptyTitle(_ref2) {
75
63
  let {
76
64
  primaryStart,
@@ -89,7 +77,6 @@ function EmptyTitle(_ref2) {
89
77
  })]
90
78
  });
91
79
  }
92
-
93
80
  EmptyTitle.propTypes = {
94
81
  primaryStart: _propTypes.default.string.isRequired,
95
82
  primaryEnd: _propTypes.default.string.isRequired,
@@ -4,55 +4,32 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
6
  exports.default = BlockletList;
7
-
8
7
  var _react = require("react");
9
-
10
8
  var _propTypes = _interopRequireDefault(require("prop-types"));
11
-
12
9
  var _styled = _interopRequireDefault(require("@emotion/styled"));
13
-
14
10
  var _Empty = _interopRequireDefault(require("@arcblock/ux/lib/Empty"));
15
-
16
11
  var _Box = _interopRequireDefault(require("@mui/material/Box"));
17
-
18
12
  var _Grid = _interopRequireDefault(require("@mui/material/Grid"));
19
-
20
13
  var _CircularProgress = _interopRequireDefault(require("@mui/material/CircularProgress"));
21
-
22
14
  var _reactInfiniteScrollHook = _interopRequireDefault(require("react-infinite-scroll-hook"));
23
-
24
15
  var _ErrorBoundary = require("@arcblock/ux/lib/ErrorBoundary");
25
-
26
16
  var _empty = require("./empty");
27
-
28
17
  var _filter = require("../../contexts/filter");
29
-
30
18
  var _jsxRuntime = require("react/jsx-runtime");
31
-
32
19
  var _templateObject, _templateObject2, _templateObject3;
33
-
34
20
  const _excluded = ["blocklets"];
35
-
36
21
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
37
-
38
22
  function _taggedTemplateLiteral(strings, raw) { if (!raw) { raw = strings.slice(0); } return Object.freeze(Object.defineProperties(strings, { raw: { value: Object.freeze(raw) } })); }
39
-
40
23
  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; }
41
-
42
24
  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; }
43
-
44
25
  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; }
45
-
46
26
  function _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }
47
-
48
27
  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; }
49
-
50
28
  function BlockletList(_ref) {
51
29
  let {
52
- blocklets
53
- } = _ref,
54
- rest = _objectWithoutProperties(_ref, _excluded);
55
-
30
+ blocklets
31
+ } = _ref,
32
+ rest = _objectWithoutProperties(_ref, _excluded);
56
33
  const {
57
34
  blockletRender,
58
35
  errors,
@@ -71,13 +48,11 @@ function BlockletList(_ref) {
71
48
  hasNextPage,
72
49
  onLoadMore: loadMore
73
50
  });
74
-
75
51
  if (errors.fetchBlockletsError) {
76
52
  return /*#__PURE__*/(0, _jsxRuntime.jsx)(_ErrorBoundary.ErrorFallback, {
77
53
  error: new Error("Failed to fetch blocklets from ".concat(endpoint, ": ").concat(errors.fetchBlockletsError.message))
78
54
  });
79
55
  }
80
-
81
56
  if (loadings.fetchBlockletsLoading) {
82
57
  return /*#__PURE__*/(0, _jsxRuntime.jsx)(_Box.default, {
83
58
  height: 60,
@@ -87,7 +62,6 @@ function BlockletList(_ref) {
87
62
  children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_CircularProgress.default, {})
88
63
  });
89
64
  }
90
-
91
65
  if (filters.keyword && showFilterTip && blocklets.length === 0) {
92
66
  return /*#__PURE__*/(0, _jsxRuntime.jsxs)(CustomEmpty, {
93
67
  children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_empty.EmptyTitle, {
@@ -100,7 +74,6 @@ function BlockletList(_ref) {
100
74
  })]
101
75
  });
102
76
  }
103
-
104
77
  if (filters.keyword && blocklets.length === 0) {
105
78
  return /*#__PURE__*/(0, _jsxRuntime.jsxs)(CustomEmpty, {
106
79
  children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_empty.EmptyTitle, {
@@ -112,7 +85,6 @@ function BlockletList(_ref) {
112
85
  })]
113
86
  });
114
87
  }
115
-
116
88
  if (showFilterTip && blocklets.length === 0) {
117
89
  const categoryLocale = getCategoryLocale(selectedCategory);
118
90
  return /*#__PURE__*/(0, _jsxRuntime.jsxs)(CustomEmpty, {
@@ -125,13 +97,11 @@ function BlockletList(_ref) {
125
97
  })]
126
98
  });
127
99
  }
128
-
129
100
  if (blocklets.length === 0) {
130
101
  return /*#__PURE__*/(0, _jsxRuntime.jsx)(CustomEmpty, {
131
102
  children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_empty.NoResults, {})
132
103
  });
133
104
  }
134
-
135
105
  return /*#__PURE__*/(0, _jsxRuntime.jsxs)(StyledGrid, _objectSpread(_objectSpread({
136
106
  container: true
137
107
  }, rest), {}, {
@@ -161,7 +131,6 @@ function BlockletList(_ref) {
161
131
  })]
162
132
  }));
163
133
  }
164
-
165
134
  BlockletList.propTypes = {
166
135
  blocklets: _propTypes.default.array.isRequired
167
136
  };
@@ -6,42 +6,26 @@ Object.defineProperty(exports, "__esModule", {
6
6
  exports.FilterConsumer = void 0;
7
7
  exports.FilterProvider = FilterProvider;
8
8
  exports.useFilterContext = useFilterContext;
9
-
10
9
  var _react = require("react");
11
-
12
10
  var _propTypes = _interopRequireDefault(require("prop-types"));
13
-
14
11
  var _ahooks = require("ahooks");
15
-
16
12
  var _orderBy = _interopRequireDefault(require("lodash/orderBy"));
17
-
18
13
  var _axios = _interopRequireDefault(require("axios"));
19
-
20
14
  var _utils = require("../libs/utils");
21
-
22
15
  var _locale = _interopRequireDefault(require("../assets/locale"));
23
-
24
16
  var _propTypes2 = require("../libs/prop-types");
25
-
26
17
  var _constant = _interopRequireDefault(require("../libs/constant"));
27
-
28
18
  var _jsxRuntime = require("react/jsx-runtime");
29
-
30
19
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
31
-
32
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; }
33
-
34
21
  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; }
35
-
36
22
  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; }
37
-
38
23
  const Filter = /*#__PURE__*/(0, _react.createContext)({});
39
24
  const {
40
25
  Provider,
41
26
  Consumer
42
27
  } = Filter;
43
28
  exports.FilterConsumer = Consumer;
44
-
45
29
  function FilterProvider(_ref) {
46
30
  let {
47
31
  filters,
@@ -82,13 +66,11 @@ function FilterProvider(_ref) {
82
66
  loadingMore
83
67
  } = (0, _ahooks.useInfiniteScroll)(async d => {
84
68
  var _d$list;
85
-
86
69
  const params = _objectSpread(_objectSpread({}, finalFilters), {}, {
87
70
  sortBy: _constant.default[finalFilters.sortBy],
88
71
  page: (0, _utils.getCurrentPage)((d === null || d === void 0 ? void 0 : (_d$list = d.list) === null || _d$list === void 0 ? void 0 : _d$list.length) || 0, paginateState.pageSize),
89
72
  pageSize: paginateState.pageSize
90
73
  });
91
-
92
74
  const {
93
75
  data = {}
94
76
  } = await storeApi.get(_constant.default.blockletsPath, {
@@ -119,8 +101,8 @@ function FilterProvider(_ref) {
119
101
  manual: true
120
102
  });
121
103
  const categoryList = (0, _react.useMemo)(() => {
122
- const list = allCategories || []; // 分类按照名称排序
123
-
104
+ const list = allCategories || [];
105
+ // 分类按照名称排序
124
106
  return (0, _orderBy.default)(list, [i => i.name], ['asc']);
125
107
  }, [allCategories]);
126
108
  const translate = (0, _react.useCallback)((key, data) => {
@@ -129,8 +111,8 @@ function FilterProvider(_ref) {
129
111
  return (0, _utils.replaceTranslate)(fallback, data);
130
112
  }, [locale]);
131
113
  const blockletList = (0, _react.useMemo)(() => {
132
- let blocklets = blockletsState.list || []; // 用户传入的过滤函数
133
-
114
+ let blocklets = blockletsState.list || [];
115
+ // 用户传入的过滤函数
134
116
  blocklets = extraFilter(blocklets);
135
117
  return blocklets;
136
118
  }, [blockletsState, extraFilter]);
@@ -164,48 +146,40 @@ function FilterProvider(_ref) {
164
146
  sortBy: sort,
165
147
  sortDirection: sort === 'nameAsc' ? 'asc' : 'desc'
166
148
  });
167
-
168
149
  onFilterChange(changeData);
169
150
  },
170
151
  handleKeyword: keyWord => {
171
152
  const changeData = _objectSpread(_objectSpread({}, finalFilters), {}, {
172
153
  keyword: keyWord || undefined
173
154
  });
174
-
175
155
  onFilterChange(changeData);
176
156
  },
177
157
  handlePrice: price => {
178
158
  const changeData = _objectSpread(_objectSpread({}, finalFilters), {}, {
179
159
  price: price === finalFilters.price ? undefined : price
180
160
  });
181
-
182
161
  onFilterChange(changeData);
183
162
  },
184
163
  handleCategory: category => {
185
164
  let finalCategory = category;
186
-
187
165
  if (category === 'all' || category === finalFilters.category) {
188
166
  finalCategory = undefined;
189
167
  }
190
-
191
168
  const changeData = _objectSpread(_objectSpread({}, finalFilters), {}, {
192
169
  category: finalCategory
193
170
  });
194
-
195
171
  onFilterChange(changeData);
196
172
  },
197
173
  handleDeveloper: owner => {
198
174
  const changeData = _objectSpread(_objectSpread({}, finalFilters), {}, {
199
175
  owner: owner || undefined
200
176
  });
201
-
202
177
  onFilterChange(changeData);
203
178
  },
204
179
  handlePage: page => {
205
180
  const changeData = _objectSpread(_objectSpread({}, finalFilters), {}, {
206
181
  currentPage: page
207
182
  });
208
-
209
183
  onFilterChange(changeData);
210
184
  },
211
185
  loadMore: () => {
@@ -217,47 +191,38 @@ function FilterProvider(_ref) {
217
191
  if (!category) return null;
218
192
  let result = null;
219
193
  const find = allCategories.find(item => item._id === category);
220
-
221
194
  if (find) {
222
195
  result = find.locales[locale];
223
196
  }
224
-
225
197
  return result;
226
198
  },
227
-
228
199
  get developerName() {
229
200
  var _blocklets$find, _blocklets$find$owner;
230
-
231
201
  const blocklets = blockletList;
232
202
  return ((_blocklets$find = blocklets.find(blocklet => {
233
203
  var _blocklet$owner;
234
-
235
204
  return (blocklet === null || blocklet === void 0 ? void 0 : (_blocklet$owner = blocklet.owner) === null || _blocklet$owner === void 0 ? void 0 : _blocklet$owner.did) === finalFilters.owner;
236
205
  })) === null || _blocklets$find === void 0 ? void 0 : (_blocklets$find$owner = _blocklets$find.owner) === null || _blocklets$find$owner === void 0 ? void 0 : _blocklets$find$owner.name) || '';
237
206
  },
238
-
239
207
  handleSearchSelect: onSearchSelect
240
208
  };
241
209
  (0, _react.useEffect)(() => {
242
- fetchCategories(); // eslint-disable-next-line react-hooks/exhaustive-deps
210
+ fetchCategories();
211
+ // eslint-disable-next-line react-hooks/exhaustive-deps
243
212
  }, [endpoint]);
244
213
  return /*#__PURE__*/(0, _jsxRuntime.jsx)(Provider, {
245
214
  value: filterStore,
246
215
  children: children
247
216
  });
248
217
  }
249
-
250
218
  FilterProvider.propTypes = _objectSpread(_objectSpread({}, _propTypes2.propTypes), {}, {
251
219
  children: _propTypes.default.any.isRequired
252
220
  });
253
221
  FilterProvider.defaultProps = _propTypes2.defaultProps;
254
-
255
222
  function useFilterContext() {
256
223
  const filterStore = (0, _react.useContext)(Filter);
257
-
258
224
  if (!filterStore) {
259
225
  return {};
260
226
  }
261
-
262
227
  return filterStore;
263
228
  }
package/lib/index.js CHANGED
@@ -4,35 +4,20 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
6
  exports.default = BlockletList;
7
-
8
7
  var _react = require("@emotion/react");
9
-
10
8
  var _styles = require("@mui/material/styles");
11
-
12
9
  var _base = _interopRequireDefault(require("./base"));
13
-
14
10
  var _filter = require("./contexts/filter");
15
-
16
11
  var _propTypes = require("./libs/prop-types");
17
-
18
12
  var _utils = require("./libs/utils");
19
-
20
13
  require("@algolia/autocomplete-theme-classic/dist/theme.css");
21
-
22
14
  var _jsxRuntime = require("react/jsx-runtime");
23
-
24
15
  var _templateObject;
25
-
26
16
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
27
-
28
17
  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; }
29
-
30
18
  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; }
31
-
32
19
  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; }
33
-
34
20
  function _taggedTemplateLiteral(strings, raw) { if (!raw) { raw = strings.slice(0); } return Object.freeze(Object.defineProperties(strings, { raw: { value: Object.freeze(raw) } })); }
35
-
36
21
  function BlockletList(props) {
37
22
  const muiTheme = (0, _styles.useTheme)();
38
23
  const primaryColor = (0, _utils.toColorRgb)(muiTheme.palette.primary.main);
@@ -45,6 +30,5 @@ function BlockletList(props) {
45
30
  }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_base.default, {})]
46
31
  }));
47
32
  }
48
-
49
33
  BlockletList.propTypes = _propTypes.propTypes;
50
34
  BlockletList.defaultProps = _propTypes.defaultProps;
@@ -4,11 +4,8 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
6
  exports.propTypes = exports.defaultProps = void 0;
7
-
8
7
  var _propTypes = _interopRequireDefault(require("prop-types"));
9
-
10
8
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
11
-
12
9
  const propTypes = {
13
10
  filters: _propTypes.default.shape({
14
11
  keyword: _propTypes.default.string,
package/lib/libs/utils.js CHANGED
@@ -4,24 +4,17 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
6
  exports.urlStringify = exports.toColorRgb = exports.replaceTranslate = exports.removeUndefined = exports.isMobileScreen = exports.getStoreDetail = exports.getSortOptions = exports.getPrices = exports.getCurrentPage = exports.getCategoryOptions = exports.formatLogoPath = exports.formatError = exports.filterBlockletByPrice = exports.debounced = void 0;
7
-
8
7
  var _urlJoin = _interopRequireDefault(require("url-join"));
9
-
10
8
  var _cloneDeep = _interopRequireDefault(require("lodash/cloneDeep"));
11
-
12
9
  var _color = _interopRequireDefault(require("color"));
13
-
14
10
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
15
-
16
11
  const isFreeBlocklet = blocklet => {
17
12
  if (!blocklet.payment) {
18
13
  return true;
19
14
  }
20
-
21
15
  const priceList = (blocklet.payment.price || []).map(x => x.value || 0);
22
16
  return priceList.every(x => x === 0);
23
17
  };
24
-
25
18
  const getSortOptions = t => {
26
19
  return [{
27
20
  name: t('sort.popularity'),
@@ -37,9 +30,7 @@ const getSortOptions = t => {
37
30
  value: 'nameDesc'
38
31
  }];
39
32
  };
40
-
41
33
  exports.getSortOptions = getSortOptions;
42
-
43
34
  const getPrices = t => {
44
35
  return [{
45
36
  name: t('blocklet.free'),
@@ -49,9 +40,7 @@ const getPrices = t => {
49
40
  value: 'payment'
50
41
  }];
51
42
  };
52
-
53
43
  exports.getPrices = getPrices;
54
-
55
44
  const getCategoryOptions = function getCategoryOptions() {
56
45
  let list = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];
57
46
  let locale = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'en';
@@ -60,66 +49,50 @@ const getCategoryOptions = function getCategoryOptions() {
60
49
  value: item._id
61
50
  }));
62
51
  };
52
+
63
53
  /**
64
54
  * 根据 是否付费 过滤 blocklet list
65
55
  * @param {*} list
66
56
  * @param {*} price
67
57
  * @returns
68
58
  */
69
-
70
-
71
59
  exports.getCategoryOptions = getCategoryOptions;
72
-
73
60
  const filterBlockletByPrice = function filterBlockletByPrice() {
74
61
  let list = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];
75
62
  let price = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : '';
76
63
  let result = list;
77
64
  if (!price) return result;
78
-
79
65
  if (price === 'free') {
80
66
  result = list.filter(blocklet => isFreeBlocklet(blocklet));
81
67
  } else {
82
68
  result = list.filter(blocklet => !isFreeBlocklet(blocklet));
83
69
  }
84
-
85
70
  return result;
86
71
  };
87
-
88
72
  exports.filterBlockletByPrice = filterBlockletByPrice;
89
-
90
73
  const formatError = error => {
91
74
  if (Array.isArray(error.errors)) {
92
75
  return error.errors.map(x => x.message).join('\n');
93
76
  }
94
-
95
77
  return error.message;
96
78
  };
97
-
98
79
  exports.formatError = formatError;
99
-
100
80
  const getStoreDetail = (storeUrl, blocklet) => {
101
81
  return (0, _urlJoin.default)(storeUrl, "/blocklets/".concat(blocklet.did));
102
82
  };
103
-
104
83
  exports.getStoreDetail = getStoreDetail;
105
-
106
84
  const formatLogoPath = function formatLogoPath(did, asset) {
107
85
  let target = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 'assets';
108
-
109
86
  if (asset.startsWith(target)) {
110
87
  return asset;
111
88
  }
112
-
113
89
  return "".concat(target, "/").concat(did, "/").concat(asset);
114
90
  };
115
-
116
91
  exports.formatLogoPath = formatLogoPath;
117
-
118
- const replaceTranslate = (template, data) => // eslint-disable-next-line no-prototype-builtins
92
+ const replaceTranslate = (template, data) =>
93
+ // eslint-disable-next-line no-prototype-builtins
119
94
  template.replace(/{(\w*)}/g, (m, key) => data.hasOwnProperty(key) ? data[key] : '');
120
-
121
95
  exports.replaceTranslate = replaceTranslate;
122
-
123
96
  const removeUndefined = obj => {
124
97
  const clone = (0, _cloneDeep.default)(obj);
125
98
  Object.keys(clone).forEach(key => {
@@ -129,56 +102,42 @@ const removeUndefined = obj => {
129
102
  });
130
103
  return clone;
131
104
  };
132
-
133
105
  exports.removeUndefined = removeUndefined;
134
-
135
106
  const urlStringify = obj => {
136
107
  if (!obj) {
137
108
  throw new Error('obj is required in urlStringify ');
138
109
  }
139
-
140
110
  return new URLSearchParams(removeUndefined(obj)).toString();
141
111
  };
142
-
143
112
  exports.urlStringify = urlStringify;
144
-
145
113
  const isMobileScreen = () => {
146
114
  return window.innerWidth <= 600;
147
115
  };
148
-
149
116
  exports.isMobileScreen = isMobileScreen;
150
-
151
117
  const getCurrentPage = (length, pageSize) => {
152
118
  const page = (length + pageSize) / pageSize;
153
119
  if (page > 1) return page.toFixed();
154
120
  return 1;
155
121
  };
156
-
157
122
  exports.getCurrentPage = getCurrentPage;
158
-
159
123
  const toColorRgb = colorStr => {
160
124
  const color = (0, _color.default)(colorStr);
161
125
  return color.rgb().object();
162
126
  };
163
-
164
127
  exports.toColorRgb = toColorRgb;
165
-
166
128
  function debouncePromise(fn, time) {
167
129
  let timerId;
168
130
  return function debounced() {
169
131
  for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
170
132
  args[_key] = arguments[_key];
171
133
  }
172
-
173
134
  if (timerId) {
174
135
  clearTimeout(timerId);
175
136
  }
176
-
177
137
  return new Promise(resolve => {
178
138
  timerId = setTimeout(() => resolve(fn(...args)), time);
179
139
  });
180
140
  };
181
141
  }
182
-
183
142
  const debounced = debouncePromise(items => Promise.resolve(items), 300);
184
143
  exports.debounced = debounced;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@blocklet/list",
3
- "version": "0.10.31",
3
+ "version": "0.10.33",
4
4
  "description": "Common ux components of blocklet",
5
5
  "publishConfig": {
6
6
  "access": "public"
@@ -42,7 +42,7 @@
42
42
  "dependencies": {
43
43
  "@algolia/autocomplete-js": "^1.7.1",
44
44
  "@algolia/autocomplete-theme-classic": "^1.7.1",
45
- "@arcblock/ux": "^2.4.49",
45
+ "@arcblock/ux": "^2.4.52",
46
46
  "@emotion/react": "^11.10.0",
47
47
  "@emotion/styled": "^11.10.0",
48
48
  "@mui/icons-material": "^5.8.4",
@@ -71,5 +71,5 @@
71
71
  "eslint": "^8.22.0",
72
72
  "prettier": "^2.7.1"
73
73
  },
74
- "gitHead": "961ae76e726be9c79653e5bd238aeb6bd0451f8f"
74
+ "gitHead": "d5fb6c10f6e9920d854d5116bc089e63b3260b7f"
75
75
  }