@abtnode/ux 1.16.25-beta-e3dbef52 → 1.16.25-beta-be3a37f4

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/es/actions.js CHANGED
@@ -50,7 +50,9 @@ export default function Actions({
50
50
  keepMounted: true,
51
51
  open: open,
52
52
  onClose: onClose,
53
- PaperProps: {},
53
+ slotProps: {
54
+ paper: {}
55
+ },
54
56
  children: actions.map((action, index) => {
55
57
  if (typeof action === 'function') {
56
58
  return action({
@@ -321,13 +321,17 @@ export default function BlockletActions({
321
321
  name: t('common.restart'),
322
322
  handler: createHandler('restart', node.api.restartBlocklet, true),
323
323
  disabled: disableStart || blocklet.status !== 'running'
324
- }, {
325
- action: 'reload',
326
- icon: Icons.Reload,
327
- name: t('common.reload'),
328
- handler: createHandler('reload', node.api.reloadBlocklet),
329
- disabled: disableStart || blocklet.status !== 'running'
330
- }, isDownloading(blocklet.status) ? cancelDownloadAction : removeAction, {
324
+ },
325
+ // hidden reload: https://github.com/ArcBlock/blocklet-server/issues/8655
326
+ // {
327
+ // action: 'reload',
328
+ // icon: Icons.Reload,
329
+ // name: t('common.reload'),
330
+ // handler: createHandler('reload', node.api.reloadBlocklet),
331
+ // disabled: disableStart || blocklet.status !== 'running',
332
+ // },
333
+
334
+ isDownloading(blocklet.status) ? cancelDownloadAction : removeAction, {
331
335
  separator: true
332
336
  }, {
333
337
  onlyInMenu: true,
package/es/locales/ar.js CHANGED
@@ -687,7 +687,9 @@ export default {
687
687
  installResourceHelp: 'وثيقة المساعدة',
688
688
  componentIncluded: 'مدرج',
689
689
  componentForceRequired: 'مجبر مطلوب'
690
- }
690
+ },
691
+ titleValidationError: 'يجب أن يكون طول العنوان على الأقل 3 أحرف',
692
+ descriptionValidationError: 'يجب أن تكون طول الوصف بين 3 و 160 حرفًا'
691
693
  },
692
694
  dashboard: {
693
695
  nodeDid: 'عقدة',
@@ -1189,7 +1191,10 @@ export default {
1189
1191
  url: 'عنوان URL مخصص',
1190
1192
  slack: 'خطاف سلاك',
1191
1193
  tested: 'تم إرسال رسالة تجريبية'
1192
- }
1194
+ },
1195
+ activeUserSessions: 'جلسات المستخدم النشطة',
1196
+ forceLogout: 'تسجيل الخروج القسري',
1197
+ forceLogoutDescription: 'هل تؤكد تسجيل خروج هذا المستخدم؟'
1193
1198
  },
1194
1199
  transferNode: {
1195
1200
  name: 'تحويل الملكية',
package/es/locales/de.js CHANGED
@@ -687,7 +687,9 @@ export default {
687
687
  installResourceHelp: 'Hilfe-Dokument',
688
688
  componentIncluded: 'Eingeschlossen',
689
689
  componentForceRequired: 'Erzwungen Erforderlich'
690
- }
690
+ },
691
+ titleValidationError: 'Die Länge des Titels muss mindestens 3 Zeichen betragen',
692
+ descriptionValidationError: 'Die Beschreibungslänge muss zwischen 3 und 160 Zeichen liegen'
691
693
  },
692
694
  dashboard: {
693
695
  nodeDid: 'Knoten',
@@ -1189,7 +1191,10 @@ export default {
1189
1191
  url: 'Benutzerdefinierte URL',
1190
1192
  slack: 'Slack-Webhook',
1191
1193
  tested: 'Testnachricht gesendet'
1192
- }
1194
+ },
1195
+ activeUserSessions: 'Aktive Benutzersitzungen',
1196
+ forceLogout: 'Erzwungenes Abmelden',
1197
+ forceLogoutDescription: 'Bestätigen Sie die erzwungene Abmeldung dieses Benutzers?'
1193
1198
  },
1194
1199
  transferNode: {
1195
1200
  name: 'Änderung des Eigentums',
package/es/locales/en.js CHANGED
@@ -350,6 +350,8 @@ export default {
350
350
  installFromMarket: 'Install New Blocklets',
351
351
  installFromUrl: 'Install From Url',
352
352
  installFromCreate: 'Create Blocklet',
353
+ titleValidationError: 'Title length must be between 3 and 40 characters',
354
+ descriptionValidationError: 'Description length must be between 3 and 160 characters',
353
355
  installFromDiskBackup: 'Restore from this server',
354
356
  installedAt: 'Installed At',
355
357
  internal: 'Internal',
@@ -1182,7 +1184,10 @@ export default {
1182
1184
  url: 'Custom URL',
1183
1185
  slack: 'Slack Webhook',
1184
1186
  tested: 'Test message sent'
1185
- }
1187
+ },
1188
+ activeUserSessions: 'Active User Sessions',
1189
+ forceLogout: 'Force logout',
1190
+ forceLogoutDescription: 'Confirm to force logout this user?'
1186
1191
  },
1187
1192
  transferNode: {
1188
1193
  name: 'Transfer Ownership',
package/es/locales/es.js CHANGED
@@ -687,7 +687,9 @@ export default {
687
687
  installResourceHelp: 'Ayuda Documento',
688
688
  componentIncluded: 'Incluido',
689
689
  componentForceRequired: 'Obligatorio Requerido'
690
- }
690
+ },
691
+ titleValidationError: 'La longitud del título debe ser de al menos 3 caracteres',
692
+ descriptionValidationError: 'La longitud de la descripción debe estar entre 3 y 160 caracteres'
691
693
  },
692
694
  dashboard: {
693
695
  nodeDid: 'Nodo',
@@ -1189,7 +1191,10 @@ export default {
1189
1191
  url: 'URL personalizada',
1190
1192
  slack: 'Slack Webhook',
1191
1193
  tested: 'Mensaje de prueba enviado'
1192
- }
1194
+ },
1195
+ activeUserSessions: 'Sesiones de usuario activas',
1196
+ forceLogout: 'Cerrar sesión forzada',
1197
+ forceLogoutDescription: '¿Confirmar para forzar el cierre de sesión de este usuario?'
1193
1198
  },
1194
1199
  transferNode: {
1195
1200
  name: 'Transferir propiedad',
package/es/locales/fr.js CHANGED
@@ -687,7 +687,9 @@ export default {
687
687
  installResourceHelp: "Document d'aide",
688
688
  componentIncluded: 'Inclus',
689
689
  componentForceRequired: 'Forcé Requis'
690
- }
690
+ },
691
+ titleValidationError: "La longueur du titre doit être d'au moins 3 caractères",
692
+ descriptionValidationError: 'La longueur de la description doit être comprise entre 3 et 160 caractères'
691
693
  },
692
694
  dashboard: {
693
695
  nodeDid: 'Noeud',
@@ -1189,7 +1191,10 @@ export default {
1189
1191
  url: 'URL personnalisée',
1190
1192
  slack: 'Webhook Slack',
1191
1193
  tested: 'Message de test envoyé'
1192
- }
1194
+ },
1195
+ activeUserSessions: "Sessions d'utilisateurs actives",
1196
+ forceLogout: 'Déconnexion forcée',
1197
+ forceLogoutDescription: 'Confirmez-vous la déconnexion forcée de cet utilisateur?'
1193
1198
  },
1194
1199
  transferNode: {
1195
1200
  name: 'Transfert de propriété',
package/es/locales/hi.js CHANGED
@@ -687,7 +687,9 @@ export default {
687
687
  installResourceHelp: 'सहायता दस्तावेज़',
688
688
  componentIncluded: 'शामिल',
689
689
  componentForceRequired: 'मजबूरी आवश्यक'
690
- }
690
+ },
691
+ titleValidationError: 'शीर्षक की लंबाई कम से कम 3 अक्षर होनी चाहिए',
692
+ descriptionValidationError: 'विवरण की लंबाई 3 और 160 वर्णों के बीच होनी चाहिए'
691
693
  },
692
694
  dashboard: {
693
695
  nodeDid: 'नोड',
@@ -1189,7 +1191,10 @@ export default {
1189
1191
  url: 'कस्टम URL',
1190
1192
  slack: 'स्लैक वेबहुक',
1191
1193
  tested: 'परीक्षण संदेश भेजा गया'
1192
- }
1194
+ },
1195
+ activeUserSessions: 'सक्रिय उपयोगकर्ता सत्र',
1196
+ forceLogout: 'बाहर करें बल',
1197
+ forceLogoutDescription: 'क्या आप इस उपयोगकर्ता को बाहर करने के लिए पुष्टि करें?'
1193
1198
  },
1194
1199
  transferNode: {
1195
1200
  name: 'स्वामित्व स्थानांतरण',
Binary file
package/es/locales/id.js CHANGED
@@ -687,7 +687,9 @@ export default {
687
687
  installResourceHelp: 'Dokumen Bantuan',
688
688
  componentIncluded: 'Termasuk',
689
689
  componentForceRequired: 'Dipaksa Diperlukan'
690
- }
690
+ },
691
+ titleValidationError: 'Panjang judul harus setidaknya 3 karakter',
692
+ descriptionValidationError: 'Panjang deskripsi harus antara 3 dan 160 karakter.'
691
693
  },
692
694
  dashboard: {
693
695
  nodeDid: 'Node',
@@ -1189,7 +1191,10 @@ export default {
1189
1191
  url: 'URL kustom',
1190
1192
  slack: 'Slack Webhook',
1191
1193
  tested: 'Pesan uji terkirim'
1192
- }
1194
+ },
1195
+ activeUserSessions: 'Sesi Pengguna Aktif',
1196
+ forceLogout: 'Keluar paksa',
1197
+ forceLogoutDescription: 'Konfirmasi untuk logout paksa pengguna ini?'
1193
1198
  },
1194
1199
  transferNode: {
1195
1200
  name: 'Pindahkan Kepemilikan',
package/es/locales/ja.js CHANGED
@@ -687,7 +687,9 @@ export default {
687
687
  installResourceHelp: 'ヘルプドキュメント',
688
688
  componentIncluded: '含まれています',
689
689
  componentForceRequired: '強制必要'
690
- }
690
+ },
691
+ titleValidationError: 'タイトルの長さは最低3文字以上である必要があります',
692
+ descriptionValidationError: '説明の長さは3から160文字の間でなければなりません'
691
693
  },
692
694
  dashboard: {
693
695
  nodeDid: 'ノード',
@@ -1189,7 +1191,10 @@ export default {
1189
1191
  url: 'カスタムURL',
1190
1192
  slack: 'Slack Webhook',
1191
1193
  tested: 'テストメッセージを送信しました'
1192
- }
1194
+ },
1195
+ activeUserSessions: 'アクティブユーザーセッション',
1196
+ forceLogout: '強制ログアウト',
1197
+ forceLogoutDescription: 'このユーザーを強制的にログアウトしますか?'
1193
1198
  },
1194
1199
  transferNode: {
1195
1200
  name: '権限の移譲',
package/es/locales/ko.js CHANGED
@@ -687,7 +687,9 @@ export default {
687
687
  installResourceHelp: '도움말 문서',
688
688
  componentIncluded: '포함됨',
689
689
  componentForceRequired: '강제 필수'
690
- }
690
+ },
691
+ titleValidationError: '제목 길이는 최소 3자 이상이어야 합니다',
692
+ descriptionValidationError: '설명 길이는 3에서 160자 사이여야 합니다'
691
693
  },
692
694
  dashboard: {
693
695
  nodeDid: '노드',
@@ -1189,7 +1191,10 @@ export default {
1189
1191
  url: '사용자 정의 URL',
1190
1192
  slack: 'Slack Webhook',
1191
1193
  tested: '테스트 메시지가 전송되었습니다'
1192
- }
1194
+ },
1195
+ activeUserSessions: '활성 사용자 세션',
1196
+ forceLogout: '강제 로그아웃',
1197
+ forceLogoutDescription: '이 사용자를 강제로 로그아웃하시겠습니까?'
1193
1198
  },
1194
1199
  transferNode: {
1195
1200
  name: '소유권 이전',
package/es/locales/pt.js CHANGED
@@ -687,7 +687,9 @@ export default {
687
687
  installResourceHelp: 'Documento de ajuda',
688
688
  componentIncluded: 'Incluído',
689
689
  componentForceRequired: 'Forçado Obrigatório'
690
- }
690
+ },
691
+ titleValidationError: 'O comprimento do título deve ter pelo menos 3 caracteres',
692
+ descriptionValidationError: 'O comprimento da descrição deve estar entre 3 e 160 caracteres.'
691
693
  },
692
694
  dashboard: {
693
695
  nodeDid: 'Nó',
@@ -1189,7 +1191,10 @@ export default {
1189
1191
  url: 'URL personalizado',
1190
1192
  slack: 'Slack Webhook',
1191
1193
  tested: 'Mensagem de teste enviada'
1192
- }
1194
+ },
1195
+ activeUserSessions: 'Sessões de Usuários Ativos',
1196
+ forceLogout: 'Logout forçado',
1197
+ forceLogoutDescription: 'Confirmar o logout forçado deste usuário?'
1193
1198
  },
1194
1199
  transferNode: {
1195
1200
  name: 'Transferir Propriedade',
package/es/locales/ru.js CHANGED
@@ -687,7 +687,9 @@ export default {
687
687
  installResourceHelp: 'Документация помощи',
688
688
  componentIncluded: 'Включено',
689
689
  componentForceRequired: 'Принудительно Требуется'
690
- }
690
+ },
691
+ titleValidationError: 'Длина заголовка должна быть не менее 3 символов',
692
+ descriptionValidationError: 'Длина описания должна быть от 3 до 160 символов'
691
693
  },
692
694
  dashboard: {
693
695
  nodeDid: 'Узел',
@@ -1189,7 +1191,10 @@ export default {
1189
1191
  url: 'Пользовательский URL',
1190
1192
  slack: 'Слэк вебхук',
1191
1193
  tested: 'Тестовое сообщение отправлено'
1192
- }
1194
+ },
1195
+ activeUserSessions: 'Активные пользовательские сессии',
1196
+ forceLogout: 'Принудительный выход',
1197
+ forceLogoutDescription: 'Подтвердить выход из системы этого пользователя?'
1193
1198
  },
1194
1199
  transferNode: {
1195
1200
  name: 'Передача собственности',
package/es/locales/th.js CHANGED
@@ -687,7 +687,9 @@ export default {
687
687
  installResourceHelp: 'เอกสารช่วยเหลือ',
688
688
  componentIncluded: 'รวมอยู่ใน',
689
689
  componentForceRequired: 'บังคับต้องการ'
690
- }
690
+ },
691
+ titleValidationError: 'ความยาวของชื่อต้องมีอย่างน้อย 3 ตัวอักษร',
692
+ descriptionValidationError: 'ความยาวคำอธิบายต้องอยู่ระหว่าง 3 ถึง 160 ตัวอักษร.'
691
693
  },
692
694
  dashboard: {
693
695
  nodeDid: 'โหนด',
@@ -1189,7 +1191,10 @@ export default {
1189
1191
  url: 'URL ที่กำหนดเอง',
1190
1192
  slack: 'Slack Webhook',
1191
1193
  tested: 'ส่งข้อความทดสอบแล้ว'
1192
- }
1194
+ },
1195
+ activeUserSessions: 'เซสชันผู้ใช้ที่ใช้งานอยู่',
1196
+ forceLogout: 'ออกจากระบบบังคับ',
1197
+ forceLogoutDescription: 'ยืนยันให้ออกจากระบบผู้ใช้นี้หรือไม่?'
1193
1198
  },
1194
1199
  transferNode: {
1195
1200
  name: 'โอนสิทธิ์การเป็นเจ้าของ',
package/es/locales/vi.js CHANGED
@@ -687,7 +687,9 @@ export default {
687
687
  installResourceHelp: 'Tài liệu giúp đỡ',
688
688
  componentIncluded: 'Bao gồm',
689
689
  componentForceRequired: 'Bắt Buộc Yêu Cầu'
690
- }
690
+ },
691
+ titleValidationError: 'Độ dài tiêu đề phải ít nhất 3 ký tự',
692
+ descriptionValidationError: 'Chiều dài mô tả phải từ 3 đến 160 ký tự.'
691
693
  },
692
694
  dashboard: {
693
695
  nodeDid: 'Nút',
@@ -1189,7 +1191,10 @@ export default {
1189
1191
  url: 'URL tùy chỉnh',
1190
1192
  slack: 'Slack Webhook',
1191
1193
  tested: 'Tin nhắn kiểm tra đã được gửi'
1192
- }
1194
+ },
1195
+ activeUserSessions: 'Phiên người dùng hoạt động',
1196
+ forceLogout: 'Đăng xuất bắt buộc',
1197
+ forceLogoutDescription: 'Xác nhận đăng xuất buộc người dùng này?'
1193
1198
  },
1194
1199
  transferNode: {
1195
1200
  name: 'Chuyển quyền sở hữu',
@@ -687,7 +687,9 @@ export default {
687
687
  installResourceHelp: '幫助文件',
688
688
  componentIncluded: '已包含',
689
689
  componentForceRequired: '強制要求'
690
- }
690
+ },
691
+ titleValidationError: '標題長度必須至少為3到40個字符',
692
+ descriptionValidationError: '描述長度必須介於3到160個字符之間'
691
693
  },
692
694
  dashboard: {
693
695
  nodeDid: '節點',
@@ -1189,7 +1191,10 @@ export default {
1189
1191
  url: '客製網址',
1190
1192
  slack: 'Slack Webhook',
1191
1193
  tested: '測試訊息已發送'
1192
- }
1194
+ },
1195
+ activeUserSessions: '活躍用戶會話',
1196
+ forceLogout: '強制登出',
1197
+ forceLogoutDescription: '確認是否強制登出此使用者?'
1193
1198
  },
1194
1199
  transferNode: {
1195
1200
  name: '轉讓所有權',
package/es/locales/zh.js CHANGED
@@ -690,7 +690,9 @@ export default {
690
690
  noDescription: '请填写 Blocklet 描述',
691
691
  noNote: '请填写 发布说明'
692
692
  }
693
- }
693
+ },
694
+ titleValidationError: '标题长度必须至少为3到40个字符',
695
+ descriptionValidationError: '描述长度必须在3到160个字符之间'
694
696
  },
695
697
  dashboard: {
696
698
  nodeDid: '节点地址',
@@ -1193,7 +1195,10 @@ export default {
1193
1195
  url: '自定义 URL',
1194
1196
  slack: 'Slack 通知',
1195
1197
  tested: '测试消息已经发送'
1196
- }
1198
+ },
1199
+ activeUserSessions: '活跃用户会话',
1200
+ forceLogout: '强制注销',
1201
+ forceLogoutDescription: '确认是否强制退出此用户?'
1197
1202
  },
1198
1203
  transferNode: {
1199
1204
  name: '转移所有者',
@@ -2,33 +2,66 @@ import { useState, useContext } from 'react';
2
2
  import PropTypes from 'prop-types';
3
3
  import MenuItem from '@mui/material/MenuItem';
4
4
  import AddIcon from '@mui/icons-material/Add';
5
+ import LogoutIcon from '@mui/icons-material/Logout';
5
6
  import ListItemIcon from '@mui/material/ListItemIcon';
6
7
  import ListItemText from '@mui/material/ListItemText';
7
8
  import { LocaleContext } from '@arcblock/ux/lib/Locale/context';
8
9
  import ForbidLoginIcon from '@arcblock/icons/lib/ForbidLoginIcon';
9
10
  import AllowLoginIcon from '@arcblock/icons/lib/AllowLoginIcon';
10
11
  import { getWalletDid } from '@blocklet/meta/lib/did-utils';
12
+ import { useConfirm } from '@arcblock/ux/lib/Dialog';
13
+ import { useMemoizedFn } from 'ahooks';
14
+ import pAll from 'p-all';
11
15
  import { useTeamContext } from '../../contexts/team';
12
16
  import Actions from '../../actions';
13
17
  import IssuePassport from './issue-passport';
14
18
  import ToggleUserApproval from './toggle-user-approval';
19
+ import { useNodeContext } from '../../contexts/node';
15
20
  import { jsx as _jsx } from "react/jsx-runtime";
16
21
  import { jsxs as _jsxs } from "react/jsx-runtime";
17
22
  import { Fragment as _Fragment } from "react/jsx-runtime";
18
23
  export default function MemberActions({
24
+ type,
19
25
  user,
20
- onIssuePassport
26
+ onIssuePassport,
27
+ onRefresh
21
28
  }) {
22
29
  const {
23
30
  teamDid,
24
31
  roles
25
32
  } = useTeamContext();
33
+ const {
34
+ confirmHolder,
35
+ confirmApi
36
+ } = useConfirm();
26
37
  const {
27
38
  t
28
39
  } = useContext(LocaleContext);
29
40
  const [enablePassportIssuance, setEnablePassportIssuance] = useState(false);
41
+ const {
42
+ api
43
+ } = useNodeContext();
44
+ const logoutUser = useMemoizedFn(async () => {
45
+ const {
46
+ userSessions = []
47
+ } = user;
48
+ const list = userSessions.map(x => {
49
+ return () => api.logoutUser({
50
+ input: {
51
+ teamDid,
52
+ appPid: teamDid,
53
+ userDid: user.did,
54
+ visitorId: x.visitorId
55
+ }
56
+ });
57
+ });
58
+ await pAll(list, {
59
+ concurrency: 3,
60
+ stopOnError: false
61
+ });
62
+ });
30
63
  return /*#__PURE__*/_jsxs(_Fragment, {
31
- children: [/*#__PURE__*/_jsx(Actions, {
64
+ children: [confirmHolder, /*#__PURE__*/_jsx(Actions, {
32
65
  "data-cy": "member-actions",
33
66
  actions: [{
34
67
  icon: /*#__PURE__*/_jsx(AddIcon, {
@@ -66,7 +99,27 @@ export default function MemberActions({
66
99
  primary: user.approved ? t('team.member.forbidLogin') : t('team.member.allowLogin')
67
100
  })]
68
101
  })
69
- }, "toggle-approval")]
102
+ }, "toggle-approval"), type === 'blocklet' && {
103
+ icon: /*#__PURE__*/_jsx(LogoutIcon, {
104
+ fontSize: "small"
105
+ }),
106
+ text: t('team.member.forceLogout'),
107
+ onClick: e => {
108
+ e.stopPropagation();
109
+ confirmApi.open({
110
+ title: t('team.member.forceLogout'),
111
+ content: t('team.member.forceLogoutDescription'),
112
+ confirmButtonText: t('common.confirm'),
113
+ cancelButtonText: t('common.cancel'),
114
+ onClick: event => event.stopPropagation(),
115
+ onConfirm: async () => {
116
+ await logoutUser();
117
+ await confirmApi.close();
118
+ onRefresh();
119
+ }
120
+ });
121
+ }
122
+ }].filter(Boolean)
70
123
  }), enablePassportIssuance && /*#__PURE__*/_jsx(IssuePassport, {
71
124
  teamDid: teamDid,
72
125
  ownerDid: user.did,
@@ -81,9 +134,12 @@ export default function MemberActions({
81
134
  });
82
135
  }
83
136
  MemberActions.propTypes = {
137
+ type: PropTypes.oneOf(['server', 'blocklet']).isRequired,
84
138
  user: PropTypes.object.isRequired,
85
- onIssuePassport: PropTypes.func
139
+ onIssuePassport: PropTypes.func,
140
+ onRefresh: PropTypes.func
86
141
  };
87
142
  MemberActions.defaultProps = {
88
- onIssuePassport: () => {}
143
+ onIssuePassport: () => {},
144
+ onRefresh: () => {}
89
145
  };