web3-provider.tsx 867 B

1234567891011121314151617181920212223242526272829303132
  1. "use client";
  2. import { QueryClient, QueryClientProvider } from "@tanstack/react-query";
  3. import { type ReactNode, useState } from "react";
  4. import { WagmiProvider } from "wagmi";
  5. import { wagmiConfig } from "@/lib/wagmi";
  6. /**
  7. * Wallet stack for the portal. Kept as a client island so marketing routes
  8. * outside /portal need not load it.
  9. */
  10. export function Web3Provider({ children }: { children: ReactNode }) {
  11. const [queryClient] = useState(
  12. () =>
  13. new QueryClient({
  14. defaultOptions: {
  15. queries: {
  16. // Light perf: fewer background refetches while idle
  17. staleTime: 30_000,
  18. refetchOnWindowFocus: false,
  19. },
  20. },
  21. }),
  22. );
  23. return (
  24. <WagmiProvider config={wagmiConfig}>
  25. <QueryClientProvider client={queryClient}>{children}</QueryClientProvider>
  26. </WagmiProvider>
  27. );
  28. }