@sudobility/shapeshyft_client 0.0.33 → 0.0.36

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.
@@ -9,6 +9,7 @@ export interface UseProviderModelsReturn {
9
9
  provider: ProviderConfig | null;
10
10
  models: ModelInfo[];
11
11
  isLoading: boolean;
12
+ isFetching: boolean;
12
13
  error: string | null;
13
14
  refetch: () => void;
14
15
  }
@@ -1 +1 @@
1
- {"version":3,"file":"useProviders.d.ts","sourceRoot":"","sources":["../../src/hooks/useProviders.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EACV,WAAW,EACX,SAAS,EACT,aAAa,EACb,cAAc,EAEf,MAAM,8BAA8B,CAAC;AAOtC,MAAM,WAAW,kBAAkB;IAEjC,SAAS,EAAE,cAAc,EAAE,CAAC;IAE5B,kBAAkB,EAAE,OAAO,CAAC;IAE5B,cAAc,EAAE,MAAM,GAAG,IAAI,CAAC;IAE9B,gBAAgB,EAAE,MAAM,IAAI,CAAC;CAC9B;AAKD,MAAM,WAAW,uBAAuB;IAEtC,QAAQ,EAAE,cAAc,GAAG,IAAI,CAAC;IAEhC,MAAM,EAAE,SAAS,EAAE,CAAC;IAEpB,SAAS,EAAE,OAAO,CAAC;IAEnB,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IAErB,OAAO,EAAE,MAAM,IAAI,CAAC;CACrB;AAMD,eAAO,MAAM,YAAY,GACvB,eAAe,aAAa,EAC5B,SAAS,MAAM,EACf,WAAU,OAAe,KACxB,kBA8BF,CAAC;AAMF,eAAO,MAAM,iBAAiB,GAC5B,eAAe,aAAa,EAC5B,SAAS,MAAM,EACf,UAAU,WAAW,GAAG,IAAI,EAC5B,WAAU,OAAe,KACxB,uBA8BF,CAAC"}
1
+ {"version":3,"file":"useProviders.d.ts","sourceRoot":"","sources":["../../src/hooks/useProviders.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EACV,WAAW,EACX,SAAS,EACT,aAAa,EACb,cAAc,EAEf,MAAM,8BAA8B,CAAC;AAWtC,MAAM,WAAW,kBAAkB;IAEjC,SAAS,EAAE,cAAc,EAAE,CAAC;IAE5B,kBAAkB,EAAE,OAAO,CAAC;IAE5B,cAAc,EAAE,MAAM,GAAG,IAAI,CAAC;IAE9B,gBAAgB,EAAE,MAAM,IAAI,CAAC;CAC9B;AAKD,MAAM,WAAW,uBAAuB;IAEtC,QAAQ,EAAE,cAAc,GAAG,IAAI,CAAC;IAEhC,MAAM,EAAE,SAAS,EAAE,CAAC;IAEpB,SAAS,EAAE,OAAO,CAAC;IAEnB,UAAU,EAAE,OAAO,CAAC;IAEpB,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IAErB,OAAO,EAAE,MAAM,IAAI,CAAC;CACrB;AAMD,eAAO,MAAM,YAAY,GACvB,eAAe,aAAa,EAC5B,SAAS,MAAM,EACf,WAAU,OAAe,KACxB,kBA8BF,CAAC;AAMF,eAAO,MAAM,iBAAiB,GAC5B,eAAe,aAAa,EAC5B,SAAS,MAAM,EACf,UAAU,WAAW,GAAG,IAAI,EAC5B,WAAU,OAAe,KACxB,uBAsCF,CAAC"}
@@ -1,7 +1,9 @@
1
- import { useQuery } from '@tanstack/react-query';
2
- import { useMemo } from 'react';
1
+ import { keepPreviousData, useQuery } from '@tanstack/react-query';
2
+ import { useMemo, useRef } from 'react';
3
3
  import { ShapeshyftClient } from '../network/ShapeshyftClient';
4
4
  import { QUERY_KEYS } from '../types';
5
+ const EMPTY_PROVIDERS = [];
6
+ const EMPTY_MODELS = [];
5
7
  export const useProviders = (networkClient, baseUrl, testMode = false) => {
6
8
  const client = useMemo(() => new ShapeshyftClient({ baseUrl, networkClient, testMode }), [baseUrl, networkClient, testMode]);
7
9
  const { data, isLoading: isLoadingProviders, error, refetch, } = useQuery({
@@ -17,7 +19,7 @@ export const useProviders = (networkClient, baseUrl, testMode = false) => {
17
19
  gcTime: 30 * 60 * 1000,
18
20
  });
19
21
  return {
20
- providers: data ?? [],
22
+ providers: data ?? EMPTY_PROVIDERS,
21
23
  isLoadingProviders,
22
24
  providersError: error instanceof Error ? error.message : null,
23
25
  refetchProviders: refetch,
@@ -25,7 +27,11 @@ export const useProviders = (networkClient, baseUrl, testMode = false) => {
25
27
  };
26
28
  export const useProviderModels = (networkClient, baseUrl, provider, testMode = false) => {
27
29
  const client = useMemo(() => new ShapeshyftClient({ baseUrl, networkClient, testMode }), [baseUrl, networkClient, testMode]);
28
- const { data, isLoading, error, refetch } = useQuery({
30
+ const lastProviderRef = useRef(null);
31
+ if (provider) {
32
+ lastProviderRef.current = provider;
33
+ }
34
+ const { data, isLoading, isFetching, error, refetch } = useQuery({
29
35
  queryKey: QUERY_KEYS.providerModels(provider ?? ''),
30
36
  queryFn: async () => {
31
37
  if (!provider) {
@@ -40,11 +46,13 @@ export const useProviderModels = (networkClient, baseUrl, provider, testMode = f
40
46
  enabled: !!provider,
41
47
  staleTime: 5 * 60 * 1000,
42
48
  gcTime: 30 * 60 * 1000,
49
+ placeholderData: keepPreviousData,
43
50
  });
44
51
  return {
45
52
  provider: data?.provider ?? null,
46
- models: data?.models ?? [],
53
+ models: data?.models ?? EMPTY_MODELS,
47
54
  isLoading,
55
+ isFetching,
48
56
  error: error instanceof Error ? error.message : null,
49
57
  refetch,
50
58
  };
@@ -1 +1 @@
1
- {"version":3,"file":"useProviders.js","sourceRoot":"","sources":["../../src/hooks/useProviders.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"useProviders.js","sourceRoot":"","sources":["../../src/hooks/useProviders.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@sudobility/shapeshyft_client",
3
- "version": "0.0.33",
3
+ "version": "0.0.36",
4
4
  "description": "React client library for ShapeShyft API with TanStack Query hooks",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",
@@ -35,7 +35,7 @@
35
35
  "author": "John Huang",
36
36
  "license": "MIT",
37
37
  "peerDependencies": {
38
- "@sudobility/shapeshyft_types": "^1.0.29",
38
+ "@sudobility/shapeshyft_types": "^1.0.31",
39
39
  "@sudobility/types": "^1.9.44",
40
40
  "@tanstack/react-query": ">=5.0.0",
41
41
  "react": ">=18.0.0"
@@ -43,7 +43,7 @@
43
43
  "devDependencies": {
44
44
  "@eslint/js": "^9.39.2",
45
45
  "@sudobility/di": "^1.5.18",
46
- "@sudobility/shapeshyft_types": "^1.0.29",
46
+ "@sudobility/shapeshyft_types": "^1.0.31",
47
47
  "@sudobility/types": "^1.9.44",
48
48
  "@tanstack/react-query": "^5.90.5",
49
49
  "@testing-library/dom": "^10.4.1",