@xyo-network/react-api 2.38.17 → 2.39.0-rc.1
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.
- package/dist/cjs/archive/components/ArchiveSelectEx.d.ts +4 -0
- package/dist/cjs/archive/components/ArchiveSelectEx.d.ts.map +1 -0
- package/dist/cjs/archive/components/ArchiveSelectEx.js +30 -0
- package/dist/cjs/archive/components/ArchiveSelectEx.js.map +1 -0
- package/dist/cjs/archive/components/index.d.ts +2 -0
- package/dist/cjs/archive/components/index.d.ts.map +1 -0
- package/dist/cjs/archive/components/index.js +5 -0
- package/dist/cjs/archive/components/index.js.map +1 -0
- package/dist/cjs/archive/contexts/Context.d.ts +4 -0
- package/dist/cjs/archive/contexts/Context.d.ts.map +1 -0
- package/dist/cjs/archive/contexts/Context.js +6 -0
- package/dist/cjs/archive/contexts/Context.js.map +1 -0
- package/dist/cjs/archive/contexts/Provider.d.ts +7 -0
- package/dist/cjs/archive/contexts/Provider.d.ts.map +1 -0
- package/dist/cjs/archive/contexts/Provider.js +14 -0
- package/dist/cjs/archive/contexts/Provider.js.map +1 -0
- package/dist/cjs/archive/contexts/State.d.ts +7 -0
- package/dist/cjs/archive/contexts/State.d.ts.map +1 -0
- package/dist/cjs/archive/contexts/State.js +3 -0
- package/dist/cjs/archive/contexts/State.js.map +1 -0
- package/dist/cjs/archive/contexts/index.d.ts +5 -0
- package/dist/cjs/archive/contexts/index.d.ts.map +1 -0
- package/dist/cjs/archive/contexts/index.js +8 -0
- package/dist/cjs/archive/contexts/index.js.map +1 -0
- package/dist/cjs/archive/contexts/use.d.ts +2 -0
- package/dist/cjs/archive/contexts/use.d.ts.map +1 -0
- package/dist/cjs/archive/contexts/use.js +10 -0
- package/dist/cjs/archive/contexts/use.js.map +1 -0
- package/dist/cjs/archive/index.d.ts +3 -0
- package/dist/cjs/archive/index.d.ts.map +1 -0
- package/dist/cjs/archive/index.js +6 -0
- package/dist/cjs/archive/index.js.map +1 -0
- package/dist/cjs/archives/contexts/Context.d.ts +4 -0
- package/dist/cjs/archives/contexts/Context.d.ts.map +1 -0
- package/dist/cjs/archives/contexts/Context.js +6 -0
- package/dist/cjs/archives/contexts/Context.js.map +1 -0
- package/dist/cjs/archives/contexts/ListDiviner/Context.d.ts +4 -0
- package/dist/cjs/archives/contexts/ListDiviner/Context.d.ts.map +1 -0
- package/dist/cjs/archives/contexts/ListDiviner/Context.js +6 -0
- package/dist/cjs/archives/contexts/ListDiviner/Context.js.map +1 -0
- package/dist/cjs/archives/contexts/ListDiviner/Provider.d.ts +5 -0
- package/dist/cjs/archives/contexts/ListDiviner/Provider.d.ts.map +1 -0
- package/dist/cjs/archives/contexts/ListDiviner/Provider.js +32 -0
- package/dist/cjs/archives/contexts/ListDiviner/Provider.js.map +1 -0
- package/dist/cjs/archives/contexts/ListDiviner/State.d.ts +8 -0
- package/dist/cjs/archives/contexts/ListDiviner/State.d.ts.map +1 -0
- package/dist/cjs/archives/contexts/ListDiviner/State.js +3 -0
- package/dist/cjs/archives/contexts/ListDiviner/State.js.map +1 -0
- package/dist/cjs/archives/contexts/ListDiviner/index.d.ts +6 -0
- package/dist/cjs/archives/contexts/ListDiviner/index.d.ts.map +1 -0
- package/dist/cjs/archives/contexts/ListDiviner/index.js +9 -0
- package/dist/cjs/archives/contexts/ListDiviner/index.js.map +1 -0
- package/dist/cjs/archives/contexts/ListDiviner/use.d.ts +2 -0
- package/dist/cjs/archives/contexts/ListDiviner/use.d.ts.map +1 -0
- package/dist/cjs/archives/contexts/ListDiviner/use.js +8 -0
- package/dist/cjs/archives/contexts/ListDiviner/use.js.map +1 -0
- package/dist/cjs/archives/contexts/ListDiviner/useDiviner.d.ts +3 -0
- package/dist/cjs/archives/contexts/ListDiviner/useDiviner.d.ts.map +1 -0
- package/dist/cjs/archives/contexts/ListDiviner/useDiviner.js +33 -0
- package/dist/cjs/archives/contexts/ListDiviner/useDiviner.js.map +1 -0
- package/dist/cjs/archives/contexts/Provider.d.ts +5 -0
- package/dist/cjs/archives/contexts/Provider.d.ts.map +1 -0
- package/dist/cjs/archives/contexts/Provider.js +23 -0
- package/dist/cjs/archives/contexts/Provider.js.map +1 -0
- package/dist/cjs/archives/contexts/State.d.ts +12 -0
- package/dist/cjs/archives/contexts/State.d.ts.map +1 -0
- package/dist/cjs/archives/contexts/State.js +3 -0
- package/dist/cjs/archives/contexts/State.js.map +1 -0
- package/dist/cjs/archives/contexts/index.d.ts +5 -0
- package/dist/cjs/archives/contexts/index.d.ts.map +1 -0
- package/dist/cjs/archives/contexts/index.js +8 -0
- package/dist/cjs/archives/contexts/index.js.map +1 -0
- package/dist/cjs/archives/contexts/use.d.ts +2 -0
- package/dist/cjs/archives/contexts/use.d.ts.map +1 -0
- package/dist/cjs/archives/contexts/use.js +10 -0
- package/dist/cjs/archives/contexts/use.js.map +1 -0
- package/dist/cjs/archives/index.d.ts +2 -0
- package/dist/cjs/archives/index.d.ts.map +1 -0
- package/dist/cjs/archives/index.js +5 -0
- package/dist/cjs/archives/index.js.map +1 -0
- package/dist/cjs/components/ApiHistory/ApiCallEntry.d.ts +10 -0
- package/dist/cjs/components/ApiHistory/ApiCallEntry.d.ts.map +1 -0
- package/dist/cjs/components/ApiHistory/ApiCallEntry.js +21 -0
- package/dist/cjs/components/ApiHistory/ApiCallEntry.js.map +1 -0
- package/dist/cjs/components/ApiHistory/ApiCallTable.d.ts +6 -0
- package/dist/cjs/components/ApiHistory/ApiCallTable.d.ts.map +1 -0
- package/dist/cjs/components/ApiHistory/ApiCallTable.js +13 -0
- package/dist/cjs/components/ApiHistory/ApiCallTable.js.map +1 -0
- package/dist/cjs/components/ApiHistory/ApiHistory.d.ts +4 -0
- package/dist/cjs/components/ApiHistory/ApiHistory.d.ts.map +1 -0
- package/dist/cjs/components/ApiHistory/ApiHistory.js +22 -0
- package/dist/cjs/components/ApiHistory/ApiHistory.js.map +1 -0
- package/dist/cjs/components/ApiHistory/index.d.ts +3 -0
- package/dist/cjs/components/ApiHistory/index.d.ts.map +1 -0
- package/dist/cjs/components/ApiHistory/index.js +6 -0
- package/dist/cjs/components/ApiHistory/index.js.map +1 -0
- package/dist/cjs/components/ApiHistory/useBuildHistoryData.d.ts +11 -0
- package/dist/cjs/components/ApiHistory/useBuildHistoryData.d.ts.map +1 -0
- package/dist/cjs/components/ApiHistory/useBuildHistoryData.js +34 -0
- package/dist/cjs/components/ApiHistory/useBuildHistoryData.js.map +1 -0
- package/dist/cjs/components/index.d.ts +1 -1
- package/dist/cjs/components/index.d.ts.map +1 -1
- package/dist/cjs/components/index.js +1 -1
- package/dist/cjs/components/index.js.map +1 -1
- package/dist/cjs/contexts/ArchivistApi/Context.d.ts +4 -0
- package/dist/cjs/contexts/ArchivistApi/Context.d.ts.map +1 -0
- package/dist/cjs/contexts/ArchivistApi/Context.js +6 -0
- package/dist/cjs/contexts/ArchivistApi/Context.js.map +1 -0
- package/dist/cjs/contexts/ArchivistApi/Provider.d.ts +15 -0
- package/dist/cjs/contexts/ArchivistApi/Provider.d.ts.map +1 -0
- package/dist/cjs/contexts/ArchivistApi/Provider.js +57 -0
- package/dist/cjs/contexts/ArchivistApi/Provider.js.map +1 -0
- package/dist/cjs/contexts/ArchivistApi/State.d.ts +12 -0
- package/dist/cjs/contexts/ArchivistApi/State.d.ts.map +1 -0
- package/dist/cjs/contexts/ArchivistApi/State.js +3 -0
- package/dist/cjs/contexts/ArchivistApi/State.js.map +1 -0
- package/dist/cjs/contexts/ArchivistApi/index.d.ts +5 -0
- package/dist/cjs/contexts/ArchivistApi/index.d.ts.map +1 -0
- package/dist/cjs/contexts/ArchivistApi/index.js +8 -0
- package/dist/cjs/contexts/ArchivistApi/index.js.map +1 -0
- package/dist/cjs/contexts/ArchivistApi/logWithMax.d.ts +2 -0
- package/dist/cjs/contexts/ArchivistApi/logWithMax.d.ts.map +1 -0
- package/dist/cjs/contexts/ArchivistApi/logWithMax.js +14 -0
- package/dist/cjs/contexts/ArchivistApi/logWithMax.js.map +1 -0
- package/dist/cjs/contexts/ArchivistApi/use.d.ts +4 -0
- package/dist/cjs/contexts/ArchivistApi/use.d.ts.map +1 -0
- package/dist/cjs/contexts/ArchivistApi/use.js +12 -0
- package/dist/cjs/contexts/ArchivistApi/use.js.map +1 -0
- package/dist/cjs/contexts/RemoteArchivistProvider.d.ts +11 -0
- package/dist/cjs/contexts/RemoteArchivistProvider.d.ts.map +1 -0
- package/dist/cjs/contexts/RemoteArchivistProvider.js +53 -0
- package/dist/cjs/contexts/RemoteArchivistProvider.js.map +1 -0
- package/dist/cjs/contexts/index.d.ts +3 -0
- package/dist/cjs/contexts/index.d.ts.map +1 -0
- package/dist/cjs/contexts/index.js +6 -0
- package/dist/cjs/contexts/index.js.map +1 -0
- package/dist/cjs/hooks/ResolvePayloadArgs.d.ts +2 -2
- package/dist/cjs/hooks/ResolvePayloadArgs.d.ts.map +1 -1
- package/dist/cjs/hooks/useHuriHash.d.ts +6 -3
- package/dist/cjs/hooks/useHuriHash.d.ts.map +1 -1
- package/dist/cjs/hooks/useHuriHash.js +4 -4
- package/dist/cjs/hooks/useHuriHash.js.map +1 -1
- package/dist/cjs/hooks/useLoadPayload.d.ts +1 -1
- package/dist/cjs/hooks/useLoadPayload.d.ts.map +1 -1
- package/dist/cjs/hooks/useLoadPayload.js +13 -11
- package/dist/cjs/hooks/useLoadPayload.js.map +1 -1
- package/dist/cjs/hooks/useResolveHuri.d.ts +6 -4
- package/dist/cjs/hooks/useResolveHuri.d.ts.map +1 -1
- package/dist/cjs/hooks/useResolveHuri.js +6 -4
- package/dist/cjs/hooks/useResolveHuri.js.map +1 -1
- package/dist/cjs/index.d.ts +3 -0
- package/dist/cjs/index.d.ts.map +1 -1
- package/dist/cjs/index.js +3 -0
- package/dist/cjs/index.js.map +1 -1
- package/dist/docs.json +7422 -5228
- package/dist/esm/archive/components/ArchiveSelectEx.d.ts +4 -0
- package/dist/esm/archive/components/ArchiveSelectEx.d.ts.map +1 -0
- package/dist/esm/archive/components/ArchiveSelectEx.js +23 -0
- package/dist/esm/archive/components/ArchiveSelectEx.js.map +1 -0
- package/dist/esm/archive/components/index.d.ts +2 -0
- package/dist/esm/archive/components/index.d.ts.map +1 -0
- package/dist/esm/archive/components/index.js +2 -0
- package/dist/esm/archive/components/index.js.map +1 -0
- package/dist/esm/archive/contexts/Context.d.ts +4 -0
- package/dist/esm/archive/contexts/Context.d.ts.map +1 -0
- package/dist/esm/archive/contexts/Context.js +3 -0
- package/dist/esm/archive/contexts/Context.js.map +1 -0
- package/dist/esm/archive/contexts/Provider.d.ts +7 -0
- package/dist/esm/archive/contexts/Provider.d.ts.map +1 -0
- package/dist/esm/archive/contexts/Provider.js +8 -0
- package/dist/esm/archive/contexts/Provider.js.map +1 -0
- package/dist/esm/archive/contexts/State.d.ts +7 -0
- package/dist/esm/archive/contexts/State.d.ts.map +1 -0
- package/dist/esm/archive/contexts/State.js +2 -0
- package/dist/esm/archive/contexts/State.js.map +1 -0
- package/dist/esm/archive/contexts/index.d.ts +5 -0
- package/dist/esm/archive/contexts/index.d.ts.map +1 -0
- package/dist/esm/archive/contexts/index.js +5 -0
- package/dist/esm/archive/contexts/index.js.map +1 -0
- package/dist/esm/archive/contexts/use.d.ts +2 -0
- package/dist/esm/archive/contexts/use.d.ts.map +1 -0
- package/dist/esm/archive/contexts/use.js +6 -0
- package/dist/esm/archive/contexts/use.js.map +1 -0
- package/dist/esm/archive/index.d.ts +3 -0
- package/dist/esm/archive/index.d.ts.map +1 -0
- package/dist/esm/archive/index.js +3 -0
- package/dist/esm/archive/index.js.map +1 -0
- package/dist/esm/archives/contexts/Context.d.ts +4 -0
- package/dist/esm/archives/contexts/Context.d.ts.map +1 -0
- package/dist/esm/archives/contexts/Context.js +3 -0
- package/dist/esm/archives/contexts/Context.js.map +1 -0
- package/dist/esm/archives/contexts/ListDiviner/Context.d.ts +4 -0
- package/dist/esm/archives/contexts/ListDiviner/Context.d.ts.map +1 -0
- package/dist/esm/archives/contexts/ListDiviner/Context.js +3 -0
- package/dist/esm/archives/contexts/ListDiviner/Context.js.map +1 -0
- package/dist/esm/archives/contexts/ListDiviner/Provider.d.ts +5 -0
- package/dist/esm/archives/contexts/ListDiviner/Provider.d.ts.map +1 -0
- package/dist/esm/archives/contexts/ListDiviner/Provider.js +27 -0
- package/dist/esm/archives/contexts/ListDiviner/Provider.js.map +1 -0
- package/dist/esm/archives/contexts/ListDiviner/State.d.ts +8 -0
- package/dist/esm/archives/contexts/ListDiviner/State.d.ts.map +1 -0
- package/dist/esm/archives/contexts/ListDiviner/State.js +2 -0
- package/dist/esm/archives/contexts/ListDiviner/State.js.map +1 -0
- package/dist/esm/archives/contexts/ListDiviner/index.d.ts +6 -0
- package/dist/esm/archives/contexts/ListDiviner/index.d.ts.map +1 -0
- package/dist/esm/archives/contexts/ListDiviner/index.js +6 -0
- package/dist/esm/archives/contexts/ListDiviner/index.js.map +1 -0
- package/dist/esm/archives/contexts/ListDiviner/use.d.ts +2 -0
- package/dist/esm/archives/contexts/ListDiviner/use.d.ts.map +1 -0
- package/dist/esm/archives/contexts/ListDiviner/use.js +4 -0
- package/dist/esm/archives/contexts/ListDiviner/use.js.map +1 -0
- package/dist/esm/archives/contexts/ListDiviner/useDiviner.d.ts +3 -0
- package/dist/esm/archives/contexts/ListDiviner/useDiviner.d.ts.map +1 -0
- package/dist/esm/archives/contexts/ListDiviner/useDiviner.js +28 -0
- package/dist/esm/archives/contexts/ListDiviner/useDiviner.js.map +1 -0
- package/dist/esm/archives/contexts/Provider.d.ts +5 -0
- package/dist/esm/archives/contexts/Provider.d.ts.map +1 -0
- package/dist/esm/archives/contexts/Provider.js +18 -0
- package/dist/esm/archives/contexts/Provider.js.map +1 -0
- package/dist/esm/archives/contexts/State.d.ts +12 -0
- package/dist/esm/archives/contexts/State.d.ts.map +1 -0
- package/dist/esm/archives/contexts/State.js +2 -0
- package/dist/esm/archives/contexts/State.js.map +1 -0
- package/dist/esm/archives/contexts/index.d.ts +5 -0
- package/dist/esm/archives/contexts/index.d.ts.map +1 -0
- package/dist/esm/archives/contexts/index.js +5 -0
- package/dist/esm/archives/contexts/index.js.map +1 -0
- package/dist/esm/archives/contexts/use.d.ts +2 -0
- package/dist/esm/archives/contexts/use.d.ts.map +1 -0
- package/dist/esm/archives/contexts/use.js +6 -0
- package/dist/esm/archives/contexts/use.js.map +1 -0
- package/dist/esm/archives/index.d.ts +2 -0
- package/dist/esm/archives/index.d.ts.map +1 -0
- package/dist/esm/archives/index.js +2 -0
- package/dist/esm/archives/index.js.map +1 -0
- package/dist/esm/components/ApiHistory/ApiCallEntry.d.ts +10 -0
- package/dist/esm/components/ApiHistory/ApiCallEntry.d.ts.map +1 -0
- package/dist/esm/components/ApiHistory/ApiCallEntry.js +17 -0
- package/dist/esm/components/ApiHistory/ApiCallEntry.js.map +1 -0
- package/dist/esm/components/ApiHistory/ApiCallTable.d.ts +6 -0
- package/dist/esm/components/ApiHistory/ApiCallTable.d.ts.map +1 -0
- package/dist/esm/components/ApiHistory/ApiCallTable.js +8 -0
- package/dist/esm/components/ApiHistory/ApiCallTable.js.map +1 -0
- package/dist/esm/components/ApiHistory/ApiHistory.d.ts +4 -0
- package/dist/esm/components/ApiHistory/ApiHistory.d.ts.map +1 -0
- package/dist/esm/components/ApiHistory/ApiHistory.js +15 -0
- package/dist/esm/components/ApiHistory/ApiHistory.js.map +1 -0
- package/dist/esm/components/ApiHistory/index.d.ts +3 -0
- package/dist/esm/components/ApiHistory/index.d.ts.map +1 -0
- package/dist/esm/components/ApiHistory/index.js +3 -0
- package/dist/esm/components/ApiHistory/index.js.map +1 -0
- package/dist/esm/components/ApiHistory/useBuildHistoryData.d.ts +11 -0
- package/dist/esm/components/ApiHistory/useBuildHistoryData.d.ts.map +1 -0
- package/dist/esm/components/ApiHistory/useBuildHistoryData.js +31 -0
- package/dist/esm/components/ApiHistory/useBuildHistoryData.js.map +1 -0
- package/dist/esm/components/index.d.ts +1 -1
- package/dist/esm/components/index.d.ts.map +1 -1
- package/dist/esm/components/index.js +1 -1
- package/dist/esm/components/index.js.map +1 -1
- package/dist/esm/contexts/ArchivistApi/Context.d.ts +4 -0
- package/dist/esm/contexts/ArchivistApi/Context.d.ts.map +1 -0
- package/dist/esm/contexts/ArchivistApi/Context.js +3 -0
- package/dist/esm/contexts/ArchivistApi/Context.js.map +1 -0
- package/dist/esm/contexts/ArchivistApi/Provider.d.ts +15 -0
- package/dist/esm/contexts/ArchivistApi/Provider.d.ts.map +1 -0
- package/dist/esm/contexts/ArchivistApi/Provider.js +54 -0
- package/dist/esm/contexts/ArchivistApi/Provider.js.map +1 -0
- package/dist/esm/contexts/ArchivistApi/State.d.ts +12 -0
- package/dist/esm/contexts/ArchivistApi/State.d.ts.map +1 -0
- package/dist/esm/contexts/ArchivistApi/State.js +2 -0
- package/dist/esm/contexts/ArchivistApi/State.js.map +1 -0
- package/dist/esm/contexts/ArchivistApi/index.d.ts +5 -0
- package/dist/esm/contexts/ArchivistApi/index.d.ts.map +1 -0
- package/dist/esm/contexts/ArchivistApi/index.js +5 -0
- package/dist/esm/contexts/ArchivistApi/index.js.map +1 -0
- package/dist/esm/contexts/ArchivistApi/logWithMax.d.ts +2 -0
- package/dist/esm/contexts/ArchivistApi/logWithMax.d.ts.map +1 -0
- package/dist/esm/contexts/ArchivistApi/logWithMax.js +10 -0
- package/dist/esm/contexts/ArchivistApi/logWithMax.js.map +1 -0
- package/dist/esm/contexts/ArchivistApi/use.d.ts +4 -0
- package/dist/esm/contexts/ArchivistApi/use.d.ts.map +1 -0
- package/dist/esm/contexts/ArchivistApi/use.js +8 -0
- package/dist/esm/contexts/ArchivistApi/use.js.map +1 -0
- package/dist/esm/contexts/RemoteArchivistProvider.d.ts +11 -0
- package/dist/esm/contexts/RemoteArchivistProvider.d.ts.map +1 -0
- package/dist/esm/contexts/RemoteArchivistProvider.js +47 -0
- package/dist/esm/contexts/RemoteArchivistProvider.js.map +1 -0
- package/dist/esm/contexts/index.d.ts +3 -0
- package/dist/esm/contexts/index.d.ts.map +1 -0
- package/dist/esm/contexts/index.js +3 -0
- package/dist/esm/contexts/index.js.map +1 -0
- package/dist/esm/hooks/ResolvePayloadArgs.d.ts +2 -2
- package/dist/esm/hooks/ResolvePayloadArgs.d.ts.map +1 -1
- package/dist/esm/hooks/useHuriHash.d.ts +6 -3
- package/dist/esm/hooks/useHuriHash.d.ts.map +1 -1
- package/dist/esm/hooks/useHuriHash.js +3 -4
- package/dist/esm/hooks/useHuriHash.js.map +1 -1
- package/dist/esm/hooks/useLoadPayload.d.ts +1 -1
- package/dist/esm/hooks/useLoadPayload.d.ts.map +1 -1
- package/dist/esm/hooks/useLoadPayload.js +10 -8
- package/dist/esm/hooks/useLoadPayload.js.map +1 -1
- package/dist/esm/hooks/useResolveHuri.d.ts +6 -4
- package/dist/esm/hooks/useResolveHuri.d.ts.map +1 -1
- package/dist/esm/hooks/useResolveHuri.js +7 -6
- package/dist/esm/hooks/useResolveHuri.js.map +1 -1
- package/dist/esm/index.d.ts +3 -0
- package/dist/esm/index.d.ts.map +1 -1
- package/dist/esm/index.js +3 -0
- package/dist/esm/index.js.map +1 -1
- package/package.json +19 -8
- package/src/archive/components/ArchiveSelectEx.stories.tsx +71 -0
- package/src/archive/components/ArchiveSelectEx.tsx +41 -0
- package/src/archive/components/index.ts +1 -0
- package/src/archive/contexts/Context.ts +5 -0
- package/src/archive/contexts/Provider.tsx +14 -0
- package/src/archive/contexts/State.ts +7 -0
- package/src/archive/contexts/index.ts +4 -0
- package/src/archive/contexts/use.ts +7 -0
- package/src/archive/index.ts +2 -0
- package/src/archives/contexts/Context.ts +5 -0
- package/src/archives/contexts/ListDiviner/Context.ts +5 -0
- package/src/archives/contexts/ListDiviner/Provider.tsx +36 -0
- package/src/archives/contexts/ListDiviner/State.ts +8 -0
- package/src/archives/contexts/ListDiviner/index.ts +5 -0
- package/src/archives/contexts/ListDiviner/use.tsx +5 -0
- package/src/archives/contexts/ListDiviner/useDiviner.tsx +34 -0
- package/src/archives/contexts/Provider.tsx +28 -0
- package/src/archives/contexts/State.ts +12 -0
- package/src/archives/contexts/index.ts +4 -0
- package/src/archives/contexts/use.ts +7 -0
- package/src/archives/index.ts +1 -0
- package/src/components/ApiHistory/ApiCallEntry.stories.tsx +54 -0
- package/src/components/ApiHistory/ApiCallEntry.tsx +39 -0
- package/src/components/ApiHistory/ApiCallTable.tsx +29 -0
- package/src/components/ApiHistory/ApiHistory.stories.tsx +100 -0
- package/src/components/ApiHistory/ApiHistory.tsx +42 -0
- package/src/components/ApiHistory/index.ts +2 -0
- package/src/components/ApiHistory/useBuildHistoryData.tsx +35 -0
- package/src/components/index.ts +1 -1
- package/src/contexts/ArchivistApi/ArchivistApiProvider.stories.tsx +104 -0
- package/src/contexts/ArchivistApi/Context.ts +5 -0
- package/src/contexts/ArchivistApi/Provider.tsx +102 -0
- package/src/contexts/ArchivistApi/State.ts +13 -0
- package/src/contexts/ArchivistApi/index.ts +4 -0
- package/src/contexts/ArchivistApi/logWithMax.ts +9 -0
- package/src/contexts/ArchivistApi/use.ts +10 -0
- package/src/contexts/RemoteArchivistProvider.tsx +68 -0
- package/src/contexts/index.ts +2 -0
- package/src/hooks/ResolvePayloadArgs.ts +2 -2
- package/src/hooks/useHuriHash.stories.tsx +5 -5
- package/src/hooks/useHuriHash.tsx +3 -5
- package/src/hooks/useLoadPayload.stories.tsx +6 -6
- package/src/hooks/useLoadPayload.tsx +10 -9
- package/src/hooks/useResolveHuri.tsx +7 -8
- package/src/index.ts +3 -0
- package/dist/cjs/components/ApiErrorAlert.d.ts +0 -10
- package/dist/cjs/components/ApiErrorAlert.d.ts.map +0 -1
- package/dist/cjs/components/ApiErrorAlert.js +0 -15
- package/dist/cjs/components/ApiErrorAlert.js.map +0 -1
- package/dist/esm/components/ApiErrorAlert.d.ts +0 -10
- package/dist/esm/components/ApiErrorAlert.d.ts.map +0 -1
- package/dist/esm/components/ApiErrorAlert.js +0 -9
- package/dist/esm/components/ApiErrorAlert.js.map +0 -1
- package/src/components/ApiErrorAlert.tsx +0 -23
@@ -0,0 +1,100 @@
|
|
1
|
+
/* eslint-disable import/no-internal-modules */
|
2
|
+
import { Typography } from '@mui/material'
|
3
|
+
import { ComponentMeta, ComponentStory } from '@storybook/react'
|
4
|
+
import { useAsyncEffect } from '@xylabs/react-shared'
|
5
|
+
import { XyoArchive } from '@xyo-network/api'
|
6
|
+
import { useAuthState } from '@xyo-network/react-auth'
|
7
|
+
import { AuthServiceWrapper } from '@xyo-network/react-auth-service'
|
8
|
+
import { authDecorator, WrappedAuthComponent } from '@xyo-network/react-storybook'
|
9
|
+
import { useEffect, useState } from 'react'
|
10
|
+
|
11
|
+
import { ApiProvider, useApi } from '../../contexts'
|
12
|
+
import { ApiHistory } from './ApiHistory'
|
13
|
+
|
14
|
+
const StorybookEntry = {
|
15
|
+
argTypes: {
|
16
|
+
apiDomain: {
|
17
|
+
default: 'https://beta.api.archivist.xyo.network',
|
18
|
+
},
|
19
|
+
},
|
20
|
+
component: ApiProvider,
|
21
|
+
parameters: {
|
22
|
+
docs: {
|
23
|
+
page: null,
|
24
|
+
},
|
25
|
+
},
|
26
|
+
title: 'archivist-api/ApiHistory/ApiHistory',
|
27
|
+
} as ComponentMeta<WrappedAuthComponent>
|
28
|
+
|
29
|
+
const DemoArchiveFetcher = () => {
|
30
|
+
const [myArchives, setMyArchives] = useState<XyoArchive[]>([])
|
31
|
+
const { api, currentToken } = useApi()
|
32
|
+
const { state } = useAuthState()
|
33
|
+
const [successfulCall, setSuccessfulCall] = useState(false)
|
34
|
+
|
35
|
+
useAsyncEffect(
|
36
|
+
// eslint-disable-next-line react-hooks/exhaustive-deps
|
37
|
+
async (mounted) => {
|
38
|
+
if (state?.jwtToken && currentToken && state?.loggedInAccount) {
|
39
|
+
const archives = await api?.archives?.get()
|
40
|
+
if (archives && mounted()) {
|
41
|
+
setMyArchives(archives)
|
42
|
+
setSuccessfulCall(true)
|
43
|
+
}
|
44
|
+
}
|
45
|
+
},
|
46
|
+
[api, state?.jwtToken, currentToken, state?.loggedInAccount, setSuccessfulCall],
|
47
|
+
)
|
48
|
+
|
49
|
+
useEffect(() => {
|
50
|
+
if (!state?.loggedInAccount) {
|
51
|
+
setMyArchives([])
|
52
|
+
setSuccessfulCall(false)
|
53
|
+
}
|
54
|
+
}, [state?.loggedInAccount])
|
55
|
+
|
56
|
+
return (
|
57
|
+
<>
|
58
|
+
<AuthServiceWrapper />
|
59
|
+
<p>My Archives</p>
|
60
|
+
{successfulCall && (
|
61
|
+
<Typography color="success.main" variant="body1">
|
62
|
+
Successfully made authenticated request!!
|
63
|
+
</Typography>
|
64
|
+
)}
|
65
|
+
<ul>
|
66
|
+
{myArchives.map((archive, index) => (
|
67
|
+
<li key={index}>{archive.archive}</li>
|
68
|
+
))}
|
69
|
+
</ul>
|
70
|
+
<Typography variant="h6">Responses</Typography>
|
71
|
+
<ApiHistory />
|
72
|
+
</>
|
73
|
+
)
|
74
|
+
}
|
75
|
+
|
76
|
+
const Template: ComponentStory<WrappedAuthComponent> = () => {
|
77
|
+
const { state } = useAuthState()
|
78
|
+
const jwtToken = state?.jwtToken
|
79
|
+
return (
|
80
|
+
<ApiProvider
|
81
|
+
errorHistoryMaxDepth={10}
|
82
|
+
successHistoryMaxDepth={10}
|
83
|
+
failureHistoryMaxDepth={10}
|
84
|
+
responseHistoryMaxDepth={10}
|
85
|
+
apiDomain="https://beta.api.archivist.xyo.network"
|
86
|
+
jwtToken={jwtToken}
|
87
|
+
>
|
88
|
+
<DemoArchiveFetcher />
|
89
|
+
</ApiProvider>
|
90
|
+
)
|
91
|
+
}
|
92
|
+
|
93
|
+
const Default = Template.bind({})
|
94
|
+
Default.args = {}
|
95
|
+
Default.decorators = [authDecorator]
|
96
|
+
|
97
|
+
export { Default }
|
98
|
+
|
99
|
+
// eslint-disable-next-line import/no-default-export
|
100
|
+
export default StorybookEntry
|
@@ -0,0 +1,42 @@
|
|
1
|
+
import { Typography, useTheme } from '@mui/material'
|
2
|
+
import { ButtonEx } from '@xylabs/react-button'
|
3
|
+
import { FlexBoxProps, FlexCol } from '@xylabs/react-flexbox'
|
4
|
+
import { useState } from 'react'
|
5
|
+
|
6
|
+
import { ApiCallEntry } from './ApiCallEntry'
|
7
|
+
import { ApiCallTable } from './ApiCallTable'
|
8
|
+
import { useBuildHistoryData } from './useBuildHistoryData'
|
9
|
+
|
10
|
+
export const ApiHistory: React.FC<FlexBoxProps> = (props) => {
|
11
|
+
const [visible, setVisible] = useState(false)
|
12
|
+
const theme = useTheme()
|
13
|
+
const histories = useBuildHistoryData()
|
14
|
+
|
15
|
+
return (
|
16
|
+
<FlexCol flexGrow={1} {...props}>
|
17
|
+
{visible ? (
|
18
|
+
<>
|
19
|
+
<ButtonEx variant="contained" size="small" onClick={() => setVisible(false)}>
|
20
|
+
Hide Api History
|
21
|
+
</ButtonEx>
|
22
|
+
{histories?.map((history, index) => (
|
23
|
+
<FlexCol flexGrow={1} key={index}>
|
24
|
+
<Typography marginTop={1} variant="h6">
|
25
|
+
{history.heading}
|
26
|
+
</Typography>
|
27
|
+
<ApiCallTable sx={{ marginBottom: theme.spacing(4) }}>
|
28
|
+
{history.callHistory?.map((response, index) => (
|
29
|
+
<ApiCallEntry bgColor={history.bgColor} call={response} index={index} key={index} />
|
30
|
+
))}
|
31
|
+
</ApiCallTable>
|
32
|
+
</FlexCol>
|
33
|
+
))}
|
34
|
+
</>
|
35
|
+
) : (
|
36
|
+
<ButtonEx variant="contained" size="small" onClick={() => setVisible(true)}>
|
37
|
+
Show Api History
|
38
|
+
</ButtonEx>
|
39
|
+
)}
|
40
|
+
</FlexCol>
|
41
|
+
)
|
42
|
+
}
|
@@ -0,0 +1,35 @@
|
|
1
|
+
import { lighten, useTheme } from '@mui/material'
|
2
|
+
|
3
|
+
import { useApi } from '../../contexts'
|
4
|
+
|
5
|
+
const useBuildHistoryData = () => {
|
6
|
+
const { errorHistory, responseHistory, successHistory, failureHistory } = useApi()
|
7
|
+
const theme = useTheme()
|
8
|
+
|
9
|
+
const histories = [
|
10
|
+
{
|
11
|
+
bgColor: lighten(theme.palette.success.light, 0.85),
|
12
|
+
callHistory: successHistory,
|
13
|
+
heading: 'Successes',
|
14
|
+
},
|
15
|
+
{
|
16
|
+
bgColor: lighten(theme.palette.error.light, 0.85),
|
17
|
+
callHistory: failureHistory,
|
18
|
+
heading: 'Failures',
|
19
|
+
},
|
20
|
+
{
|
21
|
+
bgColor: lighten(theme.palette.error.light, 0.85),
|
22
|
+
callHistory: errorHistory,
|
23
|
+
heading: 'Errors',
|
24
|
+
},
|
25
|
+
{
|
26
|
+
bgColor: lighten(theme.palette.info.light, 0.85),
|
27
|
+
callHistory: responseHistory,
|
28
|
+
heading: 'Responses',
|
29
|
+
},
|
30
|
+
]
|
31
|
+
|
32
|
+
return histories
|
33
|
+
}
|
34
|
+
|
35
|
+
export { useBuildHistoryData }
|
package/src/components/index.ts
CHANGED
@@ -0,0 +1,104 @@
|
|
1
|
+
/* eslint-disable import/no-internal-modules */
|
2
|
+
import { Typography } from '@mui/material'
|
3
|
+
import { ComponentMeta, ComponentStory } from '@storybook/react'
|
4
|
+
import { useAsyncEffect } from '@xylabs/react-shared'
|
5
|
+
import { XyoArchive } from '@xyo-network/api'
|
6
|
+
import { useAuthState } from '@xyo-network/react-auth'
|
7
|
+
import { AuthServiceWrapper } from '@xyo-network/react-auth-service'
|
8
|
+
import { authDecorator, WrappedAuthComponent } from '@xyo-network/react-storybook'
|
9
|
+
import { useEffect, useState } from 'react'
|
10
|
+
|
11
|
+
import { ApiProvider } from './Provider'
|
12
|
+
import { useApi } from './use'
|
13
|
+
|
14
|
+
const StorybookEntry = {
|
15
|
+
argTypes: {
|
16
|
+
apiDomain: {
|
17
|
+
default: 'https://beta.api.archivist.xyo.network',
|
18
|
+
},
|
19
|
+
},
|
20
|
+
component: ApiProvider,
|
21
|
+
parameters: {
|
22
|
+
docs: {
|
23
|
+
page: null,
|
24
|
+
},
|
25
|
+
},
|
26
|
+
title: 'archivist-api/ArchivistApiProvider',
|
27
|
+
} as ComponentMeta<WrappedAuthComponent>
|
28
|
+
|
29
|
+
const DemoArchiveFetcher = () => {
|
30
|
+
const [myArchives, setMyArchives] = useState<XyoArchive[]>([])
|
31
|
+
const { api, currentToken, responseHistory } = useApi()
|
32
|
+
const { state } = useAuthState()
|
33
|
+
const [successfulCall, setSuccessfulCall] = useState(false)
|
34
|
+
|
35
|
+
useAsyncEffect(
|
36
|
+
// eslint-disable-next-line react-hooks/exhaustive-deps
|
37
|
+
async (mounted) => {
|
38
|
+
if (state?.jwtToken && currentToken && state?.loggedInAccount) {
|
39
|
+
const archives = await api?.archives?.get()
|
40
|
+
if (archives && mounted()) {
|
41
|
+
setMyArchives(archives)
|
42
|
+
setSuccessfulCall(true)
|
43
|
+
}
|
44
|
+
}
|
45
|
+
},
|
46
|
+
[api, state?.jwtToken, currentToken, state?.loggedInAccount, setSuccessfulCall],
|
47
|
+
)
|
48
|
+
|
49
|
+
useEffect(() => {
|
50
|
+
if (!state?.loggedInAccount) {
|
51
|
+
setMyArchives([])
|
52
|
+
setSuccessfulCall(false)
|
53
|
+
}
|
54
|
+
}, [state?.loggedInAccount])
|
55
|
+
|
56
|
+
return (
|
57
|
+
<>
|
58
|
+
<AuthServiceWrapper />
|
59
|
+
<p>My Archives</p>
|
60
|
+
{successfulCall && (
|
61
|
+
<Typography color="success.main" variant="body1">
|
62
|
+
Successfully made authenticated request!!
|
63
|
+
</Typography>
|
64
|
+
)}
|
65
|
+
<ul>
|
66
|
+
{myArchives.map((archive, index) => (
|
67
|
+
<li key={index}>{archive.archive}</li>
|
68
|
+
))}
|
69
|
+
</ul>
|
70
|
+
<Typography variant="h6">Responses</Typography>
|
71
|
+
{responseHistory?.map((response, index) => (
|
72
|
+
<Typography key={index} variant="body1">
|
73
|
+
{response.status}
|
74
|
+
</Typography>
|
75
|
+
))}
|
76
|
+
</>
|
77
|
+
)
|
78
|
+
}
|
79
|
+
|
80
|
+
const Template: ComponentStory<WrappedAuthComponent> = () => {
|
81
|
+
const { state } = useAuthState()
|
82
|
+
const jwtToken = state?.jwtToken
|
83
|
+
return (
|
84
|
+
<ApiProvider
|
85
|
+
errorHistoryMaxDepth={10}
|
86
|
+
successHistoryMaxDepth={10}
|
87
|
+
failureHistoryMaxDepth={10}
|
88
|
+
responseHistoryMaxDepth={10}
|
89
|
+
apiDomain="https://beta.api.archivist.xyo.network"
|
90
|
+
jwtToken={jwtToken}
|
91
|
+
>
|
92
|
+
<DemoArchiveFetcher />
|
93
|
+
</ApiProvider>
|
94
|
+
)
|
95
|
+
}
|
96
|
+
|
97
|
+
const Default = Template.bind({})
|
98
|
+
Default.args = {}
|
99
|
+
Default.decorators = [authDecorator]
|
100
|
+
|
101
|
+
export { Default }
|
102
|
+
|
103
|
+
// eslint-disable-next-line import/no-default-export
|
104
|
+
export default StorybookEntry
|
@@ -0,0 +1,102 @@
|
|
1
|
+
import { WithChildren } from '@xylabs/react-shared'
|
2
|
+
import { XyoApiConfig, XyoApiError, XyoApiResponse, XyoArchivistApi } from '@xyo-network/api'
|
3
|
+
import { useCallback, useEffect, useState } from 'react'
|
4
|
+
|
5
|
+
import { ApiContext } from './Context'
|
6
|
+
import { logWithMax } from './logWithMax'
|
7
|
+
|
8
|
+
export interface ApiProviderProps extends XyoApiConfig {
|
9
|
+
required?: boolean
|
10
|
+
successHistoryMaxDepth?: number
|
11
|
+
responseHistoryMaxDepth?: number
|
12
|
+
failureHistoryMaxDepth?: number
|
13
|
+
errorHistoryMaxDepth?: number
|
14
|
+
onFailureCallback?: (statusCode?: number) => void
|
15
|
+
}
|
16
|
+
|
17
|
+
export const ApiProvider: React.FC<WithChildren<ApiProviderProps>> = ({
|
18
|
+
required = false,
|
19
|
+
successHistoryMaxDepth = 0,
|
20
|
+
responseHistoryMaxDepth = 0,
|
21
|
+
failureHistoryMaxDepth = 0,
|
22
|
+
errorHistoryMaxDepth = 0,
|
23
|
+
onFailureCallback,
|
24
|
+
children,
|
25
|
+
...configProps
|
26
|
+
}) => {
|
27
|
+
const [api, setApi] = useState<XyoArchivistApi>()
|
28
|
+
const [config, setConfig] = useState<XyoApiConfig>(configProps)
|
29
|
+
|
30
|
+
const [successHistory] = useState<XyoApiResponse[]>([])
|
31
|
+
const [responseHistory] = useState<XyoApiResponse[]>([])
|
32
|
+
const [failureHistory] = useState<XyoApiResponse[]>([])
|
33
|
+
const [errorHistory] = useState<XyoApiError[]>([])
|
34
|
+
|
35
|
+
//we are doing this with config since we want a value compare and not a ref compare
|
36
|
+
useEffect(() => {
|
37
|
+
if (JSON.stringify(config) !== JSON.stringify(configProps)) {
|
38
|
+
setConfig(configProps)
|
39
|
+
}
|
40
|
+
}, [config, configProps])
|
41
|
+
|
42
|
+
const logResponse = useCallback(
|
43
|
+
(response: XyoApiResponse) => {
|
44
|
+
logWithMax(responseHistory, response, responseHistoryMaxDepth)
|
45
|
+
},
|
46
|
+
[responseHistory, responseHistoryMaxDepth],
|
47
|
+
)
|
48
|
+
|
49
|
+
const onFailure = useCallback(
|
50
|
+
(response: XyoApiResponse) => {
|
51
|
+
onFailureCallback?.(response.status)
|
52
|
+
logWithMax(failureHistory, response, failureHistoryMaxDepth)
|
53
|
+
logResponse(response)
|
54
|
+
},
|
55
|
+
[onFailureCallback, failureHistory, failureHistoryMaxDepth, logResponse],
|
56
|
+
)
|
57
|
+
|
58
|
+
const onSuccess = useCallback(
|
59
|
+
(response: XyoApiResponse) => {
|
60
|
+
logWithMax(successHistory, response, successHistoryMaxDepth)
|
61
|
+
logResponse(response)
|
62
|
+
},
|
63
|
+
[logResponse, successHistory, successHistoryMaxDepth],
|
64
|
+
)
|
65
|
+
|
66
|
+
const onError = useCallback(
|
67
|
+
(error: XyoApiError) => {
|
68
|
+
logWithMax(errorHistory, error, errorHistoryMaxDepth)
|
69
|
+
},
|
70
|
+
[errorHistory, errorHistoryMaxDepth],
|
71
|
+
)
|
72
|
+
|
73
|
+
useEffect(() => {
|
74
|
+
setApi(
|
75
|
+
new XyoArchivistApi({
|
76
|
+
...config,
|
77
|
+
onError,
|
78
|
+
onFailure,
|
79
|
+
onSuccess,
|
80
|
+
}),
|
81
|
+
)
|
82
|
+
}, [config, onError, onFailure, onSuccess])
|
83
|
+
|
84
|
+
return (
|
85
|
+
<ApiContext.Provider
|
86
|
+
value={{
|
87
|
+
api,
|
88
|
+
currentToken: config.jwtToken,
|
89
|
+
errorHistory,
|
90
|
+
failureHistory,
|
91
|
+
provided: true,
|
92
|
+
responseHistory,
|
93
|
+
successHistory,
|
94
|
+
}}
|
95
|
+
>
|
96
|
+
{api ? children : required ? null : children}
|
97
|
+
</ApiContext.Provider>
|
98
|
+
)
|
99
|
+
}
|
100
|
+
|
101
|
+
/** @deprecated use ApiProvider instead */
|
102
|
+
export const ArchivistApiProvider = ApiProvider
|
@@ -0,0 +1,13 @@
|
|
1
|
+
import { XyoApiError, XyoApiResponse, XyoArchivistApi } from '@xyo-network/api'
|
2
|
+
|
3
|
+
/** @deprecated */
|
4
|
+
export type XyoApiErrorCallback = (response: XyoApiResponse) => void
|
5
|
+
|
6
|
+
export interface ApiState {
|
7
|
+
api?: XyoArchivistApi
|
8
|
+
currentToken?: string
|
9
|
+
successHistory?: XyoApiResponse[]
|
10
|
+
responseHistory?: XyoApiResponse[]
|
11
|
+
failureHistory?: XyoApiResponse[]
|
12
|
+
errorHistory?: XyoApiError[]
|
13
|
+
}
|
@@ -0,0 +1,10 @@
|
|
1
|
+
import { useContextEx } from '@xyo-network/react-shared'
|
2
|
+
|
3
|
+
import { ApiContext } from './Context'
|
4
|
+
|
5
|
+
export const useApi = (required = false) => {
|
6
|
+
return useContextEx(ApiContext, 'ArchivistApi', required)
|
7
|
+
}
|
8
|
+
|
9
|
+
/** @deprecated use useApi instead */
|
10
|
+
export const useArchivistApi = useApi
|
@@ -0,0 +1,68 @@
|
|
1
|
+
import { useAsyncEffect } from '@xylabs/react-shared'
|
2
|
+
import { XyoArchivistApi, XyoRemoteArchivist, XyoRemoteArchivistConfig } from '@xyo-network/api'
|
3
|
+
import { XyoArchivistWrapper } from '@xyo-network/archivist'
|
4
|
+
import { XyoModuleResolver } from '@xyo-network/module'
|
5
|
+
import { ArchivistProvider, useArchivist } from '@xyo-network/react-archivist'
|
6
|
+
import { ContextExProviderProps, useDataState } from '@xyo-network/react-shared'
|
7
|
+
import merge from 'lodash/merge'
|
8
|
+
import { useMemo, useState } from 'react'
|
9
|
+
|
10
|
+
export type RemoteArchivistProviderProps = ContextExProviderProps<{
|
11
|
+
config?: XyoRemoteArchivistConfig
|
12
|
+
resolver?: XyoModuleResolver
|
13
|
+
api?: XyoArchivistApi
|
14
|
+
}>
|
15
|
+
|
16
|
+
export const RemoteArchivistProvider: React.FC<RemoteArchivistProviderProps> = ({ config: configProp, api, resolver, ...props }) => {
|
17
|
+
const [config, setConfig] = useDataState(configProp)
|
18
|
+
const { archivist } = useArchivist()
|
19
|
+
|
20
|
+
//we set this every time, but it will only take if config VALUE changed
|
21
|
+
setConfig(config)
|
22
|
+
|
23
|
+
const wrapper = useMemo(() => (archivist ? new XyoArchivistWrapper(archivist) : undefined), [archivist])
|
24
|
+
const activeResolver: XyoModuleResolver | undefined = useMemo(
|
25
|
+
() => (resolver ?? wrapper ? new XyoModuleResolver() : undefined),
|
26
|
+
[resolver, wrapper],
|
27
|
+
)
|
28
|
+
|
29
|
+
// eslint-disable-next-line deprecation/deprecation
|
30
|
+
const activeApi = api ?? config?.api
|
31
|
+
|
32
|
+
if (archivist) {
|
33
|
+
activeResolver?.add(new XyoArchivistWrapper(archivist))
|
34
|
+
}
|
35
|
+
|
36
|
+
const [activeArchivist, setActiveArchivist] = useState<XyoRemoteArchivist>()
|
37
|
+
|
38
|
+
useAsyncEffect(
|
39
|
+
// eslint-disable-next-line react-hooks/exhaustive-deps
|
40
|
+
async (mounted) => {
|
41
|
+
const activeArchivist = activeApi
|
42
|
+
? await XyoRemoteArchivist.create({
|
43
|
+
api: activeApi,
|
44
|
+
config: merge(
|
45
|
+
{},
|
46
|
+
config,
|
47
|
+
archivist
|
48
|
+
? {
|
49
|
+
parents: {
|
50
|
+
commit: [archivist.address],
|
51
|
+
read: [archivist.address],
|
52
|
+
write: [archivist.address],
|
53
|
+
},
|
54
|
+
}
|
55
|
+
: undefined,
|
56
|
+
),
|
57
|
+
resolver: activeResolver,
|
58
|
+
})
|
59
|
+
: undefined
|
60
|
+
if (mounted()) {
|
61
|
+
setActiveArchivist(activeArchivist)
|
62
|
+
}
|
63
|
+
},
|
64
|
+
[activeResolver, archivist, config, activeApi],
|
65
|
+
)
|
66
|
+
|
67
|
+
return <ArchivistProvider archivist={activeArchivist} {...props} />
|
68
|
+
}
|
@@ -1,6 +1,6 @@
|
|
1
|
-
import {
|
1
|
+
import { XyoError } from '@xyo-network/module'
|
2
2
|
import { XyoPayload } from '@xyo-network/payload'
|
3
3
|
|
4
|
-
export type UsePayload = [XyoPayload?, boolean?,
|
4
|
+
export type UsePayload = [XyoPayload?, boolean?, XyoError?]
|
5
5
|
|
6
6
|
export type UseHuriOrHash = [...UsePayload, boolean?]
|
@@ -4,13 +4,13 @@ import { ComponentStory, Meta } from '@storybook/react'
|
|
4
4
|
import { ButtonEx } from '@xylabs/react-button'
|
5
5
|
import { FlexCol, FlexRow } from '@xylabs/react-flexbox'
|
6
6
|
import { Huri } from '@xyo-network/payload'
|
7
|
-
import { ArchivistApiProvider } from '@xyo-network/react-archivist-api'
|
8
7
|
import { NetworkMemoryProvider } from '@xyo-network/react-network'
|
9
8
|
import { XyoSchemaCache } from '@xyo-network/utils'
|
10
9
|
import { lazy, Suspense, useState } from 'react'
|
11
10
|
|
11
|
+
import { ApiProvider } from '../contexts'
|
12
12
|
import { FetchHuriHashOptions } from './lib'
|
13
|
-
import {
|
13
|
+
import { useHuriHashViaApi } from './useHuriHash'
|
14
14
|
|
15
15
|
const JsonView = lazy(() => import(/* webpackChunkName: "jsonView" */ 'react-json-view'))
|
16
16
|
|
@@ -30,15 +30,15 @@ const mainHash = 'd3a3936e31ba1d835c528784ab77c1eaaeedd6e16b7aad68a88241ce539853
|
|
30
30
|
|
31
31
|
const Wrapper: React.FC<UseHuriHashComponentProps> = (props) => (
|
32
32
|
<NetworkMemoryProvider>
|
33
|
-
<
|
33
|
+
<ApiProvider apiDomain={apiDomain}>
|
34
34
|
<UseHuriHashComponent {...props} />
|
35
|
-
</
|
35
|
+
</ApiProvider>
|
36
36
|
</NetworkMemoryProvider>
|
37
37
|
)
|
38
38
|
|
39
39
|
const UseHuriHashComponent: React.FC<UseHuriHashComponentProps> = ({ huriOrHash, huriUri, options, reTestable }) => {
|
40
40
|
const [trigger, setTrigger] = useState<string | Huri>(huriOrHash)
|
41
|
-
const [payload, notFound, , networkNotFound] =
|
41
|
+
const [payload, notFound, , networkNotFound] = useHuriHashViaApi(trigger, huriUri, options)
|
42
42
|
|
43
43
|
return (
|
44
44
|
<>
|
@@ -3,13 +3,13 @@ import { useCallback } from 'react'
|
|
3
3
|
|
4
4
|
import { FetchHuriHashOptions } from './lib'
|
5
5
|
import { UseHuriOrHash } from './ResolvePayloadArgs'
|
6
|
-
import {
|
6
|
+
import { useLoadPayloadViaApi } from './useLoadPayload'
|
7
7
|
import { useResolveHuri } from './useResolveHuri'
|
8
8
|
|
9
9
|
/**
|
10
10
|
* Resolve a hash or a huri regardless of network
|
11
11
|
*/
|
12
|
-
const
|
12
|
+
export const useHuriHashViaApi = (huriOrHash?: string | Huri, huriUri?: string, options?: FetchHuriHashOptions): UseHuriOrHash => {
|
13
13
|
const hash = useCallback((huriOrHash?: string | Huri) => {
|
14
14
|
if (huriOrHash) {
|
15
15
|
if (typeof huriOrHash === 'string') {
|
@@ -26,7 +26,7 @@ const useHuriHash = (huriOrHash?: string | Huri, huriUri?: string, options?: Fet
|
|
26
26
|
//AT: TODO -> Talk about this pattern
|
27
27
|
|
28
28
|
// Optimistically try to grab the has from the current network and archive
|
29
|
-
const [payload, notFound, apiError] =
|
29
|
+
const [payload, notFound, apiError] = useLoadPayloadViaApi(providedHash)
|
30
30
|
|
31
31
|
// if a huriUri was passed, we can safely override the notFound from the hash only query
|
32
32
|
const notFoundOverride = huriUri ? true : notFound
|
@@ -36,5 +36,3 @@ const useHuriHash = (huriOrHash?: string | Huri, huriUri?: string, options?: Fet
|
|
36
36
|
|
37
37
|
return [payload ?? huriPayload, huriPayloadNotFound, apiError ?? huriApiError, networkNotFound]
|
38
38
|
}
|
39
|
-
|
40
|
-
export { useHuriHash }
|
@@ -2,10 +2,10 @@
|
|
2
2
|
import { ComponentStory, Meta } from '@storybook/react'
|
3
3
|
import { ButtonEx } from '@xylabs/react-button'
|
4
4
|
import { FlexCol } from '@xylabs/react-flexbox'
|
5
|
-
import { ArchivistApiProvider, useArchivistApi } from '@xyo-network/react-archivist-api'
|
6
5
|
import { lazy, Suspense, useState } from 'react'
|
7
6
|
|
8
|
-
import {
|
7
|
+
import { ApiProvider, useApi } from '../contexts'
|
8
|
+
import { useLoadPayloadViaApi } from './useLoadPayload'
|
9
9
|
|
10
10
|
const JsonView = lazy(() => import(/* webpackChunkName: "jsonView" */ 'react-json-view'))
|
11
11
|
|
@@ -13,15 +13,15 @@ const apiDomain = 'https://beta.api.archivist.xyo.network'
|
|
13
13
|
const hash = '5605fabad11b10bb5fb86b309ca0970894eda8f22362dda1a489817723bca992'
|
14
14
|
|
15
15
|
const Wrapper: React.FC<{ hash?: string }> = ({ hash }) => (
|
16
|
-
<
|
16
|
+
<ApiProvider apiDomain={apiDomain}>
|
17
17
|
<UsePayloadComponent hash={hash} />
|
18
|
-
</
|
18
|
+
</ApiProvider>
|
19
19
|
)
|
20
20
|
|
21
21
|
const UsePayloadComponent: React.FC<{ hash?: string }> = ({ hash }) => {
|
22
|
-
const { api } =
|
22
|
+
const { api } = useApi()
|
23
23
|
const [trigger, setTrigger] = useState<string>()
|
24
|
-
const [payload, notFound] =
|
24
|
+
const [payload, notFound] = useLoadPayloadViaApi(trigger)
|
25
25
|
|
26
26
|
return (
|
27
27
|
<>
|
@@ -1,23 +1,23 @@
|
|
1
1
|
import { useAsyncEffect } from '@xylabs/react-shared'
|
2
|
-
import {
|
2
|
+
import { XyoError, XyoErrorSchema } from '@xyo-network/module'
|
3
3
|
import { XyoPayload } from '@xyo-network/payload'
|
4
|
-
import { useArchive } from '@xyo-network/react-archive'
|
5
|
-
import { useArchivistApi } from '@xyo-network/react-archivist-api'
|
6
4
|
import { useEffect, useState } from 'react'
|
7
5
|
|
6
|
+
import { useArchive } from '../archive'
|
7
|
+
import { useApi } from '../contexts'
|
8
8
|
import { UsePayload } from './ResolvePayloadArgs'
|
9
9
|
|
10
|
-
export const
|
11
|
-
const { api } =
|
10
|
+
export const useLoadPayloadViaApi = (hash?: string): UsePayload => {
|
11
|
+
const { api } = useApi()
|
12
12
|
const { archive } = useArchive()
|
13
13
|
const [localHash, setLocalHash] = useState<string>()
|
14
14
|
const [notFound, setNotFound] = useState<boolean>()
|
15
|
-
const [
|
15
|
+
const [xyoError, setXyoError] = useState<XyoError>()
|
16
16
|
const [payload, setPayload] = useState<XyoPayload>()
|
17
17
|
|
18
18
|
const reset = () => {
|
19
19
|
setPayload(undefined)
|
20
|
-
|
20
|
+
setXyoError(undefined)
|
21
21
|
setNotFound(undefined)
|
22
22
|
}
|
23
23
|
|
@@ -46,14 +46,15 @@ export const useLoadPayload = (hash?: string): UsePayload => {
|
|
46
46
|
}
|
47
47
|
}
|
48
48
|
} catch (e) {
|
49
|
+
const error = e as Error
|
49
50
|
reset()
|
50
51
|
setNotFound(false)
|
51
|
-
|
52
|
+
setXyoError({ message: error.message, schema: XyoErrorSchema, sources: [] })
|
52
53
|
console.error(e)
|
53
54
|
}
|
54
55
|
}
|
55
56
|
},
|
56
57
|
[hash, api, archive, payload, notFound, localHash],
|
57
58
|
)
|
58
|
-
return [payload, notFound,
|
59
|
+
return [payload, notFound, xyoError]
|
59
60
|
}
|