@@ -7,9 +7,10 @@ import { uploadFile } from "@/lib/arweave/uploadFile";
77import { useAccount } from "wagmi" ;
88import { toast } from "sonner" ;
99import { AccountWithDetails } from "@/lib/supabase/accounts/getAccountWithDetails" ;
10+ import { fetchOrCreateAccount } from "@/lib/accounts/fetchOrCreateAccount" ;
1011
1112const useUser = ( ) => {
12- const { login, user, logout } = usePrivy ( ) ;
13+ const { login, user, logout, getAccessToken } = usePrivy ( ) ;
1314 const { address : wagmiAddress } = useAccount ( ) ;
1415 const address = ( user ?. wallet ?. address as Address ) || wagmiAddress ;
1516 const email = user ?. email ?. address ;
@@ -119,37 +120,25 @@ const useUser = () => {
119120
120121 useEffect ( ( ) => {
121122 const init = async ( ) => {
122- const config = {
123- method : "POST" ,
124- body : JSON . stringify ( {
125- email,
126- wallet : address ,
127- } ) ,
128- headers : {
129- "Content-Type" : "application/json" ,
130- } ,
131- } ;
132- const response = await fetch ( "/api/account" , config ) ;
133-
134- if ( ! response . ok ) {
135- throw new Error (
136- `Email API request failed with status: ${ response . status } `
137- ) ;
138- }
123+ const accessToken = await getAccessToken ( ) ;
124+ const data = await fetchOrCreateAccount ( {
125+ email,
126+ wallet : address ,
127+ accessToken,
128+ } ) ;
139129
140- const data = await response . json ( ) ;
141- setUserData ( data . data ) ;
142- setImage ( data . data ?. image || "" ) ;
143- setInstruction ( data . data ?. instruction || "" ) ;
144- setName ( data ?. data ?. name || "" ) ;
145- setOrganization ( data ?. data ?. organization || "" ) ;
146- setJobTitle ( data ?. data ?. job_title || "" ) ;
147- setRoleType ( data ?. data ?. role_type || "" ) ;
148- setCompanyName ( data ?. data ?. company_name || "" ) ;
130+ setUserData ( data ) ;
131+ setImage ( data . image || "" ) ;
132+ setInstruction ( data . instruction || "" ) ;
133+ setName ( data . name || "" ) ;
134+ setOrganization ( data . organization || "" ) ;
135+ setJobTitle ( data . job_title || "" ) ;
136+ setRoleType ( data . role_type || "" ) ;
137+ setCompanyName ( data . company_name || "" ) ;
149138 } ;
150139 if ( ! email && ! address ) return ;
151140 init ( ) ;
152- } , [ email , address ] ) ;
141+ } , [ email , address , getAccessToken ] ) ;
153142
154143 return {
155144 address,
0 commit comments