@xyo-network/os-react-runtime 4.2.0-rc.1 → 4.2.0-rc.2

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.
@@ -8,4 +8,5 @@ export interface DappContainerProps {
8
8
  xnsNodeUrl: string | undefined;
9
9
  }
10
10
  export declare const DappContainer: React.FC<DappContainerProps>;
11
+ export declare const DappContainerMemo: React.NamedExoticComponent<DappContainerProps>;
11
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,UAAU,EAAE,MAAM,uBAAuB,CAAA;AACvD,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,6BAA6B,CAAA;AACzE,OAAO,KAAkB,MAAM,OAAO,CAAA;AAMtC,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"}
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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@xyo-network/os-react-runtime",
3
- "version": "4.2.0-rc.1",
3
+ "version": "4.2.0-rc.2",
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.2.0-rc.1",
52
- "@xyo-network/bios-model": "^4.2.0-rc.1",
51
+ "@xyo-network/bios-browser": "^4.2.0-rc.2",
52
+ "@xyo-network/bios-model": "^4.2.0-rc.2",
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.2.0-rc.1",
59
- "@xyo-network/kernel-model": "^4.2.0-rc.1",
58
+ "@xyo-network/kernel": "^4.2.0-rc.2",
59
+ "@xyo-network/kernel-model": "^4.2.0-rc.2",
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.2.0-rc.1",
65
- "@xyo-network/os-react-debug": "^4.2.0-rc.1",
66
- "@xyo-network/os-react-model": "^4.2.0-rc.1",
67
- "@xyo-network/os-runtime": "^4.2.0-rc.1",
64
+ "@xyo-network/os-model": "^4.2.0-rc.2",
65
+ "@xyo-network/os-react-debug": "^4.2.0-rc.2",
66
+ "@xyo-network/os-react-model": "^4.2.0-rc.2",
67
+ "@xyo-network/os-runtime": "^4.2.0-rc.2",
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",
@@ -28,6 +28,8 @@ export const useDappContextCreator = (
28
28
  const context = useXyOsUiContext()
29
29
  const [windowDappNodeSet, setWindowDappNodeSet] = useState<WindowDappNodeSet>({ context: undefined, dappWallet: undefined })
30
30
  const [dappWindowNodeError, setDappWindowNodeError] = useState<Error>()
31
+ // ensure the dapp is targeted by the current intent
32
+ const targetedDapp = !!(dapp && context && currentIntent?.targetDappId === dapp?.config.name)
31
33
 
32
34
  // Keep a ref of the windowDappNodeSet to use in effect hooks without needing it as a dependency
33
35
  const windowDappNodeSetRef = useRef<WindowDappNodeSet>(windowDappNodeSet)
@@ -36,7 +38,7 @@ export const useDappContextCreator = (
36
38
  }, [windowDappNodeSet])
37
39
 
38
40
  const createNode = useCallback(async () => {
39
- if (dapp && context) {
41
+ if (targetedDapp) {
40
42
  try {
41
43
  const windowDappNodeSet = await RunningDappCache.findOrCreate(dapp, context, allowedNames ?? [], xnsNodeUrl, xnsNetwork)
42
44
  setWindowDappNodeSet(windowDappNodeSet)
@@ -44,7 +46,7 @@ export const useDappContextCreator = (
44
46
  setDappWindowNodeError(e as Error)
45
47
  }
46
48
  }
47
- }, [dapp, context, allowedNames])
49
+ }, [dapp, currentIntent, context, allowedNames])
48
50
 
49
51
  useEffect(() => {
50
52
  if (createOnMount) {
@@ -58,21 +60,24 @@ export const useDappContextCreator = (
58
60
  useAsyncEffect(
59
61
 
60
62
  async () => {
61
- switch (currentIntent?.intent) {
62
- case DappIntentTypes.Launch: {
63
- await createNode()
64
- break
65
- }
66
- case DappIntentTypes.Close: {
67
- if (windowDappNodeSetRef.current.context) {
68
- // In case a cached dapp was closed, clear its Dapp Archivist to allow for a fresh start upon next launch
69
- await DappContextCreator.resetDappArchivist(windowDappNodeSetRef.current.context)
70
- 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
71
77
  }
72
- break
78
+ case DappIntentTypes.Minimize:
79
+ // do nothing
73
80
  }
74
- case DappIntentTypes.Minimize:
75
- // do nothing
76
81
  }
77
82
  },
78
83
  [createNode, currentIntent],
@@ -1,6 +1,6 @@
1
1
  import type { DappIntent } from '@xyo-network/os-model'
2
2
  import type { RegisteredReactDappSet } from '@xyo-network/os-react-model'
3
- import React, { useMemo } from 'react'
3
+ import React, { memo, useMemo } from 'react'
4
4
 
5
5
  import { useDappContextCreator } from '../../hooks/index.ts'
6
6
  import { DappIconButton } from './Button/index.ts'
@@ -46,3 +46,5 @@ export const DappContainer: React.FC<DappContainerProps> = ({
46
46
  </DappIconButton>
47
47
  )
48
48
  }
49
+
50
+ export const DappContainerMemo = memo(DappContainer)
@@ -8,7 +8,7 @@ import React, { useMemo } from 'react'
8
8
 
9
9
  import { useDappIntentListener } from '../../../hooks/index.ts'
10
10
  import { DappInstallTypeFilters } from '../../../utils/index.ts'
11
- import { DappContainer } from '../Container.js'
11
+ import { DappContainerMemo } from '../Container.tsx'
12
12
  import { DividerChip } from './DividerChip.js'
13
13
 
14
14
  export interface DappsRowProps {
@@ -43,7 +43,7 @@ export const DappsRow: React.FC<DappsRowProps> = ({
43
43
  <StyledGridContainer>
44
44
  {filteredRegisteredDappSets?.map(
45
45
  (dappSet, index) => (
46
- <DappContainer
46
+ <DappContainerMemo
47
47
  currentIntent={intentPayload}
48
48
  key={index}
49
49
  dappSet={dappSet as RegisteredReactDappSet}