@blocklet/list 0.10.32 → 0.10.34
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 +7 -24
- package/lib/components/aside.js +0 -10
- package/lib/components/autocomplete/index.js +8 -61
- package/lib/components/base-search.js +84 -0
- 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 +9 -42
- package/lib/index.js +0 -16
- package/lib/libs/prop-types.js +4 -5
- package/lib/libs/utils.js +3 -44
- package/package.json +3 -4
- package/src/base.js +8 -1
- package/src/components/base-search.js +93 -0
- package/src/contexts/filter.js +2 -0
- package/src/libs/prop-types.js +2 -0
|
@@ -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,
|
|
@@ -52,7 +36,8 @@ function FilterProvider(_ref) {
|
|
|
52
36
|
onFilterChange,
|
|
53
37
|
onSearchSelect,
|
|
54
38
|
extraFilter,
|
|
55
|
-
wrapChildren
|
|
39
|
+
wrapChildren,
|
|
40
|
+
baseSearch
|
|
56
41
|
} = _ref;
|
|
57
42
|
const storeApi = (0, _react.useMemo)(() => {
|
|
58
43
|
return _axios.default.create({
|
|
@@ -82,13 +67,11 @@ function FilterProvider(_ref) {
|
|
|
82
67
|
loadingMore
|
|
83
68
|
} = (0, _ahooks.useInfiniteScroll)(async d => {
|
|
84
69
|
var _d$list;
|
|
85
|
-
|
|
86
70
|
const params = _objectSpread(_objectSpread({}, finalFilters), {}, {
|
|
87
71
|
sortBy: _constant.default[finalFilters.sortBy],
|
|
88
72
|
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
73
|
pageSize: paginateState.pageSize
|
|
90
74
|
});
|
|
91
|
-
|
|
92
75
|
const {
|
|
93
76
|
data = {}
|
|
94
77
|
} = await storeApi.get(_constant.default.blockletsPath, {
|
|
@@ -119,8 +102,8 @@ function FilterProvider(_ref) {
|
|
|
119
102
|
manual: true
|
|
120
103
|
});
|
|
121
104
|
const categoryList = (0, _react.useMemo)(() => {
|
|
122
|
-
const list = allCategories || [];
|
|
123
|
-
|
|
105
|
+
const list = allCategories || [];
|
|
106
|
+
// 分类按照名称排序
|
|
124
107
|
return (0, _orderBy.default)(list, [i => i.name], ['asc']);
|
|
125
108
|
}, [allCategories]);
|
|
126
109
|
const translate = (0, _react.useCallback)((key, data) => {
|
|
@@ -129,8 +112,8 @@ function FilterProvider(_ref) {
|
|
|
129
112
|
return (0, _utils.replaceTranslate)(fallback, data);
|
|
130
113
|
}, [locale]);
|
|
131
114
|
const blockletList = (0, _react.useMemo)(() => {
|
|
132
|
-
let blocklets = blockletsState.list || [];
|
|
133
|
-
|
|
115
|
+
let blocklets = blockletsState.list || [];
|
|
116
|
+
// 用户传入的过滤函数
|
|
134
117
|
blocklets = extraFilter(blocklets);
|
|
135
118
|
return blocklets;
|
|
136
119
|
}, [blockletsState, extraFilter]);
|
|
@@ -158,54 +141,47 @@ function FilterProvider(_ref) {
|
|
|
158
141
|
categoryOptions,
|
|
159
142
|
priceOptions,
|
|
160
143
|
storeApi,
|
|
144
|
+
baseSearch,
|
|
161
145
|
hasNextPage: blockletsState.list.length < blockletsState.total,
|
|
162
146
|
handleSort: sort => {
|
|
163
147
|
const changeData = _objectSpread(_objectSpread({}, finalFilters), {}, {
|
|
164
148
|
sortBy: sort,
|
|
165
149
|
sortDirection: sort === 'nameAsc' ? 'asc' : 'desc'
|
|
166
150
|
});
|
|
167
|
-
|
|
168
151
|
onFilterChange(changeData);
|
|
169
152
|
},
|
|
170
153
|
handleKeyword: keyWord => {
|
|
171
154
|
const changeData = _objectSpread(_objectSpread({}, finalFilters), {}, {
|
|
172
155
|
keyword: keyWord || undefined
|
|
173
156
|
});
|
|
174
|
-
|
|
175
157
|
onFilterChange(changeData);
|
|
176
158
|
},
|
|
177
159
|
handlePrice: price => {
|
|
178
160
|
const changeData = _objectSpread(_objectSpread({}, finalFilters), {}, {
|
|
179
161
|
price: price === finalFilters.price ? undefined : price
|
|
180
162
|
});
|
|
181
|
-
|
|
182
163
|
onFilterChange(changeData);
|
|
183
164
|
},
|
|
184
165
|
handleCategory: category => {
|
|
185
166
|
let finalCategory = category;
|
|
186
|
-
|
|
187
167
|
if (category === 'all' || category === finalFilters.category) {
|
|
188
168
|
finalCategory = undefined;
|
|
189
169
|
}
|
|
190
|
-
|
|
191
170
|
const changeData = _objectSpread(_objectSpread({}, finalFilters), {}, {
|
|
192
171
|
category: finalCategory
|
|
193
172
|
});
|
|
194
|
-
|
|
195
173
|
onFilterChange(changeData);
|
|
196
174
|
},
|
|
197
175
|
handleDeveloper: owner => {
|
|
198
176
|
const changeData = _objectSpread(_objectSpread({}, finalFilters), {}, {
|
|
199
177
|
owner: owner || undefined
|
|
200
178
|
});
|
|
201
|
-
|
|
202
179
|
onFilterChange(changeData);
|
|
203
180
|
},
|
|
204
181
|
handlePage: page => {
|
|
205
182
|
const changeData = _objectSpread(_objectSpread({}, finalFilters), {}, {
|
|
206
183
|
currentPage: page
|
|
207
184
|
});
|
|
208
|
-
|
|
209
185
|
onFilterChange(changeData);
|
|
210
186
|
},
|
|
211
187
|
loadMore: () => {
|
|
@@ -217,47 +193,38 @@ function FilterProvider(_ref) {
|
|
|
217
193
|
if (!category) return null;
|
|
218
194
|
let result = null;
|
|
219
195
|
const find = allCategories.find(item => item._id === category);
|
|
220
|
-
|
|
221
196
|
if (find) {
|
|
222
197
|
result = find.locales[locale];
|
|
223
198
|
}
|
|
224
|
-
|
|
225
199
|
return result;
|
|
226
200
|
},
|
|
227
|
-
|
|
228
201
|
get developerName() {
|
|
229
202
|
var _blocklets$find, _blocklets$find$owner;
|
|
230
|
-
|
|
231
203
|
const blocklets = blockletList;
|
|
232
204
|
return ((_blocklets$find = blocklets.find(blocklet => {
|
|
233
205
|
var _blocklet$owner;
|
|
234
|
-
|
|
235
206
|
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
207
|
})) === 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
208
|
},
|
|
238
|
-
|
|
239
209
|
handleSearchSelect: onSearchSelect
|
|
240
210
|
};
|
|
241
211
|
(0, _react.useEffect)(() => {
|
|
242
|
-
fetchCategories();
|
|
212
|
+
fetchCategories();
|
|
213
|
+
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
243
214
|
}, [endpoint]);
|
|
244
215
|
return /*#__PURE__*/(0, _jsxRuntime.jsx)(Provider, {
|
|
245
216
|
value: filterStore,
|
|
246
217
|
children: children
|
|
247
218
|
});
|
|
248
219
|
}
|
|
249
|
-
|
|
250
220
|
FilterProvider.propTypes = _objectSpread(_objectSpread({}, _propTypes2.propTypes), {}, {
|
|
251
221
|
children: _propTypes.default.any.isRequired
|
|
252
222
|
});
|
|
253
223
|
FilterProvider.defaultProps = _propTypes2.defaultProps;
|
|
254
|
-
|
|
255
224
|
function useFilterContext() {
|
|
256
225
|
const filterStore = (0, _react.useContext)(Filter);
|
|
257
|
-
|
|
258
226
|
if (!filterStore) {
|
|
259
227
|
return {};
|
|
260
228
|
}
|
|
261
|
-
|
|
262
229
|
return filterStore;
|
|
263
230
|
}
|
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,
|
|
@@ -24,7 +21,8 @@ const propTypes = {
|
|
|
24
21
|
blockletRender: _propTypes.default.func.isRequired,
|
|
25
22
|
onFilterChange: _propTypes.default.func,
|
|
26
23
|
onSearchSelect: _propTypes.default.func,
|
|
27
|
-
locale: _propTypes.default.oneOf(['zh', 'en'])
|
|
24
|
+
locale: _propTypes.default.oneOf(['zh', 'en']),
|
|
25
|
+
baseSearch: _propTypes.default.bool
|
|
28
26
|
};
|
|
29
27
|
exports.propTypes = propTypes;
|
|
30
28
|
const defaultProps = {
|
|
@@ -38,6 +36,7 @@ const defaultProps = {
|
|
|
38
36
|
window.location.href = detailUrl;
|
|
39
37
|
},
|
|
40
38
|
wrapChildren: children => children,
|
|
41
|
-
extraFilter: list => list
|
|
39
|
+
extraFilter: list => list,
|
|
40
|
+
baseSearch: false
|
|
42
41
|
};
|
|
43
42
|
exports.defaultProps = defaultProps;
|