@xyo-network/react-schema 5.3.0 → 5.3.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.
@@ -121,7 +121,7 @@ import { SelectEx } from "@xylabs/react-select";
121
121
  import React4 from "react";
122
122
 
123
123
  // src/contexts/Schema/Context.ts
124
- import { createContextEx } from "@xyo-network/react-shared";
124
+ import { createContextEx } from "@xylabs/react-shared";
125
125
  var SchemaContext = createContextEx();
126
126
 
127
127
  // src/contexts/Schema/Provider/Memory.tsx
@@ -320,7 +320,7 @@ import React3, { useCallback, useEffect, useMemo as useMemo4 } from "react";
320
320
  import { useSearchParams } from "react-router-dom";
321
321
 
322
322
  // src/contexts/Schema/use.ts
323
- import { useContextEx } from "@xyo-network/react-shared";
323
+ import { useContextEx } from "@xylabs/react-shared";
324
324
  var useSchema = /* @__PURE__ */ __name((required = false) => {
325
325
  return useContextEx(SchemaContext, "Schema", required);
326
326
  }, "useSchema");
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/components/Property/SchemaProperty.tsx","../../src/components/SelectEx/SchemaSelectEx.tsx","../../src/contexts/Schema/Context.ts","../../src/contexts/Schema/Provider/Memory.tsx","../../src/hooks/useGetSchema.tsx","../../src/hooks/useSchemaDefinitions.tsx","../../src/hooks/useSchemaList.tsx","../../src/hooks/useSchemaStats.tsx","../../src/contexts/Schema/Provider/Route.tsx","../../src/contexts/Schema/use.ts"],"sourcesContent":["import {\n NewReleases as NewReleasesIcon, OpenInNew as OpenInNewIcon, Verified as VerifiedIcon,\n} from '@mui/icons-material'\nimport { IconButton } from '@mui/material'\nimport { useAsyncEffect } from '@xylabs/react-async-effect'\nimport { FlexGrowRow } from '@xylabs/react-flexbox'\nimport { LinkEx } from '@xylabs/react-link'\nimport type { EventDispatch, EventNoun } from '@xyo-network/react-event'\nimport { useEvent } from '@xyo-network/react-event'\nimport type { PropertyProps } from '@xyo-network/react-property'\nimport { Property, PropertyValue } from '@xyo-network/react-property'\nimport type { SchemaCacheEntry } from '@xyo-network/schema-cache'\nimport { SchemaCache } from '@xyo-network/schema-cache'\nimport React, { useState } from 'react'\n\nexport type SchemaPropertyProps = PropertyProps & {\n showLinkNames?: boolean\n showOpenNewWindowLink?: boolean\n showStatusIcon?: boolean\n value?: string\n}\n\nconst useResolveSchema = (schema?: string) => {\n const [entry, setEntry] = useState<SchemaCacheEntry | null>()\n useAsyncEffect(\n async (mounted) => {\n if (schema) {\n const entry = await SchemaCache.instance.get(schema)\n if (mounted()) {\n setEntry(entry)\n }\n }\n },\n [schema],\n )\n return entry\n}\n\nexport const SchemaProperty: React.FC<SchemaPropertyProps> = ({\n showLinkNames = true, showOpenNewWindowLink = true, showStatusIcon = true, titleProps, value, ...props\n}) => {\n const resolvedSchema = useResolveSchema(value)\n const [buttonRef, buttonDispatch] = useEvent<HTMLButtonElement>()\n const [divRef, divDispatch] = useEvent<HTMLDivElement>()\n\n const onClick = (dispatch?: EventDispatch<EventNoun, 'click', string>, openNewWindow = false) => {\n dispatch?.(\n 'schema',\n 'click',\n JSON.stringify({\n openNewWindow,\n schema: value,\n }),\n )\n }\n\n return (\n <Property title=\"Schema\" value={value} tip=\"Schema sent with the payload\" titleProps={titleProps} {...props}>\n {value && showStatusIcon\n ? resolvedSchema === null\n ? (\n <IconButton\n ref={buttonRef}\n size=\"small\"\n onClick={() => {\n if (!buttonRef.current) {\n console.warn('buttonRef.current is null')\n }\n onClick(buttonDispatch)\n }}\n >\n <NewReleasesIcon color=\"warning\" fontSize=\"inherit\" />\n </IconButton>\n )\n : resolvedSchema === undefined\n ? (\n <IconButton\n ref={buttonRef}\n size=\"small\"\n onClick={() => {\n if (!buttonRef.current) {\n console.warn('buttonRef.current is null')\n }\n onClick(buttonDispatch)\n }}\n >\n <NewReleasesIcon color=\"disabled\" fontSize=\"inherit\" />\n </IconButton>\n )\n : (\n <IconButton rel=\"noopener noreferrer\" size=\"small\" target=\"_blank\" href={resolvedSchema?.huri?.href ?? ''}>\n <VerifiedIcon color=\"success\" fontSize=\"inherit\" />\n </IconButton>\n )\n\n : null}\n {value\n ? (\n <FlexGrowRow ref={divRef} justifyContent=\"space-between\">\n {showLinkNames\n ? (\n <LinkEx\n display=\"block\"\n width=\"100%\"\n sx={{ cursor: 'pointer' }}\n >\n <PropertyValue\n value={value}\n title=\"view schema\"\n onClick={() => {\n if (!divRef.current) {\n console.warn('divRef.current is null')\n }\n onClick(divDispatch)\n }}\n />\n </LinkEx>\n )\n : (\n <PropertyValue\n value={value}\n title=\"view schema\"\n onClick={() => {\n if (!divRef.current) {\n console.warn('divRef.current is null')\n }\n onClick(divDispatch)\n }}\n />\n )}\n {showOpenNewWindowLink\n ? (\n <IconButton\n ref={buttonRef}\n size=\"small\"\n onClick={() => {\n if (!buttonRef.current) {\n console.warn('buttonRef.current is null')\n }\n onClick(buttonDispatch, true)\n }}\n >\n <OpenInNewIcon fontSize=\"inherit\" />\n </IconButton>\n )\n : null}\n </FlexGrowRow>\n )\n : null}\n </Property>\n )\n}\n\nSchemaProperty.displayName = 'SchemaProperty'\n","import { MenuItem, Typography } from '@mui/material'\nimport type { SelectExProps } from '@xylabs/react-select'\nimport { SelectEx } from '@xylabs/react-select'\nimport React from 'react'\n\nimport { useSchema } from '../../contexts/index.ts'\n\nexport type SchemaSelectExProps = SelectExProps<string>\n\nexport const SchemaSelectEx: React.FC<SchemaSelectExProps> = ({\n onChange, variant = 'outlined', ...props\n}) => {\n const {\n schema, setSchema, schemaList,\n } = useSchema(false)\n\n return (\n <SelectEx\n variant={variant}\n size=\"small\"\n value={schema ?? 'none'}\n onChange={(event, child) => {\n if (event.target.value !== schema) {\n onChange?.(event, child)\n setSchema?.(event.target.value)\n }\n }}\n renderValue={(value) => {\n return <Typography>{value === 'none' ? '- None -' : value}</Typography>\n }}\n {...props}\n >\n {schemaList?.map((schema, index) => {\n return (\n <MenuItem key={index} value={schema}>\n {schema}\n </MenuItem>\n )\n })}\n <MenuItem key=\"none\" value=\"none\">\n - None -\n </MenuItem>\n </SelectEx>\n )\n}\n","import { createContextEx } from '@xyo-network/react-shared'\n\nimport type { SchemaContextState } from './State.ts'\n\nexport const SchemaContext = createContextEx<SchemaContextState>()\n","import { exists } from '@xylabs/exists'\nimport type { PropsWithChildren } from 'react'\nimport React, { useMemo, useState } from 'react'\n\nimport { useSchemaStats } from '../../../hooks/index.ts'\nimport { SchemaContext } from '../Context.ts'\nimport type { SchemaProviderProps } from './Props.ts'\n\nexport const SchemaMemoryProvider: React.FC<PropsWithChildren<SchemaProviderProps>> = ({\n defaultSchema, knownSchemaList, ...props\n}) => {\n const [schema, setSchema] = useState(defaultSchema)\n const [schemaList, setSchemaList] = useState<string[] | undefined>(knownSchemaList)\n const [fetchedSchemaStats] = useSchemaStats()\n\n useMemo(() => {\n if (fetchedSchemaStats) {\n const schemaList = (fetchedSchemaStats.map(({ name }) => name)).filter(exists)\n setSchemaList(schemaList)\n }\n }, [fetchedSchemaStats])\n\n const value = useMemo(() => ({\n provided: true, schema, schemaList: knownSchemaList ?? schemaList, setSchema, setSchemaList,\n }), [schema, schemaList, knownSchemaList])\n\n return <SchemaContext value={value} {...props} />\n}\n","import { useAsyncEffect } from '@xylabs/react-async-effect'\nimport { PayloadBuilder } from '@xyo-network/payload-builder'\nimport type { ModuleError, WithSources } from '@xyo-network/payload-model'\nimport { ModuleErrorSchema } from '@xyo-network/payload-model'\nimport type { SchemaCacheEntry } from '@xyo-network/schema-cache'\nimport { SchemaCache } from '@xyo-network/schema-cache'\nimport type { SchemaPayload } from '@xyo-network/schema-payload-plugin'\nimport { useState } from 'react'\n\n/**\n * Gets a Huri and schema payload from a schema string\n */\nconst useGetSchemaPayload = (schema?: string) => {\n const [notFound, setNotFound] = useState(false)\n const [xyoError, setError] = useState<WithSources<ModuleError>>()\n const [schemaCacheEntry, setSchemaCacheEntry] = useState<SchemaCacheEntry | null | undefined>()\n const [schemaLocal, setSchemaLocal] = useState<string>()\n\n useAsyncEffect(\n async (mounted) => {\n const firstRequest = !notFound && !schemaCacheEntry && !xyoError\n const schemaChanged = schema !== schemaLocal\n\n if ((schema && firstRequest) || (schema && schemaChanged)) {\n try {\n const schemaCacheEntry = await SchemaCache.instance.get(schema)\n if (mounted()) {\n setSchemaCacheEntry(schemaCacheEntry)\n setNotFound(schemaCacheEntry === null || schemaCacheEntry === undefined)\n }\n } catch (e) {\n const error = e as Error\n console.error(e)\n if (mounted()) {\n setError({\n message: error.message, schema: ModuleErrorSchema, $sources: [],\n })\n }\n }\n }\n if (schemaChanged) {\n setSchemaLocal(schema)\n }\n },\n [xyoError, notFound, schema, schemaLocal, schemaCacheEntry],\n )\n\n return {\n notFound,\n schemaHuri: schemaCacheEntry?.huri,\n schemaPayload:\n schemaCacheEntry ? new PayloadBuilder<SchemaPayload>(schemaCacheEntry?.payload).fields(schemaCacheEntry.payload).build() : schemaCacheEntry,\n xyoError,\n }\n}\n\nexport { useGetSchemaPayload }\n","import { useAsyncEffect } from '@xylabs/react-async-effect'\nimport { SchemaCache } from '@xyo-network/schema-cache'\nimport type { SchemaPayload } from '@xyo-network/schema-payload-plugin'\nimport { useState } from 'react'\n\nexport type SchemaList = { name: string }\n\nexport const useSchemaDefinitions = (schemaList?: SchemaList[]): SchemaPayload[] | undefined => {\n const [schemaPayloads, setSchemaPayloads] = useState<SchemaPayload[]>()\n useAsyncEffect(\n async (mounted) => {\n if (schemaList) {\n const promiseResults = await Promise.allSettled(schemaList?.map(({ name }) => SchemaCache.instance.get(name)))\n if (mounted()) {\n setSchemaPayloads(\n promiseResults\n .map(result => (result.status === 'fulfilled' ? result.value?.payload : undefined))\n .filter(item => item !== undefined && item !== null) as SchemaPayload[],\n )\n }\n }\n },\n [schemaList],\n )\n return schemaPayloads\n}\n","import type { Address } from '@xylabs/hex'\nimport { usePromise } from '@xylabs/react-promise'\nimport type { SchemaListPayload, SchemaListQueryPayload } from '@xyo-network/diviner-schema-list-model'\nimport { SchemaListQuerySchema } from '@xyo-network/diviner-schema-list-model'\nimport { useWeakDivinerFromNode } from '@xyo-network/react-diviner'\nimport { useMemo } from 'react'\n\nexport const useSchemaList = (address?: Address, nameOrAddress = 'SchemaListDiviner'): [SchemaListPayload | null | undefined, Error | undefined] => {\n const [diviner, divinerError] = useWeakDivinerFromNode(nameOrAddress)\n\n const query: SchemaListQueryPayload[] | undefined = useMemo(\n () =>\n address\n ? [\n {\n address,\n schema: SchemaListQuerySchema,\n },\n ]\n : undefined,\n [address],\n )\n\n const [schemaList, error] = usePromise(\n async () => {\n const divinerInstance = diviner?.deref()\n if (divinerInstance) {\n const response = (await divinerInstance.divine(query)) as SchemaListPayload[]\n return response.at(0)\n }\n },\n [diviner, divinerError, query],\n )\n return [schemaList, error]\n}\n","import type { Address } from '@xylabs/hex'\nimport { useAsyncEffect } from '@xylabs/react-async-effect'\nimport type {\n SchemaStatsPayload,\n SchemaStatsQueryPayload,\n} from '@xyo-network/diviner-schema-stats-model'\nimport {\n SchemaStatsDivinerSchema,\n SchemaStatsQuerySchema,\n} from '@xyo-network/diviner-schema-stats-model'\nimport { TYPES } from '@xyo-network/node-core-types'\nimport type { WithSources } from '@xyo-network/payload-model'\nimport { isPayloadOfSchemaType } from '@xyo-network/payload-model'\nimport { useWeakDivinerFromNode } from '@xyo-network/react-diviner'\nimport type { Dispatch, SetStateAction } from 'react'\nimport { useMemo, useState } from 'react'\n\nexport const useSchemaStats = (\n statsAddress?: Address,\n nameOrAddress = TYPES.SchemaStatsDiviner,\n): [SchemaStatsPayload[] | undefined, Error | undefined, Dispatch<SetStateAction<number>>] => {\n const [refresh, setRefresh] = useState(1)\n const [diviner, divinerError] = useWeakDivinerFromNode(nameOrAddress)\n const [error, setError] = useState<Error>()\n const refreshHistory = () => setRefresh(previous => previous + 1)\n\n const [schemaList, setSchemaList] = useState<WithSources<SchemaStatsPayload>[]>()\n\n const query: SchemaStatsQueryPayload = useMemo(\n () => ({\n address: statsAddress,\n schema: SchemaStatsQuerySchema,\n }),\n [statsAddress],\n )\n\n useAsyncEffect(\n async (mounted) => {\n const instance = diviner?.deref()\n if (instance) {\n if (divinerError) {\n if (mounted()) {\n setError(divinerError)\n setSchemaList(undefined)\n }\n } else {\n try {\n const schemas = (await instance.divine([query])).filter(isPayloadOfSchemaType(SchemaStatsDivinerSchema)) as WithSources<\n SchemaStatsPayload\n >[]\n if (mounted()) {\n setSchemaList(schemas)\n setError(undefined)\n }\n } catch (ex) {\n setError(ex as Error)\n setSchemaList(undefined)\n }\n }\n }\n },\n [diviner, refresh, divinerError, query],\n )\n\n return [schemaList, error, refreshHistory]\n}\n","import type { PropsWithChildren } from 'react'\nimport React, {\n useCallback, useEffect, useMemo,\n} from 'react'\nimport { useSearchParams } from 'react-router-dom'\n\nimport { SchemaContext } from '../Context.ts'\nimport { useSchema } from '../use.ts'\nimport { SchemaMemoryProvider } from './Memory.tsx'\nimport type { SchemaProviderProps } from './Props.ts'\n\nconst SchemaRouteProviderInner: React.FC<PropsWithChildren> = ({ children }) => {\n const {\n schema, setSchema, schemaList,\n } = useSchema()\n\n const [params, setParams] = useSearchParams()\n\n const routeSchema = params.get('schema')\n\n // update the network stored in the route\n const setSchemaParam = useCallback(\n (schema?: string) => {\n if (schema) {\n params.set('schema', schema)\n setParams(params, { replace: true })\n setSchema?.(schema)\n } else {\n params.delete('network')\n }\n },\n [params, setParams, setSchema],\n )\n\n // if the network is actively changed, update both memory and route\n const setSchemaLocal = useCallback(\n (schema: string) => {\n setSchemaParam(schema)\n setSchema?.(schema)\n },\n [setSchemaParam, setSchema],\n )\n\n // sync memory and route storage of network\n useEffect(() => {\n if (routeSchema !== schema) {\n if (routeSchema === undefined && schema !== undefined) {\n // if the route does not have a network selected, use what is in the memory context\n setSchemaLocal(schema)\n } else if (routeSchema) {\n // if the route has a selection and it is different from memory, update memory\n setSchema?.(routeSchema)\n }\n }\n }, [routeSchema, schema, setSchemaParam, setSchema, setSchemaLocal])\n\n const value = useMemo(() => ({\n provided: true, schema, schemaList, setSchema: setSchemaLocal,\n }), [schema, schemaList, setSchemaLocal])\n\n return <SchemaContext value={value}>{children}</SchemaContext>\n}\n\nexport const SchemaRouteProvider: React.FC<PropsWithChildren<SchemaProviderProps>> = ({\n knownSchemaList, defaultSchema, ...props\n}) => {\n return (\n <SchemaMemoryProvider knownSchemaList={knownSchemaList} defaultSchema={defaultSchema}>\n <SchemaRouteProviderInner {...props} />\n </SchemaMemoryProvider>\n )\n}\n","import { useContextEx } from '@xyo-network/react-shared'\n\nimport { SchemaContext } from './Context.ts'\nimport type { SchemaContextState } from './State.ts'\n\nexport const useSchema = (required = false) => {\n return useContextEx<SchemaContextState>(SchemaContext, 'Schema', required)\n}\n"],"mappings":"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","names":["NewReleases","NewReleasesIcon","OpenInNew","OpenInNewIcon","Verified","VerifiedIcon","IconButton","useAsyncEffect","FlexGrowRow","LinkEx","useEvent","Property","PropertyValue","SchemaCache","React","useState","useResolveSchema","schema","entry","setEntry","useState","useAsyncEffect","mounted","SchemaCache","instance","get","SchemaProperty","showLinkNames","showOpenNewWindowLink","showStatusIcon","titleProps","value","props","resolvedSchema","buttonRef","buttonDispatch","useEvent","divRef","divDispatch","onClick","dispatch","openNewWindow","JSON","stringify","Property","title","tip","IconButton","ref","size","current","console","warn","NewReleasesIcon","color","fontSize","undefined","rel","target","href","huri","VerifiedIcon","FlexGrowRow","justifyContent","LinkEx","display","width","sx","cursor","PropertyValue","OpenInNewIcon","displayName","MenuItem","Typography","SelectEx","React","createContextEx","SchemaContext","exists","React","useMemo","useState","useAsyncEffect","PayloadBuilder","ModuleErrorSchema","SchemaCache","useState","useGetSchemaPayload","schema","notFound","setNotFound","useState","xyoError","setError","schemaCacheEntry","setSchemaCacheEntry","schemaLocal","setSchemaLocal","useAsyncEffect","mounted","firstRequest","schemaChanged","SchemaCache","instance","get","undefined","e","error","console","message","ModuleErrorSchema","$sources","schemaHuri","huri","schemaPayload","PayloadBuilder","payload","fields","build","useAsyncEffect","SchemaCache","useState","useSchemaDefinitions","schemaList","schemaPayloads","setSchemaPayloads","useState","useAsyncEffect","mounted","promiseResults","Promise","allSettled","map","name","SchemaCache","instance","get","result","status","value","payload","undefined","filter","item","usePromise","SchemaListQuerySchema","useWeakDivinerFromNode","useMemo","useSchemaList","address","nameOrAddress","diviner","divinerError","useWeakDivinerFromNode","query","useMemo","schema","SchemaListQuerySchema","undefined","schemaList","error","usePromise","divinerInstance","deref","response","divine","at","useAsyncEffect","SchemaStatsDivinerSchema","SchemaStatsQuerySchema","TYPES","isPayloadOfSchemaType","useWeakDivinerFromNode","useMemo","useState","useSchemaStats","statsAddress","nameOrAddress","TYPES","SchemaStatsDiviner","refresh","setRefresh","useState","diviner","divinerError","useWeakDivinerFromNode","error","setError","refreshHistory","previous","schemaList","setSchemaList","query","useMemo","address","schema","SchemaStatsQuerySchema","useAsyncEffect","mounted","instance","deref","undefined","schemas","divine","filter","isPayloadOfSchemaType","SchemaStatsDivinerSchema","ex","SchemaMemoryProvider","defaultSchema","knownSchemaList","props","schema","setSchema","useState","schemaList","setSchemaList","fetchedSchemaStats","useSchemaStats","useMemo","map","name","filter","exists","value","provided","React","SchemaContext","React","useCallback","useEffect","useMemo","useSearchParams","useContextEx","useSchema","required","useContextEx","SchemaContext","SchemaRouteProviderInner","children","schema","setSchema","schemaList","useSchema","params","setParams","useSearchParams","routeSchema","get","setSchemaParam","useCallback","set","replace","delete","setSchemaLocal","useEffect","undefined","value","useMemo","provided","React","SchemaContext","SchemaRouteProvider","knownSchemaList","defaultSchema","props","SchemaMemoryProvider","SchemaSelectEx","onChange","variant","props","schema","setSchema","schemaList","useSchema","React","SelectEx","size","value","event","child","target","renderValue","Typography","map","index","MenuItem","key"]}
1
+ {"version":3,"sources":["../../src/components/Property/SchemaProperty.tsx","../../src/components/SelectEx/SchemaSelectEx.tsx","../../src/contexts/Schema/Context.ts","../../src/contexts/Schema/Provider/Memory.tsx","../../src/hooks/useGetSchema.tsx","../../src/hooks/useSchemaDefinitions.tsx","../../src/hooks/useSchemaList.tsx","../../src/hooks/useSchemaStats.tsx","../../src/contexts/Schema/Provider/Route.tsx","../../src/contexts/Schema/use.ts"],"sourcesContent":["import {\n NewReleases as NewReleasesIcon, OpenInNew as OpenInNewIcon, Verified as VerifiedIcon,\n} from '@mui/icons-material'\nimport { IconButton } from '@mui/material'\nimport { useAsyncEffect } from '@xylabs/react-async-effect'\nimport { FlexGrowRow } from '@xylabs/react-flexbox'\nimport { LinkEx } from '@xylabs/react-link'\nimport type { EventDispatch, EventNoun } from '@xyo-network/react-event'\nimport { useEvent } from '@xyo-network/react-event'\nimport type { PropertyProps } from '@xyo-network/react-property'\nimport { Property, PropertyValue } from '@xyo-network/react-property'\nimport type { SchemaCacheEntry } from '@xyo-network/schema-cache'\nimport { SchemaCache } from '@xyo-network/schema-cache'\nimport React, { useState } from 'react'\n\nexport type SchemaPropertyProps = PropertyProps & {\n showLinkNames?: boolean\n showOpenNewWindowLink?: boolean\n showStatusIcon?: boolean\n value?: string\n}\n\nconst useResolveSchema = (schema?: string) => {\n const [entry, setEntry] = useState<SchemaCacheEntry | null>()\n useAsyncEffect(\n async (mounted) => {\n if (schema) {\n const entry = await SchemaCache.instance.get(schema)\n if (mounted()) {\n setEntry(entry)\n }\n }\n },\n [schema],\n )\n return entry\n}\n\nexport const SchemaProperty: React.FC<SchemaPropertyProps> = ({\n showLinkNames = true, showOpenNewWindowLink = true, showStatusIcon = true, titleProps, value, ...props\n}) => {\n const resolvedSchema = useResolveSchema(value)\n const [buttonRef, buttonDispatch] = useEvent<HTMLButtonElement>()\n const [divRef, divDispatch] = useEvent<HTMLDivElement>()\n\n const onClick = (dispatch?: EventDispatch<EventNoun, 'click', string>, openNewWindow = false) => {\n dispatch?.(\n 'schema',\n 'click',\n JSON.stringify({\n openNewWindow,\n schema: value,\n }),\n )\n }\n\n return (\n <Property title=\"Schema\" value={value} tip=\"Schema sent with the payload\" titleProps={titleProps} {...props}>\n {value && showStatusIcon\n ? resolvedSchema === null\n ? (\n <IconButton\n ref={buttonRef}\n size=\"small\"\n onClick={() => {\n if (!buttonRef.current) {\n console.warn('buttonRef.current is null')\n }\n onClick(buttonDispatch)\n }}\n >\n <NewReleasesIcon color=\"warning\" fontSize=\"inherit\" />\n </IconButton>\n )\n : resolvedSchema === undefined\n ? (\n <IconButton\n ref={buttonRef}\n size=\"small\"\n onClick={() => {\n if (!buttonRef.current) {\n console.warn('buttonRef.current is null')\n }\n onClick(buttonDispatch)\n }}\n >\n <NewReleasesIcon color=\"disabled\" fontSize=\"inherit\" />\n </IconButton>\n )\n : (\n <IconButton rel=\"noopener noreferrer\" size=\"small\" target=\"_blank\" href={resolvedSchema?.huri?.href ?? ''}>\n <VerifiedIcon color=\"success\" fontSize=\"inherit\" />\n </IconButton>\n )\n\n : null}\n {value\n ? (\n <FlexGrowRow ref={divRef} justifyContent=\"space-between\">\n {showLinkNames\n ? (\n <LinkEx\n display=\"block\"\n width=\"100%\"\n sx={{ cursor: 'pointer' }}\n >\n <PropertyValue\n value={value}\n title=\"view schema\"\n onClick={() => {\n if (!divRef.current) {\n console.warn('divRef.current is null')\n }\n onClick(divDispatch)\n }}\n />\n </LinkEx>\n )\n : (\n <PropertyValue\n value={value}\n title=\"view schema\"\n onClick={() => {\n if (!divRef.current) {\n console.warn('divRef.current is null')\n }\n onClick(divDispatch)\n }}\n />\n )}\n {showOpenNewWindowLink\n ? (\n <IconButton\n ref={buttonRef}\n size=\"small\"\n onClick={() => {\n if (!buttonRef.current) {\n console.warn('buttonRef.current is null')\n }\n onClick(buttonDispatch, true)\n }}\n >\n <OpenInNewIcon fontSize=\"inherit\" />\n </IconButton>\n )\n : null}\n </FlexGrowRow>\n )\n : null}\n </Property>\n )\n}\n\nSchemaProperty.displayName = 'SchemaProperty'\n","import { MenuItem, Typography } from '@mui/material'\nimport type { SelectExProps } from '@xylabs/react-select'\nimport { SelectEx } from '@xylabs/react-select'\nimport React from 'react'\n\nimport { useSchema } from '../../contexts/index.ts'\n\nexport type SchemaSelectExProps = SelectExProps<string>\n\nexport const SchemaSelectEx: React.FC<SchemaSelectExProps> = ({\n onChange, variant = 'outlined', ...props\n}) => {\n const {\n schema, setSchema, schemaList,\n } = useSchema(false)\n\n return (\n <SelectEx\n variant={variant}\n size=\"small\"\n value={schema ?? 'none'}\n onChange={(event, child) => {\n if (event.target.value !== schema) {\n onChange?.(event, child)\n setSchema?.(event.target.value)\n }\n }}\n renderValue={(value) => {\n return <Typography>{value === 'none' ? '- None -' : value}</Typography>\n }}\n {...props}\n >\n {schemaList?.map((schema, index) => {\n return (\n <MenuItem key={index} value={schema}>\n {schema}\n </MenuItem>\n )\n })}\n <MenuItem key=\"none\" value=\"none\">\n - None -\n </MenuItem>\n </SelectEx>\n )\n}\n","import { createContextEx } from '@xylabs/react-shared'\n\nimport type { SchemaContextState } from './State.ts'\n\nexport const SchemaContext = createContextEx<SchemaContextState>()\n","import { exists } from '@xylabs/exists'\nimport type { PropsWithChildren } from 'react'\nimport React, { useMemo, useState } from 'react'\n\nimport { useSchemaStats } from '../../../hooks/index.ts'\nimport { SchemaContext } from '../Context.ts'\nimport type { SchemaContextState } from '../State.ts'\nimport type { SchemaProviderProps } from './Props.ts'\n\nexport const SchemaMemoryProvider: React.FC<PropsWithChildren<SchemaProviderProps>> = ({\n defaultSchema, knownSchemaList, ...props\n}) => {\n const [schema, setSchema] = useState(defaultSchema)\n const [schemaList, setSchemaList] = useState<string[] | undefined>(knownSchemaList)\n const [fetchedSchemaStats] = useSchemaStats()\n\n useMemo(() => {\n if (fetchedSchemaStats) {\n const schemaList = (fetchedSchemaStats.map(({ name }) => name)).filter(exists)\n setSchemaList(schemaList)\n }\n }, [fetchedSchemaStats])\n\n const value: SchemaContextState = useMemo(() => ({\n provided: true, schema, schemaList: knownSchemaList ?? schemaList, setSchema, setSchemaList,\n }), [schema, schemaList, knownSchemaList])\n\n return <SchemaContext value={value} {...props} />\n}\n","import { useAsyncEffect } from '@xylabs/react-async-effect'\nimport { PayloadBuilder } from '@xyo-network/payload-builder'\nimport type { ModuleError, WithSources } from '@xyo-network/payload-model'\nimport { ModuleErrorSchema } from '@xyo-network/payload-model'\nimport type { SchemaCacheEntry } from '@xyo-network/schema-cache'\nimport { SchemaCache } from '@xyo-network/schema-cache'\nimport type { SchemaPayload } from '@xyo-network/schema-payload-plugin'\nimport { useState } from 'react'\n\n/**\n * Gets a Huri and schema payload from a schema string\n */\nconst useGetSchemaPayload = (schema?: string) => {\n const [notFound, setNotFound] = useState(false)\n const [xyoError, setError] = useState<WithSources<ModuleError>>()\n const [schemaCacheEntry, setSchemaCacheEntry] = useState<SchemaCacheEntry | null | undefined>()\n const [schemaLocal, setSchemaLocal] = useState<string>()\n\n useAsyncEffect(\n async (mounted) => {\n const firstRequest = !notFound && !schemaCacheEntry && !xyoError\n const schemaChanged = schema !== schemaLocal\n\n if ((schema && firstRequest) || (schema && schemaChanged)) {\n try {\n const schemaCacheEntry = await SchemaCache.instance.get(schema)\n if (mounted()) {\n setSchemaCacheEntry(schemaCacheEntry)\n setNotFound(schemaCacheEntry === null || schemaCacheEntry === undefined)\n }\n } catch (e) {\n const error = e as Error\n console.error(e)\n if (mounted()) {\n setError({\n message: error.message, schema: ModuleErrorSchema, $sources: [],\n })\n }\n }\n }\n if (schemaChanged) {\n setSchemaLocal(schema)\n }\n },\n [xyoError, notFound, schema, schemaLocal, schemaCacheEntry],\n )\n\n return {\n notFound,\n schemaHuri: schemaCacheEntry?.huri,\n schemaPayload:\n schemaCacheEntry ? new PayloadBuilder<SchemaPayload>(schemaCacheEntry?.payload).fields(schemaCacheEntry.payload).build() : schemaCacheEntry,\n xyoError,\n }\n}\n\nexport { useGetSchemaPayload }\n","import { useAsyncEffect } from '@xylabs/react-async-effect'\nimport { SchemaCache } from '@xyo-network/schema-cache'\nimport type { SchemaPayload } from '@xyo-network/schema-payload-plugin'\nimport { useState } from 'react'\n\nexport type SchemaList = { name: string }\n\nexport const useSchemaDefinitions = (schemaList?: SchemaList[]): SchemaPayload[] | undefined => {\n const [schemaPayloads, setSchemaPayloads] = useState<SchemaPayload[]>()\n useAsyncEffect(\n async (mounted) => {\n if (schemaList) {\n const promiseResults = await Promise.allSettled(schemaList?.map(({ name }) => SchemaCache.instance.get(name)))\n if (mounted()) {\n setSchemaPayloads(\n promiseResults\n .map(result => (result.status === 'fulfilled' ? result.value?.payload : undefined))\n .filter(item => item !== undefined && item !== null) as SchemaPayload[],\n )\n }\n }\n },\n [schemaList],\n )\n return schemaPayloads\n}\n","import type { Address } from '@xylabs/hex'\nimport { usePromise } from '@xylabs/react-promise'\nimport type { SchemaListPayload, SchemaListQueryPayload } from '@xyo-network/diviner-schema-list-model'\nimport { SchemaListQuerySchema } from '@xyo-network/diviner-schema-list-model'\nimport { useWeakDivinerFromNode } from '@xyo-network/react-diviner'\nimport { useMemo } from 'react'\n\nexport const useSchemaList = (address?: Address, nameOrAddress = 'SchemaListDiviner'): [SchemaListPayload | null | undefined, Error | undefined] => {\n const [diviner, divinerError] = useWeakDivinerFromNode(nameOrAddress)\n\n const query: SchemaListQueryPayload[] | undefined = useMemo(\n () =>\n address\n ? [\n {\n address,\n schema: SchemaListQuerySchema,\n },\n ]\n : undefined,\n [address],\n )\n\n const [schemaList, error] = usePromise(\n async () => {\n const divinerInstance = diviner?.deref()\n if (divinerInstance) {\n const response = (await divinerInstance.divine(query)) as SchemaListPayload[]\n return response.at(0)\n }\n },\n [diviner, divinerError, query],\n )\n return [schemaList, error]\n}\n","import type { Address } from '@xylabs/hex'\nimport { useAsyncEffect } from '@xylabs/react-async-effect'\nimport type {\n SchemaStatsPayload,\n SchemaStatsQueryPayload,\n} from '@xyo-network/diviner-schema-stats-model'\nimport {\n SchemaStatsDivinerSchema,\n SchemaStatsQuerySchema,\n} from '@xyo-network/diviner-schema-stats-model'\nimport { TYPES } from '@xyo-network/node-core-types'\nimport type { WithSources } from '@xyo-network/payload-model'\nimport { isPayloadOfSchemaType } from '@xyo-network/payload-model'\nimport { useWeakDivinerFromNode } from '@xyo-network/react-diviner'\nimport type { Dispatch, SetStateAction } from 'react'\nimport { useMemo, useState } from 'react'\n\nexport const useSchemaStats = (\n statsAddress?: Address,\n nameOrAddress = TYPES.SchemaStatsDiviner,\n): [SchemaStatsPayload[] | undefined, Error | undefined, Dispatch<SetStateAction<number>>] => {\n const [refresh, setRefresh] = useState(1)\n const [diviner, divinerError] = useWeakDivinerFromNode(nameOrAddress)\n const [error, setError] = useState<Error>()\n const refreshHistory = () => setRefresh(previous => previous + 1)\n\n const [schemaList, setSchemaList] = useState<WithSources<SchemaStatsPayload>[]>()\n\n const query: SchemaStatsQueryPayload = useMemo(\n () => ({\n address: statsAddress,\n schema: SchemaStatsQuerySchema,\n }),\n [statsAddress],\n )\n\n useAsyncEffect(\n async (mounted) => {\n const instance = diviner?.deref()\n if (instance) {\n if (divinerError) {\n if (mounted()) {\n setError(divinerError)\n setSchemaList(undefined)\n }\n } else {\n try {\n const schemas = (await instance.divine([query])).filter(isPayloadOfSchemaType(SchemaStatsDivinerSchema)) as WithSources<\n SchemaStatsPayload\n >[]\n if (mounted()) {\n setSchemaList(schemas)\n setError(undefined)\n }\n } catch (ex) {\n setError(ex as Error)\n setSchemaList(undefined)\n }\n }\n }\n },\n [diviner, refresh, divinerError, query],\n )\n\n return [schemaList, error, refreshHistory]\n}\n","import type { PropsWithChildren } from 'react'\nimport React, {\n useCallback, useEffect, useMemo,\n} from 'react'\nimport { useSearchParams } from 'react-router-dom'\n\nimport { SchemaContext } from '../Context.ts'\nimport type { SchemaContextState } from '../State.ts'\nimport { useSchema } from '../use.ts'\nimport { SchemaMemoryProvider } from './Memory.tsx'\nimport type { SchemaProviderProps } from './Props.ts'\n\nconst SchemaRouteProviderInner: React.FC<PropsWithChildren> = ({ children }) => {\n const {\n schema, setSchema, schemaList,\n } = useSchema()\n\n const [params, setParams] = useSearchParams()\n\n const routeSchema = params.get('schema')\n\n // update the network stored in the route\n const setSchemaParam = useCallback(\n (schema?: string) => {\n if (schema) {\n params.set('schema', schema)\n setParams(params, { replace: true })\n setSchema?.(schema)\n } else {\n params.delete('network')\n }\n },\n [params, setParams, setSchema],\n )\n\n // if the network is actively changed, update both memory and route\n const setSchemaLocal = useCallback(\n (schema: string) => {\n setSchemaParam(schema)\n setSchema?.(schema)\n },\n [setSchemaParam, setSchema],\n )\n\n // sync memory and route storage of network\n useEffect(() => {\n if (routeSchema !== schema) {\n if (routeSchema === undefined && schema !== undefined) {\n // if the route does not have a network selected, use what is in the memory context\n setSchemaLocal(schema)\n } else if (routeSchema) {\n // if the route has a selection and it is different from memory, update memory\n setSchema?.(routeSchema)\n }\n }\n }, [routeSchema, schema, setSchemaParam, setSchema, setSchemaLocal])\n\n const value: SchemaContextState = useMemo(() => ({\n provided: true, schema, schemaList, setSchema: setSchemaLocal,\n }), [schema, schemaList, setSchemaLocal])\n\n return <SchemaContext value={value}>{children}</SchemaContext>\n}\n\nexport const SchemaRouteProvider: React.FC<PropsWithChildren<SchemaProviderProps>> = ({\n knownSchemaList, defaultSchema, ...props\n}) => {\n return (\n <SchemaMemoryProvider knownSchemaList={knownSchemaList} defaultSchema={defaultSchema}>\n <SchemaRouteProviderInner {...props} />\n </SchemaMemoryProvider>\n )\n}\n","import { useContextEx } from '@xylabs/react-shared'\n\nimport { SchemaContext } from './Context.ts'\nimport type { SchemaContextState } from './State.ts'\n\nexport const useSchema = (required = false) => {\n return useContextEx<SchemaContextState>(SchemaContext, 'Schema', required)\n}\n"],"mappings":"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","names":["NewReleases","NewReleasesIcon","OpenInNew","OpenInNewIcon","Verified","VerifiedIcon","IconButton","useAsyncEffect","FlexGrowRow","LinkEx","useEvent","Property","PropertyValue","SchemaCache","React","useState","useResolveSchema","schema","entry","setEntry","useState","useAsyncEffect","mounted","SchemaCache","instance","get","SchemaProperty","showLinkNames","showOpenNewWindowLink","showStatusIcon","titleProps","value","props","resolvedSchema","buttonRef","buttonDispatch","useEvent","divRef","divDispatch","onClick","dispatch","openNewWindow","JSON","stringify","Property","title","tip","IconButton","ref","size","current","console","warn","NewReleasesIcon","color","fontSize","undefined","rel","target","href","huri","VerifiedIcon","FlexGrowRow","justifyContent","LinkEx","display","width","sx","cursor","PropertyValue","OpenInNewIcon","displayName","MenuItem","Typography","SelectEx","React","createContextEx","SchemaContext","exists","React","useMemo","useState","useAsyncEffect","PayloadBuilder","ModuleErrorSchema","SchemaCache","useState","useGetSchemaPayload","schema","notFound","setNotFound","useState","xyoError","setError","schemaCacheEntry","setSchemaCacheEntry","schemaLocal","setSchemaLocal","useAsyncEffect","mounted","firstRequest","schemaChanged","SchemaCache","instance","get","undefined","e","error","console","message","ModuleErrorSchema","$sources","schemaHuri","huri","schemaPayload","PayloadBuilder","payload","fields","build","useAsyncEffect","SchemaCache","useState","useSchemaDefinitions","schemaList","schemaPayloads","setSchemaPayloads","useState","useAsyncEffect","mounted","promiseResults","Promise","allSettled","map","name","SchemaCache","instance","get","result","status","value","payload","undefined","filter","item","usePromise","SchemaListQuerySchema","useWeakDivinerFromNode","useMemo","useSchemaList","address","nameOrAddress","diviner","divinerError","useWeakDivinerFromNode","query","useMemo","schema","SchemaListQuerySchema","undefined","schemaList","error","usePromise","divinerInstance","deref","response","divine","at","useAsyncEffect","SchemaStatsDivinerSchema","SchemaStatsQuerySchema","TYPES","isPayloadOfSchemaType","useWeakDivinerFromNode","useMemo","useState","useSchemaStats","statsAddress","nameOrAddress","TYPES","SchemaStatsDiviner","refresh","setRefresh","useState","diviner","divinerError","useWeakDivinerFromNode","error","setError","refreshHistory","previous","schemaList","setSchemaList","query","useMemo","address","schema","SchemaStatsQuerySchema","useAsyncEffect","mounted","instance","deref","undefined","schemas","divine","filter","isPayloadOfSchemaType","SchemaStatsDivinerSchema","ex","SchemaMemoryProvider","defaultSchema","knownSchemaList","props","schema","setSchema","useState","schemaList","setSchemaList","fetchedSchemaStats","useSchemaStats","useMemo","map","name","filter","exists","value","provided","React","SchemaContext","React","useCallback","useEffect","useMemo","useSearchParams","useContextEx","useSchema","required","useContextEx","SchemaContext","SchemaRouteProviderInner","children","schema","setSchema","schemaList","useSchema","params","setParams","useSearchParams","routeSchema","get","setSchemaParam","useCallback","set","replace","delete","setSchemaLocal","useEffect","undefined","value","useMemo","provided","React","SchemaContext","SchemaRouteProvider","knownSchemaList","defaultSchema","props","SchemaMemoryProvider","SchemaSelectEx","onChange","variant","props","schema","setSchema","schemaList","useSchema","React","SelectEx","size","value","event","child","target","renderValue","Typography","map","index","MenuItem","key"]}
@@ -1,3 +1,9 @@
1
- import type { SchemaContextState } from './State.ts';
2
- export declare const SchemaContext: import("react").Context<SchemaContextState & import("@xyo-network/react-shared").ContextExState>;
1
+ export declare const SchemaContext: import("react").Context<{
2
+ schema?: string;
3
+ schemaList?: string[];
4
+ setSchema?: import("react").Dispatch<string>;
5
+ setSchemaList?: import("react").Dispatch<string[]>;
6
+ } & {
7
+ provided: true;
8
+ }>;
3
9
  //# sourceMappingURL=Context.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"Context.d.ts","sourceRoot":"","sources":["../../../../src/contexts/Schema/Context.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAA;AAEpD,eAAO,MAAM,aAAa,kGAAwC,CAAA"}
1
+ {"version":3,"file":"Context.d.ts","sourceRoot":"","sources":["../../../../src/contexts/Schema/Context.ts"],"names":[],"mappings":"AAIA,eAAO,MAAM,aAAa;;;;;;;EAAwC,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"Memory.d.ts","sourceRoot":"","sources":["../../../../../src/contexts/Schema/Provider/Memory.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,OAAO,CAAA;AAC9C,OAAO,KAA4B,MAAM,OAAO,CAAA;AAIhD,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,YAAY,CAAA;AAErD,eAAO,MAAM,oBAAoB,EAAE,KAAK,CAAC,EAAE,CAAC,iBAAiB,CAAC,mBAAmB,CAAC,CAmBjF,CAAA"}
1
+ {"version":3,"file":"Memory.d.ts","sourceRoot":"","sources":["../../../../../src/contexts/Schema/Provider/Memory.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,OAAO,CAAA;AAC9C,OAAO,KAA4B,MAAM,OAAO,CAAA;AAKhD,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,YAAY,CAAA;AAErD,eAAO,MAAM,oBAAoB,EAAE,KAAK,CAAC,EAAE,CAAC,iBAAiB,CAAC,mBAAmB,CAAC,CAmBjF,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"Route.d.ts","sourceRoot":"","sources":["../../../../../src/contexts/Schema/Provider/Route.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,OAAO,CAAA;AAC9C,OAAO,KAEN,MAAM,OAAO,CAAA;AAMd,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,YAAY,CAAA;AAsDrD,eAAO,MAAM,mBAAmB,EAAE,KAAK,CAAC,EAAE,CAAC,iBAAiB,CAAC,mBAAmB,CAAC,CAQhF,CAAA"}
1
+ {"version":3,"file":"Route.d.ts","sourceRoot":"","sources":["../../../../../src/contexts/Schema/Provider/Route.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,OAAO,CAAA;AAC9C,OAAO,KAEN,MAAM,OAAO,CAAA;AAOd,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,YAAY,CAAA;AAsDrD,eAAO,MAAM,mBAAmB,EAAE,KAAK,CAAC,EAAE,CAAC,iBAAiB,CAAC,mBAAmB,CAAC,CAQhF,CAAA"}
@@ -1,6 +1,6 @@
1
- import type { ContextExState } from '@xyo-network/react-shared';
1
+ import type { ContextExState } from '@xylabs/react-shared';
2
2
  import type { Dispatch } from 'react';
3
- export interface SchemaContextState extends ContextExState {
3
+ export type SchemaContextState = ContextExState<{
4
4
  /** @field The currently selected XYO Schema */
5
5
  schema?: string;
6
6
  /** @field The list of known available schema */
@@ -9,5 +9,5 @@ export interface SchemaContextState extends ContextExState {
9
9
  setSchema?: Dispatch<string>;
10
10
  /** @field Function to set the list of known available schema */
11
11
  setSchemaList?: Dispatch<string[]>;
12
- }
12
+ }>;
13
13
  //# sourceMappingURL=State.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"State.d.ts","sourceRoot":"","sources":["../../../../src/contexts/Schema/State.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAA;AAC/D,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAA;AAErC,MAAM,WAAW,kBAAmB,SAAQ,cAAc;IACxD,+CAA+C;IAC/C,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,gDAAgD;IAChD,UAAU,CAAC,EAAE,MAAM,EAAE,CAAA;IACrB,iDAAiD;IACjD,SAAS,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,CAAA;IAC5B,gEAAgE;IAChE,aAAa,CAAC,EAAE,QAAQ,CAAC,MAAM,EAAE,CAAC,CAAA;CACnC"}
1
+ {"version":3,"file":"State.d.ts","sourceRoot":"","sources":["../../../../src/contexts/Schema/State.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAA;AAC1D,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAA;AAErC,MAAM,MAAM,kBAAkB,GAAG,cAAc,CAAC;IAC9C,+CAA+C;IAC/C,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,gDAAgD;IAChD,UAAU,CAAC,EAAE,MAAM,EAAE,CAAA;IACrB,iDAAiD;IACjD,SAAS,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,CAAA;IAC5B,gEAAgE;IAChE,aAAa,CAAC,EAAE,QAAQ,CAAC,MAAM,EAAE,CAAC,CAAA;CACnC,CAAC,CAAA"}
@@ -1,3 +1,9 @@
1
- import type { SchemaContextState } from './State.ts';
2
- export declare const useSchema: (required?: boolean) => Omit<SchemaContextState, "provided">;
1
+ export declare const useSchema: (required?: boolean) => Omit<{
2
+ schema?: string;
3
+ schemaList?: string[];
4
+ setSchema?: import("react").Dispatch<string>;
5
+ setSchemaList?: import("react").Dispatch<string[]>;
6
+ } & {
7
+ provided: true;
8
+ }, "provided"> | Omit<never, "provided">;
3
9
  //# sourceMappingURL=use.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"use.d.ts","sourceRoot":"","sources":["../../../../src/contexts/Schema/use.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAA;AAEpD,eAAO,MAAM,SAAS,GAAI,kBAAgB,yCAEzC,CAAA"}
1
+ {"version":3,"file":"use.d.ts","sourceRoot":"","sources":["../../../../src/contexts/Schema/use.ts"],"names":[],"mappings":"AAKA,eAAO,MAAM,SAAS,GAAI,kBAAgB;;;;;;;wCAEzC,CAAA"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@xyo-network/react-schema",
3
- "version": "5.3.0",
3
+ "version": "5.3.2",
4
4
  "description": "Common React library for all XYO projects that use React",
5
5
  "keywords": [
6
6
  "xyo",
@@ -46,15 +46,15 @@
46
46
  "@xylabs/react-link": "^6.3.0",
47
47
  "@xylabs/react-promise": "^6.3.0",
48
48
  "@xylabs/react-select": "^6.3.0",
49
+ "@xylabs/react-shared": "^6.3.0",
49
50
  "@xyo-network/diviner-schema-list-model": "^3.15.5",
50
51
  "@xyo-network/diviner-schema-stats-model": "^3.15.5",
51
52
  "@xyo-network/node-core-types": "^3.6.4",
52
53
  "@xyo-network/payload-builder": "^3.15.5",
53
54
  "@xyo-network/payload-model": "^3.15.5",
54
- "@xyo-network/react-diviner": "^5.3.0",
55
- "@xyo-network/react-event": "^5.3.0",
56
- "@xyo-network/react-property": "^5.3.0",
57
- "@xyo-network/react-shared": "^5.3.0",
55
+ "@xyo-network/react-diviner": "^5.3.2",
56
+ "@xyo-network/react-event": "^5.3.2",
57
+ "@xyo-network/react-property": "^5.3.2",
58
58
  "@xyo-network/schema-cache": "^3.15.5",
59
59
  "@xyo-network/schema-payload-plugin": "^3.15.5",
60
60
  "react-router-dom": "^7.6.0"
@@ -73,10 +73,10 @@
73
73
  "@xyo-network/bridge-http": "^3.15.5",
74
74
  "@xyo-network/node-memory": "^3.15.5",
75
75
  "@xyo-network/node-model": "^3.15.5",
76
- "@xyo-network/react-node": "^5.3.0",
77
- "@xyo-network/react-payload-raw-info": "^5.3.0",
78
- "@xyo-network/react-storybook": "^5.3.0",
79
- "@xyo-network/react-wallet": "^5.3.0",
76
+ "@xyo-network/react-node": "^5.3.2",
77
+ "@xyo-network/react-payload-raw-info": "^5.3.2",
78
+ "@xyo-network/react-storybook": "^5.3.2",
79
+ "@xyo-network/react-wallet": "^5.3.2",
80
80
  "react": "^19.1.0",
81
81
  "react-dom": "^19.1.0",
82
82
  "storybook": "^8.6.12",
@@ -1,4 +1,4 @@
1
- import { createContextEx } from '@xyo-network/react-shared'
1
+ import { createContextEx } from '@xylabs/react-shared'
2
2
 
3
3
  import type { SchemaContextState } from './State.ts'
4
4
 
@@ -4,6 +4,7 @@ import React, { useMemo, useState } from 'react'
4
4
 
5
5
  import { useSchemaStats } from '../../../hooks/index.ts'
6
6
  import { SchemaContext } from '../Context.ts'
7
+ import type { SchemaContextState } from '../State.ts'
7
8
  import type { SchemaProviderProps } from './Props.ts'
8
9
 
9
10
  export const SchemaMemoryProvider: React.FC<PropsWithChildren<SchemaProviderProps>> = ({
@@ -20,7 +21,7 @@ export const SchemaMemoryProvider: React.FC<PropsWithChildren<SchemaProviderProp
20
21
  }
21
22
  }, [fetchedSchemaStats])
22
23
 
23
- const value = useMemo(() => ({
24
+ const value: SchemaContextState = useMemo(() => ({
24
25
  provided: true, schema, schemaList: knownSchemaList ?? schemaList, setSchema, setSchemaList,
25
26
  }), [schema, schemaList, knownSchemaList])
26
27
 
@@ -5,6 +5,7 @@ import React, {
5
5
  import { useSearchParams } from 'react-router-dom'
6
6
 
7
7
  import { SchemaContext } from '../Context.ts'
8
+ import type { SchemaContextState } from '../State.ts'
8
9
  import { useSchema } from '../use.ts'
9
10
  import { SchemaMemoryProvider } from './Memory.tsx'
10
11
  import type { SchemaProviderProps } from './Props.ts'
@@ -54,7 +55,7 @@ const SchemaRouteProviderInner: React.FC<PropsWithChildren> = ({ children }) =>
54
55
  }
55
56
  }, [routeSchema, schema, setSchemaParam, setSchema, setSchemaLocal])
56
57
 
57
- const value = useMemo(() => ({
58
+ const value: SchemaContextState = useMemo(() => ({
58
59
  provided: true, schema, schemaList, setSchema: setSchemaLocal,
59
60
  }), [schema, schemaList, setSchemaLocal])
60
61
 
@@ -1,7 +1,7 @@
1
- import type { ContextExState } from '@xyo-network/react-shared'
1
+ import type { ContextExState } from '@xylabs/react-shared'
2
2
  import type { Dispatch } from 'react'
3
3
 
4
- export interface SchemaContextState extends ContextExState {
4
+ export type SchemaContextState = ContextExState<{
5
5
  /** @field The currently selected XYO Schema */
6
6
  schema?: string
7
7
  /** @field The list of known available schema */
@@ -10,4 +10,4 @@ export interface SchemaContextState extends ContextExState {
10
10
  setSchema?: Dispatch<string>
11
11
  /** @field Function to set the list of known available schema */
12
12
  setSchemaList?: Dispatch<string[]>
13
- }
13
+ }>
@@ -1,4 +1,4 @@
1
- import { useContextEx } from '@xyo-network/react-shared'
1
+ import { useContextEx } from '@xylabs/react-shared'
2
2
 
3
3
  import { SchemaContext } from './Context.ts'
4
4
  import type { SchemaContextState } from './State.ts'