@xyo-network/os-react-runtime 4.1.4 → 4.2.0-rc.10

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 (66) hide show
  1. package/dist/browser/DappPathSwitcher.d.ts.map +1 -1
  2. package/dist/browser/helpers/BridgeActivityHelper.d.ts +10 -10
  3. package/dist/browser/helpers/index.d.ts +0 -1
  4. package/dist/browser/helpers/index.d.ts.map +1 -1
  5. package/dist/browser/hooks/intent/useDappIntentListener.d.ts.map +1 -1
  6. package/dist/browser/hooks/os/useDappContextCreator.d.ts +2 -2
  7. package/dist/browser/hooks/os/useDappContextCreator.d.ts.map +1 -1
  8. package/dist/browser/hooks/useAccountArchivist.d.ts +10 -10
  9. package/dist/browser/index.mjs +454 -470
  10. package/dist/browser/index.mjs.map +1 -1
  11. package/dist/browser/modules/Dapp/Button/IconEx.d.ts +4 -2
  12. package/dist/browser/modules/Dapp/Button/IconEx.d.ts.map +1 -1
  13. package/dist/browser/modules/Dapp/Container.d.ts +3 -0
  14. package/dist/browser/modules/Dapp/Container.d.ts.map +1 -1
  15. package/dist/browser/modules/Dapp/Page/Row.d.ts +2 -1
  16. package/dist/browser/modules/Dapp/Page/Row.d.ts.map +1 -1
  17. package/dist/browser/modules/Dapp/modules/Window/DappWindow.d.ts +10 -3
  18. package/dist/browser/modules/Dapp/modules/Window/DappWindow.d.ts.map +1 -1
  19. package/dist/browser/modules/Dapp/modules/Window/hooks/index.d.ts +2 -1
  20. package/dist/browser/modules/Dapp/modules/Window/hooks/index.d.ts.map +1 -1
  21. package/dist/browser/modules/Dapp/modules/Window/hooks/lib/deriveDappState.d.ts +8 -0
  22. package/dist/browser/modules/Dapp/modules/Window/hooks/lib/deriveDappState.d.ts.map +1 -0
  23. package/dist/browser/modules/Dapp/modules/Window/hooks/lib/index.d.ts +2 -1
  24. package/dist/browser/modules/Dapp/modules/Window/hooks/lib/index.d.ts.map +1 -1
  25. package/dist/browser/modules/Dapp/modules/Window/hooks/route/helpers/index.d.ts +4 -4
  26. package/dist/browser/modules/Dapp/modules/Window/hooks/route/helpers/index.d.ts.map +1 -1
  27. package/dist/browser/modules/Dapp/modules/Window/hooks/route/helpers/useManageDappInjectableParamsFromRoute.d.ts +1 -1
  28. package/dist/browser/modules/Dapp/modules/Window/hooks/route/helpers/useManageDappInjectableParamsFromRoute.d.ts.map +1 -1
  29. package/dist/browser/modules/Dapp/modules/Window/hooks/route/helpers/useManageDappPathFromRoute.d.ts +2 -0
  30. package/dist/browser/modules/Dapp/modules/Window/hooks/route/helpers/useManageDappPathFromRoute.d.ts.map +1 -1
  31. package/dist/browser/modules/Dapp/modules/Window/hooks/route/helpers/useManageDappStateFromRoute.d.ts +2 -2
  32. package/dist/browser/modules/Dapp/modules/Window/hooks/route/helpers/useManageDappStateFromRoute.d.ts.map +1 -1
  33. package/dist/browser/modules/Dapp/modules/Window/hooks/route/index.d.ts +0 -1
  34. package/dist/browser/modules/Dapp/modules/Window/hooks/route/index.d.ts.map +1 -1
  35. package/package.json +11 -10
  36. package/src/DappPathSwitcher.tsx +11 -9
  37. package/src/helpers/index.ts +0 -1
  38. package/src/hooks/intent/useDappIntentListener.tsx +3 -1
  39. package/src/hooks/os/useDappContextCreator.tsx +25 -19
  40. package/src/hooks/os/useWidgetDapps.tsx +1 -1
  41. package/src/modules/Dapp/Button/IconEx.tsx +16 -13
  42. package/src/modules/Dapp/Container.tsx +33 -5
  43. package/src/modules/Dapp/Page/Row.tsx +14 -5
  44. package/src/modules/Dapp/modules/Window/DappWindow.tsx +25 -26
  45. package/src/modules/Dapp/modules/Window/hooks/index.ts +2 -1
  46. package/src/modules/Dapp/modules/Window/hooks/lib/deriveDappState.ts +20 -0
  47. package/src/modules/Dapp/modules/Window/hooks/lib/index.ts +2 -1
  48. package/src/modules/Dapp/modules/Window/hooks/menu/useDappMenu.tsx +1 -1
  49. package/src/modules/Dapp/modules/Window/hooks/route/helpers/RoutingNodes.md +7 -0
  50. package/src/modules/Dapp/modules/Window/hooks/route/helpers/index.ts +4 -4
  51. package/src/modules/Dapp/modules/Window/hooks/route/helpers/useManageDappInjectableParamsFromRoute.tsx +1 -1
  52. package/src/modules/Dapp/modules/Window/hooks/route/helpers/useManageDappPathFromRoute.tsx +2 -0
  53. package/src/modules/Dapp/modules/Window/hooks/route/helpers/useManageDappStateFromRoute.tsx +26 -20
  54. package/src/modules/Dapp/modules/Window/hooks/route/index.ts +0 -1
  55. package/dist/browser/helpers/widgets/UpperWidgetTrayLayout.d.ts +0 -6
  56. package/dist/browser/helpers/widgets/UpperWidgetTrayLayout.d.ts.map +0 -1
  57. package/dist/browser/helpers/widgets/index.d.ts +0 -2
  58. package/dist/browser/helpers/widgets/index.d.ts.map +0 -1
  59. package/dist/browser/modules/Dapp/modules/Window/hooks/route/useManageDappBasedOffRoute.d.ts +0 -19
  60. package/dist/browser/modules/Dapp/modules/Window/hooks/route/useManageDappBasedOffRoute.d.ts.map +0 -1
  61. package/dist/browser/modules/Dapp/modules/Window/hooks/useDappState.d.ts +0 -8
  62. package/dist/browser/modules/Dapp/modules/Window/hooks/useDappState.d.ts.map +0 -1
  63. package/src/helpers/widgets/UpperWidgetTrayLayout.ts +0 -20
  64. package/src/helpers/widgets/index.ts +0 -1
  65. package/src/modules/Dapp/modules/Window/hooks/route/useManageDappBasedOffRoute.tsx +0 -33
  66. package/src/modules/Dapp/modules/Window/hooks/useDappState.tsx +0 -14
@@ -1,10 +1,12 @@
1
1
  import type { ButtonExProps } from '@xylabs/react-button';
2
2
  import type { DappIcon, DappName } from '@xyo-network/os-model';
3
3
  import React from 'react';
4
- export type DappProps = ButtonExProps & {
4
+ import type { DappState } from '../modules/index.ts';
5
+ export type DappIconButtonProps = ButtonExProps & {
5
6
  dappIcon?: DappIcon;
6
7
  dappIconSvg?: string;
7
8
  dappName?: DappName;
9
+ dappState?: DappState;
8
10
  };
9
- export declare const DappIconButton: React.FC<DappProps>;
11
+ export declare const DappIconButton: React.FC<DappIconButtonProps>;
10
12
  //# sourceMappingURL=IconEx.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"IconEx.d.ts","sourceRoot":"","sources":["../../../../../src/modules/Dapp/Button/IconEx.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAA;AAEzD,OAAO,KAAK,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAA;AAG/D,OAAO,KAAiB,MAAM,OAAO,CAAA;AAYrC,MAAM,MAAM,SAAS,GAAG,aAAa,GAAG;IACtC,QAAQ,CAAC,EAAE,QAAQ,CAAA;IACnB,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,QAAQ,CAAC,EAAE,QAAQ,CAAA;CACpB,CAAA;AAED,eAAO,MAAM,cAAc,EAAE,KAAK,CAAC,EAAE,CAAC,SAAS,CAmE9C,CAAA"}
1
+ {"version":3,"file":"IconEx.d.ts","sourceRoot":"","sources":["../../../../../src/modules/Dapp/Button/IconEx.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAA;AAEzD,OAAO,KAAK,EACV,QAAQ,EACR,QAAQ,EACT,MAAM,uBAAuB,CAAA;AAG9B,OAAO,KAAiB,MAAM,OAAO,CAAA;AAKrC,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAA;AAQpD,MAAM,MAAM,mBAAmB,GAAG,aAAa,GAAG;IAChD,QAAQ,CAAC,EAAE,QAAQ,CAAA;IACnB,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,QAAQ,CAAC,EAAE,QAAQ,CAAA;IACnB,SAAS,CAAC,EAAE,SAAS,CAAA;CACtB,CAAA;AAED,eAAO,MAAM,cAAc,EAAE,KAAK,CAAC,EAAE,CAAC,mBAAmB,CAiExD,CAAA"}
@@ -1,9 +1,12 @@
1
+ import type { DappIntent } from '@xyo-network/os-model';
1
2
  import type { RegisteredReactDappSet } from '@xyo-network/os-react-model';
2
3
  import React from 'react';
3
4
  export interface DappContainerProps {
5
+ currentIntent?: DappIntent;
4
6
  dappSet: RegisteredReactDappSet;
5
7
  xnsNetwork: string | undefined;
6
8
  xnsNodeUrl: string | undefined;
7
9
  }
8
10
  export declare const DappContainer: React.FC<DappContainerProps>;
11
+ export declare const DappContainerMemo: React.NamedExoticComponent<DappContainerProps>;
9
12
  //# sourceMappingURL=Container.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"Container.d.ts","sourceRoot":"","sources":["../../../../src/modules/Dapp/Container.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,6BAA6B,CAAA;AACzE,OAAO,KAAK,MAAM,OAAO,CAAA;AAKzB,MAAM,WAAW,kBAAkB;IACjC,OAAO,EAAE,sBAAsB,CAAA;IAC/B,UAAU,EAAE,MAAM,GAAG,SAAS,CAAA;IAC9B,UAAU,EAAE,MAAM,GAAG,SAAS,CAAA;CAC/B;AAED,eAAO,MAAM,aAAa,EAAE,KAAK,CAAC,EAAE,CAAC,kBAAkB,CAStD,CAAA"}
1
+ {"version":3,"file":"Container.d.ts","sourceRoot":"","sources":["../../../../src/modules/Dapp/Container.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAA;AACvD,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,6BAA6B,CAAA;AACzE,OAAO,KAAwB,MAAM,OAAO,CAAA;AAM5C,MAAM,WAAW,kBAAkB;IACjC,aAAa,CAAC,EAAE,UAAU,CAAA;IAC1B,OAAO,EAAE,sBAAsB,CAAA;IAC/B,UAAU,EAAE,MAAM,GAAG,SAAS,CAAA;IAC9B,UAAU,EAAE,MAAM,GAAG,SAAS,CAAA;CAC/B;AAED,eAAO,MAAM,aAAa,EAAE,KAAK,CAAC,EAAE,CAAC,kBAAkB,CAgCtD,CAAA;AAED,eAAO,MAAM,iBAAiB,gDAAsB,CAAA"}
@@ -1,8 +1,9 @@
1
- import type { InstallationType } from '@xyo-network/os-model';
1
+ import type { DappIntent, InstallationType } from '@xyo-network/os-model';
2
2
  import type { RegisteredReactDappSet } from '@xyo-network/os-react-model';
3
3
  import React from 'react';
4
4
  export interface DappsRowProps {
5
5
  chipLabel: string;
6
+ currentIntent?: DappIntent;
6
7
  installType: InstallationType;
7
8
  registeredDappsSet?: RegisteredReactDappSet[];
8
9
  xnsNetwork: string | undefined;
@@ -1 +1 @@
1
- {"version":3,"file":"Row.d.ts","sourceRoot":"","sources":["../../../../../src/modules/Dapp/Page/Row.tsx"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAA;AAC7D,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,6BAA6B,CAAA;AACzE,OAAO,KAAkB,MAAM,OAAO,CAAA;AAMtC,MAAM,WAAW,aAAa;IAC5B,SAAS,EAAE,MAAM,CAAA;IACjB,WAAW,EAAE,gBAAgB,CAAA;IAC7B,kBAAkB,CAAC,EAAE,sBAAsB,EAAE,CAAA;IAC7C,UAAU,EAAE,MAAM,GAAG,SAAS,CAAA;IAC9B,UAAU,EAAE,MAAM,GAAG,SAAS,CAAA;CAC/B;AAED,eAAO,MAAM,QAAQ,EAAE,KAAK,CAAC,EAAE,CAAC,aAAa,CA6B5C,CAAA;AAED,eAAO,MAAM,mBAAmB,ySAQ7B,CAAA"}
1
+ {"version":3,"file":"Row.d.ts","sourceRoot":"","sources":["../../../../../src/modules/Dapp/Page/Row.tsx"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,UAAU,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAA;AACzE,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,6BAA6B,CAAA;AACzE,OAAO,KAAkB,MAAM,OAAO,CAAA;AAMtC,MAAM,WAAW,aAAa;IAC5B,SAAS,EAAE,MAAM,CAAA;IACjB,aAAa,CAAC,EAAE,UAAU,CAAA;IAC1B,WAAW,EAAE,gBAAgB,CAAA;IAC7B,kBAAkB,CAAC,EAAE,sBAAsB,EAAE,CAAA;IAC7C,UAAU,EAAE,MAAM,GAAG,SAAS,CAAA;IAC9B,UAAU,EAAE,MAAM,GAAG,SAAS,CAAA;CAC/B;AAED,eAAO,MAAM,QAAQ,EAAE,KAAK,CAAC,EAAE,CAAC,aAAa,CAsC5C,CAAA;AAED,eAAO,MAAM,mBAAmB,ySAQ7B,CAAA"}
@@ -1,9 +1,16 @@
1
- import type { RegisteredReactDappSet } from '@xyo-network/os-react-model';
1
+ import type { DappIntent } from '@xyo-network/os-model';
2
+ import type { RegisteredReactDappSet, XyOsUiContext } from '@xyo-network/os-react-model';
3
+ import type { WalletInstance } from '@xyo-network/wallet-model';
2
4
  import React from 'react';
5
+ import type { DappState } from './hooks/index.ts';
3
6
  export interface DappWindowProps {
7
+ context?: XyOsUiContext | null;
4
8
  dappSet?: RegisteredReactDappSet;
5
- xnsNetwork: string | undefined;
6
- xnsNodeUrl: string | undefined;
9
+ dappState?: DappState;
10
+ dappWallet?: WalletInstance;
11
+ errors?: Error[];
12
+ intent?: DappIntent;
13
+ nodeCreateError?: Error;
7
14
  }
8
15
  /** A component that can load immediately, but delays node loading and dapp mounting till corresponding launch intent arrives */
9
16
  export declare const DappWindow: React.FC<DappWindowProps>;
@@ -1 +1 @@
1
- {"version":3,"file":"DappWindow.d.ts","sourceRoot":"","sources":["../../../../../../src/modules/Dapp/modules/Window/DappWindow.tsx"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,6BAA6B,CAAA;AAIzE,OAAO,KAAkB,MAAM,OAAO,CAAA;AActC,MAAM,WAAW,eAAe;IAC9B,OAAO,CAAC,EAAE,sBAAsB,CAAA;IAChC,UAAU,EAAE,MAAM,GAAG,SAAS,CAAA;IAC9B,UAAU,EAAE,MAAM,GAAG,SAAS,CAAA;CAC/B;AAED,gIAAgI;AAChI,eAAO,MAAM,UAAU,EAAE,KAAK,CAAC,EAAE,CAAC,eAAe,CA0HhD,CAAA"}
1
+ {"version":3,"file":"DappWindow.d.ts","sourceRoot":"","sources":["../../../../../../src/modules/Dapp/modules/Window/DappWindow.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAA;AACvD,OAAO,KAAK,EAAE,sBAAsB,EAAE,aAAa,EAAE,MAAM,6BAA6B,CAAA;AAIxF,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAA;AAC/D,OAAO,KAAkB,MAAM,OAAO,CAAA;AAOtC,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAA;AAOjD,MAAM,WAAW,eAAe;IAC9B,OAAO,CAAC,EAAE,aAAa,GAAG,IAAI,CAAA;IAC9B,OAAO,CAAC,EAAE,sBAAsB,CAAA;IAChC,SAAS,CAAC,EAAE,SAAS,CAAA;IACrB,UAAU,CAAC,EAAE,cAAc,CAAA;IAC3B,MAAM,CAAC,EAAE,KAAK,EAAE,CAAA;IAChB,MAAM,CAAC,EAAE,UAAU,CAAA;IACnB,eAAe,CAAC,EAAE,KAAK,CAAA;CACxB;AAED,gIAAgI;AAChI,eAAO,MAAM,UAAU,EAAE,KAAK,CAAC,EAAE,CAAC,eAAe,CAoHhD,CAAA"}
@@ -1,6 +1,7 @@
1
+ export * from './lib/index.ts';
1
2
  export * from './menu/index.ts';
2
3
  export * from './route/index.ts';
3
- export * from './useDappState.js';
4
+ export * from './useDappMenuResourceValues.tsx';
4
5
  export * from './useDecomposeDappSet.js';
5
6
  export * from './useSkipLoadingScreen.js';
6
7
  export * from './useSyncOsRegisteredAccessInterfaces.js';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../../src/modules/Dapp/modules/Window/hooks/index.ts"],"names":[],"mappings":"AAAA,cAAc,iBAAiB,CAAA;AAC/B,cAAc,kBAAkB,CAAA;AAChC,cAAc,mBAAmB,CAAA;AACjC,cAAc,0BAA0B,CAAA;AACxC,cAAc,2BAA2B,CAAA;AACzC,cAAc,0CAA0C,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../../src/modules/Dapp/modules/Window/hooks/index.ts"],"names":[],"mappings":"AAAA,cAAc,gBAAgB,CAAA;AAC9B,cAAc,iBAAiB,CAAA;AAC/B,cAAc,kBAAkB,CAAA;AAChC,cAAc,iCAAiC,CAAA;AAC/C,cAAc,0BAA0B,CAAA;AACxC,cAAc,2BAA2B,CAAA;AACzC,cAAc,0CAA0C,CAAA"}
@@ -0,0 +1,8 @@
1
+ import type { DappIntent } from '@xyo-network/os-model';
2
+ export interface DappState {
3
+ active: boolean;
4
+ closed: boolean;
5
+ minimized: boolean;
6
+ }
7
+ export declare const deriveDappState: (intent?: DappIntent) => DappState;
8
+ //# sourceMappingURL=deriveDappState.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"deriveDappState.d.ts","sourceRoot":"","sources":["../../../../../../../../src/modules/Dapp/modules/Window/hooks/lib/deriveDappState.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAA;AAGvD,MAAM,WAAW,SAAS;IACxB,MAAM,EAAE,OAAO,CAAA;IACf,MAAM,EAAE,OAAO,CAAA;IACf,SAAS,EAAE,OAAO,CAAA;CACnB;AAED,eAAO,MAAM,eAAe,YAAa,UAAU,KAAG,SAUrD,CAAA"}
@@ -1,2 +1,3 @@
1
- export * from './DappPathHelpers.js';
1
+ export * from './DappPathHelpers.ts';
2
+ export * from './deriveDappState.ts';
2
3
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../../../src/modules/Dapp/modules/Window/hooks/lib/index.ts"],"names":[],"mappings":"AAAA,cAAc,sBAAsB,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../../../src/modules/Dapp/modules/Window/hooks/lib/index.ts"],"names":[],"mappings":"AAAA,cAAc,sBAAsB,CAAA;AACpC,cAAc,sBAAsB,CAAA"}
@@ -1,5 +1,5 @@
1
- export * from './useManageDappInjectableParamsFromRoute.js';
2
- export * from './useManageDappIntentRequest.js';
3
- export * from './useManageDappPathFromRoute.js';
4
- export * from './useManageDappStateFromRoute.js';
1
+ export * from './useManageDappInjectableParamsFromRoute.tsx';
2
+ export * from './useManageDappIntentRequest.tsx';
3
+ export * from './useManageDappPathFromRoute.tsx';
4
+ export * from './useManageDappStateFromRoute.tsx';
5
5
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../../../../src/modules/Dapp/modules/Window/hooks/route/helpers/index.ts"],"names":[],"mappings":"AAAA,cAAc,6CAA6C,CAAA;AAC3D,cAAc,iCAAiC,CAAA;AAC/C,cAAc,iCAAiC,CAAA;AAC/C,cAAc,kCAAkC,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../../../../src/modules/Dapp/modules/Window/hooks/route/helpers/index.ts"],"names":[],"mappings":"AAAA,cAAc,8CAA8C,CAAA;AAC5D,cAAc,kCAAkC,CAAA;AAChD,cAAc,kCAAkC,CAAA;AAChD,cAAc,mCAAmC,CAAA"}
@@ -1,4 +1,4 @@
1
1
  import type { XyOsContext } from '@xyo-network/os-model';
2
- /** React to change in the query params */
2
+ /** Update the dapp archivist with injectable params based off changes in the query params */
3
3
  export declare const useManageDappInjectableParamsFromRoute: (context?: XyOsContext | null) => (Error | undefined)[];
4
4
  //# sourceMappingURL=useManageDappInjectableParamsFromRoute.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"useManageDappInjectableParamsFromRoute.d.ts","sourceRoot":"","sources":["../../../../../../../../../src/modules/Dapp/modules/Window/hooks/route/helpers/useManageDappInjectableParamsFromRoute.tsx"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAA;AAOxD,0CAA0C;AAC1C,eAAO,MAAM,sCAAsC,aAAc,WAAW,GAAG,IAAI,0BA8ClF,CAAA"}
1
+ {"version":3,"file":"useManageDappInjectableParamsFromRoute.d.ts","sourceRoot":"","sources":["../../../../../../../../../src/modules/Dapp/modules/Window/hooks/route/helpers/useManageDappInjectableParamsFromRoute.tsx"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAA;AAOxD,6FAA6F;AAC7F,eAAO,MAAM,sCAAsC,aAAc,WAAW,GAAG,IAAI,0BA8ClF,CAAA"}
@@ -1,5 +1,7 @@
1
1
  import type { XyOsContext } from '@xyo-network/os-model';
2
2
  /**
3
+ * Update the menu archivist based off changes in the the `path` route param
4
+ *
3
5
  * Test Cases:
4
6
  *
5
7
  * 1. Clicking sidebar menu
@@ -1 +1 @@
1
- {"version":3,"file":"useManageDappPathFromRoute.d.ts","sourceRoot":"","sources":["../../../../../../../../../src/modules/Dapp/modules/Window/hooks/route/helpers/useManageDappPathFromRoute.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAA;AAUxD;;;;;;;;GAQG;AAEH,iDAAiD;AACjD,eAAO,MAAM,0BAA0B,aAAc,WAAW,GAAG,IAAI,aAAa,MAAM,SAiDzF,CAAA"}
1
+ {"version":3,"file":"useManageDappPathFromRoute.d.ts","sourceRoot":"","sources":["../../../../../../../../../src/modules/Dapp/modules/Window/hooks/route/helpers/useManageDappPathFromRoute.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAA;AAUxD;;;;;;;;;;GAUG;AAEH,iDAAiD;AACjD,eAAO,MAAM,0BAA0B,aAAc,WAAW,GAAG,IAAI,aAAa,MAAM,SAiDzF,CAAA"}
@@ -1,4 +1,4 @@
1
1
  import type { DappIntent } from '@xyo-network/os-model';
2
- /** React to changes in `dappName` route param */
3
- export declare const useManageDappStateFromRoute: (intentPayload?: DappIntent, dappName?: string) => void;
2
+ /** Launch or close the dapp based off changes to the `dappName` route param */
3
+ export declare const useManageDappStateFromRoute: (intentPayload?: DappIntent) => void;
4
4
  //# sourceMappingURL=useManageDappStateFromRoute.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"useManageDappStateFromRoute.d.ts","sourceRoot":"","sources":["../../../../../../../../../src/modules/Dapp/modules/Window/hooks/route/helpers/useManageDappStateFromRoute.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAA;AAOvD,iDAAiD;AACjD,eAAO,MAAM,2BAA2B,mBAAoB,UAAU,aAAa,MAAM,SAmCxF,CAAA"}
1
+ {"version":3,"file":"useManageDappStateFromRoute.d.ts","sourceRoot":"","sources":["../../../../../../../../../src/modules/Dapp/modules/Window/hooks/route/helpers/useManageDappStateFromRoute.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAA;AAQvD,+EAA+E;AAC/E,eAAO,MAAM,2BAA2B,mBAAoB,UAAU,SAwCrE,CAAA"}
@@ -1,3 +1,2 @@
1
1
  export * from './helpers/index.ts';
2
- export * from './useManageDappBasedOffRoute.js';
3
2
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../../../src/modules/Dapp/modules/Window/hooks/route/index.ts"],"names":[],"mappings":"AAAA,cAAc,oBAAoB,CAAA;AAClC,cAAc,iCAAiC,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../../../src/modules/Dapp/modules/Window/hooks/route/index.ts"],"names":[],"mappings":"AAAA,cAAc,oBAAoB,CAAA"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@xyo-network/os-react-runtime",
3
- "version": "4.1.4",
3
+ "version": "4.2.0-rc.10",
4
4
  "description": "Primary SDK for using XYO Protocol 2.0",
5
5
  "homepage": "https://xyo.network",
6
6
  "bugs": {
@@ -48,23 +48,23 @@
48
48
  "@xylabs/react-shared": "^5.3.14",
49
49
  "@xyo-network/archivist-indexeddb": "^3.6.6",
50
50
  "@xyo-network/archivist-model": "^3.6.6",
51
- "@xyo-network/bios-browser": "^4.1.4",
52
- "@xyo-network/bios-model": "^4.1.4",
51
+ "@xyo-network/bios-browser": "^4.2.0-rc.10",
52
+ "@xyo-network/bios-model": "^4.2.0-rc.10",
53
53
  "@xyo-network/diviner-boundwitness-indexeddb": "^3.6.6",
54
54
  "@xyo-network/diviner-model": "^3.6.6",
55
55
  "@xyo-network/diviner-payload-generic": "^3.6.6",
56
56
  "@xyo-network/diviner-payload-indexeddb": "^3.6.6",
57
57
  "@xyo-network/diviner-payload-model": "^3.6.6",
58
- "@xyo-network/kernel": "^4.1.4",
59
- "@xyo-network/kernel-model": "^4.1.4",
58
+ "@xyo-network/kernel": "^4.2.0-rc.10",
59
+ "@xyo-network/kernel-model": "^4.2.0-rc.10",
60
60
  "@xyo-network/module-event-emitter": "^3.6.6",
61
61
  "@xyo-network/module-events": "^3.6.6",
62
62
  "@xyo-network/module-factory-locator": "^3.6.6",
63
63
  "@xyo-network/node-model": "^3.6.6",
64
- "@xyo-network/os-model": "^4.1.4",
65
- "@xyo-network/os-react-debug": "^4.1.4",
66
- "@xyo-network/os-react-model": "^4.1.4",
67
- "@xyo-network/os-runtime": "^4.1.4",
64
+ "@xyo-network/os-model": "^4.2.0-rc.10",
65
+ "@xyo-network/os-react-debug": "^4.2.0-rc.10",
66
+ "@xyo-network/os-react-model": "^4.2.0-rc.10",
67
+ "@xyo-network/os-runtime": "^4.2.0-rc.10",
68
68
  "@xyo-network/payload-model": "^3.6.6",
69
69
  "@xyo-network/react-archivist": "^4.3.1",
70
70
  "@xyo-network/react-card": "^4.3.1",
@@ -112,5 +112,6 @@
112
112
  },
113
113
  "publishConfig": {
114
114
  "access": "public"
115
- }
115
+ },
116
+ "stableVersion": "4.1.4"
116
117
  }
@@ -1,7 +1,7 @@
1
1
  import { animated, useTransition } from '@react-spring/web'
2
2
  import { ErrorRender } from '@xylabs/react-error'
3
3
  import type { ReactNode } from 'react'
4
- import React from 'react'
4
+ import React, { useMemo } from 'react'
5
5
 
6
6
  export interface PathToComponent<PathNames extends string = string> {
7
7
  component: ReactNode
@@ -23,9 +23,17 @@ export const DappPathSwitcher: React.FC<DappPathSwitcherProps> = ({ activePath,
23
23
  const possibleZIndex = pathToComponent?.findIndex(item => item.path === activePath)
24
24
  const zIndex = possibleZIndex !== -1 && possibleZIndex !== undefined ? possibleZIndex : 1
25
25
 
26
+ const activeComponent = useMemo(() => {
27
+ const activeIndex = pathToComponent?.findIndex(({ path: componentPath }) => activePath === componentPath)
28
+ const activeItem = pathToComponent && activeIndex !== -1 && activeIndex !== undefined ? pathToComponent[activeIndex] : undefined
29
+ return activeItem
30
+ ? activeItem.component
31
+ : <ErrorRender error={new Error(`No component found for path: ${activePath}`)} scope="DappPathSwitcher" />
32
+ }, [activePath, pathToComponent])
33
+
26
34
  return (
27
35
  <>
28
- {transitions((transitionProps, activePath) => (
36
+ {transitions(transitionProps => (
29
37
  <animated.div
30
38
  style={{
31
39
  ...transitionProps,
@@ -43,13 +51,7 @@ export const DappPathSwitcher: React.FC<DappPathSwitcherProps> = ({ activePath,
43
51
  zIndex,
44
52
  }}
45
53
  >
46
- {(() => {
47
- const activeIndex = pathToComponent?.findIndex(({ path: componentPath }) => activePath === componentPath)
48
- const activeItem = pathToComponent && activeIndex !== -1 && activeIndex !== undefined ? pathToComponent[activeIndex] : undefined
49
- return activeItem
50
- ? activeItem.component
51
- : <ErrorRender error={new Error(`No component found for path: ${activePath}`)} scope="DappPathSwitcher" />
52
- })()}
54
+ {activeComponent}
53
55
  </animated.div>
54
56
  ))}
55
57
  </>
@@ -3,4 +3,3 @@ export * from './BrowserLocator.js'
3
3
  export * from './monitor/index.ts'
4
4
  export * from './NodePalettes.js'
5
5
  export * from './widget/index.ts'
6
- export * from './widgets/index.ts'
@@ -16,7 +16,9 @@ export const useDappIntentListener = (dappName?: string | null, targetMode = Dap
16
16
  const listener = ({ payloads }: ArchivistModuleEventData['inserted']) => {
17
17
  const filteredPayloads = payloads.filter(isDappIntentWithMeta)
18
18
  for (const payload of filteredPayloads) {
19
- if (payload.targetDappId === dappName && payload.targetMode === targetMode) {
19
+ const allDapps = dappName === null && payload.targetMode === targetMode
20
+ const targetDapps = dappName === payload.targetDappId && payload.targetMode === targetMode
21
+ if (allDapps || targetDapps) {
20
22
  setIntentPayload(payload)
21
23
  switch (payload.intent) {
22
24
  case DappIntentTypes.Close: {
@@ -1,5 +1,7 @@
1
1
  import { useAsyncEffect } from '@xylabs/react-async-effect'
2
- import type { RegisteredDapp, WindowDappNodeSet } from '@xyo-network/os-model'
2
+ import type {
3
+ DappIntent, RegisteredDapp, WindowDappNodeSet,
4
+ } from '@xyo-network/os-model'
3
5
  import { DappIntentTypes } from '@xyo-network/os-model'
4
6
  import { DappContextCreator, RunningDappCache } from '@xyo-network/os-runtime'
5
7
  import {
@@ -7,7 +9,6 @@ import {
7
9
  } from 'react'
8
10
 
9
11
  import { useXyOsUiContext } from '../../modules/index.ts'
10
- import { useDappIntentListener } from '../intent/index.ts'
11
12
 
12
13
  /**
13
14
  * Creates a dapp node for the provided dapp and name
@@ -18,6 +19,7 @@ export const useDappContextCreator = (
18
19
  xnsNodeUrl: string | undefined,
19
20
  xnsNetwork: string | undefined,
20
21
  dapp?: RegisteredDapp,
22
+ currentIntent?: DappIntent,
21
23
  allowedNames?: string[],
22
24
  createOnMount = false,
23
25
  ): WindowDappNodeSet & {
@@ -26,7 +28,8 @@ export const useDappContextCreator = (
26
28
  const context = useXyOsUiContext()
27
29
  const [windowDappNodeSet, setWindowDappNodeSet] = useState<WindowDappNodeSet>({ context: undefined, dappWallet: undefined })
28
30
  const [dappWindowNodeError, setDappWindowNodeError] = useState<Error>()
29
- const { dappIntentType: intentType } = useDappIntentListener(dapp?.config.name)
31
+ // ensure the dapp is targeted by the current intent
32
+ const targetedDapp = !!(dapp && context && currentIntent?.targetDappId === dapp?.config.name)
30
33
 
31
34
  // Keep a ref of the windowDappNodeSet to use in effect hooks without needing it as a dependency
32
35
  const windowDappNodeSetRef = useRef<WindowDappNodeSet>(windowDappNodeSet)
@@ -35,7 +38,7 @@ export const useDappContextCreator = (
35
38
  }, [windowDappNodeSet])
36
39
 
37
40
  const createNode = useCallback(async () => {
38
- if (dapp && context) {
41
+ if (targetedDapp) {
39
42
  try {
40
43
  const windowDappNodeSet = await RunningDappCache.findOrCreate(dapp, context, allowedNames ?? [], xnsNodeUrl, xnsNetwork)
41
44
  setWindowDappNodeSet(windowDappNodeSet)
@@ -43,7 +46,7 @@ export const useDappContextCreator = (
43
46
  setDappWindowNodeError(e as Error)
44
47
  }
45
48
  }
46
- }, [dapp, context, allowedNames])
49
+ }, [dapp, currentIntent, context, allowedNames])
47
50
 
48
51
  useEffect(() => {
49
52
  if (createOnMount) {
@@ -57,24 +60,27 @@ export const useDappContextCreator = (
57
60
  useAsyncEffect(
58
61
 
59
62
  async () => {
60
- switch (intentType) {
61
- case DappIntentTypes.Launch: {
62
- await createNode()
63
- break
64
- }
65
- case DappIntentTypes.Close: {
66
- if (windowDappNodeSetRef.current.context) {
67
- // In case a cached dapp was closed, clear its Dapp Archivist to allow for a fresh start upon next launch
68
- await DappContextCreator.resetDappArchivist(windowDappNodeSetRef.current.context)
69
- setWindowDappNodeSet({ context: null, dappWallet: undefined })
63
+ // unless the dapp was passed, do nothing
64
+ if (targetedDapp) {
65
+ switch (currentIntent?.intent) {
66
+ case DappIntentTypes.Launch: {
67
+ await createNode()
68
+ break
69
+ }
70
+ case DappIntentTypes.Close: {
71
+ if (windowDappNodeSetRef.current.context) {
72
+ // In case a cached dapp was closed, clear its Dapp Archivist to allow for a fresh start upon next launch
73
+ await DappContextCreator.resetDappArchivist(windowDappNodeSetRef.current.context)
74
+ setWindowDappNodeSet({ context: null, dappWallet: undefined })
75
+ }
76
+ break
70
77
  }
71
- break
78
+ case DappIntentTypes.Minimize:
79
+ // do nothing
72
80
  }
73
- case DappIntentTypes.Minimize:
74
- // do nothing
75
81
  }
76
82
  },
77
- [createNode, intentType],
83
+ [createNode, currentIntent],
78
84
  )
79
85
 
80
86
  return {
@@ -15,7 +15,7 @@ export const useWidgetDapps = (
15
15
  ): [WidgetResults, Error | undefined, UsePromiseState | undefined] => {
16
16
  const context = useXyOsUiContext()
17
17
  return usePromise(async () => {
18
- if (registeredDapps && context && widgetTrayLayout) {
18
+ if (registeredDapps && registeredDapps.length > 0 && context && widgetTrayLayout) {
19
19
  const caller = new WidgetCaller(context, registeredDapps, widgetTrayLayout)
20
20
  return await caller.buildWidgetComponents()
21
21
  }
@@ -2,14 +2,18 @@
2
2
  import { Circle } from '@mui/icons-material'
3
3
  import type { ButtonExProps } from '@xylabs/react-button'
4
4
  import { FlexCol } from '@xylabs/react-flexbox'
5
- import type { DappIcon, DappName } from '@xyo-network/os-model'
5
+ import type {
6
+ DappIcon,
7
+ DappName,
8
+ } from '@xyo-network/os-model'
6
9
  import { DappIntentTypes } from '@xyo-network/os-model'
7
10
  import { DappIntentCaller, XyOsMonitor } from '@xyo-network/os-runtime'
8
11
  import React, { useRef } from 'react'
9
12
 
10
13
  import { RenderHtml } from '../../../components/index.ts'
11
- import { useDappIntentListener, useSendDappIntent } from '../../../hooks/index.ts'
14
+ import { useSendDappIntent } from '../../../hooks/index.ts'
12
15
  import { DEFAULT_ICON_SIZE } from '../lib/index.ts'
16
+ import type { DappState } from '../modules/index.ts'
13
17
  import { useLaunchPoint } from './hooks/index.ts'
14
18
  import { DappLaunchFrame } from './LaunchFrame.js'
15
19
  import { decomposeProps } from './lib/index.ts'
@@ -17,36 +21,35 @@ import {
17
21
  StyledDappIconButtonEx, StyledDappName, StyledDefaultDappIcon,
18
22
  } from './StyledComponents.js'
19
23
 
20
- export type DappProps = ButtonExProps & {
24
+ export type DappIconButtonProps = ButtonExProps & {
21
25
  dappIcon?: DappIcon
22
26
  dappIconSvg?: string
23
27
  dappName?: DappName
28
+ dappState?: DappState
24
29
  }
25
30
 
26
- export const DappIconButton: React.FC<DappProps> = ({
27
- children, dappIcon, dappIconSvg, dappName, ...props
31
+ export const DappIconButton: React.FC<DappIconButtonProps> = ({
32
+ children, dappIcon, dappIconSvg, dappName, dappState, ...props
28
33
  }) => {
29
34
  const {
30
35
  DappIconSize, color, nonSxProps, sx,
31
36
  } = decomposeProps(dappIcon, props)
32
37
  const iconSize = DEFAULT_ICON_SIZE
33
38
 
39
+ const { active, minimized } = dappState ?? {}
40
+
34
41
  // Functions to invoke Dapp intents
35
42
  const sendIntent = useSendDappIntent()
36
43
 
37
- // Current state of the dapp based off intents
38
- const { dappIntentType: intentType } = useDappIntentListener(dappName)
39
-
40
44
  // Use the DappIconButton to calculate the launch point for the DappWindow
41
45
  const iconButtonRef = useRef<HTMLSpanElement>(null)
42
46
  const { left: launchLeft, top: launchTop } = useLaunchPoint(iconButtonRef)
43
47
 
44
- const minimized = intentType === DappIntentTypes.Minimize
45
48
  const MiddleEllipsisFunction = (str: DappName | undefined) => {
46
49
  if (str && str.length > 25) {
47
- console.log(str)
48
- console.log(str.slice(0, 15))
49
- console.log(str.slice(-10, str.length - 10 + str.length))
50
+ // console.log(str)
51
+ // console.log(str.slice(0, 15))
52
+ // console.log(str.slice(-10, str.length - 10 + str.length))
50
53
  return str.slice(0, 15) + '...' + str.slice(-7, str.length - 7 + str.length)
51
54
  }
52
55
  return str
@@ -59,7 +62,7 @@ export const DappIconButton: React.FC<DappProps> = ({
59
62
 
60
63
  return (
61
64
  <FlexCol alignItems="stretch" justifyContent="stretch">
62
- <DappLaunchFrame id="dapp-launch-frame" open={intentType === DappIntentTypes.Launch} launchLeft={launchLeft} launchTop={launchTop}>
65
+ <DappLaunchFrame id="dapp-launch-frame" open={!!active} launchLeft={launchLeft} launchTop={launchTop}>
63
66
  {children}
64
67
  </DappLaunchFrame>
65
68
  <span
@@ -1,22 +1,50 @@
1
+ import type { DappIntent } from '@xyo-network/os-model'
1
2
  import type { RegisteredReactDappSet } from '@xyo-network/os-react-model'
2
- import React from 'react'
3
+ import React, { memo, useMemo } from 'react'
3
4
 
5
+ import { useDappContextCreator } from '../../hooks/index.ts'
4
6
  import { DappIconButton } from './Button/index.ts'
5
- import { DappWindow } from './modules/Window/index.ts'
7
+ import { DappWindow, deriveDappState } from './modules/index.ts'
6
8
 
7
9
  export interface DappContainerProps {
10
+ currentIntent?: DappIntent
8
11
  dappSet: RegisteredReactDappSet
9
12
  xnsNetwork: string | undefined
10
13
  xnsNodeUrl: string | undefined
11
14
  }
12
15
 
13
16
  export const DappContainer: React.FC<DappContainerProps> = ({
14
- dappSet, xnsNodeUrl, xnsNetwork,
17
+ currentIntent, dappSet, xnsNodeUrl, xnsNetwork,
15
18
  }) => {
16
19
  const { dapp, dappIcon } = dappSet
20
+
21
+ const {
22
+ dappWallet, context, nodeCreateError,
23
+ } = useDappContextCreator(xnsNodeUrl, xnsNetwork, dapp, currentIntent)
24
+
25
+ const dappState = useMemo(() => {
26
+ if (currentIntent?.targetDappId === dapp.config.name) {
27
+ return deriveDappState(currentIntent)
28
+ }
29
+ }, [currentIntent, dapp])
30
+
17
31
  return (
18
- <DappIconButton dappIcon={dappIcon} dappIconSvg={dapp.params.iconSvg} dappName={dapp?.config.name}>
19
- <DappWindow dappSet={dappSet} xnsNodeUrl={xnsNodeUrl} xnsNetwork={xnsNetwork} />
32
+ <DappIconButton
33
+ dappIcon={dappIcon}
34
+ dappIconSvg={dapp.params.iconSvg}
35
+ dappName={dapp?.config.name}
36
+ dappState={dappState}
37
+ >
38
+ <DappWindow
39
+ context={context}
40
+ dappSet={dappSet}
41
+ dappState={dappState}
42
+ dappWallet={dappWallet}
43
+ intent={currentIntent}
44
+ nodeCreateError={nodeCreateError}
45
+ />
20
46
  </DappIconButton>
21
47
  )
22
48
  }
49
+
50
+ export const DappContainerMemo = memo(DappContainer)
@@ -1,17 +1,17 @@
1
- /* eslint-disable @eslint-react/no-array-index-key */
2
1
  import {
3
2
  Divider, Fade, styled,
4
3
  } from '@mui/material'
5
- import type { InstallationType } from '@xyo-network/os-model'
4
+ import type { DappIntent, InstallationType } from '@xyo-network/os-model'
6
5
  import type { RegisteredReactDappSet } from '@xyo-network/os-react-model'
7
6
  import React, { useMemo } from 'react'
8
7
 
9
8
  import { DappInstallTypeFilters } from '../../../utils/index.ts'
10
- import { DappContainer } from '../Container.js'
9
+ import { DappContainerMemo } from '../Container.tsx'
11
10
  import { DividerChip } from './DividerChip.js'
12
11
 
13
12
  export interface DappsRowProps {
14
13
  chipLabel: string
14
+ currentIntent?: DappIntent
15
15
  installType: InstallationType
16
16
  registeredDappsSet?: RegisteredReactDappSet[]
17
17
  xnsNetwork: string | undefined
@@ -19,9 +19,10 @@ export interface DappsRowProps {
19
19
  }
20
20
 
21
21
  export const DappsRow: React.FC<DappsRowProps> = ({
22
- chipLabel, installType, registeredDappsSet, xnsNetwork, xnsNodeUrl,
22
+ chipLabel, currentIntent, installType, registeredDappsSet, xnsNetwork, xnsNodeUrl,
23
23
  }) => {
24
24
  const filteredRegisteredDappSets = useMemo(() => DappInstallTypeFilters[installType](registeredDappsSet), [installType, registeredDappsSet])
25
+
25
26
  return (
26
27
  <>
27
28
  <Divider
@@ -39,7 +40,15 @@ export const DappsRow: React.FC<DappsRowProps> = ({
39
40
  <Fade in={!!filteredRegisteredDappSets?.length} timeout={1000}>
40
41
  <StyledGridContainer>
41
42
  {filteredRegisteredDappSets?.map(
42
- (dappSet, index) => <DappContainer key={index} dappSet={dappSet as RegisteredReactDappSet} xnsNodeUrl={xnsNodeUrl} xnsNetwork={xnsNetwork} />,
43
+ dappSet => (
44
+ <DappContainerMemo
45
+ currentIntent={currentIntent}
46
+ key={dappSet.dapp.config.name}
47
+ dappSet={dappSet as RegisteredReactDappSet}
48
+ xnsNodeUrl={xnsNodeUrl}
49
+ xnsNetwork={xnsNetwork}
50
+ />
51
+ ),
43
52
  )}
44
53
  </StyledGridContainer>
45
54
  </Fade>