@abtnode/ux 1.16.29-beta-0070353c → 1.16.29-beta-e04c6f40

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/locales/id.js CHANGED
@@ -356,7 +356,9 @@ export default {
356
356
  blockletStudio: 'Studio',
357
357
  visitStore: 'Kunjungi Toko',
358
358
  reconnect: 'Menghubungkan kembali',
359
- change: 'Perubahan'
359
+ change: 'Perubahan',
360
+ disconnect: 'Putuskan Sambungan',
361
+ sourceApp: 'Milik aplikasi'
360
362
  },
361
363
  blocklet: {
362
364
  external: 'Eksternal',
@@ -727,7 +729,7 @@ export default {
727
729
  },
728
730
  resourceTip: 'Saat ini, sebagai Blok Sumber Daya, tidak dapat diinstal langsung dari Toko.',
729
731
  whyCantSeeInStore: 'Mengapa saya tidak dapat melihat blok ini di Toko?',
730
- whyCantSeeResourceBlockletInStore: 'Mengapa saya tidak bisa melihat Resource Blocklet ini di Toko?',
732
+ whyCantSeeResourceBlockletInStore: 'Resource Blocklet disembunyikan dari halaman daftar toko secara default',
731
733
  tenantScope: 'Penyewa',
732
734
  blockletStudio: 'Blocklet Studio',
733
735
  allComponentsNotRunning: 'Blocklets tidak sedang berjalan, harap mulai terlebih dahulu',
@@ -744,7 +746,9 @@ export default {
744
746
  branding: 'Branding',
745
747
  brandingHelp: 'Informasi lebih lanjut tentang blocklet akan ditampilkan di Toko',
746
748
  resourceSelect: 'Pilih sumber dari blocklets',
747
- resourceUpload: 'Unggah sumber daya dari disk Anda (index.html diperlukan dalam arsip)'
749
+ resourceUpload: 'Unggah sumber daya dari disk Anda (index.html diperlukan dalam arsip)',
750
+ deleteStoreTip: 'Apakah Anda yakin ingin menghapus {name} dari daftar Toko Koneksi?',
751
+ disconnectStoreTip: 'Setelah terputus, blocklet akan dihapus dari toko. Apa Anda yakin untuk memutuskan?'
748
752
  },
749
753
  titleValidationError: 'Panjang judul harus setidaknya 3 karakter',
750
754
  descriptionValidationError: 'Panjang deskripsi harus antara 3 dan 160 karakter.'
package/lib/locales/ja.js CHANGED
@@ -356,7 +356,9 @@ export default {
356
356
  blockletStudio: 'スタジオ',
357
357
  visitStore: '店を訪れる',
358
358
  reconnect: '再接続する',
359
- change: '変更'
359
+ change: '変更',
360
+ disconnect: '接続を切る',
361
+ sourceApp: 'このアプリに所属'
360
362
  },
361
363
  blocklet: {
362
364
  external: '外部',
@@ -727,7 +729,7 @@ export default {
727
729
  },
728
730
  resourceTip: '現在、リソースブロックレットとしては、ストアから直接インストールすることはできません。',
729
731
  whyCantSeeInStore: 'なぜこのブロックレットをストアで見ることができないのですか?',
730
- whyCantSeeResourceBlockletInStore: 'なぜ私はこのリソースブロックレットをストアで見ることができないのですか?',
732
+ whyCantSeeResourceBlockletInStore: 'リソースBlockletはデフォルトでストアリストページから非表示になっています',
731
733
  tenantScope: 'テナント',
732
734
  blockletStudio: 'Blocklet Studio',
733
735
  allComponentsNotRunning: 'Blockletsは動作していません、まず起動してください',
@@ -744,7 +746,9 @@ export default {
744
746
  branding: 'ブランディング',
745
747
  brandingHelp: 'ストアにブロックレットの詳細情報が表示されます',
746
748
  resourceSelect: 'ブロックレットからリソースを選択する',
747
- resourceUpload: 'ディスクからリソースをアップロードします(アーカイブにindex.htmlが必要です)'
749
+ resourceUpload: 'ディスクからリソースをアップロードします(アーカイブにindex.htmlが必要です)',
750
+ deleteStoreTip: '{name}を接続ストアリストから削除してもよろしいですか?',
751
+ disconnectStoreTip: 'ブロックレットの接続を解除すると、ブロックレットはストアから削除されます。接続を解除してもよろしいですか?'
748
752
  },
749
753
  titleValidationError: 'タイトルの長さは最低3文字以上である必要があります',
750
754
  descriptionValidationError: '説明の長さは3から160文字の間でなければなりません'
package/lib/locales/ko.js CHANGED
@@ -356,7 +356,9 @@ export default {
356
356
  blockletStudio: '스튜디오',
357
357
  visitStore: '가게 방문하기',
358
358
  reconnect: '재연결',
359
- change: '변경'
359
+ change: '변경',
360
+ disconnect: '연결 끊기',
361
+ sourceApp: '앱에 속함'
360
362
  },
361
363
  blocklet: {
362
364
  external: '외부의',
@@ -727,7 +729,7 @@ export default {
727
729
  },
728
730
  resourceTip: '현재, 리소스 블록릿으로서, 직접 상점에서 설치할 수 없습니다.',
729
731
  whyCantSeeInStore: '왜 스토어에서 이 블록렛을 볼 수 없는 거죠?',
730
- whyCantSeeResourceBlockletInStore: '왜 이 리소스 블록릿을 상점에서 볼 수 없는 것인가요?',
732
+ whyCantSeeResourceBlockletInStore: '리소스 블록릿은 기본적으로 상점 목록 페이지에서 숨겨져 있습니다',
731
733
  tenantScope: '임차인',
732
734
  blockletStudio: 'Blocklet Studio',
733
735
  allComponentsNotRunning: 'Blocklets가 실행되고 있지 않습니다. 먼저 시작해주세요.',
@@ -744,7 +746,9 @@ export default {
744
746
  branding: '브랜딩',
745
747
  brandingHelp: '블록릿에 대한 자세한 정보가 스토어에 표시됩니다',
746
748
  resourceSelect: '블록릿에서 리소스 선택',
747
- resourceUpload: '디스크에서 리소스를 업로드하세요 (아카이브에 index.html이 필요합니다)'
749
+ resourceUpload: '디스크에서 리소스를 업로드하세요 (아카이브에 index.html이 필요합니다)',
750
+ deleteStoreTip: '{name}을(를) 연결 스토어 목록에서 제거하시겠습니까?',
751
+ disconnectStoreTip: '연결이 끊어지면 Blocklet이 스토어에서 제거됩니다. 연결을 끊으시겠습니까?'
748
752
  },
749
753
  titleValidationError: '제목 길이는 최소 3자 이상이어야 합니다',
750
754
  descriptionValidationError: '설명 길이는 3에서 160자 사이여야 합니다'
package/lib/locales/pt.js CHANGED
@@ -356,7 +356,9 @@ export default {
356
356
  blockletStudio: 'Estúdio',
357
357
  visitStore: 'Visite a loja',
358
358
  reconnect: 'Reconectar',
359
- change: 'Mudança'
359
+ change: 'Mudança',
360
+ disconnect: 'Desconectar',
361
+ sourceApp: 'Pertence ao app'
360
362
  },
361
363
  blocklet: {
362
364
  external: 'Externo',
@@ -727,7 +729,7 @@ export default {
727
729
  },
728
730
  resourceTip: 'Atualmente, como um Bloquete de Recursos, ele não pode ser instalado diretamente da Loja.',
729
731
  whyCantSeeInStore: 'Por que não consigo ver este bloco na loja?',
730
- whyCantSeeResourceBlockletInStore: 'Por que não consigo ver este Resource Blocklet na Loja?',
732
+ whyCantSeeResourceBlockletInStore: 'Os Blocos de Recursos estão ocultos da página de listagem da loja por padrão',
731
733
  tenantScope: 'Inquilino',
732
734
  blockletStudio: 'Blocklet Studio',
733
735
  allComponentsNotRunning: 'O Blocklets não está em execução, por favor, inicie-o primeiro',
@@ -744,7 +746,9 @@ export default {
744
746
  branding: 'Marca',
745
747
  brandingHelp: 'Mais informações sobre o blocklet serão exibidas na Loja',
746
748
  resourceSelect: 'Selecionar recurso dos blocos',
747
- resourceUpload: 'Carregar recurso do seu disco (index.html é necessário no arquivo)'
749
+ resourceUpload: 'Carregar recurso do seu disco (index.html é necessário no arquivo)',
750
+ deleteStoreTip: 'Tem certeza de que deseja remover {name} da lista da Loja de Conexão?',
751
+ disconnectStoreTip: 'Após desconectado, o Blocklet será removido da loja. Você tem certeza que deseja desconectar?'
748
752
  },
749
753
  titleValidationError: 'O comprimento do título deve ter pelo menos 3 caracteres',
750
754
  descriptionValidationError: 'O comprimento da descrição deve estar entre 3 e 160 caracteres.'
package/lib/locales/ru.js CHANGED
@@ -356,7 +356,9 @@ export default {
356
356
  blockletStudio: 'Студия',
357
357
  visitStore: 'Посетите магазин',
358
358
  reconnect: 'Восстановить соединение',
359
- change: 'Изменение'
359
+ change: 'Изменение',
360
+ disconnect: 'Отсоединить',
361
+ sourceApp: 'Принадлежит приложению'
360
362
  },
361
363
  blocklet: {
362
364
  external: 'Внешний',
@@ -727,7 +729,7 @@ export default {
727
729
  },
728
730
  resourceTip: 'В настоящее время, как ресурсный блоклет, его нельзя установить напрямую из Магазина.',
729
731
  whyCantSeeInStore: 'Почему я не вижу этот блоклет в магазине?',
730
- whyCantSeeResourceBlockletInStore: 'Почему я не вижу этот ресурсный блоклет в магазине?',
732
+ whyCantSeeResourceBlockletInStore: 'Реурсные блоклеты по умолчанию скрыты со страницы списка магазина',
731
733
  tenantScope: 'Арендатор',
732
734
  blockletStudio: 'Студия Блоклет',
733
735
  allComponentsNotRunning: 'Blocklets не запускается, пожалуйста, сначала запустите его',
@@ -744,7 +746,9 @@ export default {
744
746
  branding: 'Брендинг',
745
747
  brandingHelp: 'Больше информации о блоклете будет отображаться в магазине',
746
748
  resourceSelect: 'Выберите ресурс из блоклетов',
747
- resourceUpload: 'Загрузите ресурс с вашего диска (в архиве требуется index.html)'
749
+ resourceUpload: 'Загрузите ресурс с вашего диска (в архиве требуется index.html)',
750
+ deleteStoreTip: 'Вы уверены, что хотите удалить {name} из списка магазина Connect?',
751
+ disconnectStoreTip: 'Блоклет будет удален из магазина после отключения. Уверены, что хотите отключить?'
748
752
  },
749
753
  titleValidationError: 'Длина заголовка должна быть не менее 3 символов',
750
754
  descriptionValidationError: 'Длина описания должна быть от 3 до 160 символов'
package/lib/locales/th.js CHANGED
@@ -356,7 +356,9 @@ export default {
356
356
  blockletStudio: 'สตูดิโอ',
357
357
  visitStore: 'เยี่ยมชมร้านค้า',
358
358
  reconnect: 'เชื่อมต่อใหม่',
359
- change: 'เปลี่ยนแปลง'
359
+ change: 'เปลี่ยนแปลง',
360
+ disconnect: 'ตัดการเชื่อมต่อ',
361
+ sourceApp: 'เป็นของแอป'
360
362
  },
361
363
  blocklet: {
362
364
  external: 'ภายนอก',
@@ -727,7 +729,7 @@ export default {
727
729
  },
728
730
  resourceTip: 'ปัจจุบันเป็นบล็อกทรัพยากร ไม่สามารถติดตั้งโดยตรงจากร้านค้าได้',
729
731
  whyCantSeeInStore: 'ทำไมฉันไม่สามารถเห็นบล็อกเล็ตนี้ในร้านค้าได้หรือ?',
730
- whyCantSeeResourceBlockletInStore: 'ทำไมฉันไม่สามารถเห็น Resource Blocklet นี้ในร้านค้าได้?',
732
+ whyCantSeeResourceBlockletInStore: 'Resource Blocklet ถูกซ่อนจากหน้ารายการร้านค้าโดยค่าตั้งต้น',
731
733
  tenantScope: 'ผู้เช่า',
732
734
  blockletStudio: 'Blocklet Studio',
733
735
  allComponentsNotRunning: 'Blocklets ไม่ได้ทำงาน โปรดเริ่มต้นใช้งานก่อน',
@@ -744,7 +746,9 @@ export default {
744
746
  branding: 'การติดตามแบรนด์',
745
747
  brandingHelp: 'ข้อมูลเพิ่มเติมเกี่ยวกับ blocklet จะแสดงในร้านค้า',
746
748
  resourceSelect: 'เลือกทรัพยากรจากบล็อกเล็ต',
747
- resourceUpload: 'อัปโหลดทรัพยากรจากดิสก์ของคุณ (index.html จำเป็นในไฟล์เข้าเก็บ)'
749
+ resourceUpload: 'อัปโหลดทรัพยากรจากดิสก์ของคุณ (index.html จำเป็นในไฟล์เข้าเก็บ)',
750
+ deleteStoreTip: 'คุณแน่ใจหรือว่าต้องการลบ {name} ออกจากรายการร้านค้าเชื่อมต่อหรือไม่?',
751
+ disconnectStoreTip: 'เมื่อยกเลิกการเชื่อมต่อแล้ว Blocklet จะถูกลบออกจากร้าน คุณแน่ใจไหมว่าต้องการยกเลิกการเชื่อมต่อหรือไม่'
748
752
  },
749
753
  titleValidationError: 'ความยาวของชื่อต้องมีอย่างน้อย 3 ตัวอักษร',
750
754
  descriptionValidationError: 'ความยาวคำอธิบายต้องอยู่ระหว่าง 3 ถึง 160 ตัวอักษร.'
package/lib/locales/vi.js CHANGED
@@ -356,7 +356,9 @@ export default {
356
356
  blockletStudio: 'Studio',
357
357
  visitStore: 'Ghé cửa hàng',
358
358
  reconnect: 'Kết nối lại',
359
- change: 'Thay đổi'
359
+ change: 'Thay đổi',
360
+ disconnect: 'Ngắt kết nối',
361
+ sourceApp: 'Thuộc về ứng dụng'
360
362
  },
361
363
  blocklet: {
362
364
  external: 'Bên ngoài',
@@ -727,7 +729,7 @@ export default {
727
729
  },
728
730
  resourceTip: 'Hiện tại, là một khối tài nguyên, nó không thể được cài đặt trực tiếp từ Cửa hàng.',
729
731
  whyCantSeeInStore: 'Tại sao tôi không thể thấy khối này trong Cửa hàng?',
730
- whyCantSeeResourceBlockletInStore: 'Tại sao tôi không thể thấy Resource Blocklet này trong Cửa hàng?',
732
+ whyCantSeeResourceBlockletInStore: 'Resource Blocklet được ẩn khỏi trang danh sách cửa hàng mặc định',
731
733
  tenantScope: 'Người thuê',
732
734
  blockletStudio: 'Blocklet Studio',
733
735
  allComponentsNotRunning: 'Blocklets không đang chạy, vui lòng khởi động nó trước',
@@ -744,7 +746,9 @@ export default {
744
746
  branding: 'Thương hiệu',
745
747
  brandingHelp: 'Thông tin chi tiết về blocklet sẽ được hiển thị trên Cửa hàng',
746
748
  resourceSelect: 'Chọn tài nguyên từ blocklets',
747
- resourceUpload: 'Tải tài nguyên từ ổ đĩa của bạn (index.html cần thiết trong tệp nén)'
749
+ resourceUpload: 'Tải tài nguyên từ ổ đĩa của bạn (index.html cần thiết trong tệp nén)',
750
+ deleteStoreTip: 'Bạn có chắc chắn muốn xóa {name} khỏi danh sách Cửa hàng Kết nối không?',
751
+ disconnectStoreTip: 'Sau khi ngắt kết nối, Blocklet sẽ bị xóa khỏi cửa hàng. Bạn có chắc chắn muốn ngắt kết nối không?'
748
752
  },
749
753
  titleValidationError: 'Độ dài tiêu đề phải ít nhất 3 ký tự',
750
754
  descriptionValidationError: 'Chiều dài mô tả phải từ 3 đến 160 ký tự.'
@@ -356,7 +356,9 @@ export default {
356
356
  blockletStudio: 'Studio',
357
357
  visitStore: '訪問 Store',
358
358
  reconnect: '重新連接',
359
- change: '更改'
359
+ change: '更改',
360
+ disconnect: '斷開連線',
361
+ sourceApp: '屬於此 App'
360
362
  },
361
363
  blocklet: {
362
364
  external: '外部的',
@@ -727,7 +729,7 @@ export default {
727
729
  },
728
730
  resourceTip: '目前,作為資源型 Blocklet,無法直接從商店安裝。',
729
731
  whyCantSeeInStore: '為什麼我無法在商店中看到這個 Blocklet?',
730
- whyCantSeeResourceBlockletInStore: '為什麼我在商店裡看不到這個資源型 Blocklet?',
732
+ whyCantSeeResourceBlockletInStore: '資源Blocklet預設情況下在商店列表頁面上被隱藏',
731
733
  tenantScope: '租戶',
732
734
  blockletStudio: 'Blocklet Studio',
733
735
  allComponentsNotRunning: 'Blocklets未執行,請先啟動',
@@ -744,7 +746,9 @@ export default {
744
746
  branding: '品牌',
745
747
  brandingHelp: '將在商店中顯示有關區塊的更多信息',
746
748
  resourceSelect: '從 blocklets 選擇資源',
747
- resourceUpload: '從您的磁盤上傳資源(存檔中需要index.html)'
749
+ resourceUpload: '從您的磁盤上傳資源(存檔中需要index.html)',
750
+ deleteStoreTip: '您確定要將{name}從連接商店列表中移除嗎?',
751
+ disconnectStoreTip: '斷開連線後,blocklet 將從商店中移除。您確定要斷開連線嗎?'
748
752
  },
749
753
  titleValidationError: '標題長度必須至少為3到40個字符',
750
754
  descriptionValidationError: '描述長度必須介於3到160個字符之間'
package/lib/locales/zh.js CHANGED
@@ -356,7 +356,9 @@ export default {
356
356
  blockletStudio: 'Studio',
357
357
  visitStore: '访问 Store',
358
358
  reconnect: '重新连接',
359
- change: '更改'
359
+ change: '更改',
360
+ sourceApp: '所属应用',
361
+ disconnect: '断开连接'
360
362
  },
361
363
  blocklet: {
362
364
  external: '外部',
@@ -732,7 +734,7 @@ export default {
732
734
  },
733
735
  resourceTip: '目前,作为资源型 Blocklet,它无法直接从 Store 安装。',
734
736
  whyCantSeeInStore: '为什么我不能在 Store 中看到这个 Blocklet?',
735
- whyCantSeeResourceBlockletInStore: '为什么我在商店里看不到这个资源型 Blocklet?',
737
+ whyCantSeeResourceBlockletInStore: '资源Blocklet默认情况下在商店列表页面上被隐藏',
736
738
  tenantScope: '租户',
737
739
  blockletStudio: 'Blocklet Studio',
738
740
  allComponentsNotRunning: 'Blocklets未运行,请先启动',
@@ -747,7 +749,9 @@ export default {
747
749
  branding: '品牌',
748
750
  brandingHelp: '将在商店中显示有关区块链的更多信息',
749
751
  resourceSelect: '从 blocklets 选择资源',
750
- resourceUpload: '从您的磁盘上传资源(存档中需要index.html)'
752
+ resourceUpload: '从您的磁盘上传资源(存档中需要index.html)',
753
+ deleteStoreTip: '您确定要将{name}从连接商店列表中移除吗?',
754
+ disconnectStoreTip: '断开连接后,blocklet 将从商店中移除。您确定要断开连接吗?'
751
755
  },
752
756
  titleValidationError: '标题长度必须至少为3到40个字符',
753
757
  descriptionValidationError: '描述长度必须在3到160个字符之间'
package/lib/store/add.js CHANGED
@@ -27,14 +27,17 @@ export default function AddStore({
27
27
  storeList,
28
28
  teamDid,
29
29
  onAdd,
30
- scope
30
+ scope,
31
+ hiddenChildren,
32
+ open,
33
+ onClose
31
34
  }) {
32
35
  const {
33
36
  api
34
37
  } = useNodeContext();
35
38
  const [loading, setLoading] = useState(false);
36
39
  const [disable, setDisable] = useState(true);
37
- const [open, setOpen] = useState(false);
40
+ const [isOpen, setIsOpen] = useState(false);
38
41
  const [url, setUrl] = useState('');
39
42
  const [error, setError] = useState('');
40
43
  const {
@@ -59,7 +62,8 @@ export default function AddStore({
59
62
  }
60
63
  });
61
64
  onAdd(decoded);
62
- setOpen(false);
65
+ setIsOpen(false);
66
+ onClose();
63
67
  } catch (err) {
64
68
  const errMsg = `${t('store.blockletRegistry.addFailed')} ${formatError(err)}`;
65
69
  setError(errMsg);
@@ -67,13 +71,17 @@ export default function AddStore({
67
71
  setLoading(false);
68
72
  }
69
73
  };
74
+ const handleClose = () => {
75
+ setIsOpen(false);
76
+ onClose();
77
+ };
70
78
  return /*#__PURE__*/_jsxs(_Fragment, {
71
- children: [/*#__PURE__*/_jsxs(ListItem, {
79
+ children: [!hiddenChildren && /*#__PURE__*/_jsxs(ListItem, {
72
80
  button: true,
73
81
  disabled: disabled,
74
82
  className: classes.addMenuItemRoot,
75
83
  onClick: () => {
76
- setOpen(true);
84
+ setIsOpen(true);
77
85
  },
78
86
  children: [/*#__PURE__*/_jsx(AddIcon, {
79
87
  font: true
@@ -85,8 +93,8 @@ export default function AddStore({
85
93
  title: t('store.blockletRegistry.addRegistry'),
86
94
  fullWidth: true,
87
95
  maxWidth: "md",
88
- open: open,
89
- onClose: () => setOpen(false),
96
+ open: open || isOpen,
97
+ onClose: handleClose,
90
98
  PaperProps: {
91
99
  style: {
92
100
  minHeight: 'auto'
@@ -96,7 +104,7 @@ export default function AddStore({
96
104
  children: [/*#__PURE__*/_jsx(Button, {
97
105
  onClick: e => {
98
106
  e.stopPropagation();
99
- setOpen(false);
107
+ handleClose();
100
108
  },
101
109
  color: "inherit",
102
110
  children: t('common.cancel')
@@ -172,11 +180,17 @@ AddStore.propTypes = {
172
180
  disabled: PropTypes.bool,
173
181
  storeList: PropTypes.array,
174
182
  onAdd: PropTypes.func,
175
- scope: PropTypes.string
183
+ scope: PropTypes.string,
184
+ hiddenChildren: PropTypes.bool,
185
+ open: PropTypes.bool,
186
+ onClose: PropTypes.func
176
187
  };
177
188
  AddStore.defaultProps = {
178
189
  disabled: false,
179
190
  storeList: [],
180
191
  onAdd: () => {},
181
- scope: ''
192
+ scope: '',
193
+ hiddenChildren: false,
194
+ open: false,
195
+ onClose: () => {}
182
196
  };
@@ -4,7 +4,7 @@ import { Box, Button, Menu, MenuItem } from '@mui/material';
4
4
  import MoreVertIcon from '@mui/icons-material/MoreVert';
5
5
  import { joinURL } from 'ufo';
6
6
  import LaunchIcon from '@mui/icons-material/Launch';
7
- import LinkOutlinedIcon from '@mui/icons-material/LinkOutlined';
7
+ import LinkOffIcon from '@mui/icons-material/LinkOff';
8
8
  import DeleteOutlineIcon from '@mui/icons-material/DeleteOutline';
9
9
  import { useLocaleContext } from '@arcblock/ux/lib/Locale/context';
10
10
  import ConfirmDialog from '../confirm';
@@ -12,7 +12,7 @@ import DeleteStore from './delete';
12
12
  import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
13
13
  function ConnectActions({
14
14
  connected,
15
- onConnect,
15
+ onDisconnect,
16
16
  onDelete,
17
17
  store,
18
18
  teamDid,
@@ -23,7 +23,7 @@ function ConnectActions({
23
23
  const {
24
24
  t
25
25
  } = useLocaleContext();
26
- const [showReconnectConfirm, setShowReconnectConfirm] = useState(false);
26
+ const [showDisconnectConfirm, setShowDisconnectConfirm] = useState(false);
27
27
  const handleOpenUrl = e => {
28
28
  e.stopPropagation();
29
29
  window.open(joinURL(store.url, 'developer/blocklets'));
@@ -35,21 +35,21 @@ function ConnectActions({
35
35
  const handleClose = () => {
36
36
  setAnchorEl(null);
37
37
  };
38
- const handleConnect = () => {
39
- setShowReconnectConfirm(false);
40
- onConnect();
38
+ const handleDisconnect = () => {
39
+ setShowDisconnectConfirm(false);
40
+ onDisconnect();
41
41
  };
42
42
  const actions = [{
43
43
  label: t('common.visitStore'),
44
44
  action: handleOpenUrl,
45
45
  icon: LaunchIcon
46
46
  }, {
47
- label: t('common.reconnect'),
47
+ label: t('common.disconnect'),
48
48
  action: () => {
49
49
  handleClose();
50
- setShowReconnectConfirm(true);
50
+ setShowDisconnectConfirm(true);
51
51
  },
52
- icon: LinkOutlinedIcon,
52
+ icon: LinkOffIcon,
53
53
  hidden: !connected
54
54
  }];
55
55
  return /*#__PURE__*/_jsxs(_Fragment, {
@@ -93,7 +93,7 @@ function ConnectActions({
93
93
  children: x.label
94
94
  })]
95
95
  }, x.label);
96
- }), /*#__PURE__*/_jsx(DeleteStore, {
96
+ }), !store.protected && /*#__PURE__*/_jsx(DeleteStore, {
97
97
  store: store,
98
98
  onDelete: onDelete,
99
99
  teamDid: teamDid,
@@ -112,19 +112,19 @@ function ConnectActions({
112
112
  })]
113
113
  })
114
114
  })]
115
- }), showReconnectConfirm && /*#__PURE__*/_jsx(ConfirmDialog, {
115
+ }), showDisconnectConfirm && /*#__PURE__*/_jsx(ConfirmDialog, {
116
116
  displayError: true,
117
- title: `${t('common.reconnect')} ${store.name}`,
118
- description: t('blocklet.publish.reconnectStoreTip'),
117
+ title: `${t('common.disconnect')} ${store.name}`,
118
+ description: t('blocklet.publish.disconnectStoreTip'),
119
119
  confirm: t('common.confirm'),
120
- onConfirm: handleConnect,
121
- onCancel: () => setShowReconnectConfirm(false)
120
+ onConfirm: handleDisconnect,
121
+ onCancel: () => setShowDisconnectConfirm(false)
122
122
  })]
123
123
  });
124
124
  }
125
125
  ConnectActions.propTypes = {
126
126
  connected: PropTypes.bool,
127
- onConnect: PropTypes.func,
127
+ onDisconnect: PropTypes.func,
128
128
  onDelete: PropTypes.func,
129
129
  store: PropTypes.object.isRequired,
130
130
  teamDid: PropTypes.string.isRequired,
@@ -133,7 +133,7 @@ ConnectActions.propTypes = {
133
133
  ConnectActions.defaultProps = {
134
134
  projectId: '',
135
135
  connected: false,
136
- onConnect: () => {},
137
- onDelete: () => {}
136
+ onDelete: () => {},
137
+ onDisconnect: () => {}
138
138
  };
139
139
  export default ConnectActions;
package/lib/store/item.js CHANGED
@@ -17,6 +17,10 @@ import ConnectActions from './connect-actions';
17
17
  import DidAddress from '../did-address';
18
18
  import usePromiseWindowOpen from '../hooks/use-promise-window-open';
19
19
  import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
20
+ export const BEHAVIOR = {
21
+ CONNECT: 'connect',
22
+ SELECT: 'select'
23
+ };
20
24
  const useStyles = makeStyles(() => ({
21
25
  buttonText: {
22
26
  textTransform: 'none !important'
@@ -98,7 +102,9 @@ export default function StoreItem({
98
102
  connectedStore,
99
103
  releaseType,
100
104
  onPublish,
101
- onOpenConnectStore
105
+ onOpenConnectStore,
106
+ onSelectConnectStore,
107
+ behavior
102
108
  }) {
103
109
  const classes = useStyles();
104
110
  const {
@@ -123,6 +129,10 @@ export default function StoreItem({
123
129
  window.open(store.url);
124
130
  };
125
131
  const handleConnectToStore = () => {
132
+ if (behavior === BEHAVIOR.SELECT) {
133
+ onSelectConnectStore(store);
134
+ return;
135
+ }
126
136
  openWindow(async (newWindow, open) => {
127
137
  try {
128
138
  const res = await api.connectToStore({
@@ -153,6 +163,16 @@ export default function StoreItem({
153
163
  }
154
164
  });
155
165
  };
166
+ const handleDisconnectStore = async () => {
167
+ await api.disconnectFromStore({
168
+ input: {
169
+ did: teamDid,
170
+ storeId: store.id,
171
+ projectId
172
+ }
173
+ });
174
+ onDelete();
175
+ };
156
176
  const handleUploadToStore = () => {
157
177
  setLoading(true);
158
178
  api.publishToStore({
@@ -302,7 +322,7 @@ export default function StoreItem({
302
322
  store: store,
303
323
  onDelete: onDelete,
304
324
  teamDid: teamDid,
305
- onConnect: handleConnectToStore
325
+ onDisconnect: handleDisconnectStore
306
326
  })]
307
327
  }), !isPublish && /*#__PURE__*/_jsxs(ButtonGroup, {
308
328
  disabled: loading,
@@ -349,7 +369,9 @@ StoreItem.propTypes = {
349
369
  }).isRequired,
350
370
  onDelete: PropTypes.func,
351
371
  onPublish: PropTypes.func,
352
- onOpenConnectStore: PropTypes.func
372
+ onOpenConnectStore: PropTypes.func,
373
+ behavior: PropTypes.string,
374
+ onSelectConnectStore: PropTypes.func
353
375
  };
354
376
  StoreItem.defaultProps = {
355
377
  kind: 'store',
@@ -358,7 +380,9 @@ StoreItem.defaultProps = {
358
380
  releaseId: '',
359
381
  projectId: '',
360
382
  releaseType: '',
383
+ behavior: BEHAVIOR.CONNECT,
361
384
  onPublish: () => {},
362
385
  onDelete: () => {},
363
- onOpenConnectStore: () => {}
386
+ onOpenConnectStore: () => {},
387
+ onSelectConnectStore: () => {}
364
388
  };
@@ -151,7 +151,8 @@ export default function MemberList({
151
151
  refresh,
152
152
  enablePassportIssuance,
153
153
  endpoint,
154
- api
154
+ api,
155
+ blocklet
155
156
  } = useTeamContext();
156
157
  const {
157
158
  inService,
@@ -159,6 +160,36 @@ export default function MemberList({
159
160
  useSubscription
160
161
  }
161
162
  } = useNodeContext();
163
+ const appInfoList = [];
164
+ if (inService && blocklet) {
165
+ const federatedMaster = (blocklet.settings?.federated?.sites || []).find(item => item.isMaster !== false);
166
+ const federatedCurrent = (blocklet.settings?.federated?.sites || []).find(item => item.appId === blocklet.appDid);
167
+ if (federatedCurrent?.status === 'approved') {
168
+ appInfoList.push({
169
+ appId: federatedMaster.appId,
170
+ appName: federatedMaster.appName,
171
+ appDescription: federatedMaster.appDescription,
172
+ appLogo: federatedMaster.appLogo,
173
+ appPid: federatedMaster.appPid,
174
+ appUrl: federatedMaster.appUrl,
175
+ version: federatedMaster.version,
176
+ sourceAppPid: federatedMaster.appPid,
177
+ provider: 'wallet'
178
+ });
179
+ }
180
+ appInfoList.push({
181
+ appId: federatedCurrent.appId,
182
+ appName: federatedCurrent.appName,
183
+ appDescription: federatedCurrent.appDescription,
184
+ appLogo: federatedCurrent.appLogo,
185
+ appPid: federatedCurrent.appPid,
186
+ appUrl: federatedCurrent.appUrl,
187
+ version: federatedCurrent.version,
188
+ // NOTICE: null 代表该值置空
189
+ sourceAppPid: null,
190
+ provider: 'wallet'
191
+ });
192
+ }
162
193
  const {
163
194
  t,
164
195
  locale
@@ -604,6 +635,7 @@ export default function MemberList({
604
635
  teamDid: teamDid,
605
636
  endpoint: endpoint,
606
637
  roles: roles,
638
+ apps: appInfoList,
607
639
  onCancel: () => setShowInviteMember(false),
608
640
  onSuccess: () => {
609
641
  refresh();