@abtnode/ux 1.16.27-beta-f109b207 → 1.16.27-beta-74c4e335

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.
Files changed (35) hide show
  1. package/lib/blocklet/audit-logs.js +4 -1
  2. package/lib/blocklet/component/add-component/add-component-core.js +192 -171
  3. package/lib/blocklet/component/add-component/step-connect.js +9 -3
  4. package/lib/blocklet/component/related-components-dialog.js +1 -0
  5. package/lib/blocklet/publish/connect-store-list.js +8 -4
  6. package/lib/blocklet/publish/create-release.js +199 -119
  7. package/lib/blocklet/publish/hooks/use-want-to-connect-store.js +21 -0
  8. package/lib/blocklet/publish/resource.js +81 -43
  9. package/lib/blocklet/publish/select-components.js +31 -11
  10. package/lib/blocklet/publish/stop-box.js +35 -0
  11. package/lib/blocklet/publish/tree.js +48 -41
  12. package/lib/blocklet/publish/utils/upload-image-to-project.js +73 -0
  13. package/lib/blocklet/publish/{wait-connect.js → utils/wait-connect.js} +2 -2
  14. package/lib/blocklet/router/action/add-domain-alias.js +2 -0
  15. package/lib/blocklet/router/add-domain.js +129 -79
  16. package/lib/confirm.js +4 -1
  17. package/lib/hooks/use-promise-window-open.js +31 -0
  18. package/lib/locales/ar.js +6 -4
  19. package/lib/locales/de.js +6 -4
  20. package/lib/locales/en.js +6 -4
  21. package/lib/locales/es.js +6 -4
  22. package/lib/locales/fr.js +6 -4
  23. package/lib/locales/hi.js +6 -4
  24. package/lib/locales/i18n.db +0 -0
  25. package/lib/locales/id.js +6 -4
  26. package/lib/locales/ja.js +6 -4
  27. package/lib/locales/ko.js +6 -4
  28. package/lib/locales/pt.js +6 -4
  29. package/lib/locales/ru.js +6 -4
  30. package/lib/locales/th.js +6 -4
  31. package/lib/locales/vi.js +6 -4
  32. package/lib/locales/zh-tw.js +7 -5
  33. package/lib/locales/zh.js +7 -5
  34. package/lib/store/item.js +38 -31
  35. package/package.json +19 -18
@@ -2,6 +2,7 @@
2
2
  import styled from '@emotion/styled';
3
3
  import { Link } from 'react-router-dom';
4
4
  import MarkdownPreview from '@uiw/react-markdown-preview';
5
+ import rehypeExternalLinks from 'rehype-external-links';
5
6
  import DidAvatar from '@arcblock/did-connect/lib/Avatar';
6
7
  import Spinner from '@mui/material/CircularProgress';
7
8
  import Empty from '@arcblock/ux/lib/Empty';
@@ -105,7 +106,9 @@ function AuditLog({
105
106
  gutterBottom: true,
106
107
  children: /*#__PURE__*/_jsx(MarkdownPreview, {
107
108
  source: log.content,
108
- linkTarget: "_blank"
109
+ rehypePlugins: [[rehypeExternalLinks, {
110
+ target: '_blank'
111
+ }]]
109
112
  })
110
113
  }), /*#__PURE__*/_jsxs(Box, {
111
114
  className: "log-meta",
@@ -101,6 +101,7 @@ export default function AddComponentCore({
101
101
  storageKey,
102
102
  inDialog,
103
103
  selectedMeta,
104
+ storeUrl,
104
105
  showResourcesSwitch,
105
106
  showFromUrl,
106
107
  enableRunBackground,
@@ -264,6 +265,7 @@ export default function AddComponentCore({
264
265
  useSubscription(BlockletEvents.installFailed, createBlockletEventHandler(() => {
265
266
  setInstallErrorResult(t('blocklet.component.installComponentError'));
266
267
  }), [blocklet?.meta?.did]);
268
+ const steps = [];
267
269
  const onOver = () => {
268
270
  setLoading(false);
269
271
  setParams({});
@@ -383,7 +385,6 @@ export default function AddComponentCore({
383
385
  setError(errMsg);
384
386
 
385
387
  // the step can complete, install component
386
- // eslint-disable-next-line no-use-before-define
387
388
  if (activeStep === steps.length - 2) {
388
389
  await onInstall(payload);
389
390
  }
@@ -494,6 +495,7 @@ export default function AddComponentCore({
494
495
  });
495
496
  component.current = {
496
497
  ...chooseParams,
498
+ // FIXME: @zhanghan 此处不应该修改 meta 的结构,会导致在不同地方看到的 meta 结果不一样,然后产生误解
497
499
  meta: {
498
500
  ...meta,
499
501
  // init configs from environments
@@ -611,14 +613,14 @@ export default function AddComponentCore({
611
613
  }
612
614
  };
613
615
  useEffect(() => {
614
- if (!selectedMeta || activeStep !== 0) {
616
+ if (!selectedMeta || activeStep !== 0 || !blocklet) {
615
617
  return;
616
618
  }
617
619
  setConfigValue({
618
620
  chooseParams: {
619
621
  blocklets: [selectedMeta],
620
622
  meta: selectedMeta,
621
- registryUrl: selectedMeta.homepage,
623
+ registryUrl: storeUrl || selectedMeta.homepage,
622
624
  inStore: true
623
625
  },
624
626
  isInit: true
@@ -629,8 +631,8 @@ export default function AddComponentCore({
629
631
  onNext();
630
632
 
631
633
  // eslint-disable-next-line react-hooks/exhaustive-deps
632
- }, [selectedMeta, activeStep]);
633
- const steps = [{
634
+ }, [selectedMeta, activeStep, blocklet]);
635
+ steps.push({
634
636
  key: 'selectComponent',
635
637
  name: t('blocklet.component.selectComponent'),
636
638
  body: /*#__PURE__*/_jsxs(TypographyWrapper, {
@@ -695,7 +697,7 @@ export default function AddComponentCore({
695
697
  fontSize: 20,
696
698
  marginRight: 4
697
699
  }
698
- }), ' ', t('blocklet.component.addComponentTip.fromUrl'), ' ']
700
+ }), " ", t('blocklet.component.addComponentTip.fromUrl'), ' ']
699
701
  }) : null : null,
700
702
  loading: loading,
701
703
  onChange: () => {
@@ -762,10 +764,14 @@ export default function AddComponentCore({
762
764
  onConfirm: () => {
763
765
  onNext();
764
766
  }
765
- }, {
767
+ });
768
+ steps.push({
766
769
  key: 'agreement',
767
770
  name: t('launchBlocklet.introduction'),
768
- body: /*#__PURE__*/_jsxs(TypographyWrapper, {
771
+ body:
772
+ /*#__PURE__*/
773
+ // TODO: @zhanghan 添加要展示的信息,暂时无法添加,需要修改 launch-layout 里的组件
774
+ _jsxs(TypographyWrapper, {
769
775
  component: "div",
770
776
  className: "agreement-wrapper",
771
777
  children: [/*#__PURE__*/_jsx(PageHeader, {
@@ -792,187 +798,200 @@ export default function AddComponentCore({
792
798
  })
793
799
  })]
794
800
  }),
795
- cancel: selectedMeta ? t('common.cancel') : t('common.pre'),
801
+ cancel: selectedMeta ? undefined : t('common.pre'),
796
802
  confirm: t('launchBlocklet.next'),
797
803
  onCancel: selectedMeta ? onOver : onCancel,
798
804
  onConfirm: () => {
799
805
  setIsWaitingPurchase(false);
800
806
  onNext();
801
807
  }
802
- }, meta && params.requirePurchase && {
803
- key: 'purchase',
804
- name: /*#__PURE__*/_jsxs(_Fragment, {
805
- children: [t('common.verifyNFT'), /*#__PURE__*/_jsx(Required, {})]
806
- }),
807
- body: /*#__PURE__*/_jsxs(TypographyWrapper, {
808
- component: "div",
809
- className: "flex-align-center",
810
- style: {
811
- flexDirection: 'column'
812
- },
813
- children: [!(purchaseRef.current?.getCurrentStep?.() === 2 || isWaitingPurchase) && /*#__PURE__*/_jsx(PageHeaderWrapper, {
814
- title: t('common.verifyNFT'),
815
- subTitle: t('blocklet.component.addComponentTip.verifyNFT')
816
- }), !isEmpty(params.purchaseResultProps) ? /*#__PURE__*/_jsx("div", {
817
- className: "flex-align-center flex-justify-center",
818
- children: /*#__PURE__*/_jsx(ResultMessage, {
819
- ...params.purchaseResultProps
820
- })
821
- }) : purchaseData && /*#__PURE__*/_jsx(ComponentPurchaseSelect, {
822
- ref: purchaseRef,
823
- meta: purchaseData.meta
824
- // if select deleted history, use verify mode
825
- ,
826
- mode: params.componentDid ? 'verify' : 'both',
827
- onCancel: onCancelPurchase,
828
- installOpts: purchaseData.installOpts,
829
- handlePaySuccess: onSuccessPurchase
830
- })]
831
- }),
832
- disabled: purchaseRef.current?.getCurrentStep?.() === 2 || isWaitingPurchase,
833
- cancel: t('common.pre'),
834
- confirm: t('common.next'),
835
- onConfirm: () => {
836
- if (typeof purchaseRef.current.onNext === 'function') {
837
- purchaseRef.current.onNext();
838
- setIsWaitingPurchase(true);
839
- }
840
- },
841
- onCancel: () => {
842
- onCancel();
843
- }
844
- }, hasStartEngine(meta) && !alreadyInstalled(meta.did) && {
845
- key: 'config',
846
- name: t('common.config'),
847
- error,
848
- body: /*#__PURE__*/_jsxs(TypographyWrapper, {
849
- component: "div",
850
- children: [/*#__PURE__*/_jsx(PageHeaderWrapper, {
851
- title: t('common.config'),
852
- subTitle: t('blocklet.component.addComponentTip.config')
853
- }), /*#__PURE__*/_jsx(TextField, {
854
- label: t('blocklet.component.mountPoint'),
855
- autoComplete: "off",
856
- variant: "outlined",
857
- name: "pathPrefix",
858
- inputProps: {
859
- 'data-cy': 'mount-point-input'
860
- },
861
- fullWidth: true,
862
- helperText: mountPointHelperText || t('blocklet.component.mountPointTip'),
808
+ });
809
+ if (meta && params.requirePurchase) {
810
+ steps.push({
811
+ key: 'purchase',
812
+ name: /*#__PURE__*/_jsxs(_Fragment, {
813
+ children: [t('common.verifyNFT'), /*#__PURE__*/_jsx(Required, {})]
814
+ }),
815
+ body: /*#__PURE__*/_jsxs(TypographyWrapper, {
816
+ component: "div",
817
+ className: "flex-align-center",
863
818
  style: {
864
- marginBottom: 32
819
+ flexDirection: 'column'
865
820
  },
866
- margin: "normal",
867
- value: params.pathPrefix,
868
- onChange: e => {
869
- const pathPrefix = e.target.value;
870
- updateParams({
871
- pathPrefix
872
- });
873
- setMountPointHelperText(t('common.slugifyHint', {
874
- value: formatMountPoint(pathPrefix)
875
- }));
821
+ children: [!(purchaseRef.current?.getCurrentStep?.() === 2 || isWaitingPurchase) && /*#__PURE__*/_jsx(PageHeaderWrapper, {
822
+ title: t('common.verifyNFT'),
823
+ subTitle: t('blocklet.component.addComponentTip.verifyNFT')
824
+ }), !isEmpty(params.purchaseResultProps) ? /*#__PURE__*/_jsx("div", {
825
+ className: "flex-align-center flex-justify-center",
826
+ children: /*#__PURE__*/_jsx(ResultMessage, {
827
+ ...params.purchaseResultProps
828
+ })
829
+ }) : purchaseData && /*#__PURE__*/_jsx(ComponentPurchaseSelect, {
830
+ ref: purchaseRef,
831
+ meta: purchaseData.meta
832
+ // if select deleted history, use verify mode
833
+ ,
834
+ mode: params.componentDid ? 'verify' : 'both',
835
+ onCancel: onCancelPurchase,
836
+ installOpts: purchaseData.installOpts,
837
+ handlePaySuccess: onSuccessPurchase
838
+ })]
839
+ }),
840
+ disabled: purchaseRef.current?.getCurrentStep?.() === 2 || isWaitingPurchase,
841
+ cancel: t('common.pre'),
842
+ confirm: t('common.next'),
843
+ onConfirm: () => {
844
+ if (typeof purchaseRef.current.onNext === 'function') {
845
+ purchaseRef.current.onNext();
846
+ setIsWaitingPurchase(true);
876
847
  }
877
- }), !!error && /*#__PURE__*/_jsx(Alert, {
878
- type: "error",
879
- style: {
880
- width: '100%',
881
- marginTop: 8
882
- },
883
- children: error
884
- })]
885
- }),
886
- cancel: t('common.pre'),
887
- confirm: t('common.next'),
888
- onCancel,
889
- onConfirm: () => {
890
- onNext();
891
- }
892
- }, meta && !alreadyInstalled(meta.did) && params?.hasEnvironmentsStep && {
893
- key: 'environment',
894
- name: /*#__PURE__*/_jsxs(_Fragment, {
895
- children: [t('common.environment'), " ", params.hasRequiredEnvironments && /*#__PURE__*/_jsx(Required, {})]
896
- }),
897
- disabled: !!editingItem || params?.hasMissRequiredConfigs,
898
- body: () => {
899
- return /*#__PURE__*/_jsxs(TypographyWrapper, {
848
+ },
849
+ onCancel: () => {
850
+ onCancel();
851
+ }
852
+ });
853
+ }
854
+ if (hasStartEngine(meta) && !alreadyInstalled(meta.did)) {
855
+ steps.push({
856
+ key: 'config',
857
+ name: t('common.config'),
858
+ error,
859
+ body: /*#__PURE__*/_jsxs(TypographyWrapper, {
900
860
  component: "div",
901
861
  children: [/*#__PURE__*/_jsx(PageHeaderWrapper, {
902
- title: t('common.environment'),
903
- subTitle: t('blocklet.component.addComponentTip.environment')
904
- }), /*#__PURE__*/_jsx(SchemaForm, {
862
+ title: t('common.config'),
863
+ subTitle: t('blocklet.component.addComponentTip.config')
864
+ }), /*#__PURE__*/_jsx(TextField, {
865
+ label: t('blocklet.component.mountPoint'),
866
+ autoComplete: "off",
867
+ variant: "outlined",
868
+ name: "pathPrefix",
869
+ inputProps: {
870
+ 'data-cy': 'mount-point-input'
871
+ },
872
+ fullWidth: true,
873
+ helperText: mountPointHelperText || t('blocklet.component.mountPointTip'),
905
874
  style: {
906
- marginTop: -12,
907
- width: '100%'
875
+ marginBottom: 32
908
876
  },
909
- schema: params.configsList,
910
- defaultValue: params.configsValue
911
- // eslint-disable-next-line
912
- ,
913
- onChange: (changeValue, {
914
- action,
915
- currentItem,
916
- allValues
917
- }) => {
918
- if (action === 'confirm') {
919
- updateParams({
920
- hasMissRequiredConfigs: hasMissRequiredConfigs(params.configsList, allValues),
921
- configsValue: allValues
922
- });
923
- }
924
- if (action === 'edit') {
925
- setEditingItem(currentItem);
926
- } else if (['cancel', 'confirm'].includes(action)) {
927
- setEditingItem(null);
928
- }
877
+ margin: "normal",
878
+ value: params.pathPrefix,
879
+ onChange: e => {
880
+ const pathPrefix = e.target.value;
881
+ updateParams({
882
+ pathPrefix
883
+ });
884
+ setMountPointHelperText(t('common.slugifyHint', {
885
+ value: formatMountPoint(pathPrefix)
886
+ }));
929
887
  }
888
+ }), !!error && /*#__PURE__*/_jsx(Alert, {
889
+ type: "error",
890
+ style: {
891
+ width: '100%',
892
+ marginTop: 8
893
+ },
894
+ children: error
930
895
  })]
931
- });
932
- },
933
- cancel: t('common.pre'),
934
- confirm: t('common.next'),
935
- onCancel,
936
- onConfirm: onNext
937
- }, meta && !alreadyInstalled(meta.did) && params?.didSpaceIsRequiredSetup && {
938
- key: 'didSpace',
939
- name: /*#__PURE__*/_jsxs(_Fragment, {
940
- children: [t('blocklet.component.didSpaceConfig'), " ", params.didSpaceIsRequiredSetup === 'required' && /*#__PURE__*/_jsx(Required, {})]
941
- }),
942
- disabled: params?.didSpaceIsRequiredSetup && !params.didSpaceEndpoint,
943
- body: () => {
944
- return /*#__PURE__*/_jsx(ConfigSpaceProvider, {
945
- children: /*#__PURE__*/_jsxs(TypographyWrapper, {
896
+ }),
897
+ cancel: t('common.pre'),
898
+ confirm: t('common.next'),
899
+ onCancel,
900
+ onConfirm: () => {
901
+ onNext();
902
+ }
903
+ });
904
+ }
905
+ if (meta && !alreadyInstalled(meta.did) && params?.hasEnvironmentsStep) {
906
+ steps.push({
907
+ key: 'environment',
908
+ name: /*#__PURE__*/_jsxs(_Fragment, {
909
+ children: [t('common.environment'), " ", params.hasRequiredEnvironments && /*#__PURE__*/_jsx(Required, {})]
910
+ }),
911
+ disabled: !!editingItem || params?.hasMissRequiredConfigs,
912
+ body: () => {
913
+ return /*#__PURE__*/_jsxs(TypographyWrapper, {
946
914
  component: "div",
947
915
  children: [/*#__PURE__*/_jsx(PageHeaderWrapper, {
948
- title: t('blocklet.component.didSpaceConfig'),
949
- subTitle: t('blocklet.component.didSpaceConfigTip')
950
- }), /*#__PURE__*/_jsx(Box, {
951
- sx: {
952
- mt: '36px',
953
- '& > div': {
954
- maxWidth: 'unset !important',
955
- '& .MuiAutocomplete-root': {
956
- maxWidth: 'unset !important'
957
- }
958
- }
916
+ title: t('common.environment'),
917
+ subTitle: t('blocklet.component.addComponentTip.environment')
918
+ }), /*#__PURE__*/_jsx(SchemaForm, {
919
+ style: {
920
+ marginTop: -12,
921
+ width: '100%'
959
922
  },
960
- children: /*#__PURE__*/_jsx(DidSpace, {
961
- blockletMeta: component.current.meta,
962
- onNext: () => {
963
- onNext();
964
- },
965
- onEndpointUpdate: refreshDidSpaceEndpoint
966
- })
923
+ schema: params.configsList,
924
+ defaultValue: params.configsValue
925
+ // eslint-disable-next-line
926
+ ,
927
+ onChange: (changeValue, {
928
+ action,
929
+ currentItem,
930
+ allValues
931
+ }) => {
932
+ if (action === 'confirm') {
933
+ updateParams({
934
+ hasMissRequiredConfigs: hasMissRequiredConfigs(params.configsList, allValues),
935
+ configsValue: allValues
936
+ });
937
+ }
938
+ if (action === 'edit') {
939
+ setEditingItem(currentItem);
940
+ } else if (['cancel', 'confirm'].includes(action)) {
941
+ setEditingItem(null);
942
+ }
943
+ }
967
944
  })]
968
- })
969
- });
970
- },
971
- cancel: t('common.pre'),
972
- confirm: t('common.next'),
973
- onCancel,
974
- onConfirm: onNext
975
- }, {
945
+ });
946
+ },
947
+ cancel: t('common.pre'),
948
+ confirm: t('common.next'),
949
+ onCancel,
950
+ onConfirm: onNext
951
+ });
952
+ }
953
+ if (meta && !alreadyInstalled(meta.did) && params?.didSpaceIsRequiredSetup) {
954
+ steps.push({
955
+ key: 'didSpace',
956
+ name: /*#__PURE__*/_jsxs(_Fragment, {
957
+ children: [t('blocklet.component.didSpaceConfig'), " ", params.didSpaceIsRequiredSetup === 'required' && /*#__PURE__*/_jsx(Required, {})]
958
+ }),
959
+ disabled: params?.didSpaceIsRequiredSetup && !params.didSpaceEndpoint,
960
+ body: () => {
961
+ return /*#__PURE__*/_jsx(ConfigSpaceProvider, {
962
+ children: /*#__PURE__*/_jsxs(TypographyWrapper, {
963
+ component: "div",
964
+ children: [/*#__PURE__*/_jsx(PageHeaderWrapper, {
965
+ title: t('blocklet.component.didSpaceConfig'),
966
+ subTitle: t('blocklet.component.didSpaceConfigTip')
967
+ }), /*#__PURE__*/_jsx(Box, {
968
+ sx: {
969
+ mt: '36px',
970
+ '& > div': {
971
+ maxWidth: 'unset !important',
972
+ '& .MuiAutocomplete-root': {
973
+ maxWidth: 'unset !important'
974
+ }
975
+ }
976
+ },
977
+ children: /*#__PURE__*/_jsx(DidSpace, {
978
+ blockletMeta: component.current.meta,
979
+ onNext: () => {
980
+ onNext();
981
+ },
982
+ onEndpointUpdate: refreshDidSpaceEndpoint
983
+ })
984
+ })]
985
+ })
986
+ });
987
+ },
988
+ cancel: t('common.pre'),
989
+ confirm: t('common.next'),
990
+ onCancel,
991
+ onConfirm: onNext
992
+ });
993
+ }
994
+ steps.push({
976
995
  key: 'install',
977
996
  name: alreadyInstalled(meta?.did) ? t('common.upgrade') : t('common.install'),
978
997
  disabled: enableRunBackground ? false : isEmpty(params.installResultProps),
@@ -1014,7 +1033,7 @@ export default function AddComponentCore({
1014
1033
  }
1015
1034
  }, 200);
1016
1035
  }
1017
- }].filter(item => item);
1036
+ });
1018
1037
  const step = steps[activeStep] || {};
1019
1038
  const isDisabled = () => {
1020
1039
  if (loading || step.error || !params.bundleDid) {
@@ -1098,6 +1117,7 @@ AddComponentCore.propTypes = {
1098
1117
  mode: PropTypes.oneOf(['normal', 'embed']),
1099
1118
  inDialog: PropTypes.bool,
1100
1119
  stores: PropTypes.arrayOf(PropTypes.string),
1120
+ storeUrl: PropTypes.string,
1101
1121
  resourceType: PropTypes.string,
1102
1122
  resourceDid: PropTypes.string,
1103
1123
  storageKey: PropTypes.string,
@@ -1111,6 +1131,7 @@ AddComponentCore.defaultProps = {
1111
1131
  onClose: () => {},
1112
1132
  mode: 'normal',
1113
1133
  stores: [],
1134
+ storeUrl: '',
1114
1135
  resourceType: '',
1115
1136
  resourceDid: '',
1116
1137
  storageKey: '',
@@ -36,7 +36,12 @@ const StepContent = /*#__PURE__*/forwardRef(({
36
36
  component: "div",
37
37
  className: isMobile ? 'mobileStyle' : '',
38
38
  sx: {
39
- height: 'calc(100% - 56px)'
39
+ height: 'calc(100% - 56px)',
40
+ '&>div>div>div:first-child': {
41
+ flex: {
42
+ md: 1
43
+ }
44
+ }
40
45
  },
41
46
  children: /*#__PURE__*/_jsx(Layout, {
42
47
  locale: locale,
@@ -155,8 +160,9 @@ const ContentWrapper = styled(Box)`
155
160
  // left-panel
156
161
  &:first-child {
157
162
  padding: 0;
158
- width: 25%;
159
- min-width: 240px;
163
+ width: 20%;
164
+ min-width: 180px;
165
+
160
166
  & > div:first-child {
161
167
  display: none;
162
168
  }
@@ -137,6 +137,7 @@ export default function RelatedComponentsDialog({
137
137
  }
138
138
  },
139
139
  onClick: () => {
140
+ // FIXME: @zhanghan 不能使用 homepage 来获得最终地址
140
141
  window.open(`${component.bundleSource?.store || component.meta.homepage}/blocklets/${component.meta.did}`, '_blank');
141
142
  },
142
143
  children: [component.meta.title, /*#__PURE__*/_jsx(Box, {
@@ -19,7 +19,8 @@ function ConnectStoreList({
19
19
  onPublish,
20
20
  onDelete,
21
21
  projectType,
22
- componentDid
22
+ componentDid,
23
+ onOpenConnectStore
23
24
  }) {
24
25
  const {
25
26
  t
@@ -50,7 +51,8 @@ function ConnectStoreList({
50
51
  published: publishedStoreIds?.indexOf(x.id) > -1,
51
52
  connectedStore: connectedMap[x.id],
52
53
  onPublish: onPublish,
53
- onDelete: onDelete
54
+ onDelete: onDelete,
55
+ onOpenConnectStore: onOpenConnectStore
54
56
  })
55
57
  })
56
58
  }, x.url)), !!storeList?.length && /*#__PURE__*/_jsx(Alert, {
@@ -89,13 +91,15 @@ ConnectStoreList.propTypes = {
89
91
  publishedStoreIds: PropTypes.arrayOf(PropTypes.string),
90
92
  connectedStores: PropTypes.arrayOf(PropTypes.object).isRequired,
91
93
  projectType: PropTypes.string,
92
- componentDid: PropTypes.string
94
+ componentDid: PropTypes.string,
95
+ onOpenConnectStore: PropTypes.func
93
96
  };
94
97
  ConnectStoreList.defaultProps = {
95
98
  projectType: '',
96
99
  componentDid: '',
97
100
  publishedStoreIds: [],
98
101
  onPublish: () => {},
99
- onDelete: () => {}
102
+ onDelete: () => {},
103
+ onOpenConnectStore: () => {}
100
104
  };
101
105
  export default ConnectStoreList;