File tree Expand file tree Collapse file tree 2 files changed +51
-3
lines changed Expand file tree Collapse file tree 2 files changed +51
-3
lines changed Original file line number Diff line number Diff line change @@ -11,6 +11,7 @@ import {
11
11
import { base , sepolia } from "viem/chains" ;
12
12
import { QueryClient , QueryClientProvider } from "@tanstack/react-query" ;
13
13
import { SplitsProvider } from "@0xsplits/splits-sdk-react" ;
14
+ import { PaymentSplitsProvider } from "./splitsProvider" ;
14
15
15
16
const queryClient = new QueryClient ( ) ;
16
17
const config = getDefaultConfig ( {
@@ -33,9 +34,15 @@ export default function Providers({ children }: { children: React.ReactNode }) {
33
34
fontStack : "system" ,
34
35
} ) }
35
36
>
36
- < ThemeProvider attribute = "class" defaultTheme = "system" enableSystem >
37
- < SplitsProvider > { children } </ SplitsProvider >
38
- </ ThemeProvider >
37
+ < PaymentSplitsProvider >
38
+ < ThemeProvider
39
+ attribute = "class"
40
+ defaultTheme = "system"
41
+ enableSystem
42
+ >
43
+ { children }
44
+ </ ThemeProvider >
45
+ </ PaymentSplitsProvider >
39
46
</ RainbowKitProvider >
40
47
</ QueryClientProvider >
41
48
</ WagmiProvider >
Original file line number Diff line number Diff line change
1
+ "use client" ;
2
+
3
+ import { SplitsClientConfig , SplitsProvider } from "@0xsplits/splits-sdk-react" ;
4
+ import { useEffect , useState } from "react" ;
5
+ import { useChainId , usePublicClient , useWalletClient } from "wagmi" ;
6
+
7
+ type Props = {
8
+ children ?: React . ReactNode ;
9
+ } ;
10
+
11
+ export const PaymentSplitsProvider = ( { children } : Props ) => {
12
+ const [ splitsConfig , setSplitsConfig ] = useState < SplitsClientConfig | null > (
13
+ null ,
14
+ ) ;
15
+ const { data : walletClient , status, error } = useWalletClient ( ) ;
16
+ const publicClient = usePublicClient ( ) ;
17
+ const chainId = useChainId ( ) ;
18
+
19
+ useEffect ( ( ) => {
20
+ if ( status == "success" && chainId ) {
21
+ setSplitsConfig ( {
22
+ chainId : chainId ,
23
+ walletClient : walletClient ,
24
+ publicClient : publicClient ,
25
+ apiConfig : { apiKey : process . env . NEXT_PUBLIC_SPLITS_API_KEY ?? "" } ,
26
+ } ) ;
27
+ } else if ( error ) {
28
+ console . log ( "Error Connecting Wallet Client:" + error ) ;
29
+ }
30
+ } , [ status , chainId ] ) ;
31
+
32
+ return (
33
+ < >
34
+ { splitsConfig ? (
35
+ < SplitsProvider config = { splitsConfig } > { children } </ SplitsProvider >
36
+ ) : (
37
+ < > { children } </ >
38
+ ) }
39
+ </ >
40
+ ) ;
41
+ } ;
You can’t perform that action at this time.
0 commit comments