@xyo-network/react-network 3.0.15 → 3.0.16

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.
@@ -1 +1 @@
1
- {"version":3,"file":"Route.d.ts","sourceRoot":"","sources":["../../../../src/contexts/Provider/Route.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAA;AAExD,OAAO,KAEN,MAAM,OAAO,CAAA;AAOd,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,YAAY,CAAA;AA2DtD,eAAO,MAAM,oBAAoB,EAAE,KAAK,CAAC,EAAE,CAAC,YAAY,CAAC,oBAAoB,CAAC,CAQ7E,CAAA"}
1
+ {"version":3,"file":"Route.d.ts","sourceRoot":"","sources":["../../../../src/contexts/Provider/Route.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAA;AAExD,OAAO,KAA+B,MAAM,OAAO,CAAA;AAOnD,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,YAAY,CAAA;AA0DtD,eAAO,MAAM,oBAAoB,EAAE,KAAK,CAAC,EAAE,CAAC,YAAY,CAAC,oBAAoB,CAAC,CAQ7E,CAAA"}
@@ -197,7 +197,7 @@ var NetworkMemoryProvider = /* @__PURE__ */ __name(({ defaultNetworkConfig, defa
197
197
  var NetworkProvider = NetworkMemoryProvider;
198
198
 
199
199
  // src/contexts/Provider/Route.tsx
200
- import React2, { useCallback, useEffect, useState as useState2 } from "react";
200
+ import React2, { useCallback, useMemo as useMemo2 } from "react";
201
201
  import { useSearchParams } from "react-router-dom";
202
202
 
203
203
  // src/contexts/use.ts
@@ -208,7 +208,6 @@ var useNetwork = /* @__PURE__ */ __name((required = false) => {
208
208
 
209
209
  // src/contexts/Provider/Route.tsx
210
210
  var NetworkRouteProviderInner = /* @__PURE__ */ __name(({ children }) => {
211
- const [initialized, setInitialized] = useState2(false);
212
211
  const { network, setNetwork } = useNetwork();
213
212
  const [params, setParams] = useSearchParams();
214
213
  const slug = params.get("network");
@@ -235,7 +234,7 @@ var NetworkRouteProviderInner = /* @__PURE__ */ __name(({ children }) => {
235
234
  setNetworkParam,
236
235
  setNetwork
237
236
  ]);
238
- useEffect(() => {
237
+ const initialized = useMemo2(() => {
239
238
  if (routeNetwork !== network) {
240
239
  if (routeNetwork === void 0 && network !== void 0) {
241
240
  setNetworkParam(network);
@@ -243,7 +242,7 @@ var NetworkRouteProviderInner = /* @__PURE__ */ __name(({ children }) => {
243
242
  setNetwork?.(routeNetwork);
244
243
  }
245
244
  }
246
- setInitialized(true);
245
+ return true;
247
246
  }, [
248
247
  routeNetwork,
249
248
  network,
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/components/SelectEx/NetworkSelectEx.tsx","../../src/contexts/Context.ts","../../src/contexts/Provider/Memory.tsx","../../src/lib/archivistPresets.ts","../../src/lib/ExplorerMapHashes.ts","../../src/lib/archivistNameToUri.ts","../../src/lib/Config/default.ts","../../src/lib/divinerPresets.ts","../../src/lib/Config/find.ts","../../src/lib/Config/resolveNetworkFromHostname.ts","../../src/contexts/Provider/Route.tsx","../../src/contexts/use.ts"],"sourcesContent":["import { MenuItem } from '@mui/material'\nimport { assertEx } from '@xylabs/assert'\nimport type { SelectExProps } from '@xylabs/react-select'\nimport { SelectEx } from '@xylabs/react-select'\nimport { useBreakpoint } from '@xylabs/react-shared'\nimport React from 'react'\n\nimport { useNetwork } from '../../contexts/index.ts'\nimport { findNetworkConfig } from '../../lib/index.ts'\n\nexport type NetworkSelectExProps = Omit<SelectExProps<string>, 'variant'> &\n Partial<SelectExProps<string>> & {\n responsive?: boolean\n }\n\nexport const NetworkSelectEx: React.FC<NetworkSelectExProps> = ({\n onChange, variant = 'outlined', responsive = true, ...props\n}) => {\n const {\n network, setNetwork, networks,\n } = useNetwork(false)\n const sm = useBreakpoint() === 'sm'\n return (\n <SelectEx\n variant={variant}\n size=\"small\"\n value={network?.slug ?? ''}\n onChange={(event, child) => {\n if (event.target.value !== network?.slug) {\n onChange?.(event, child)\n setNetwork?.(assertEx(findNetworkConfig(event.target.value, networks)))\n }\n }}\n {...props}\n >\n {networks?.map((network) => {\n return (\n <MenuItem key={network.slug} value={network.slug}>\n {responsive && sm ? network.name?.[0].toUpperCase() : network.name}\n </MenuItem>\n )\n })}\n </SelectEx>\n )\n}\n","import { createContextEx } from '@xyo-network/react-shared'\n\nimport type { NetworkContextState } from './State.ts'\n\nexport const NetworkContext = createContextEx<NetworkContextState>()\n","import type { WithChildren } from '@xylabs/react-shared'\nimport React, { useMemo, useState } from 'react'\n\nimport { defaultNetworkConfigs } from '../../lib/index.ts'\nimport { NetworkContext } from '../Context.ts'\nimport type { NetworkProviderProps } from './Props.ts'\n\nexport const NetworkMemoryProvider: React.FC<WithChildren<NetworkProviderProps>> = ({\n defaultNetworkConfig, defaultNetworkName, ...props\n}) => {\n if (defaultNetworkConfig && defaultNetworkName) {\n console.warn('Both defaultNetworkConfig and defaultNetworkName were passed to provider. Falling back to defaultNetworkConfig')\n }\n\n const resolvedDefaultNetworkConfig = defaultNetworkName ? defaultNetworkConfigs.find(config => config.name === defaultNetworkName) : undefined\n\n const [network, setNetwork] = useState(defaultNetworkConfig ?? resolvedDefaultNetworkConfig ?? defaultNetworkConfigs[0])\n\n const value = useMemo(() => ({\n network, networks: defaultNetworkConfigs, provided: true, setNetwork,\n }), [network, setNetwork])\n\n return <NetworkContext.Provider value={value} {...props} />\n}\n\n/** @deprecated use NetworkMemoryProvider instead */\nexport const NetworkProvider = NetworkMemoryProvider\n","import type { Hash } from '@xylabs/hex'\nimport type { NetworkNodePayload } from '@xyo-network/network'\nimport { NetworkNodeSchema } from '@xyo-network/network'\n\nimport { ExplorerMapHashes } from './ExplorerMapHashes.ts'\n\nexport type ArchivistPreset = NetworkNodePayload & {\n explorerMapHashes?: {\n animatedAnswerHashes: Hash[]\n staticAnswerHash: Hash\n }\n}\n\nexport const findArchivistPreset = (slug: string) => {\n return (\n archivistPresets.find((item) => {\n return item.slug === slug\n }) ?? archivistPresets[0]\n )\n}\n\nexport const archivistPresets: ArchivistPreset[] = [\n {\n docs: 'https://beta.archivist.xyo.network/api',\n explorerMapHashes: ExplorerMapHashes,\n name: 'XYO Shared Archivist (kerplunk)',\n schema: NetworkNodeSchema,\n slug: 'kerplunk-archivist-xyo-network',\n type: 'archivist',\n uri: 'https://beta.api.archivist.xyo.network',\n },\n {\n docs: 'https://archivist.xyo.network/api',\n explorerMapHashes: ExplorerMapHashes,\n name: 'XYO Shared Archivist (main)',\n schema: NetworkNodeSchema,\n slug: 'main-archivist-xyo-network',\n type: 'archivist',\n uri: 'https://api.archivist.xyo.network',\n },\n {\n docs: 'http://localhost:8080/api',\n name: 'XYO Shared Archivist (local)',\n schema: NetworkNodeSchema,\n slug: 'local-archivist-xyo-network',\n type: 'archivist',\n uri: 'http://localhost:8080',\n },\n]\n","import type { Hash } from '@xylabs/hex'\nexport const ExplorerMapHashes: { animatedAnswerHashes: Hash[]; staticAnswerHash: Hash } = {\n animatedAnswerHashes: [\n '79af071f451fc7af10d009dc63236ef9a9b211732c1ee0c06f028fcecf2336c5',\n '531bfba6d8dfefd3bcc888aca54cdbbd4574ed2b3ec551b230845a1f9a608898',\n 'c874412b4faa4947de81372fd1ba12fdd6f43f5e408622b7f357cb2bcb3f17cb',\n '29d3f8b882c61a82a1a1675782a27e797ea7196f45a23b4409680ab8b8d5f14e',\n 'cfd20f80ac073fd9518f4ef3f43d2a1f5e4e56e40c2677f38d6f6fecd05df60c',\n '1354fa73497519a39aed19fc99bdbae78a880a1eafb2f7898d607e07db36528d',\n '1043b0d25eacfc5013ae9dba780305a6fbf01a43543bd871d7c00537fca142a9',\n '973dfc5df142851ced258d52d0ac2784e814000ac22e35776f772256b0d4dde9',\n '463808eb74d3d87e6563970e0301a493577f8cd1b501e6e0ffa5e027ad2cea95',\n '15b21acea2e3fd9d1ace3768a72636ee7bdf67a6f8e0807bfa2273dea2207555',\n '32d377bfe7ebe382598c54dd13f8af7510e0a1e2fd2e913311fdd58e517e5e2e',\n ],\n staticAnswerHash: 'c7bbf61f61cfd4a1b2def160c28136fc1d100d39fbdb67b227a2c6e558d9d3a5',\n}\n","import { archivistPresets } from './archivistPresets.ts'\n\nexport const archivistUriToName = () => {\n // eslint-disable-next-line unicorn/no-array-reduce\n return archivistPresets.reduce<Record<string, string>>((acc, { name, uri }) => {\n if (name) {\n acc[uri] = name\n }\n return acc\n }, {})\n}\n","import type { NetworkPayload } from '@xyo-network/network'\nimport { NetworkSchema } from '@xyo-network/network'\n\nimport { findArchivistPreset } from '../archivistPresets.ts'\nimport { findDivinerPreset } from '../divinerPresets.ts'\n\nexport const defaultNetworkConfigs: NetworkPayload[] = [\n {\n name: 'Kerplunk',\n nodes: [findArchivistPreset('kerplunk-archivist-xyo-network'), findDivinerPreset('beta-location-diviner-xyo-network')],\n schema: NetworkSchema,\n slug: 'kerplunk',\n },\n {\n name: 'Main',\n nodes: [findArchivistPreset('main-archivist-xyo-network'), findDivinerPreset('location-diviner-xyo-network')],\n schema: NetworkSchema,\n slug: 'main',\n },\n {\n name: 'Local',\n nodes: [findArchivistPreset('local-archivist-xyo-network'), findDivinerPreset('local-location-diviner-xyo-network')],\n schema: NetworkSchema,\n slug: 'local',\n },\n]\n\n/** @deprecated use defaultNetworkConfigs instead */\nexport const networkPresets = defaultNetworkConfigs\n","import type { NetworkNodePayload } from '@xyo-network/network'\nimport { NetworkNodeSchema } from '@xyo-network/network'\n\nexport const findDivinerPreset = (slug: string) => {\n return (\n divinerPresets.find((item) => {\n return item.slug === slug\n }) ?? divinerPresets[0]\n )\n}\n\nexport const divinerPresets: NetworkNodePayload[] = [\n {\n name: 'XYO Location (beta)',\n schema: NetworkNodeSchema,\n slug: 'beta-location-diviner-xyo-network',\n type: 'diviner',\n uri: 'https://beta.api.location.diviner.xyo.network',\n web: 'https://beta.explore.xyo.network',\n },\n {\n name: 'XYO Location',\n schema: NetworkNodeSchema,\n slug: 'location-diviner-xyo-network',\n type: 'diviner',\n uri: 'https://api.location.diviner.xyo.network',\n web: 'https://explore.xyo.network',\n },\n {\n name: 'XYO Location (local)',\n schema: NetworkNodeSchema,\n slug: 'local-location-diviner-xyo-network',\n type: 'diviner',\n uri: 'http://localhost:8082',\n web: 'http://localhost:3000',\n },\n]\n","import { defaultNetworkConfigs } from './default.ts'\n\nexport const findNetworkConfig = (slug: string, configs = defaultNetworkConfigs) => {\n return configs.find((item) => {\n return item.slug === slug\n })\n}\n\n/** @deprecated use findNetworkConfig instead */\nexport const findNetworkPreset = findNetworkConfig\n","import type { NetworkNames } from './NetworkNames.ts'\n\nexport type SiteName = 'explore' | 'node'\n\nexport const resolveNetworkFromHostName = (fallback: NetworkNames = 'Kerplunk', siteName: SiteName) => {\n switch (document.location.hostname) {\n case `${siteName}.xyo.network`: {\n return 'Main'\n }\n case `beta.${siteName}.xyo.network`: {\n return 'Kerplunk'\n }\n default: {\n return fallback\n }\n }\n}\n","import type { WithChildren } from '@xylabs/react-shared'\nimport type { NetworkPayload } from '@xyo-network/network'\nimport React, {\n useCallback, useEffect, useState,\n} from 'react'\nimport { useSearchParams } from 'react-router-dom'\n\nimport { defaultNetworkConfigs, findNetworkConfig } from '../../lib/index.ts'\nimport { NetworkContext } from '../Context.ts'\nimport { useNetwork } from '../use.ts'\nimport { NetworkMemoryProvider } from './Memory.tsx'\nimport type { NetworkProviderProps } from './Props.ts'\n\nconst NetworkRouteProviderInner: React.FC<WithChildren> = ({ children }) => {\n const [initialized, setInitialized] = useState(false)\n const { network, setNetwork } = useNetwork()\n\n const [params, setParams] = useSearchParams()\n\n const slug = params.get('network')\n const routeNetwork = slug ? findNetworkConfig(slug) : undefined\n\n // update the network stored in the route\n const setNetworkParam = useCallback(\n (network?: NetworkPayload) => {\n if (network) {\n params.set('network', network.slug)\n setParams(params, { replace: true })\n setNetwork?.(network)\n } else {\n params.delete('network')\n }\n },\n [params, setParams, setNetwork],\n )\n\n // if the network is actively changed, update both memory and route\n const setNetworkLocal = useCallback(\n (network: NetworkPayload) => {\n setNetworkParam(network)\n setNetwork?.(network)\n },\n [setNetworkParam, setNetwork],\n )\n\n // sync memory and route storage of network\n useEffect(() => {\n if (routeNetwork !== network) {\n if (routeNetwork === undefined && network !== undefined) {\n // if the route does not have a network selected, use what is in the memory context\n setNetworkParam(network)\n } else if (routeNetwork) {\n // if the route has a selection and it is different from memory, update memory\n setNetwork?.(routeNetwork)\n }\n }\n setInitialized(true)\n }, [routeNetwork, network, setNetworkParam, setNetwork])\n\n return (\n // eslint-disable-next-line @eslint-react/no-unstable-context-value\n <NetworkContext.Provider value={{\n network, networks: defaultNetworkConfigs, provided: true, setNetwork: setNetworkLocal,\n }}\n >\n {initialized ? children : null}\n </NetworkContext.Provider>\n )\n}\n\nexport const NetworkRouteProvider: React.FC<WithChildren<NetworkProviderProps>> = ({\n defaultNetworkConfig, defaultNetworkName, ...props\n}) => {\n return (\n <NetworkMemoryProvider defaultNetworkConfig={defaultNetworkConfig} defaultNetworkName={defaultNetworkName}>\n <NetworkRouteProviderInner {...props} />\n </NetworkMemoryProvider>\n )\n}\n","import { useContextEx } from '@xyo-network/react-shared'\n\nimport { NetworkContext } from './Context.ts'\nimport type { NetworkContextState } from './State.ts'\n\nexport const useNetwork = (required = false) => {\n return useContextEx<NetworkContextState>(NetworkContext, 'Network', required)\n}\n"],"mappings":"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","names":["MenuItem","assertEx","SelectEx","useBreakpoint","React","createContextEx","NetworkContext","React","useMemo","useState","NetworkNodeSchema","ExplorerMapHashes","animatedAnswerHashes","staticAnswerHash","findArchivistPreset","slug","archivistPresets","find","item","docs","explorerMapHashes","ExplorerMapHashes","name","schema","NetworkNodeSchema","type","uri","archivistUriToName","archivistPresets","reduce","acc","name","uri","NetworkSchema","NetworkNodeSchema","findDivinerPreset","slug","divinerPresets","find","item","name","schema","NetworkNodeSchema","type","uri","web","defaultNetworkConfigs","name","nodes","findArchivistPreset","findDivinerPreset","schema","NetworkSchema","slug","networkPresets","findNetworkConfig","slug","configs","defaultNetworkConfigs","find","item","findNetworkPreset","resolveNetworkFromHostName","fallback","siteName","document","location","hostname","NetworkMemoryProvider","defaultNetworkConfig","defaultNetworkName","props","console","warn","resolvedDefaultNetworkConfig","defaultNetworkConfigs","find","config","name","undefined","network","setNetwork","useState","value","useMemo","networks","provided","NetworkContext","Provider","NetworkProvider","React","useCallback","useEffect","useState","useSearchParams","useContextEx","useNetwork","required","useContextEx","NetworkContext","NetworkRouteProviderInner","children","initialized","setInitialized","useState","network","setNetwork","useNetwork","params","setParams","useSearchParams","slug","get","routeNetwork","findNetworkConfig","undefined","setNetworkParam","useCallback","set","replace","delete","setNetworkLocal","useEffect","React","NetworkContext","Provider","value","networks","defaultNetworkConfigs","provided","NetworkRouteProvider","defaultNetworkConfig","defaultNetworkName","props","NetworkMemoryProvider","NetworkSelectEx","onChange","variant","responsive","props","network","setNetwork","networks","useNetwork","sm","useBreakpoint","React","SelectEx","size","value","slug","event","child","target","assertEx","findNetworkConfig","map","MenuItem","key","name","toUpperCase"]}
1
+ {"version":3,"sources":["../../src/components/SelectEx/NetworkSelectEx.tsx","../../src/contexts/Context.ts","../../src/contexts/Provider/Memory.tsx","../../src/lib/archivistPresets.ts","../../src/lib/ExplorerMapHashes.ts","../../src/lib/archivistNameToUri.ts","../../src/lib/Config/default.ts","../../src/lib/divinerPresets.ts","../../src/lib/Config/find.ts","../../src/lib/Config/resolveNetworkFromHostname.ts","../../src/contexts/Provider/Route.tsx","../../src/contexts/use.ts"],"sourcesContent":["import { MenuItem } from '@mui/material'\nimport { assertEx } from '@xylabs/assert'\nimport type { SelectExProps } from '@xylabs/react-select'\nimport { SelectEx } from '@xylabs/react-select'\nimport { useBreakpoint } from '@xylabs/react-shared'\nimport React from 'react'\n\nimport { useNetwork } from '../../contexts/index.ts'\nimport { findNetworkConfig } from '../../lib/index.ts'\n\nexport type NetworkSelectExProps = Omit<SelectExProps<string>, 'variant'> &\n Partial<SelectExProps<string>> & {\n responsive?: boolean\n }\n\nexport const NetworkSelectEx: React.FC<NetworkSelectExProps> = ({\n onChange, variant = 'outlined', responsive = true, ...props\n}) => {\n const {\n network, setNetwork, networks,\n } = useNetwork(false)\n const sm = useBreakpoint() === 'sm'\n return (\n <SelectEx\n variant={variant}\n size=\"small\"\n value={network?.slug ?? ''}\n onChange={(event, child) => {\n if (event.target.value !== network?.slug) {\n onChange?.(event, child)\n setNetwork?.(assertEx(findNetworkConfig(event.target.value, networks)))\n }\n }}\n {...props}\n >\n {networks?.map((network) => {\n return (\n <MenuItem key={network.slug} value={network.slug}>\n {responsive && sm ? network.name?.[0].toUpperCase() : network.name}\n </MenuItem>\n )\n })}\n </SelectEx>\n )\n}\n","import { createContextEx } from '@xyo-network/react-shared'\n\nimport type { NetworkContextState } from './State.ts'\n\nexport const NetworkContext = createContextEx<NetworkContextState>()\n","import type { WithChildren } from '@xylabs/react-shared'\nimport React, { useMemo, useState } from 'react'\n\nimport { defaultNetworkConfigs } from '../../lib/index.ts'\nimport { NetworkContext } from '../Context.ts'\nimport type { NetworkProviderProps } from './Props.ts'\n\nexport const NetworkMemoryProvider: React.FC<WithChildren<NetworkProviderProps>> = ({\n defaultNetworkConfig, defaultNetworkName, ...props\n}) => {\n if (defaultNetworkConfig && defaultNetworkName) {\n console.warn('Both defaultNetworkConfig and defaultNetworkName were passed to provider. Falling back to defaultNetworkConfig')\n }\n\n const resolvedDefaultNetworkConfig = defaultNetworkName ? defaultNetworkConfigs.find(config => config.name === defaultNetworkName) : undefined\n\n const [network, setNetwork] = useState(defaultNetworkConfig ?? resolvedDefaultNetworkConfig ?? defaultNetworkConfigs[0])\n\n const value = useMemo(() => ({\n network, networks: defaultNetworkConfigs, provided: true, setNetwork,\n }), [network, setNetwork])\n\n return <NetworkContext.Provider value={value} {...props} />\n}\n\n/** @deprecated use NetworkMemoryProvider instead */\nexport const NetworkProvider = NetworkMemoryProvider\n","import type { Hash } from '@xylabs/hex'\nimport type { NetworkNodePayload } from '@xyo-network/network'\nimport { NetworkNodeSchema } from '@xyo-network/network'\n\nimport { ExplorerMapHashes } from './ExplorerMapHashes.ts'\n\nexport type ArchivistPreset = NetworkNodePayload & {\n explorerMapHashes?: {\n animatedAnswerHashes: Hash[]\n staticAnswerHash: Hash\n }\n}\n\nexport const findArchivistPreset = (slug: string) => {\n return (\n archivistPresets.find((item) => {\n return item.slug === slug\n }) ?? archivistPresets[0]\n )\n}\n\nexport const archivistPresets: ArchivistPreset[] = [\n {\n docs: 'https://beta.archivist.xyo.network/api',\n explorerMapHashes: ExplorerMapHashes,\n name: 'XYO Shared Archivist (kerplunk)',\n schema: NetworkNodeSchema,\n slug: 'kerplunk-archivist-xyo-network',\n type: 'archivist',\n uri: 'https://beta.api.archivist.xyo.network',\n },\n {\n docs: 'https://archivist.xyo.network/api',\n explorerMapHashes: ExplorerMapHashes,\n name: 'XYO Shared Archivist (main)',\n schema: NetworkNodeSchema,\n slug: 'main-archivist-xyo-network',\n type: 'archivist',\n uri: 'https://api.archivist.xyo.network',\n },\n {\n docs: 'http://localhost:8080/api',\n name: 'XYO Shared Archivist (local)',\n schema: NetworkNodeSchema,\n slug: 'local-archivist-xyo-network',\n type: 'archivist',\n uri: 'http://localhost:8080',\n },\n]\n","import type { Hash } from '@xylabs/hex'\nexport const ExplorerMapHashes: { animatedAnswerHashes: Hash[]; staticAnswerHash: Hash } = {\n animatedAnswerHashes: [\n '79af071f451fc7af10d009dc63236ef9a9b211732c1ee0c06f028fcecf2336c5',\n '531bfba6d8dfefd3bcc888aca54cdbbd4574ed2b3ec551b230845a1f9a608898',\n 'c874412b4faa4947de81372fd1ba12fdd6f43f5e408622b7f357cb2bcb3f17cb',\n '29d3f8b882c61a82a1a1675782a27e797ea7196f45a23b4409680ab8b8d5f14e',\n 'cfd20f80ac073fd9518f4ef3f43d2a1f5e4e56e40c2677f38d6f6fecd05df60c',\n '1354fa73497519a39aed19fc99bdbae78a880a1eafb2f7898d607e07db36528d',\n '1043b0d25eacfc5013ae9dba780305a6fbf01a43543bd871d7c00537fca142a9',\n '973dfc5df142851ced258d52d0ac2784e814000ac22e35776f772256b0d4dde9',\n '463808eb74d3d87e6563970e0301a493577f8cd1b501e6e0ffa5e027ad2cea95',\n '15b21acea2e3fd9d1ace3768a72636ee7bdf67a6f8e0807bfa2273dea2207555',\n '32d377bfe7ebe382598c54dd13f8af7510e0a1e2fd2e913311fdd58e517e5e2e',\n ],\n staticAnswerHash: 'c7bbf61f61cfd4a1b2def160c28136fc1d100d39fbdb67b227a2c6e558d9d3a5',\n}\n","import { archivistPresets } from './archivistPresets.ts'\n\nexport const archivistUriToName = () => {\n // eslint-disable-next-line unicorn/no-array-reduce\n return archivistPresets.reduce<Record<string, string>>((acc, { name, uri }) => {\n if (name) {\n acc[uri] = name\n }\n return acc\n }, {})\n}\n","import type { NetworkPayload } from '@xyo-network/network'\nimport { NetworkSchema } from '@xyo-network/network'\n\nimport { findArchivistPreset } from '../archivistPresets.ts'\nimport { findDivinerPreset } from '../divinerPresets.ts'\n\nexport const defaultNetworkConfigs: NetworkPayload[] = [\n {\n name: 'Kerplunk',\n nodes: [findArchivistPreset('kerplunk-archivist-xyo-network'), findDivinerPreset('beta-location-diviner-xyo-network')],\n schema: NetworkSchema,\n slug: 'kerplunk',\n },\n {\n name: 'Main',\n nodes: [findArchivistPreset('main-archivist-xyo-network'), findDivinerPreset('location-diviner-xyo-network')],\n schema: NetworkSchema,\n slug: 'main',\n },\n {\n name: 'Local',\n nodes: [findArchivistPreset('local-archivist-xyo-network'), findDivinerPreset('local-location-diviner-xyo-network')],\n schema: NetworkSchema,\n slug: 'local',\n },\n]\n\n/** @deprecated use defaultNetworkConfigs instead */\nexport const networkPresets = defaultNetworkConfigs\n","import type { NetworkNodePayload } from '@xyo-network/network'\nimport { NetworkNodeSchema } from '@xyo-network/network'\n\nexport const findDivinerPreset = (slug: string) => {\n return (\n divinerPresets.find((item) => {\n return item.slug === slug\n }) ?? divinerPresets[0]\n )\n}\n\nexport const divinerPresets: NetworkNodePayload[] = [\n {\n name: 'XYO Location (beta)',\n schema: NetworkNodeSchema,\n slug: 'beta-location-diviner-xyo-network',\n type: 'diviner',\n uri: 'https://beta.api.location.diviner.xyo.network',\n web: 'https://beta.explore.xyo.network',\n },\n {\n name: 'XYO Location',\n schema: NetworkNodeSchema,\n slug: 'location-diviner-xyo-network',\n type: 'diviner',\n uri: 'https://api.location.diviner.xyo.network',\n web: 'https://explore.xyo.network',\n },\n {\n name: 'XYO Location (local)',\n schema: NetworkNodeSchema,\n slug: 'local-location-diviner-xyo-network',\n type: 'diviner',\n uri: 'http://localhost:8082',\n web: 'http://localhost:3000',\n },\n]\n","import { defaultNetworkConfigs } from './default.ts'\n\nexport const findNetworkConfig = (slug: string, configs = defaultNetworkConfigs) => {\n return configs.find((item) => {\n return item.slug === slug\n })\n}\n\n/** @deprecated use findNetworkConfig instead */\nexport const findNetworkPreset = findNetworkConfig\n","import type { NetworkNames } from './NetworkNames.ts'\n\nexport type SiteName = 'explore' | 'node'\n\nexport const resolveNetworkFromHostName = (fallback: NetworkNames = 'Kerplunk', siteName: SiteName) => {\n switch (document.location.hostname) {\n case `${siteName}.xyo.network`: {\n return 'Main'\n }\n case `beta.${siteName}.xyo.network`: {\n return 'Kerplunk'\n }\n default: {\n return fallback\n }\n }\n}\n","import type { WithChildren } from '@xylabs/react-shared'\nimport type { NetworkPayload } from '@xyo-network/network'\nimport React, { useCallback, useMemo } from 'react'\nimport { useSearchParams } from 'react-router-dom'\n\nimport { defaultNetworkConfigs, findNetworkConfig } from '../../lib/index.ts'\nimport { NetworkContext } from '../Context.ts'\nimport { useNetwork } from '../use.ts'\nimport { NetworkMemoryProvider } from './Memory.tsx'\nimport type { NetworkProviderProps } from './Props.ts'\n\nconst NetworkRouteProviderInner: React.FC<WithChildren> = ({ children }) => {\n const { network, setNetwork } = useNetwork()\n\n const [params, setParams] = useSearchParams()\n\n const slug = params.get('network')\n const routeNetwork = slug ? findNetworkConfig(slug) : undefined\n\n // update the network stored in the route\n const setNetworkParam = useCallback(\n (network?: NetworkPayload) => {\n if (network) {\n params.set('network', network.slug)\n setParams(params, { replace: true })\n setNetwork?.(network)\n } else {\n params.delete('network')\n }\n },\n [params, setParams, setNetwork],\n )\n\n // if the network is actively changed, update both memory and route\n const setNetworkLocal = useCallback(\n (network: NetworkPayload) => {\n setNetworkParam(network)\n setNetwork?.(network)\n },\n [setNetworkParam, setNetwork],\n )\n\n // sync memory and route storage of network\n const initialized = useMemo(() => {\n if (routeNetwork !== network) {\n if (routeNetwork === undefined && network !== undefined) {\n // if the route does not have a network selected, use what is in the memory context\n setNetworkParam(network)\n } else if (routeNetwork) {\n // if the route has a selection and it is different from memory, update memory\n setNetwork?.(routeNetwork)\n }\n }\n return true\n }, [routeNetwork, network, setNetworkParam, setNetwork])\n\n return (\n // eslint-disable-next-line @eslint-react/no-unstable-context-value\n <NetworkContext.Provider value={{\n network, networks: defaultNetworkConfigs, provided: true, setNetwork: setNetworkLocal,\n }}\n >\n {initialized ? children : null}\n </NetworkContext.Provider>\n )\n}\n\nexport const NetworkRouteProvider: React.FC<WithChildren<NetworkProviderProps>> = ({\n defaultNetworkConfig, defaultNetworkName, ...props\n}) => {\n return (\n <NetworkMemoryProvider defaultNetworkConfig={defaultNetworkConfig} defaultNetworkName={defaultNetworkName}>\n <NetworkRouteProviderInner {...props} />\n </NetworkMemoryProvider>\n )\n}\n","import { useContextEx } from '@xyo-network/react-shared'\n\nimport { NetworkContext } from './Context.ts'\nimport type { NetworkContextState } from './State.ts'\n\nexport const useNetwork = (required = false) => {\n return useContextEx<NetworkContextState>(NetworkContext, 'Network', required)\n}\n"],"mappings":"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","names":["MenuItem","assertEx","SelectEx","useBreakpoint","React","createContextEx","NetworkContext","React","useMemo","useState","NetworkNodeSchema","ExplorerMapHashes","animatedAnswerHashes","staticAnswerHash","findArchivistPreset","slug","archivistPresets","find","item","docs","explorerMapHashes","ExplorerMapHashes","name","schema","NetworkNodeSchema","type","uri","archivistUriToName","archivistPresets","reduce","acc","name","uri","NetworkSchema","NetworkNodeSchema","findDivinerPreset","slug","divinerPresets","find","item","name","schema","NetworkNodeSchema","type","uri","web","defaultNetworkConfigs","name","nodes","findArchivistPreset","findDivinerPreset","schema","NetworkSchema","slug","networkPresets","findNetworkConfig","slug","configs","defaultNetworkConfigs","find","item","findNetworkPreset","resolveNetworkFromHostName","fallback","siteName","document","location","hostname","NetworkMemoryProvider","defaultNetworkConfig","defaultNetworkName","props","console","warn","resolvedDefaultNetworkConfig","defaultNetworkConfigs","find","config","name","undefined","network","setNetwork","useState","value","useMemo","networks","provided","NetworkContext","Provider","NetworkProvider","React","useCallback","useMemo","useSearchParams","useContextEx","useNetwork","required","useContextEx","NetworkContext","NetworkRouteProviderInner","children","network","setNetwork","useNetwork","params","setParams","useSearchParams","slug","get","routeNetwork","findNetworkConfig","undefined","setNetworkParam","useCallback","set","replace","delete","setNetworkLocal","initialized","useMemo","React","NetworkContext","Provider","value","networks","defaultNetworkConfigs","provided","NetworkRouteProvider","defaultNetworkConfig","defaultNetworkName","props","NetworkMemoryProvider","NetworkSelectEx","onChange","variant","responsive","props","network","setNetwork","networks","useNetwork","sm","useBreakpoint","React","SelectEx","size","value","slug","event","child","target","assertEx","findNetworkConfig","map","MenuItem","key","name","toUpperCase"]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@xyo-network/react-network",
3
- "version": "3.0.15",
3
+ "version": "3.0.16",
4
4
  "description": "Common React library for all XYO projects that use React",
5
5
  "keywords": [
6
6
  "xyo",
@@ -43,12 +43,12 @@
43
43
  "lint-pkg": "npmPkgJsonLint ."
44
44
  },
45
45
  "dependencies": {
46
- "@xylabs/assert": "^4.0.9",
47
- "@xylabs/hex": "^4.0.9",
48
- "@xylabs/react-select": "^4.2.5",
49
- "@xylabs/react-shared": "^4.2.5",
46
+ "@xylabs/assert": "^4.0.10",
47
+ "@xylabs/hex": "^4.0.10",
48
+ "@xylabs/react-select": "^4.2.10",
49
+ "@xylabs/react-shared": "^4.2.10",
50
50
  "@xyo-network/network": "^3.1.9",
51
- "@xyo-network/react-shared": "^3.0.15",
51
+ "@xyo-network/react-shared": "^3.0.16",
52
52
  "react-router-dom": "^6.26.1"
53
53
  },
54
54
  "devDependencies": {
@@ -56,7 +56,7 @@
56
56
  "@mui/material": "^5.16.7",
57
57
  "@mui/styles": "^5.16.7",
58
58
  "@storybook/react": "^8.2.9",
59
- "@xylabs/react-flexbox": "^4.2.5",
59
+ "@xylabs/react-flexbox": "^4.2.10",
60
60
  "@xylabs/ts-scripts-yarn3": "^4.0.7",
61
61
  "@xylabs/tsconfig-react": "^4.0.7",
62
62
  "react": "^18.3.1",
@@ -1,7 +1,9 @@
1
1
  import { Card, CardContent } from '@mui/material'
2
2
  import type { Meta, StoryFn } from '@storybook/react'
3
3
  import { FlexCol } from '@xylabs/react-flexbox'
4
- import React, { useEffect, useState } from 'react'
4
+ import React, {
5
+ useEffect, useMemo, useState,
6
+ } from 'react'
5
7
  import { BrowserRouter } from 'react-router-dom'
6
8
 
7
9
  import {
@@ -59,7 +61,7 @@ const TemplateWithRouteProviderInner: StoryFn<typeof NetworkSelectEx> = (props)
59
61
  const { network } = useNetwork()
60
62
  const [uris, setUris] = useState<(string | undefined)[]>([])
61
63
 
62
- useEffect(() => {
64
+ useMemo(() => {
63
65
  setUris(previous => [...previous, network?.nodes?.find(node => node.type === 'archivist')?.uri])
64
66
  }, [network?.nodes])
65
67
 
@@ -1,8 +1,6 @@
1
1
  import type { WithChildren } from '@xylabs/react-shared'
2
2
  import type { NetworkPayload } from '@xyo-network/network'
3
- import React, {
4
- useCallback, useEffect, useState,
5
- } from 'react'
3
+ import React, { useCallback, useMemo } from 'react'
6
4
  import { useSearchParams } from 'react-router-dom'
7
5
 
8
6
  import { defaultNetworkConfigs, findNetworkConfig } from '../../lib/index.ts'
@@ -12,7 +10,6 @@ import { NetworkMemoryProvider } from './Memory.tsx'
12
10
  import type { NetworkProviderProps } from './Props.ts'
13
11
 
14
12
  const NetworkRouteProviderInner: React.FC<WithChildren> = ({ children }) => {
15
- const [initialized, setInitialized] = useState(false)
16
13
  const { network, setNetwork } = useNetwork()
17
14
 
18
15
  const [params, setParams] = useSearchParams()
@@ -44,7 +41,7 @@ const NetworkRouteProviderInner: React.FC<WithChildren> = ({ children }) => {
44
41
  )
45
42
 
46
43
  // sync memory and route storage of network
47
- useEffect(() => {
44
+ const initialized = useMemo(() => {
48
45
  if (routeNetwork !== network) {
49
46
  if (routeNetwork === undefined && network !== undefined) {
50
47
  // if the route does not have a network selected, use what is in the memory context
@@ -54,7 +51,7 @@ const NetworkRouteProviderInner: React.FC<WithChildren> = ({ children }) => {
54
51
  setNetwork?.(routeNetwork)
55
52
  }
56
53
  }
57
- setInitialized(true)
54
+ return true
58
55
  }, [routeNetwork, network, setNetworkParam, setNetwork])
59
56
 
60
57
  return (