@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/blocklet/notification/push-kit.js +17 -3
- package/lib/blocklet/publish/create-release/branding.js +1 -0
- package/lib/blocklet/publish/create-release/connect-store-button.js +99 -23
- package/lib/blocklet/publish/create-release/connect-store-list.js +12 -6
- package/lib/blocklet/publish/create-release/index.js +3 -1
- package/lib/invitation/invitation-receive.js +46 -25
- package/lib/invitation/invitation.js +4 -4
- package/lib/locales/ar.js +7 -3
- package/lib/locales/de.js +7 -3
- package/lib/locales/en.js +5 -1
- package/lib/locales/es.js +7 -3
- package/lib/locales/fr.js +7 -3
- package/lib/locales/hi.js +7 -3
- package/lib/locales/i18n.db +0 -0
- package/lib/locales/id.js +7 -3
- package/lib/locales/ja.js +7 -3
- package/lib/locales/ko.js +7 -3
- package/lib/locales/pt.js +7 -3
- package/lib/locales/ru.js +7 -3
- package/lib/locales/th.js +7 -3
- package/lib/locales/vi.js +7 -3
- package/lib/locales/zh-tw.js +7 -3
- package/lib/locales/zh.js +7 -3
- package/lib/store/add.js +24 -10
- package/lib/store/connect-actions.js +18 -18
- package/lib/store/item.js +28 -4
- package/lib/team/members/index.js +33 -1
- package/lib/team/members/invite-member.js +98 -66
- package/lib/util/sdk.js +3 -0
- package/package.json +8 -7
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: '
|
|
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: '
|
|
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: '
|
|
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: '
|
|
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ự.'
|
package/lib/locales/zh-tw.js
CHANGED
|
@@ -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: '
|
|
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: '
|
|
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 [
|
|
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
|
-
|
|
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
|
-
|
|
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:
|
|
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
|
-
|
|
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
|
|
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
|
-
|
|
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 [
|
|
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
|
|
39
|
-
|
|
40
|
-
|
|
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.
|
|
47
|
+
label: t('common.disconnect'),
|
|
48
48
|
action: () => {
|
|
49
49
|
handleClose();
|
|
50
|
-
|
|
50
|
+
setShowDisconnectConfirm(true);
|
|
51
51
|
},
|
|
52
|
-
icon:
|
|
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
|
-
}),
|
|
115
|
+
}), showDisconnectConfirm && /*#__PURE__*/_jsx(ConfirmDialog, {
|
|
116
116
|
displayError: true,
|
|
117
|
-
title: `${t('common.
|
|
118
|
-
description: t('blocklet.publish.
|
|
117
|
+
title: `${t('common.disconnect')} ${store.name}`,
|
|
118
|
+
description: t('blocklet.publish.disconnectStoreTip'),
|
|
119
119
|
confirm: t('common.confirm'),
|
|
120
|
-
onConfirm:
|
|
121
|
-
onCancel: () =>
|
|
120
|
+
onConfirm: handleDisconnect,
|
|
121
|
+
onCancel: () => setShowDisconnectConfirm(false)
|
|
122
122
|
})]
|
|
123
123
|
});
|
|
124
124
|
}
|
|
125
125
|
ConnectActions.propTypes = {
|
|
126
126
|
connected: PropTypes.bool,
|
|
127
|
-
|
|
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
|
-
|
|
137
|
-
|
|
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
|
-
|
|
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();
|