11import type { PaymentsMetric , Token } from "@filecoin-pay/types" ;
2- import { useQuery } from "@tanstack/react-query" ;
32import type { Hex } from "viem" ;
4- import { executeQuery } from "@/services/grapql/client" ;
53import { GET_STATS_DASHBOARD } from "@/services/grapql/queries" ;
4+ import { useGraphQLQuery } from "./useGraphQLQuery" ;
65
76export interface StatsDashboardData {
87 paymentsMetrics : PaymentsMetric ;
@@ -17,20 +16,18 @@ interface GetStatsDashboardResponse {
1716}
1817
1918export const useStatsDashboard = ( usdfcAddress : Hex , filAddress : Hex ) =>
20- useQuery ( {
19+ useGraphQLQuery < GetStatsDashboardResponse , StatsDashboardData > ( {
2120 queryKey : [ "statsDashboard" , usdfcAddress , filAddress ] ,
22- queryFn : async ( ) => {
23- const response = await executeQuery < GetStatsDashboardResponse > ( GET_STATS_DASHBOARD , {
24- usdfcAddress,
25- filAddress,
26- } ) ;
27-
28- return {
29- paymentsMetrics : response . paymentsMetrics [ 0 ] ,
30- usdfcToken : response . usdfcToken ,
31- filToken : response . filToken ,
32- } as StatsDashboardData ;
21+ query : GET_STATS_DASHBOARD ,
22+ variables : {
23+ usdfcAddress,
24+ filAddress,
3325 } ,
26+ select : ( data ) => ( {
27+ paymentsMetrics : data . paymentsMetrics [ 0 ] ,
28+ usdfcToken : data . usdfcToken ,
29+ filToken : data . filToken ,
30+ } ) ,
31+ enabled : ! ! usdfcAddress && ! ! filAddress ,
3432 refetchInterval : 5 * 60 * 1000 ,
35- refetchOnWindowFocus : false ,
3633 } ) ;
0 commit comments