1
1
"use client" ;
2
2
3
- import { Suspense , useCallback , useState } from "react" ;
3
+ import { Suspense , useState } from "react" ;
4
4
import { Header } from "@/components/header/header" ;
5
5
import {
6
6
Button ,
@@ -15,22 +15,21 @@ import { LoginWidget } from "@mochi-web3/login-widget";
15
15
import { useSearchParams } from "next/navigation" ;
16
16
import { WretchError } from "wretch" ;
17
17
import { API } from "@/constants/api" ;
18
+ import { CheckCircleHalfColoredLine } from "@mochi-ui/icons" ;
18
19
19
20
const Verify = ( ) => {
20
21
const { isOpen, onOpenChange } = useDisclosure ( ) ;
21
22
const searchParams = useSearchParams ( ) ;
22
23
const [ loading , setLoading ] = useState ( false ) ;
23
24
const [ verified , setVerified ] = useState ( false ) ;
24
- const [ error , _setError ] = useState ( "" ) ;
25
- const setError = useCallback (
26
- ( e : WretchError ) => {
27
- _setError ( e . json ?. msg ?? "Something went wrong" ) ;
28
- } ,
29
- [ _setError ]
30
- ) ;
25
+ const [ error , setError ] = useState ( "" ) ;
31
26
32
27
const code = searchParams . get ( "code" ) ;
33
28
const guild_id = searchParams . get ( "guild_id" ) ;
29
+ const channel_id = searchParams . get ( "channel_id" ) ;
30
+ const author_id = searchParams . get ( "author_id" ) ;
31
+ const request_platform = searchParams . get ( "platform" ) ;
32
+ const request_application = searchParams . get ( "application" ) ;
34
33
35
34
if ( error ) {
36
35
return (
@@ -47,13 +46,16 @@ const Verify = () => {
47
46
48
47
if ( verified ) {
49
48
return (
50
- < div className = "py-8 px-8 mx-auto md:px-16 md:max-w-2xl min-h-[calc(100vh-56px)] flex flex-col items-center justify-center" >
51
- < div className = "text-2xl font-black text-center md:text-3xl" >
52
- < span className = "uppercase text-tono-gradient" >
53
- Your wallet is verified! You can close this window
54
- </ span > { " " }
55
- ✨
49
+ < div className = "w-full min-h-[calc(100vh-56px)] flex flex-col items-center justify-center text-center px-4 space-y-6" >
50
+ < div className = "rounded-full bg-success-plain-active w-24 h-24 flex items-center justify-center border-[16px] border-success-soft" >
51
+ < CheckCircleHalfColoredLine className = "w-10 h-10 text-success-solid" />
56
52
</ div >
53
+ < p className = "text-2xl sm:text-3.5xl sm:leading-9 font-semibold text-text-primary" >
54
+ You have connected your wallet.
55
+ </ p >
56
+ < p className = "text-base sm:text-lg text-text-primary" >
57
+ Please close this window and go back to your Discord server.
58
+ </ p >
57
59
</ div >
58
60
) ;
59
61
}
@@ -91,8 +93,13 @@ const Verify = () => {
91
93
if ( ! code || loading ) return ;
92
94
setLoading ( true ) ;
93
95
const payload = {
94
- wallet_address : address ,
95
96
code,
97
+ guild_id,
98
+ channel_id,
99
+ author_id,
100
+ request_platform,
101
+ request_application,
102
+ wallet_address : address ,
96
103
signature,
97
104
message :
98
105
"Please sign this message to prove wallet ownership" ,
@@ -105,31 +112,15 @@ const Verify = () => {
105
112
""
106
113
) } `
107
114
)
108
- . badRequest ( setError )
109
- . json ( async ( r ) => {
110
- const user_discord_id = r . associated_accounts . find (
111
- ( aa : any ) => aa . platform === "discord"
112
- ) ?. platform_identifier ;
113
- if ( ! guild_id ) {
114
- setVerified ( true ) ;
115
- } else if ( user_discord_id ) {
116
- await API . MOCHI . post (
117
- {
118
- user_discord_id,
119
- guild_id,
120
- } ,
121
- `/verify/assign-role`
122
- )
123
- . badRequest ( setError )
124
- . res ( ( ) => {
125
- setVerified ( true ) ;
126
- } )
127
- . catch ( setError )
128
- . finally ( ( ) => {
129
- setLoading ( false ) ;
130
- onOpenChange ( false ) ;
131
- } ) ;
132
- }
115
+ . res ( ( ) => {
116
+ setVerified ( true ) ;
117
+ } )
118
+ . catch ( ( e : WretchError ) => {
119
+ setError ( e . json ?. msg ?? "Something went wrong" ) ;
120
+ } )
121
+ . finally ( ( ) => {
122
+ setLoading ( false ) ;
123
+ onOpenChange ( false ) ;
133
124
} ) ;
134
125
} }
135
126
/>
0 commit comments