@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.
@@ -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.19",
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/constant": "1.7.19",
25
- "@arcblock/did-connect": "^2.1.6",
26
- "@arcblock/ux": "^2.1.6",
27
- "@blocklet/meta": "1.7.19",
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": "73c02fe34d02270e59c5edfeedd7e2a878b772c4"
52
+ "gitHead": "6190972e62b5e6b1039aa71a291b3e2c521df367"
50
53
  }