@blocklet/list 0.8.21 → 0.8.24

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.
@@ -1,64 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.default = void 0;
7
-
8
- var _react = _interopRequireDefault(require("react"));
9
-
10
- var _material = require("@mui/material");
11
-
12
- var _styledComponents = _interopRequireDefault(require("styled-components"));
13
-
14
- var _filter = require("../../contexts/filter");
15
-
16
- var _utils = require("../../libs/utils");
17
-
18
- var _search = _interopRequireDefault(require("../search"));
19
-
20
- var _categoryLinkList = _interopRequireDefault(require("./category-link-list"));
21
-
22
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
23
-
24
- const Aside = () => {
25
- const {
26
- filters,
27
- handlePrice,
28
- t
29
- } = (0, _filter.useFilterContext)();
30
- return /*#__PURE__*/_react.default.createElement(StyledAside, null, /*#__PURE__*/_react.default.createElement(_search.default, {
31
- placeholder: t('common.searchStore')
32
- }), /*#__PURE__*/_react.default.createElement(_material.Box, {
33
- marginTop: "24px"
34
- }, (0, _utils.getPrices)(t).map(item => /*#__PURE__*/_react.default.createElement(_material.FormControlLabel, {
35
- className: "payments",
36
- key: item.value,
37
- control: /*#__PURE__*/_react.default.createElement(_material.Checkbox, {
38
- onClick: () => {
39
- handlePrice(item.value);
40
- },
41
- size: "small",
42
- checked: item.value === filters.price
43
- }),
44
- label: item.name
45
- }))), /*#__PURE__*/_react.default.createElement(_material.List, {
46
- component: "nav",
47
- color: "primary"
48
- }, /*#__PURE__*/_react.default.createElement("div", {
49
- style: {
50
- border: '1px solid #dadce0',
51
- margin: '16px 16px'
52
- }
53
- }), /*#__PURE__*/_react.default.createElement(_categoryLinkList.default, null)));
54
- };
55
-
56
- const StyledAside = _styledComponents.default.aside.withConfig({
57
- displayName: "aside__StyledAside",
58
- componentId: "sc-1vh5fc3-0"
59
- })(["width:220px;margin-right:20px;background-color:", ";height:100%;padding:15px 0px;border-radius:8px;.MuiListItemText-root{width:100%;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;}.payments{display:flex;padding:0 16px;.MuiFormControlLabel-label{color:#5f6368;font-size:1rem;}}.MuiListItem-root{text-transform:capitalize;.category > span{font-weight:", ";}>:not(.category){.MuiListItemText-primary{color:#5f6368;}}&.Mui-selected{background-color:", "!important;border-radius:4px;.MuiListItemText-primary{color:#fff !important;}}}@media (max-width:", "px){.MuiListItemText-primary{font-size:16px;}}"], props => props.theme.palette.grey[50], props => props.theme.typography.fontWeightBold, props => props.theme.palette.primary.main, props => props.theme.breakpoints.values.md);
60
-
61
- Aside.propTypes = {};
62
- Aside.defaultProps = {};
63
- var _default = Aside;
64
- exports.default = _default;
@@ -1,78 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.default = void 0;
7
-
8
- var _react = _interopRequireDefault(require("react"));
9
-
10
- var _material = require("@mui/material");
11
-
12
- var _urlJoin = _interopRequireDefault(require("url-join"));
13
-
14
- var _filter = require("../../contexts/filter");
15
-
16
- var _utils = require("../../libs/utils");
17
-
18
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
19
-
20
- function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
21
-
22
- function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
23
-
24
- function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
25
-
26
- /**
27
- * 宽屏幕下的分类列表
28
- * @returns
29
- */
30
- const CategoryLinkList = () => {
31
- const {
32
- categoryList,
33
- selectedCategory,
34
- filters,
35
- baseUrl,
36
- handleCategory,
37
- t,
38
- locale
39
- } = (0, _filter.useFilterContext)();
40
-
41
- const handleClick = (e, name) => {
42
- handleCategory(name);
43
- e.preventDefault();
44
- return false;
45
- };
46
-
47
- const content = /*#__PURE__*/_react.default.createElement("div", {
48
- style: {
49
- marginRight: '16px'
50
- }
51
- }, /*#__PURE__*/_react.default.createElement(_material.ListItem, {
52
- selected: !selectedCategory,
53
- button: true,
54
- onClick: e => handleClick(e, 'all')
55
- }, /*#__PURE__*/_react.default.createElement(_material.ListItemText, {
56
- primary: t('category.all')
57
- })), categoryList.map(item => /*#__PURE__*/_react.default.createElement(_material.ListItem, {
58
- key: item._id,
59
- title: item.locales[locale],
60
- component: _material.Link,
61
- to: "".concat((0, _urlJoin.default)(baseUrl, '/search'), "?").concat((0, _utils.urlStringify)(_objectSpread(_objectSpread({}, filters), {}, {
62
- category: item.name
63
- }))),
64
- onClick: e => handleClick(e, item.name),
65
- button: true,
66
- selected: item.name === selectedCategory
67
- }, /*#__PURE__*/_react.default.createElement(_material.ListItemText, {
68
- primary: item.locales[locale]
69
- }))));
70
-
71
- return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement(_material.ListItem, null, /*#__PURE__*/_react.default.createElement(_material.ListItemText, {
72
- className: "category",
73
- primary: t('common.category')
74
- })), content);
75
- };
76
-
77
- var _default = CategoryLinkList;
78
- exports.default = _default;
@@ -1,13 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.default = void 0;
7
-
8
- var _aside = _interopRequireDefault(require("./aside"));
9
-
10
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
11
-
12
- var _default = _aside.default;
13
- exports.default = _default;
@@ -1,90 +0,0 @@
1
- import React from 'react';
2
- import { Box, List, Checkbox, FormControlLabel } from '@mui/material';
3
- import styled from 'styled-components';
4
-
5
- import { useFilterContext } from '../../contexts/filter';
6
- import { getPrices } from '../../libs/utils';
7
- import Search from '../search';
8
- import CategoryLinkList from './category-link-list';
9
-
10
- const Aside = () => {
11
- const { filters, handlePrice, t } = useFilterContext();
12
- return (
13
- <StyledAside>
14
- <Search placeholder={t('common.searchStore')} />
15
- <Box marginTop="24px">
16
- {getPrices(t).map((item) => (
17
- <FormControlLabel
18
- className="payments"
19
- key={item.value}
20
- control={
21
- <Checkbox
22
- onClick={() => {
23
- handlePrice(item.value);
24
- }}
25
- size="small"
26
- checked={item.value === filters.price}
27
- />
28
- }
29
- label={item.name}
30
- />
31
- ))}
32
- </Box>
33
- <List component="nav" color="primary">
34
- {/* 分割线 */}
35
- <div style={{ border: '1px solid #dadce0', margin: '16px 16px' }} />
36
- <CategoryLinkList />
37
- </List>
38
- </StyledAside>
39
- );
40
- };
41
-
42
- const StyledAside = styled.aside`
43
- width: 220px;
44
- margin-right: 20px;
45
- background-color: ${(props) => props.theme.palette.grey[50]};
46
- height: 100%;
47
- padding: 15px 0px;
48
- border-radius: 8px;
49
- .MuiListItemText-root {
50
- width: 100%;
51
- overflow: hidden;
52
- white-space: nowrap;
53
- text-overflow: ellipsis;
54
- }
55
- .payments {
56
- display: flex;
57
- padding: 0 16px;
58
- .MuiFormControlLabel-label {
59
- color: #5f6368;
60
- font-size: 1rem;
61
- }
62
- }
63
- .MuiListItem-root {
64
- text-transform: capitalize;
65
- .category > span {
66
- font-weight: ${(props) => props.theme.typography.fontWeightBold};
67
- }
68
- > :not(.category) {
69
- .MuiListItemText-primary {
70
- color: #5f6368;
71
- }
72
- }
73
- &.Mui-selected {
74
- background-color: ${(props) => props.theme.palette.primary.main}!important;
75
- border-radius: 4px;
76
- .MuiListItemText-primary {
77
- color: #fff !important;
78
- }
79
- }
80
- }
81
- @media (max-width: ${(props) => props.theme.breakpoints.values.md}px) {
82
- .MuiListItemText-primary {
83
- font-size: 16px;
84
- }
85
- }
86
- `;
87
-
88
- Aside.propTypes = {};
89
- Aside.defaultProps = {};
90
- export default Aside;
@@ -1,53 +0,0 @@
1
- import React from 'react';
2
- import { ListItem, ListItemText, Link } from '@mui/material';
3
- import joinUrl from 'url-join';
4
-
5
- import { useFilterContext } from '../../contexts/filter';
6
- import { urlStringify } from '../../libs/utils';
7
-
8
- /**
9
- * 宽屏幕下的分类列表
10
- * @returns
11
- */
12
- const CategoryLinkList = () => {
13
- const { categoryList, selectedCategory, filters, baseUrl, handleCategory, t, locale } = useFilterContext();
14
-
15
- const handleClick = (e, name) => {
16
- handleCategory(name);
17
- e.preventDefault();
18
- return false;
19
- };
20
- const content = (
21
- <div style={{ marginRight: '16px' }}>
22
- <ListItem selected={!selectedCategory} button onClick={(e) => handleClick(e, 'all')}>
23
- <ListItemText primary={t('category.all')} />
24
- </ListItem>
25
- {categoryList.map((item) => (
26
- <ListItem
27
- key={item._id}
28
- title={item.locales[locale]}
29
- component={Link}
30
- to={`${joinUrl(baseUrl, '/search')}?${urlStringify({
31
- ...filters,
32
- category: item.name,
33
- })}`}
34
- onClick={(e) => handleClick(e, item.name)}
35
- button
36
- selected={item.name === selectedCategory}>
37
- <ListItemText primary={item.locales[locale]} />
38
- </ListItem>
39
- ))}
40
- </div>
41
- );
42
-
43
- return (
44
- <>
45
- <ListItem>
46
- <ListItemText className="category" primary={t('common.category')} />
47
- </ListItem>
48
- {content}
49
- </>
50
- );
51
- };
52
-
53
- export default CategoryLinkList;
@@ -1,3 +0,0 @@
1
- import Aside from './aside';
2
-
3
- export default Aside;
@@ -1,38 +0,0 @@
1
- import React from 'react';
2
- import PropTypes from 'prop-types';
3
- import styled from 'styled-components';
4
- import { Chip } from '@mui/material';
5
- import FaceIcon from '@mui/icons-material/Face';
6
-
7
- import { useFilterContext } from '../contexts/filter';
8
-
9
- const StyleDiv = styled.div`
10
- .MuiChip-root {
11
- border-radius: 4px;
12
- height: initial;
13
- text-transform: capitalize;
14
- }
15
- `;
16
- const FilterAuthor = ({ user, deleteUserTag, ...containerProps }) => {
17
- const { t } = useFilterContext();
18
- if (!user) return null;
19
- return (
20
- <StyleDiv {...containerProps}>
21
- <Chip
22
- icon={<FaceIcon />}
23
- label={t('blocklet.owner', { name: user })}
24
- onDelete={() => {
25
- deleteUserTag();
26
- }}
27
- />
28
- </StyleDiv>
29
- );
30
- };
31
- FilterAuthor.propTypes = {
32
- user: PropTypes.string.isRequired,
33
- deleteUserTag: PropTypes.func,
34
- };
35
- FilterAuthor.defaultProps = {
36
- deleteUserTag: () => {},
37
- };
38
- export default FilterAuthor;