@blocklet/list 0.10.32 → 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.
- package/lib/assets/locale.js +0 -2
- package/lib/base.js +0 -22
- package/lib/components/aside.js +0 -10
- package/lib/components/autocomplete/index.js +8 -61
- package/lib/components/custom-select/button.js +6 -22
- package/lib/components/custom-select/custom-select.js +9 -35
- package/lib/components/custom-select/index.js +0 -3
- package/lib/components/filter/custom-chip.js +5 -22
- package/lib/components/filter/group.js +0 -9
- package/lib/components/filter/icon.js +0 -18
- package/lib/components/filter/index.js +0 -4
- package/lib/components/list/empty.js +0 -13
- package/lib/components/list/index.js +3 -34
- package/lib/contexts/filter.js +6 -41
- package/lib/index.js +0 -16
- package/lib/libs/prop-types.js +0 -3
- package/lib/libs/utils.js +3 -44
- package/package.json +3 -3
package/lib/assets/locale.js
CHANGED
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;
|
package/lib/components/aside.js
CHANGED
|
@@ -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 || [];
|
|
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
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
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
|
-
};
|
|
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
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
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
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
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
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
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
|
-
|
|
53
|
-
|
|
54
|
-
|
|
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
|
};
|
package/lib/contexts/filter.js
CHANGED
|
@@ -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();
|
|
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;
|
package/lib/libs/prop-types.js
CHANGED
|
@@ -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
|
-
|
|
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.
|
|
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.
|
|
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": "
|
|
74
|
+
"gitHead": "d5fb6c10f6e9920d854d5116bc089e63b3260b7f"
|
|
75
75
|
}
|