@abtnode/ux 1.7.19 → 1.7.22
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/invitation/invitation-app.js +56 -0
- package/lib/invitation/invitation-passport.js +132 -0
- package/lib/invitation/invitation-receive.js +119 -0
- package/lib/invitation/invitation-user.js +94 -0
- package/lib/invitation/invitation.js +96 -0
- package/lib/locales/en.js +21 -0
- package/lib/locales/zh.js +21 -0
- package/lib/util/index.js +63 -0
- package/package.json +9 -6
|
@@ -0,0 +1,56 @@
|
|
|
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 _propTypes = _interopRequireDefault(require("prop-types"));
|
|
11
|
+
|
|
12
|
+
var _styled = _interopRequireDefault(require("@emotion/styled"));
|
|
13
|
+
|
|
14
|
+
var _Avatar = _interopRequireDefault(require("@arcblock/did-connect/lib/Avatar"));
|
|
15
|
+
|
|
16
|
+
var _templateObject;
|
|
17
|
+
|
|
18
|
+
const _excluded = ["invitation"];
|
|
19
|
+
|
|
20
|
+
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
21
|
+
|
|
22
|
+
function _taggedTemplateLiteral(strings, raw) { if (!raw) { raw = strings.slice(0); } return Object.freeze(Object.defineProperties(strings, { raw: { value: Object.freeze(raw) } })); }
|
|
23
|
+
|
|
24
|
+
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; }
|
|
25
|
+
|
|
26
|
+
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; }
|
|
27
|
+
|
|
28
|
+
function InvitationApp(_ref) {
|
|
29
|
+
let {
|
|
30
|
+
invitation
|
|
31
|
+
} = _ref,
|
|
32
|
+
rest = _objectWithoutProperties(_ref, _excluded);
|
|
33
|
+
|
|
34
|
+
return /*#__PURE__*/_react.default.createElement(Root, rest, /*#__PURE__*/_react.default.createElement(_Avatar.default, {
|
|
35
|
+
did: invitation.info.did,
|
|
36
|
+
src: invitation.info.logo,
|
|
37
|
+
style: {
|
|
38
|
+
flexShrink: 0
|
|
39
|
+
}
|
|
40
|
+
}), /*#__PURE__*/_react.default.createElement("div", {
|
|
41
|
+
className: "invite-app__content"
|
|
42
|
+
}, /*#__PURE__*/_react.default.createElement("div", {
|
|
43
|
+
className: "invite-app__title"
|
|
44
|
+
}, invitation.info.name), /*#__PURE__*/_react.default.createElement("div", {
|
|
45
|
+
className: "invite-app__description"
|
|
46
|
+
}, invitation.info.description)));
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
InvitationApp.propTypes = {
|
|
50
|
+
invitation: _propTypes.default.object.isRequired
|
|
51
|
+
};
|
|
52
|
+
|
|
53
|
+
const Root = _styled.default.div(_templateObject || (_templateObject = _taggedTemplateLiteral(["\n display: flex;\n justify-content: space-between;\n align-items: center;\n overflow: hidden;\n .invite-app__content {\n flex: 1;\n margin: 0 12px;\n font-weight: 700;\n overflow: hidden;\n }\n .invite-app__title {\n line-height: 1;\n margin-bottom: 2px;\n overflow: hidden;\n }\n .invite-app__description {\n font-size: 12px;\n white-space: nowrap;\n text-overflow: ellipsis;\n height: 1.3em;\n color: #999;\n overflow: hidden;\n }\n"])));
|
|
54
|
+
|
|
55
|
+
var _default = InvitationApp;
|
|
56
|
+
exports.default = _default;
|
|
@@ -0,0 +1,132 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.default = void 0;
|
|
7
|
+
|
|
8
|
+
var _react = _interopRequireWildcard(require("react"));
|
|
9
|
+
|
|
10
|
+
var _propTypes = _interopRequireDefault(require("prop-types"));
|
|
11
|
+
|
|
12
|
+
var _styled = _interopRequireDefault(require("@emotion/styled"));
|
|
13
|
+
|
|
14
|
+
var _createPassportSvg = _interopRequireDefault(require("@abtnode/auth/lib/util/create-passport-svg"));
|
|
15
|
+
|
|
16
|
+
var _context = require("@arcblock/ux/lib/Locale/context");
|
|
17
|
+
|
|
18
|
+
var _Dialog = _interopRequireDefault(require("@arcblock/ux/lib/Dialog"));
|
|
19
|
+
|
|
20
|
+
var _iconsMaterial = require("@mui/icons-material");
|
|
21
|
+
|
|
22
|
+
var _templateObject;
|
|
23
|
+
|
|
24
|
+
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
25
|
+
|
|
26
|
+
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); }
|
|
27
|
+
|
|
28
|
+
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; }
|
|
29
|
+
|
|
30
|
+
function _taggedTemplateLiteral(strings, raw) { if (!raw) { raw = strings.slice(0); } return Object.freeze(Object.defineProperties(strings, { raw: { value: Object.freeze(raw) } })); }
|
|
31
|
+
|
|
32
|
+
function InvitationPassport(_ref) {
|
|
33
|
+
let {
|
|
34
|
+
invitation,
|
|
35
|
+
passportColor
|
|
36
|
+
} = _ref;
|
|
37
|
+
const [open, setOpen] = (0, _react.useState)(false);
|
|
38
|
+
const {
|
|
39
|
+
t
|
|
40
|
+
} = (0, _react.useContext)(_context.LocaleContext);
|
|
41
|
+
const roleName = (0, _react.useMemo)(() => {
|
|
42
|
+
const roleRaw = invitation.role.title || invitation.role.name;
|
|
43
|
+
return roleRaw.toUpperCase();
|
|
44
|
+
}, [invitation.role.title, invitation.role.name]);
|
|
45
|
+
const display = (0, _react.useMemo)(() => {
|
|
46
|
+
return (0, _createPassportSvg.default)({
|
|
47
|
+
title: roleName,
|
|
48
|
+
issuer: invitation.info.name,
|
|
49
|
+
issuerDid: invitation.info.appDid,
|
|
50
|
+
ownerName: 'Your Name',
|
|
51
|
+
// can't get avatar, cause user is not login
|
|
52
|
+
// ownerAvatarUrl: user.avatar,
|
|
53
|
+
isDataUrl: true,
|
|
54
|
+
preferredColor: invitation.info.passportColor || passportColor
|
|
55
|
+
});
|
|
56
|
+
}, [invitation, roleName]);
|
|
57
|
+
const onViewPermission = (0, _react.useCallback)(() => {
|
|
58
|
+
setOpen(true);
|
|
59
|
+
}, []);
|
|
60
|
+
const onClose = (0, _react.useCallback)(() => {
|
|
61
|
+
setOpen(false);
|
|
62
|
+
}, []);
|
|
63
|
+
return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement(Root, null, /*#__PURE__*/_react.default.createElement("div", {
|
|
64
|
+
className: "invite-passport__card"
|
|
65
|
+
}, /*#__PURE__*/_react.default.createElement("img", {
|
|
66
|
+
src: display,
|
|
67
|
+
alt: "passport",
|
|
68
|
+
className: "invite-passport__cover"
|
|
69
|
+
})), /*#__PURE__*/_react.default.createElement("div", {
|
|
70
|
+
className: "invite-passport__content"
|
|
71
|
+
}, /*#__PURE__*/_react.default.createElement("div", {
|
|
72
|
+
className: "invite-passport__title"
|
|
73
|
+
}, roleName), /*#__PURE__*/_react.default.createElement("div", {
|
|
74
|
+
className: "invite-passport__description",
|
|
75
|
+
title: invitation.role.description
|
|
76
|
+
}, invitation.role.description), /*#__PURE__*/_react.default.createElement("div", {
|
|
77
|
+
style: {
|
|
78
|
+
flex: 1
|
|
79
|
+
}
|
|
80
|
+
}), /*#__PURE__*/_react.default.createElement("div", {
|
|
81
|
+
className: "invite-passport__view-permission",
|
|
82
|
+
onClick: onViewPermission
|
|
83
|
+
}, t('invite.viewPermission')))), /*#__PURE__*/_react.default.createElement(_Dialog.default, {
|
|
84
|
+
open: open,
|
|
85
|
+
title: t('invite.viewPermission'),
|
|
86
|
+
PaperProps: {
|
|
87
|
+
style: {
|
|
88
|
+
minHeight: 'auto',
|
|
89
|
+
paddingBottom: '20px'
|
|
90
|
+
}
|
|
91
|
+
},
|
|
92
|
+
onClose: onClose
|
|
93
|
+
}, invitation.role.permissions && invitation.role.permissions.length > 0 ? /*#__PURE__*/_react.default.createElement("ul", {
|
|
94
|
+
style: {
|
|
95
|
+
listStyle: 'circle',
|
|
96
|
+
padding: '0 20px'
|
|
97
|
+
}
|
|
98
|
+
}, invitation.role.permissions.map(item => /*#__PURE__*/_react.default.createElement("li", {
|
|
99
|
+
key: item.name,
|
|
100
|
+
style: {
|
|
101
|
+
listStyle: 'circle'
|
|
102
|
+
}
|
|
103
|
+
}, item.description))) : /*#__PURE__*/_react.default.createElement("div", {
|
|
104
|
+
style: {
|
|
105
|
+
color: '#999',
|
|
106
|
+
textAlign: 'center'
|
|
107
|
+
}
|
|
108
|
+
}, /*#__PURE__*/_react.default.createElement(_iconsMaterial.Inbox, {
|
|
109
|
+
style: {
|
|
110
|
+
width: '30px',
|
|
111
|
+
height: '30px'
|
|
112
|
+
}
|
|
113
|
+
}), /*#__PURE__*/_react.default.createElement("div", null, t('invite.emptyPermission')))));
|
|
114
|
+
}
|
|
115
|
+
|
|
116
|
+
InvitationPassport.propTypes = {
|
|
117
|
+
invitation: _propTypes.default.object.isRequired,
|
|
118
|
+
passportColor: _propTypes.default.string
|
|
119
|
+
};
|
|
120
|
+
InvitationPassport.defaultProps = {
|
|
121
|
+
passportColor: 'auto'
|
|
122
|
+
};
|
|
123
|
+
|
|
124
|
+
const Root = _styled.default.div(_templateObject || (_templateObject = _taggedTemplateLiteral(["\n display: flex;\n max-width: 350px;\n margin: 30px auto;\n .invite-passport__card {\n margin-right: 12px;\n width: 100px;\n height: 100px;\n flex-shrink: 0;\n .invite-passport__cover {\n width: 100%;\n height: 100%;\n }\n }\n .invite-passport__content {\n flex: 1;\n display: flex;\n flex-direction: column;\n }\n .invite-passport__title {\n font-weight: 700;\n font-size: 16px;\n }\n .invite-passport__description {\n overflow: hidden;\n text-overflow: ellipsis;\n display: -webkit-box;\n -webkit-line-clamp: 2;\n -webkit-box-orient: vertical;\n height: 3em;\n color: #999;\n font-size: 14px;\n }\n .invite-passport__view-permission {\n cursor: pointer;\n font-size: 14px;\n font-weight: 600;\n line-height: 18px;\n color: ", ";\n }\n"])), _ref2 => {
|
|
125
|
+
let {
|
|
126
|
+
theme
|
|
127
|
+
} = _ref2;
|
|
128
|
+
return theme.palette.primary.main;
|
|
129
|
+
});
|
|
130
|
+
|
|
131
|
+
var _default = InvitationPassport;
|
|
132
|
+
exports.default = _default;
|
|
@@ -0,0 +1,119 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.default = void 0;
|
|
7
|
+
|
|
8
|
+
var _react = _interopRequireWildcard(require("react"));
|
|
9
|
+
|
|
10
|
+
var _propTypes = _interopRequireDefault(require("prop-types"));
|
|
11
|
+
|
|
12
|
+
var _styled = _interopRequireDefault(require("@emotion/styled"));
|
|
13
|
+
|
|
14
|
+
var _context = require("@arcblock/ux/lib/Locale/context");
|
|
15
|
+
|
|
16
|
+
var _Connect = _interopRequireDefault(require("@arcblock/did-connect/lib/Connect"));
|
|
17
|
+
|
|
18
|
+
var _Button = _interopRequireDefault(require("@arcblock/did-connect/lib/Button"));
|
|
19
|
+
|
|
20
|
+
var _utils = require("@arcblock/did-connect/lib/utils");
|
|
21
|
+
|
|
22
|
+
var _util = require("../util");
|
|
23
|
+
|
|
24
|
+
var _usePassportId = _interopRequireDefault(require("../../lib/hooks/use-passport-id"));
|
|
25
|
+
|
|
26
|
+
var _templateObject;
|
|
27
|
+
|
|
28
|
+
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
29
|
+
|
|
30
|
+
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); }
|
|
31
|
+
|
|
32
|
+
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; }
|
|
33
|
+
|
|
34
|
+
function _taggedTemplateLiteral(strings, raw) { if (!raw) { raw = strings.slice(0); } return Object.freeze(Object.defineProperties(strings, { raw: { value: Object.freeze(raw) } })); }
|
|
35
|
+
|
|
36
|
+
function InvitationReceive(_ref) {
|
|
37
|
+
let {
|
|
38
|
+
invitation,
|
|
39
|
+
checkFn,
|
|
40
|
+
onLoginSuccess,
|
|
41
|
+
onReceive
|
|
42
|
+
} = _ref;
|
|
43
|
+
const [open, setOpen] = (0, _react.useState)(false);
|
|
44
|
+
const {
|
|
45
|
+
t,
|
|
46
|
+
locale
|
|
47
|
+
} = (0, _context.useLocaleContext)();
|
|
48
|
+
const {
|
|
49
|
+
getPassportId
|
|
50
|
+
} = (0, _usePassportId.default)();
|
|
51
|
+
const extraParams = {
|
|
52
|
+
passportId: getPassportId(),
|
|
53
|
+
inviteId: invitation.inviteId
|
|
54
|
+
};
|
|
55
|
+
const onClose = (0, _react.useCallback)(() => {
|
|
56
|
+
setOpen(false);
|
|
57
|
+
}, []);
|
|
58
|
+
const onLogin = (0, _react.useCallback)(function () {
|
|
59
|
+
setOpen(false);
|
|
60
|
+
onLoginSuccess(...arguments);
|
|
61
|
+
}, [onLoginSuccess]);
|
|
62
|
+
const onClickReceive = (0, _react.useCallback)(() => {
|
|
63
|
+
if (typeof onReceive === 'function') {
|
|
64
|
+
onReceive();
|
|
65
|
+
return;
|
|
66
|
+
}
|
|
67
|
+
|
|
68
|
+
setOpen(true);
|
|
69
|
+
}, []);
|
|
70
|
+
return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement(Root, null, /*#__PURE__*/_react.default.createElement(_Button.default, {
|
|
71
|
+
size: "large",
|
|
72
|
+
variant: "contained",
|
|
73
|
+
className: "invite-receive__button",
|
|
74
|
+
"data-cy": "invite-receive-passport",
|
|
75
|
+
color: "primary",
|
|
76
|
+
onClick: onClickReceive
|
|
77
|
+
}, t('invite.receive')), /*#__PURE__*/_react.default.createElement("div", {
|
|
78
|
+
className: "invite-receive__until"
|
|
79
|
+
}, t('invite.validUntil'), (0, _util.formatDateTime)(invitation.expireDate))), /*#__PURE__*/_react.default.createElement(_Connect.default, {
|
|
80
|
+
popup: true,
|
|
81
|
+
open: open,
|
|
82
|
+
className: "connect",
|
|
83
|
+
action: "invite",
|
|
84
|
+
checkFn: checkFn,
|
|
85
|
+
checkTimeout: 10 * 60 * 1000,
|
|
86
|
+
onSuccess: onLogin,
|
|
87
|
+
onClose: onClose,
|
|
88
|
+
locale: locale,
|
|
89
|
+
webWalletUrl: (0, _utils.getWebWalletUrl)(),
|
|
90
|
+
messages: {
|
|
91
|
+
title: t('receive.dialog.title'),
|
|
92
|
+
scan: t('receive.dialog.scan'),
|
|
93
|
+
confirm: t('receive.dialog.confirm'),
|
|
94
|
+
success: t('receive.dialog.success')
|
|
95
|
+
},
|
|
96
|
+
extraParams: extraParams
|
|
97
|
+
}));
|
|
98
|
+
}
|
|
99
|
+
|
|
100
|
+
InvitationReceive.propTypes = {
|
|
101
|
+
invitation: _propTypes.default.object.isRequired,
|
|
102
|
+
checkFn: _propTypes.default.func.isRequired,
|
|
103
|
+
onLoginSuccess: _propTypes.default.func,
|
|
104
|
+
onReceive: _propTypes.default.func
|
|
105
|
+
};
|
|
106
|
+
InvitationReceive.defaultProps = {
|
|
107
|
+
onLoginSuccess: () => {},
|
|
108
|
+
onReceive: null
|
|
109
|
+
};
|
|
110
|
+
|
|
111
|
+
const Root = _styled.default.div(_templateObject || (_templateObject = _taggedTemplateLiteral(["\n text-align: center;\n .invite-receive__logo-wrapper {\n display: inline-flex;\n align-items: center;\n color: #9397a1;\n font-size: 14px;\n }\n .invite-receive__logo {\n height: 16px;\n margin-left: 8px;\n }\n .invite-receive__button {\n width: 100%;\n margin: 16px 0;\n }\n .invite-receive__until {\n text-align: center;\n font-size: 14px;\n }\n .invite-receive__description {\n color: #999;\n text-align: left;\n list-style: decimal;\n padding: 0;\n padding-left: 1.2em;\n margin: 40px 0;\n }\n .invite-receive__description-item {\n list-style: decimal;\n }\n .invite-receive__link {\n color: ", ";\n }\n"])), _ref2 => {
|
|
112
|
+
let {
|
|
113
|
+
theme
|
|
114
|
+
} = _ref2;
|
|
115
|
+
return theme.palette.primary.main;
|
|
116
|
+
});
|
|
117
|
+
|
|
118
|
+
var _default = InvitationReceive;
|
|
119
|
+
exports.default = _default;
|
|
@@ -0,0 +1,94 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.default = void 0;
|
|
7
|
+
|
|
8
|
+
var _react = _interopRequireWildcard(require("react"));
|
|
9
|
+
|
|
10
|
+
var _propTypes = _interopRequireDefault(require("prop-types"));
|
|
11
|
+
|
|
12
|
+
var _styled = _interopRequireDefault(require("@emotion/styled"));
|
|
13
|
+
|
|
14
|
+
var _Avatar = _interopRequireDefault(require("@arcblock/did-connect/lib/Avatar"));
|
|
15
|
+
|
|
16
|
+
var _context = require("@arcblock/ux/lib/Locale/context");
|
|
17
|
+
|
|
18
|
+
var _util = require("../util");
|
|
19
|
+
|
|
20
|
+
var _templateObject;
|
|
21
|
+
|
|
22
|
+
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
23
|
+
|
|
24
|
+
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); }
|
|
25
|
+
|
|
26
|
+
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; }
|
|
27
|
+
|
|
28
|
+
function _taggedTemplateLiteral(strings, raw) { if (!raw) { raw = strings.slice(0); } return Object.freeze(Object.defineProperties(strings, { raw: { value: Object.freeze(raw) } })); }
|
|
29
|
+
|
|
30
|
+
function InvitationUser(_ref) {
|
|
31
|
+
let {
|
|
32
|
+
invitation
|
|
33
|
+
} = _ref;
|
|
34
|
+
const {
|
|
35
|
+
t
|
|
36
|
+
} = (0, _context.useLocaleContext)();
|
|
37
|
+
const roleName = (0, _react.useMemo)(() => {
|
|
38
|
+
const role = invitation.role.title || invitation.role.name;
|
|
39
|
+
return role.toUpperCase();
|
|
40
|
+
}, [invitation.role.title, invitation.role.name]);
|
|
41
|
+
const message = (0, _react.useMemo)(() => {
|
|
42
|
+
return t('invite.message', {
|
|
43
|
+
name: '{{name}}',
|
|
44
|
+
role: roleName,
|
|
45
|
+
dapp: '{{dapp}}'
|
|
46
|
+
});
|
|
47
|
+
}, [t, roleName]);
|
|
48
|
+
const accountLink = (0, _util.getExplorerLink)(invitation.info.chainHost, invitation.inviter.did, 'account');
|
|
49
|
+
const messageList = (0, _util.patchJsxToLocale)(message, {
|
|
50
|
+
name() {
|
|
51
|
+
return accountLink ? /*#__PURE__*/_react.default.createElement("a", {
|
|
52
|
+
key: "name",
|
|
53
|
+
target: "_blank",
|
|
54
|
+
href: accountLink,
|
|
55
|
+
className: "invite-user__link",
|
|
56
|
+
rel: "noreferrer"
|
|
57
|
+
}, invitation.inviter.fullName) : invitation.inviter.fullName;
|
|
58
|
+
},
|
|
59
|
+
|
|
60
|
+
dapp() {
|
|
61
|
+
return /*#__PURE__*/_react.default.createElement("a", {
|
|
62
|
+
key: "dapp",
|
|
63
|
+
target: "_blank",
|
|
64
|
+
href: invitation.info.url,
|
|
65
|
+
className: "invite-user__link",
|
|
66
|
+
rel: "noreferrer"
|
|
67
|
+
}, invitation.info.name);
|
|
68
|
+
}
|
|
69
|
+
|
|
70
|
+
});
|
|
71
|
+
return /*#__PURE__*/_react.default.createElement(Root, null, /*#__PURE__*/_react.default.createElement(_Avatar.default, {
|
|
72
|
+
did: invitation.inviter.did,
|
|
73
|
+
src: encodeURI(invitation.inviter.avatar),
|
|
74
|
+
size: 80,
|
|
75
|
+
shape: "circle",
|
|
76
|
+
variant: "circle"
|
|
77
|
+
}), /*#__PURE__*/_react.default.createElement("div", {
|
|
78
|
+
className: "invite-user__message"
|
|
79
|
+
}, messageList));
|
|
80
|
+
}
|
|
81
|
+
|
|
82
|
+
InvitationUser.propTypes = {
|
|
83
|
+
invitation: _propTypes.default.object.isRequired
|
|
84
|
+
};
|
|
85
|
+
|
|
86
|
+
const Root = _styled.default.div(_templateObject || (_templateObject = _taggedTemplateLiteral(["\n display: flex;\n flex-direction: column;\n justify-content: center;\n align-items: center;\n .invite-user__name {\n font-weight: 700;\n font-size: 16px;\n margin: 8px 0 2px 0;\n }\n .invite-user__address {\n font-size: 12px;\n }\n .invite-user__message {\n margin-top: 20px;\n font-weight: 700;\n /* width: 90%; */\n text-align: center;\n font-size: 18px;\n }\n .invite-user__link {\n color: ", ";\n }\n"])), _ref2 => {
|
|
87
|
+
let {
|
|
88
|
+
theme
|
|
89
|
+
} = _ref2;
|
|
90
|
+
return theme.palette.primary.main;
|
|
91
|
+
});
|
|
92
|
+
|
|
93
|
+
var _default = InvitationUser;
|
|
94
|
+
exports.default = _default;
|
|
@@ -0,0 +1,96 @@
|
|
|
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 _propTypes = _interopRequireDefault(require("prop-types"));
|
|
11
|
+
|
|
12
|
+
var _styled = _interopRequireDefault(require("@emotion/styled"));
|
|
13
|
+
|
|
14
|
+
var _ahooks = require("ahooks");
|
|
15
|
+
|
|
16
|
+
var _Spinner = _interopRequireDefault(require("@arcblock/ux/lib/Spinner"));
|
|
17
|
+
|
|
18
|
+
var _Result = _interopRequireDefault(require("@arcblock/ux/lib/Result"));
|
|
19
|
+
|
|
20
|
+
var _invitationPassport = _interopRequireDefault(require("./invitation-passport"));
|
|
21
|
+
|
|
22
|
+
var _invitationReceive = _interopRequireDefault(require("./invitation-receive"));
|
|
23
|
+
|
|
24
|
+
var _invitationUser = _interopRequireDefault(require("./invitation-user"));
|
|
25
|
+
|
|
26
|
+
var _invitationApp = _interopRequireDefault(require("./invitation-app"));
|
|
27
|
+
|
|
28
|
+
var _wrapLocale = _interopRequireDefault(require("../wrap-locale"));
|
|
29
|
+
|
|
30
|
+
var _templateObject;
|
|
31
|
+
|
|
32
|
+
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
33
|
+
|
|
34
|
+
function _taggedTemplateLiteral(strings, raw) { if (!raw) { raw = strings.slice(0); } return Object.freeze(Object.defineProperties(strings, { raw: { value: Object.freeze(raw) } })); }
|
|
35
|
+
|
|
36
|
+
function Invitation(_ref) {
|
|
37
|
+
let {
|
|
38
|
+
getDataFn,
|
|
39
|
+
passportColor,
|
|
40
|
+
onLoginSuccess,
|
|
41
|
+
checkFn,
|
|
42
|
+
onReceive
|
|
43
|
+
} = _ref;
|
|
44
|
+
const state = (0, _ahooks.useRequest)(getDataFn);
|
|
45
|
+
|
|
46
|
+
if (state.loading) {
|
|
47
|
+
return /*#__PURE__*/_react.default.createElement(_Spinner.default, null);
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
if (state.error) {
|
|
51
|
+
var _state$error, _state$error$response;
|
|
52
|
+
|
|
53
|
+
return /*#__PURE__*/_react.default.createElement(_Result.default, {
|
|
54
|
+
status: "404",
|
|
55
|
+
title: (_state$error = state.error) === null || _state$error === void 0 ? void 0 : (_state$error$response = _state$error.response) === null || _state$error$response === void 0 ? void 0 : _state$error$response.data,
|
|
56
|
+
description: ""
|
|
57
|
+
});
|
|
58
|
+
}
|
|
59
|
+
|
|
60
|
+
return /*#__PURE__*/_react.default.createElement(Root, {
|
|
61
|
+
className: "page-invite__wrapper"
|
|
62
|
+
}, /*#__PURE__*/_react.default.createElement(_invitationApp.default, {
|
|
63
|
+
invitation: state.data
|
|
64
|
+
}), /*#__PURE__*/_react.default.createElement("div", {
|
|
65
|
+
className: "page-invite__card"
|
|
66
|
+
}, /*#__PURE__*/_react.default.createElement(_invitationUser.default, {
|
|
67
|
+
invitation: state.data
|
|
68
|
+
}), /*#__PURE__*/_react.default.createElement(_invitationPassport.default, {
|
|
69
|
+
invitation: state.data,
|
|
70
|
+
passportColor: passportColor
|
|
71
|
+
}), /*#__PURE__*/_react.default.createElement(_invitationReceive.default, {
|
|
72
|
+
invitation: state.data,
|
|
73
|
+
onLoginSuccess: onLoginSuccess,
|
|
74
|
+
checkFn: checkFn,
|
|
75
|
+
onReceive: onReceive
|
|
76
|
+
})));
|
|
77
|
+
}
|
|
78
|
+
|
|
79
|
+
Invitation.propTypes = {
|
|
80
|
+
getDataFn: _propTypes.default.func.isRequired,
|
|
81
|
+
checkFn: _propTypes.default.func.isRequired,
|
|
82
|
+
onLoginSuccess: _propTypes.default.func,
|
|
83
|
+
onReceive: _propTypes.default.func,
|
|
84
|
+
passportColor: _propTypes.default.string
|
|
85
|
+
};
|
|
86
|
+
Invitation.defaultProps = {
|
|
87
|
+
onLoginSuccess: () => {},
|
|
88
|
+
passportColor: 'auto',
|
|
89
|
+
onReceive: null
|
|
90
|
+
};
|
|
91
|
+
|
|
92
|
+
const Root = _styled.default.div(_templateObject || (_templateObject = _taggedTemplateLiteral(["\n max-width: 460px;\n max-height: 650px;\n min-height: 450px;\n width: 90%;\n height: 80%;\n display: flex;\n flex-direction: column;\n .page-invite__card {\n background-color: #fff;\n border-radius: 4px;\n flex: 1;\n padding: 20px 30px;\n margin-top: 10px;\n }\n .page-invite__app {\n margin-top: 20px;\n }\n"])));
|
|
93
|
+
|
|
94
|
+
var _default = (0, _wrapLocale.default)(Invitation);
|
|
95
|
+
|
|
96
|
+
exports.default = _default;
|
package/lib/locales/en.js
CHANGED
|
@@ -29,5 +29,26 @@ module.exports = flat({
|
|
|
29
29
|
common: {
|
|
30
30
|
next: 'Next',
|
|
31
31
|
complete: 'Complete'
|
|
32
|
+
},
|
|
33
|
+
invite: {
|
|
34
|
+
message: '{name} invite you to be the {role} of {dapp}',
|
|
35
|
+
receive: 'Receive with',
|
|
36
|
+
validUntil: 'Valid until:',
|
|
37
|
+
viewPermission: 'View Permission',
|
|
38
|
+
emptyPermission: 'Empty Permission',
|
|
39
|
+
open: 'Open',
|
|
40
|
+
description: {
|
|
41
|
+
step1: 'Download and setup your {wallet}',
|
|
42
|
+
step2: 'Click above button to receive passport',
|
|
43
|
+
step3: 'Login in {dapp} with received passport'
|
|
44
|
+
}
|
|
45
|
+
},
|
|
46
|
+
receive: {
|
|
47
|
+
dialog: {
|
|
48
|
+
title: 'Use your DID Wallet to receive passport',
|
|
49
|
+
scan: 'Connect your DID Wallet to receive passport',
|
|
50
|
+
confirm: 'Confirm on your DID Wallet',
|
|
51
|
+
success: 'You are successfully connected'
|
|
52
|
+
}
|
|
32
53
|
}
|
|
33
54
|
});
|
package/lib/locales/zh.js
CHANGED
|
@@ -28,5 +28,26 @@ module.exports = flat({
|
|
|
28
28
|
common: {
|
|
29
29
|
next: '下一步',
|
|
30
30
|
complete: '完成'
|
|
31
|
+
},
|
|
32
|
+
invite: {
|
|
33
|
+
message: '{name} 邀请你成为 {dapp} 的 {role}',
|
|
34
|
+
receive: '领取通行证',
|
|
35
|
+
validUntil: '过期时间:',
|
|
36
|
+
viewPermission: '查看权限',
|
|
37
|
+
emptyPermission: '没有权限',
|
|
38
|
+
open: '打开',
|
|
39
|
+
description: {
|
|
40
|
+
step1: '下载并设置好你的 {wallet}',
|
|
41
|
+
step2: '点击上面的按钮领取通行证',
|
|
42
|
+
step3: '使用通行证登录 {dapp}'
|
|
43
|
+
}
|
|
44
|
+
},
|
|
45
|
+
receive: {
|
|
46
|
+
dialog: {
|
|
47
|
+
title: '请连接 DID 钱包领取通行证',
|
|
48
|
+
scan: '用您的 DID 钱包扫描下面的二维码领取通行证',
|
|
49
|
+
confirm: '在您的 DID 钱包上确认',
|
|
50
|
+
success: '连接成功'
|
|
51
|
+
}
|
|
31
52
|
}
|
|
32
53
|
});
|
package/lib/util/index.js
CHANGED
|
@@ -3,12 +3,19 @@
|
|
|
3
3
|
Object.defineProperty(exports, "__esModule", {
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
|
+
exports.formatDateTime = formatDateTime;
|
|
6
7
|
exports.getAccessUrl = getAccessUrl;
|
|
8
|
+
exports.getExplorerLink = getExplorerLink;
|
|
9
|
+
exports.patchJsxToLocale = patchJsxToLocale;
|
|
7
10
|
exports.sleep = sleep;
|
|
8
11
|
exports.validateDomain = void 0;
|
|
9
12
|
|
|
10
13
|
var _constant = require("@abtnode/constant");
|
|
11
14
|
|
|
15
|
+
var _dayjs = _interopRequireDefault(require("dayjs"));
|
|
16
|
+
|
|
17
|
+
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
18
|
+
|
|
12
19
|
function sleep(t) {
|
|
13
20
|
return new Promise(resolve => setTimeout(resolve, t));
|
|
14
21
|
}
|
|
@@ -81,4 +88,60 @@ function getAccessUrl(hostname) {
|
|
|
81
88
|
searchParams.append(key, params[key]);
|
|
82
89
|
});
|
|
83
90
|
return "".concat(url, "?").concat(searchParams.toString());
|
|
91
|
+
}
|
|
92
|
+
|
|
93
|
+
function formatDateTime(date) {
|
|
94
|
+
return (0, _dayjs.default)(date).format('YYYY-MM-DD HH:mm');
|
|
95
|
+
}
|
|
96
|
+
|
|
97
|
+
function getExplorerLink(chainHost, did, type) {
|
|
98
|
+
if (!chainHost) return undefined;
|
|
99
|
+
|
|
100
|
+
try {
|
|
101
|
+
const chainUrl = new URL(chainHost);
|
|
102
|
+
|
|
103
|
+
switch (type) {
|
|
104
|
+
case 'account':
|
|
105
|
+
chainUrl.pathname = "/explorer/accounts/".concat(did);
|
|
106
|
+
break;
|
|
107
|
+
|
|
108
|
+
case 'tx':
|
|
109
|
+
chainUrl.pathname = "/explorer/txs/".concat(did);
|
|
110
|
+
break;
|
|
111
|
+
|
|
112
|
+
case 'token':
|
|
113
|
+
chainUrl.pathname = "/explorer/tokens/".concat(did);
|
|
114
|
+
break;
|
|
115
|
+
|
|
116
|
+
case 'factory':
|
|
117
|
+
chainUrl.pathname = "/explorer/factories/".concat(did);
|
|
118
|
+
break;
|
|
119
|
+
|
|
120
|
+
case 'bridge':
|
|
121
|
+
chainUrl.pathname = "/explorer/bridges/".concat(did);
|
|
122
|
+
break;
|
|
123
|
+
|
|
124
|
+
default:
|
|
125
|
+
chainUrl.pathname = '/';
|
|
126
|
+
}
|
|
127
|
+
|
|
128
|
+
return chainUrl.href;
|
|
129
|
+
} catch (_unused) {
|
|
130
|
+
return undefined;
|
|
131
|
+
}
|
|
132
|
+
}
|
|
133
|
+
|
|
134
|
+
function patchJsxToLocale(rawStr) {
|
|
135
|
+
let replaceMap = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
|
|
136
|
+
return rawStr.split(/{{|}}/).map(item => {
|
|
137
|
+
if (replaceMap[item]) {
|
|
138
|
+
if (replaceMap[item] instanceof Function) {
|
|
139
|
+
return replaceMap[item]();
|
|
140
|
+
}
|
|
141
|
+
|
|
142
|
+
return replaceMap[item];
|
|
143
|
+
}
|
|
144
|
+
|
|
145
|
+
return item;
|
|
146
|
+
}).filter(Boolean);
|
|
84
147
|
}
|
package/package.json
CHANGED
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
"publishConfig": {
|
|
4
4
|
"access": "public"
|
|
5
5
|
},
|
|
6
|
-
"version": "1.7.
|
|
6
|
+
"version": "1.7.22",
|
|
7
7
|
"description": "UX components shared across abtnode packages",
|
|
8
8
|
"main": "lib/index.js",
|
|
9
9
|
"files": [
|
|
@@ -21,15 +21,18 @@
|
|
|
21
21
|
"author": "linchen <linchen1987@foxmail.com> (http://github.com/linchen1987)",
|
|
22
22
|
"license": "MIT",
|
|
23
23
|
"dependencies": {
|
|
24
|
-
"@abtnode/
|
|
25
|
-
"@
|
|
26
|
-
"@arcblock/
|
|
27
|
-
"@
|
|
24
|
+
"@abtnode/auth": "1.7.22",
|
|
25
|
+
"@abtnode/constant": "1.7.22",
|
|
26
|
+
"@arcblock/did-connect": "^2.1.14",
|
|
27
|
+
"@arcblock/ux": "^2.1.14",
|
|
28
|
+
"@blocklet/meta": "1.7.22",
|
|
28
29
|
"@emotion/react": "^11.9.0",
|
|
29
30
|
"@emotion/styled": "^11.8.1",
|
|
30
31
|
"@mui/icons-material": "^5.6.2",
|
|
31
32
|
"@mui/material": "^5.6.4",
|
|
32
33
|
"@mui/styles": "^5.6.2",
|
|
34
|
+
"ahooks": "^3.4.0",
|
|
35
|
+
"dayjs": "^1.11.2",
|
|
33
36
|
"notistack": "2.0.5",
|
|
34
37
|
"prop-types": "^15.7.2",
|
|
35
38
|
"react": "^18.1.0",
|
|
@@ -46,5 +49,5 @@
|
|
|
46
49
|
"babel-plugin-inline-react-svg": "^1.1.1",
|
|
47
50
|
"babel-plugin-styled-components": "^1.10.7"
|
|
48
51
|
},
|
|
49
|
-
"gitHead": "
|
|
52
|
+
"gitHead": "6190972e62b5e6b1039aa71a291b3e2c521df367"
|
|
50
53
|
}
|