@abtnode/ux 1.6.16 → 1.6.17
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/card-selector.js +122 -0
- package/lib/lost-passport.js +18 -39
- package/package.json +5 -4
|
@@ -0,0 +1,122 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.default = CardSelector;
|
|
7
|
+
|
|
8
|
+
var _react = _interopRequireWildcard(require("react"));
|
|
9
|
+
|
|
10
|
+
var _styledComponents = _interopRequireDefault(require("styled-components"));
|
|
11
|
+
|
|
12
|
+
var _propTypes = _interopRequireDefault(require("prop-types"));
|
|
13
|
+
|
|
14
|
+
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
15
|
+
|
|
16
|
+
function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
|
|
17
|
+
|
|
18
|
+
function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
|
|
19
|
+
|
|
20
|
+
function CardSelector(_ref) {
|
|
21
|
+
let {
|
|
22
|
+
list,
|
|
23
|
+
width,
|
|
24
|
+
height,
|
|
25
|
+
cardSpace,
|
|
26
|
+
onSelect,
|
|
27
|
+
defaultIndex
|
|
28
|
+
} = _ref;
|
|
29
|
+
const [selectedId, setSelectedId] = (0, _react.useState)(0);
|
|
30
|
+
const [translateX, setTranslateX] = (0, _react.useState)(0);
|
|
31
|
+
const outterCon = (0, _react.useRef)(null); // 选择卡片
|
|
32
|
+
|
|
33
|
+
const selectedItem = i => {
|
|
34
|
+
if (i < 0 || i > list.length - 1) {
|
|
35
|
+
return;
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
setSelectedId(i); // 外部容器大小
|
|
39
|
+
|
|
40
|
+
const outerWidth = outterCon.current.clientWidth;
|
|
41
|
+
setTranslateX(i * (width + cardSpace) - (outerWidth - width) / 2 + cardSpace * 0.5);
|
|
42
|
+
onSelect(i);
|
|
43
|
+
};
|
|
44
|
+
|
|
45
|
+
(0, _react.useEffect)(() => {
|
|
46
|
+
selectedItem(defaultIndex);
|
|
47
|
+
|
|
48
|
+
const func = e => e.preventDefault();
|
|
49
|
+
|
|
50
|
+
outterCon.current.addEventListener('touchmove', func, {
|
|
51
|
+
passive: false
|
|
52
|
+
});
|
|
53
|
+
return () => outterCon.current.removeEventListener('touchmove', func);
|
|
54
|
+
}, []);
|
|
55
|
+
let startX;
|
|
56
|
+
|
|
57
|
+
const touchstart = e => {
|
|
58
|
+
const point = e.touches[0];
|
|
59
|
+
startX = point.clientX;
|
|
60
|
+
};
|
|
61
|
+
|
|
62
|
+
const touchend = e => {
|
|
63
|
+
const point = e.changedTouches[0];
|
|
64
|
+
const diffX = startX - point.clientX;
|
|
65
|
+
|
|
66
|
+
if (Math.abs(diffX) > 60) {
|
|
67
|
+
if (diffX > 0) {
|
|
68
|
+
selectedItem(selectedId + 1);
|
|
69
|
+
} else {
|
|
70
|
+
selectedItem(selectedId - 1);
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
};
|
|
74
|
+
|
|
75
|
+
return /*#__PURE__*/_react.default.createElement(Contianer, {
|
|
76
|
+
ref: outterCon,
|
|
77
|
+
onTouchStart: touchstart,
|
|
78
|
+
onTouchEnd: touchend
|
|
79
|
+
}, /*#__PURE__*/_react.default.createElement("div", {
|
|
80
|
+
className: "card-container",
|
|
81
|
+
style: {
|
|
82
|
+
transform: "translate(".concat(-translateX, "px, 0)")
|
|
83
|
+
}
|
|
84
|
+
}, list.map((e, i) => {
|
|
85
|
+
return /*#__PURE__*/_react.default.createElement("div", {
|
|
86
|
+
className: "card-item ".concat(i === selectedId ? 'selected' : ''),
|
|
87
|
+
style: {
|
|
88
|
+
width,
|
|
89
|
+
height,
|
|
90
|
+
margin: cardSpace / 2
|
|
91
|
+
} // eslint-disable-next-line react/no-array-index-key
|
|
92
|
+
,
|
|
93
|
+
key: i,
|
|
94
|
+
onClick: () => selectedItem(i)
|
|
95
|
+
}, /*#__PURE__*/_react.default.createElement("img", {
|
|
96
|
+
src: e.src,
|
|
97
|
+
alt: e.name
|
|
98
|
+
}));
|
|
99
|
+
})));
|
|
100
|
+
}
|
|
101
|
+
|
|
102
|
+
const Contianer = _styledComponents.default.div.withConfig({
|
|
103
|
+
displayName: "card-selector__Contianer",
|
|
104
|
+
componentId: "sc-t0bkjd-0"
|
|
105
|
+
})(["overflow:hidden;mask-image:linear-gradient(to left,transparent,black 3%,black 97%,transparent);overflow:hidden;.card-container{display:flex;white-space:nowrap;width:max-content;transition:all ease 0.3s;}.card-item{display:inline-flex;justify-content:center;align-items:center;flex-shrink:0;cursor:pointer;img{max-width:100%;max-height:100%;width:auto;height:auto;outline:#526ded solid 0;transition:all ease 0.2s;box-shadow:rgba(0,0,0,0.2) 0 0 10px;}&.selected{cursor:default;img{outline:#526ded solid 5px;}}}"]);
|
|
106
|
+
|
|
107
|
+
CardSelector.propTypes = {
|
|
108
|
+
list: _propTypes.default.array,
|
|
109
|
+
width: _propTypes.default.number,
|
|
110
|
+
height: _propTypes.default.number,
|
|
111
|
+
cardSpace: _propTypes.default.number,
|
|
112
|
+
onSelect: _propTypes.default.func,
|
|
113
|
+
defaultIndex: _propTypes.default.number
|
|
114
|
+
};
|
|
115
|
+
CardSelector.defaultProps = {
|
|
116
|
+
list: '',
|
|
117
|
+
width: 300,
|
|
118
|
+
height: 400,
|
|
119
|
+
cardSpace: 40,
|
|
120
|
+
onSelect: () => {},
|
|
121
|
+
defaultIndex: 0
|
|
122
|
+
};
|
package/lib/lost-passport.js
CHANGED
|
@@ -19,14 +19,6 @@ var _CheckCircle = _interopRequireDefault(require("@material-ui/icons/CheckCircl
|
|
|
19
19
|
|
|
20
20
|
var _Box = _interopRequireDefault(require("@material-ui/core/Box"));
|
|
21
21
|
|
|
22
|
-
var _Radio = _interopRequireDefault(require("@material-ui/core/Radio"));
|
|
23
|
-
|
|
24
|
-
var _RadioGroup = _interopRequireDefault(require("@material-ui/core/RadioGroup"));
|
|
25
|
-
|
|
26
|
-
var _FormControlLabel = _interopRequireDefault(require("@material-ui/core/FormControlLabel"));
|
|
27
|
-
|
|
28
|
-
var _FormControl = _interopRequireDefault(require("@material-ui/core/FormControl"));
|
|
29
|
-
|
|
30
22
|
var _Stepper = _interopRequireDefault(require("@material-ui/core/Stepper"));
|
|
31
23
|
|
|
32
24
|
var _Step = _interopRequireDefault(require("@material-ui/core/Step"));
|
|
@@ -41,8 +33,6 @@ var _Done = _interopRequireDefault(require("@material-ui/icons/Done"));
|
|
|
41
33
|
|
|
42
34
|
var _Avatar = _interopRequireDefault(require("@material-ui/core/Avatar"));
|
|
43
35
|
|
|
44
|
-
var _Grid = _interopRequireDefault(require("@material-ui/core/Grid"));
|
|
45
|
-
|
|
46
36
|
var _Button = _interopRequireDefault(require("@arcblock/ux/lib/Button"));
|
|
47
37
|
|
|
48
38
|
var _Address = _interopRequireDefault(require("@arcblock/did-connect/lib/Address"));
|
|
@@ -51,6 +41,8 @@ var _context = require("@arcblock/ux/lib/Locale/context");
|
|
|
51
41
|
|
|
52
42
|
var _Connect = _interopRequireDefault(require("@arcblock/did-connect/lib/Connect"));
|
|
53
43
|
|
|
44
|
+
var _cardSelector = _interopRequireDefault(require("./card-selector"));
|
|
45
|
+
|
|
54
46
|
var _wrapLocale = _interopRequireDefault(require("./wrap-locale"));
|
|
55
47
|
|
|
56
48
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
@@ -188,28 +180,12 @@ function LostPassport(_ref2) {
|
|
|
188
180
|
}, user.fullName), /*#__PURE__*/_react.default.createElement(_Box.default, {
|
|
189
181
|
className: "did",
|
|
190
182
|
mt: 1
|
|
191
|
-
}, /*#__PURE__*/_react.default.createElement(_Address.default, null, user.did)))), /*#__PURE__*/_react.default.createElement(
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
}, /*#__PURE__*/_react.default.createElement(_RadioGroup.default, {
|
|
198
|
-
name: "passport",
|
|
199
|
-
value: passport,
|
|
200
|
-
onChange: handleChange
|
|
201
|
-
}, /*#__PURE__*/_react.default.createElement(_Grid.default, {
|
|
202
|
-
container: true,
|
|
203
|
-
spacing: 3
|
|
204
|
-
}, user.passportTypes.map(x => {
|
|
205
|
-
return /*#__PURE__*/_react.default.createElement(_Grid.default, {
|
|
206
|
-
item: true,
|
|
207
|
-
xs: 12,
|
|
208
|
-
sm: 6
|
|
209
|
-
}, /*#__PURE__*/_react.default.createElement(_FormControlLabel.default, {
|
|
210
|
-
value: x.name,
|
|
211
|
-
control: /*#__PURE__*/_react.default.createElement(_Radio.default, null),
|
|
212
|
-
label: /*#__PURE__*/_react.default.createElement("img", {
|
|
183
|
+
}, /*#__PURE__*/_react.default.createElement(_Address.default, null, user.did)))), /*#__PURE__*/_react.default.createElement("div", null, /*#__PURE__*/_react.default.createElement(_cardSelector.default, {
|
|
184
|
+
width: 230,
|
|
185
|
+
height: 306,
|
|
186
|
+
cardSpace: 24,
|
|
187
|
+
list: user.passportTypes.map(x => {
|
|
188
|
+
return {
|
|
213
189
|
src: createPassportSvg({
|
|
214
190
|
title: x.title,
|
|
215
191
|
issuer: x.issuer.name,
|
|
@@ -218,13 +194,16 @@ function LostPassport(_ref2) {
|
|
|
218
194
|
ownerAvatarUrl: user.avatar,
|
|
219
195
|
isDataUrl: true
|
|
220
196
|
}),
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
197
|
+
name: x.title
|
|
198
|
+
};
|
|
199
|
+
}),
|
|
200
|
+
onSelect: index => handleChange({
|
|
201
|
+
target: {
|
|
202
|
+
value: user.passportTypes[index].name
|
|
203
|
+
}
|
|
204
|
+
}),
|
|
205
|
+
defaultIndex: 0
|
|
206
|
+
})), /*#__PURE__*/_react.default.createElement(_Box.default, {
|
|
228
207
|
textAlign: "center"
|
|
229
208
|
}, /*#__PURE__*/_react.default.createElement(_Button.default, {
|
|
230
209
|
rounded: true,
|
package/package.json
CHANGED
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
"publishConfig": {
|
|
4
4
|
"access": "public"
|
|
5
5
|
},
|
|
6
|
-
"version": "1.6.
|
|
6
|
+
"version": "1.6.17",
|
|
7
7
|
"description": "UX components shared across abtnode packages",
|
|
8
8
|
"main": "lib/index.js",
|
|
9
9
|
"files": [
|
|
@@ -20,10 +20,11 @@
|
|
|
20
20
|
"author": "linchen <linchen1987@foxmail.com> (http://github.com/linchen1987)",
|
|
21
21
|
"license": "MIT",
|
|
22
22
|
"dependencies": {
|
|
23
|
-
"@arcblock/did-connect": "^1.16.
|
|
24
|
-
"@arcblock/ux": "^1.16.
|
|
23
|
+
"@arcblock/did-connect": "^1.16.20",
|
|
24
|
+
"@arcblock/ux": "^1.16.20",
|
|
25
25
|
"@material-ui/core": "^4.12.3",
|
|
26
26
|
"@material-ui/icons": "^4.11.2",
|
|
27
|
+
"prop-types": "^15.7.2",
|
|
27
28
|
"react": "^16.13.0",
|
|
28
29
|
"react-router-dom": "^5.1.2",
|
|
29
30
|
"styled-components": "^5.0.1"
|
|
@@ -37,5 +38,5 @@
|
|
|
37
38
|
"babel-plugin-inline-react-svg": "^1.1.1",
|
|
38
39
|
"babel-plugin-styled-components": "^1.10.7"
|
|
39
40
|
},
|
|
40
|
-
"gitHead": "
|
|
41
|
+
"gitHead": "d567a622a779eba43c95eaeb4633cb2b276bb7b9"
|
|
41
42
|
}
|