@blocklet/ui-react 2.13.4 → 2.13.6
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/UserCenter/components/danger-zone.js +1 -0
- package/lib/UserCenter/components/third-party-login/third-party-item.js +5 -1
- package/lib/UserSessions/components/user-sessions.d.ts +1 -1
- package/lib/UserSessions/components/user-sessions.js +8 -3
- package/package.json +4 -4
- package/src/UserCenter/components/danger-zone.tsx +3 -4
- package/src/UserCenter/components/settings.tsx +0 -4
- package/src/UserCenter/components/third-party-login/third-party-item.tsx +6 -1
- package/src/UserSessions/components/user-sessions.tsx +9 -4
|
@@ -48,6 +48,7 @@ export default function DangerZone() {
|
|
|
48
48
|
confirm: t("destroyMyself.confirm"),
|
|
49
49
|
success: t("destroyMyself.success")
|
|
50
50
|
},
|
|
51
|
+
// @ts-expect-error 该 did-connect 后端api 将结果塞在了 result 中,并做了加密,所以已经变成一个字符串了
|
|
51
52
|
onSuccess: ({ result }, decrypt = (x) => x) => {
|
|
52
53
|
const decryptResult = decrypt(result);
|
|
53
54
|
resolve(decryptResult);
|
|
@@ -21,10 +21,12 @@ import { useContext } from "react";
|
|
|
21
21
|
import pick from "lodash/pick";
|
|
22
22
|
import { getFederatedEnabled, getMaster } from "@arcblock/ux/lib/Util/federated";
|
|
23
23
|
import { LOGIN_PROVIDER, LOGIN_PROVIDER_NAME } from "@arcblock/ux/lib/Util/constant";
|
|
24
|
+
import { useStateContext } from "@arcblock/did-connect/lib/Connect/contexts/state";
|
|
24
25
|
import { translations } from "../../libs/locales.js";
|
|
25
26
|
export default function ThirdPartyItem({
|
|
26
27
|
item
|
|
27
28
|
}) {
|
|
29
|
+
const { blocklet: targetBlocklet } = useStateContext();
|
|
28
30
|
const { confirmApi, confirmHolder } = useConfirm();
|
|
29
31
|
const currentState = useReactive({
|
|
30
32
|
loading: false
|
|
@@ -35,7 +37,7 @@ export default function ThirdPartyItem({
|
|
|
35
37
|
});
|
|
36
38
|
const { session } = useContext(SessionContext);
|
|
37
39
|
const { bindOAuth, unbindOAuth, setBaseUrl, baseUrl: oauthBaseUrl } = session.useOAuth();
|
|
38
|
-
const { disconnectPasskey } = session.usePasskey();
|
|
40
|
+
const { disconnectPasskey, setTargetAppPid } = session.usePasskey();
|
|
39
41
|
const iconMap = {
|
|
40
42
|
// email: MailOutlineRoundedIcon,
|
|
41
43
|
[LOGIN_PROVIDER.AUTH0]: MailOutlineRoundedIcon,
|
|
@@ -108,6 +110,7 @@ export default function ThirdPartyItem({
|
|
|
108
110
|
baseUrl = master.appUrl;
|
|
109
111
|
}
|
|
110
112
|
setBaseUrl(baseUrl);
|
|
113
|
+
setTargetAppPid(targetBlocklet?.appPid);
|
|
111
114
|
bindOAuth({
|
|
112
115
|
session,
|
|
113
116
|
oauthItem: {
|
|
@@ -116,6 +119,7 @@ export default function ThirdPartyItem({
|
|
|
116
119
|
}
|
|
117
120
|
}).then(resolve).catch(reject).finally(() => {
|
|
118
121
|
setBaseUrl(backupBaseUrl);
|
|
122
|
+
setTargetAppPid();
|
|
119
123
|
});
|
|
120
124
|
}
|
|
121
125
|
});
|
|
@@ -126,7 +126,11 @@ export default function UserSessions({
|
|
|
126
126
|
},
|
|
127
127
|
cancelButtonText: t("cancel"),
|
|
128
128
|
onConfirm: async () => {
|
|
129
|
-
await client.user.logout({
|
|
129
|
+
await client.user.logout({
|
|
130
|
+
visitorId,
|
|
131
|
+
// @ts-expect-error js-sdk 1.16.43 中会包含这个参数
|
|
132
|
+
includeFederated: true
|
|
133
|
+
});
|
|
130
134
|
pageState.refresh();
|
|
131
135
|
confirmApi.close();
|
|
132
136
|
}
|
|
@@ -147,9 +151,10 @@ export default function UserSessions({
|
|
|
147
151
|
cancelButtonText: t("cancel"),
|
|
148
152
|
onConfirm: async () => {
|
|
149
153
|
await client.user.logout({
|
|
150
|
-
// @ts-expect-error js-sdk 发了新版后,会有这个类型定义
|
|
151
154
|
status: filterParams.status,
|
|
152
|
-
visitorId: currentVisitorId
|
|
155
|
+
visitorId: currentVisitorId,
|
|
156
|
+
// @ts-expect-error js-sdk 1.16.43 中会包含这个参数
|
|
157
|
+
includeFederated: true
|
|
153
158
|
});
|
|
154
159
|
pageState.refresh();
|
|
155
160
|
confirmApi.close();
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@blocklet/ui-react",
|
|
3
|
-
"version": "2.13.
|
|
3
|
+
"version": "2.13.6",
|
|
4
4
|
"description": "Some useful front-end web components that can be used in Blocklets.",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"react",
|
|
@@ -34,8 +34,8 @@
|
|
|
34
34
|
"dependencies": {
|
|
35
35
|
"@abtnode/constant": "^1.16.42",
|
|
36
36
|
"@abtnode/util": "^1.16.42",
|
|
37
|
-
"@arcblock/bridge": "^2.13.
|
|
38
|
-
"@arcblock/react-hooks": "^2.13.
|
|
37
|
+
"@arcblock/bridge": "^2.13.6",
|
|
38
|
+
"@arcblock/react-hooks": "^2.13.6",
|
|
39
39
|
"@arcblock/ws": "^1.20.1",
|
|
40
40
|
"@blocklet/constant": "^1.16.42",
|
|
41
41
|
"@blocklet/did-space-react": "^1.0.48",
|
|
@@ -94,5 +94,5 @@
|
|
|
94
94
|
"jest": "^29.7.0",
|
|
95
95
|
"unbuild": "^2.0.0"
|
|
96
96
|
},
|
|
97
|
-
"gitHead": "
|
|
97
|
+
"gitHead": "1cc41a6a655f93eb1536a9dd36fe3979a2c654c8"
|
|
98
98
|
}
|
|
@@ -7,6 +7,7 @@ import { useConfirm } from '@arcblock/ux/lib/Dialog';
|
|
|
7
7
|
import { SessionContext } from '@arcblock/did-connect/lib/Session';
|
|
8
8
|
import { LOGIN_PROVIDER } from '@blocklet/constant';
|
|
9
9
|
import Toast from '@arcblock/ux/lib/Toast';
|
|
10
|
+
import type { ConnectProps } from '@arcblock/did-connect/lib/types';
|
|
10
11
|
|
|
11
12
|
import { translations } from '../libs/locales';
|
|
12
13
|
import { client } from '../../libs/client';
|
|
@@ -37,7 +38,7 @@ export default function DangerZone() {
|
|
|
37
38
|
return new Promise<{ did: string }>((resolve, reject) => {
|
|
38
39
|
const userDid = session?.user?.did;
|
|
39
40
|
connectApi.open({
|
|
40
|
-
locale,
|
|
41
|
+
locale: locale as ConnectProps['locale'],
|
|
41
42
|
action: 'destroy-myself',
|
|
42
43
|
forceConnected: true,
|
|
43
44
|
saveConnect: false,
|
|
@@ -53,6 +54,7 @@ export default function DangerZone() {
|
|
|
53
54
|
confirm: t('destroyMyself.confirm'),
|
|
54
55
|
success: t('destroyMyself.success'),
|
|
55
56
|
},
|
|
57
|
+
// @ts-expect-error 该 did-connect 后端api 将结果塞在了 result 中,并做了加密,所以已经变成一个字符串了
|
|
56
58
|
onSuccess: ({ result }: { result: string }, decrypt = (x: string) => x) => {
|
|
57
59
|
const decryptResult = decrypt(result) as unknown as { did: string };
|
|
58
60
|
resolve(decryptResult);
|
|
@@ -79,10 +81,7 @@ export default function DangerZone() {
|
|
|
79
81
|
try {
|
|
80
82
|
if (isNeedVerify) {
|
|
81
83
|
result = await handleVerify();
|
|
82
|
-
// TODO: 等 js-sdk 新版后,就有这个方法,可以删除注释
|
|
83
|
-
// @ts-ignore
|
|
84
84
|
} else if (client?.user?.destroyMyself instanceof Function) {
|
|
85
|
-
// @ts-ignore
|
|
86
85
|
result = await client.user.destroyMyself();
|
|
87
86
|
} else {
|
|
88
87
|
Toast.error(t('notImplemented'));
|
|
@@ -73,11 +73,7 @@ export default function Settings({
|
|
|
73
73
|
<UserSessions
|
|
74
74
|
user={user}
|
|
75
75
|
showUser={false}
|
|
76
|
-
// FIXME: @zhanghan 暂时忽略类型不对的问题 (js-sdk 新版发布后,此处的类型就正确了)
|
|
77
|
-
// @ts-ignore
|
|
78
76
|
getUserSessions={(params) => {
|
|
79
|
-
// FIXME: @zhanghan 暂时忽略类型不对的问题 (js-sdk 新版发布后,此处的类型就正确了)
|
|
80
|
-
// @ts-ignore
|
|
81
77
|
return client.userSession.getMyLoginSessions({}, params);
|
|
82
78
|
}}
|
|
83
79
|
/>
|
|
@@ -21,6 +21,7 @@ import { useContext } from 'react';
|
|
|
21
21
|
import pick from 'lodash/pick';
|
|
22
22
|
import { getFederatedEnabled, getMaster } from '@arcblock/ux/lib/Util/federated';
|
|
23
23
|
import { LOGIN_PROVIDER, LOGIN_PROVIDER_NAME, OAUTH_PROVIDER } from '@arcblock/ux/lib/Util/constant';
|
|
24
|
+
import { useStateContext } from '@arcblock/did-connect/lib/Connect/contexts/state';
|
|
24
25
|
|
|
25
26
|
import { translations } from '../../libs/locales';
|
|
26
27
|
import type { OAuthAccount, SessionContext as TSessionContext } from '../../../@types';
|
|
@@ -39,6 +40,7 @@ export default function ThirdPartyItem({
|
|
|
39
40
|
_mainProvider?: boolean;
|
|
40
41
|
};
|
|
41
42
|
}) {
|
|
43
|
+
const { blocklet: targetBlocklet } = useStateContext();
|
|
42
44
|
const { confirmApi, confirmHolder } = useConfirm();
|
|
43
45
|
const currentState = useReactive({
|
|
44
46
|
loading: false,
|
|
@@ -49,7 +51,7 @@ export default function ThirdPartyItem({
|
|
|
49
51
|
});
|
|
50
52
|
const { session } = useContext<TSessionContext>(SessionContext);
|
|
51
53
|
const { bindOAuth, unbindOAuth, setBaseUrl, baseUrl: oauthBaseUrl } = session.useOAuth();
|
|
52
|
-
const { disconnectPasskey } = session.usePasskey();
|
|
54
|
+
const { disconnectPasskey, setTargetAppPid } = session.usePasskey();
|
|
53
55
|
|
|
54
56
|
const iconMap = {
|
|
55
57
|
// email: MailOutlineRoundedIcon,
|
|
@@ -128,6 +130,8 @@ export default function ThirdPartyItem({
|
|
|
128
130
|
baseUrl = master.appUrl;
|
|
129
131
|
}
|
|
130
132
|
setBaseUrl(baseUrl);
|
|
133
|
+
// @ts-ignore
|
|
134
|
+
setTargetAppPid(targetBlocklet?.appPid);
|
|
131
135
|
bindOAuth({
|
|
132
136
|
session,
|
|
133
137
|
oauthItem: {
|
|
@@ -139,6 +143,7 @@ export default function ThirdPartyItem({
|
|
|
139
143
|
.catch(reject)
|
|
140
144
|
.finally(() => {
|
|
141
145
|
setBaseUrl(backupBaseUrl);
|
|
146
|
+
setTargetAppPid();
|
|
142
147
|
});
|
|
143
148
|
}
|
|
144
149
|
});
|
|
@@ -94,7 +94,7 @@ export default function UserSessions({
|
|
|
94
94
|
};
|
|
95
95
|
readonly showAction?: boolean;
|
|
96
96
|
readonly showUser?: boolean;
|
|
97
|
-
readonly getUserSessions: (params: { page: number; pageSize: number; status
|
|
97
|
+
readonly getUserSessions: (params: { page: number; pageSize: number; status?: 'online' | 'expired' }) => Promise<{
|
|
98
98
|
paging: {
|
|
99
99
|
total: number;
|
|
100
100
|
};
|
|
@@ -122,7 +122,7 @@ export default function UserSessions({
|
|
|
122
122
|
const result = await getUserSessions({
|
|
123
123
|
page: filterParams.page,
|
|
124
124
|
pageSize: filterParams.pageSize,
|
|
125
|
-
status: filterParams.status,
|
|
125
|
+
status: filterParams.status as 'online' | 'expired',
|
|
126
126
|
});
|
|
127
127
|
|
|
128
128
|
const total = result?.paging?.total || 0;
|
|
@@ -171,7 +171,11 @@ export default function UserSessions({
|
|
|
171
171
|
},
|
|
172
172
|
cancelButtonText: t('cancel'),
|
|
173
173
|
onConfirm: async () => {
|
|
174
|
-
await client.user.logout({
|
|
174
|
+
await client.user.logout({
|
|
175
|
+
visitorId,
|
|
176
|
+
// @ts-expect-error js-sdk 1.16.43 中会包含这个参数
|
|
177
|
+
includeFederated: true,
|
|
178
|
+
});
|
|
175
179
|
pageState.refresh();
|
|
176
180
|
confirmApi.close();
|
|
177
181
|
},
|
|
@@ -192,9 +196,10 @@ export default function UserSessions({
|
|
|
192
196
|
cancelButtonText: t('cancel'),
|
|
193
197
|
onConfirm: async () => {
|
|
194
198
|
await client.user.logout({
|
|
195
|
-
// @ts-expect-error js-sdk 发了新版后,会有这个类型定义
|
|
196
199
|
status: filterParams.status,
|
|
197
200
|
visitorId: currentVisitorId as string,
|
|
201
|
+
// @ts-expect-error js-sdk 1.16.43 中会包含这个参数
|
|
202
|
+
includeFederated: true,
|
|
198
203
|
});
|
|
199
204
|
pageState.refresh();
|
|
200
205
|
confirmApi.close();
|