1- import {
2- Tooltip ,
3- TooltipContent ,
4- TooltipProvider ,
5- TooltipTrigger ,
6- } from "@radix-ui/react-tooltip" ;
7- import { Card } from "./ui/card" ;
8- import QRCode from "react-qr-code" ;
9- import { Alert , AlertDescription , AlertTitle } from "./ui/alert" ;
10- import { CheckboxIcon , ExclamationTriangleIcon } from "@radix-ui/react-icons" ;
11- import { TypographyH2 , TypographyH3 , TypographyH4 } from "./ui/typography" ;
12- import { HighLight } from "./highLight" ;
13- import { Button } from "./ui/button" ;
14- import { FormEvent , useState } from "react" ;
15- import { useInterval } from "@/lib/hooks" ;
16- import { getRequestStatus } from "@/lib/api" ;
1+ import { getRequestStatus } from '@/lib/api'
2+ import { useInterval } from '@/lib/hooks'
3+ import { CheckboxIcon , ExclamationTriangleIcon } from '@radix-ui/react-icons'
4+ import { Tooltip , TooltipContent , TooltipProvider , TooltipTrigger } from '@radix-ui/react-tooltip'
5+ import { type FormEvent , useState } from 'react'
6+ import QRCode from 'react-qr-code'
7+ import { HighLight } from './highLight'
8+ import { Alert , AlertDescription , AlertTitle } from './ui/alert'
9+ import { Button } from './ui/button'
10+ import { Card } from './ui/card'
11+ import { TypographyH2 , TypographyH3 , TypographyH4 } from './ui/typography'
1712
1813type VerifyBlockProps = {
19- flowName : string ;
14+ flowName : string
2015 createRequest : ( ) => Promise < {
21- verificationSessionId : string ;
22- authorizationRequestUri : string ;
23- } > ;
24- } ;
16+ verificationSessionId : string
17+ authorizationRequestUri : string
18+ } >
19+ }
2520
26- export const VerifyBlock : React . FC < VerifyBlockProps > = ( {
27- createRequest,
28- flowName,
29- } ) => {
30- const [ authorizationRequestUri , setAuthorizationRequestUri ] =
31- useState < string > ( ) ;
32- const [ verificationSessionId , setVerificationSessionId ] = useState < string > ( ) ;
21+ export const VerifyBlock : React . FC < VerifyBlockProps > = ( { createRequest, flowName } ) => {
22+ const [ authorizationRequestUri , setAuthorizationRequestUri ] = useState < string > ( )
23+ const [ verificationSessionId , setVerificationSessionId ] = useState < string > ( )
3324 const [ requestStatus , setRequestStatus ] = useState < {
34- verificationSessionId : string ;
35- responseStatus :
36- | "RequestCreated"
37- | "RequestUriRetrieved"
38- | "ResponseVerified"
39- | "Error" ;
40- error ?: string ;
41- submission ?: Record < string , unknown > ;
42- definition ?: Record < string , unknown > ;
43- presentations ?: Array < string | Record < string , unknown > > ;
44- } > ( ) ;
25+ verificationSessionId : string
26+ responseStatus : 'RequestCreated' | 'RequestUriRetrieved' | 'ResponseVerified' | 'Error'
27+ error ?: string
28+ submission ?: Record < string , unknown >
29+ definition ?: Record < string , unknown >
30+ presentations ?: Array < string | Record < string , unknown > >
31+ } > ( )
4532
4633 const enabled =
4734 verificationSessionId !== undefined &&
48- requestStatus ?. responseStatus !== " ResponseVerified" &&
49- requestStatus ?. responseStatus !== " Error" ;
35+ requestStatus ?. responseStatus !== ' ResponseVerified' &&
36+ requestStatus ?. responseStatus !== ' Error'
5037
51- const authorizationRequestUriHasBeenFetched =
52- requestStatus ?. responseStatus === "RequestUriRetrieved" ;
53- const hasResponse = requestStatus ?. responseStatus === "ResponseVerified" ;
54- const isSuccess = requestStatus ?. responseStatus === "ResponseVerified" ;
38+ const authorizationRequestUriHasBeenFetched = requestStatus ?. responseStatus === 'RequestUriRetrieved'
39+ const hasResponse = requestStatus ?. responseStatus === 'ResponseVerified'
40+ const isSuccess = requestStatus ?. responseStatus === 'ResponseVerified'
5541
5642 useInterval ( {
5743 callback : async ( ) => {
58- if ( ! verificationSessionId ) return ;
44+ if ( ! verificationSessionId ) return
5945
60- const requestStatus = await getRequestStatus ( { verificationSessionId } ) ;
61- setRequestStatus ( requestStatus ) ;
46+ const requestStatus = await getRequestStatus ( { verificationSessionId } )
47+ setRequestStatus ( requestStatus )
6248 } ,
6349 interval : 500 ,
6450 enabled,
65- } ) ;
51+ } )
6652
6753 const onSubmitCreateRequest = async ( e : FormEvent ) => {
68- e . preventDefault ( ) ;
54+ e . preventDefault ( )
6955
7056 // Clear state
71- setAuthorizationRequestUri ( undefined ) ;
72- setVerificationSessionId ( undefined ) ;
73- setRequestStatus ( undefined ) ;
57+ setAuthorizationRequestUri ( undefined )
58+ setVerificationSessionId ( undefined )
59+ setRequestStatus ( undefined )
7460
75- const request = await createRequest ( ) ;
61+ const request = await createRequest ( )
7662
77- setVerificationSessionId ( request . verificationSessionId ) ;
78- setAuthorizationRequestUri ( request . authorizationRequestUri ) ;
79- } ;
63+ setVerificationSessionId ( request . verificationSessionId )
64+ setAuthorizationRequestUri ( request . authorizationRequestUri )
65+ }
8066
8167 return (
8268 < Card className = "p-6" >
@@ -93,11 +79,7 @@ export const VerifyBlock: React.FC<VerifyBlockProps> = ({
9379 </ div >
9480 < TooltipTrigger asChild >
9581 < p
96- onClick = { ( e ) =>
97- navigator . clipboard . writeText (
98- e . currentTarget . innerText
99- )
100- }
82+ onClick = { ( e ) => navigator . clipboard . writeText ( e . currentTarget . innerText ) }
10183 className = "text-gray-500 break-all cursor-pointer"
10284 >
10385 { authorizationRequestUri }
@@ -112,66 +94,42 @@ export const VerifyBlock: React.FC<VerifyBlockProps> = ({
11294 </ TooltipProvider >
11395 ) : authorizationRequestUriHasBeenFetched ? (
11496 < p className = "text-gray-500 break-all" >
115- Authorization request has been retrieved. Waiting for
116- response...
97+ Authorization request has been retrieved. Waiting for response...
11798 </ p >
11899 ) : (
119- < p className = "text-gray-500 break-all" >
120- Authorization request will be displayed here
121- </ p >
100+ < p className = "text-gray-500 break-all" > Authorization request will be displayed here</ p >
122101 ) }
123102 </ div >
124103 ) }
125104 { hasResponse && (
126105 < div className = "flex flex-col w-full gap-4" >
127- < Alert variant = { isSuccess ? "success" : "warning" } >
128- { isSuccess ? (
129- < CheckboxIcon className = "h-5 w-5" />
130- ) : (
131- < ExclamationTriangleIcon className = "h-4 w-4" />
132- ) }
133- < AlertTitle className = { isSuccess ? "mt-0.5" : "" } >
134- { isSuccess
135- ? "Verification Successful"
136- : "Verification Unsuccessful" }
106+ < Alert variant = { isSuccess ? 'success' : 'warning' } >
107+ { isSuccess ? < CheckboxIcon className = "h-5 w-5" /> : < ExclamationTriangleIcon className = "h-4 w-4" /> }
108+ < AlertTitle className = { isSuccess ? 'mt-0.5' : '' } >
109+ { isSuccess ? 'Verification Successful' : 'Verification Unsuccessful' }
137110 </ AlertTitle >
138111 { ! isSuccess && (
139- < AlertDescription className = "mt-2" >
140- { requestStatus ?. error ?? "Unknown error occurred" }
141- </ AlertDescription >
112+ < AlertDescription className = "mt-2" > { requestStatus ?. error ?? 'Unknown error occurred' } </ AlertDescription >
142113 ) }
143114 </ Alert >
144115 < div >
145116 < TypographyH4 > Presentation Definition</ TypographyH4 >
146- < HighLight
147- code = { JSON . stringify ( requestStatus ?. definition , null , 2 ) }
148- language = "json"
149- />
117+ < HighLight code = { JSON . stringify ( requestStatus ?. definition , null , 2 ) } language = "json" />
150118 </ div >
151119 < div >
152120 < TypographyH4 > Presentation Submission</ TypographyH4 >
153- < HighLight
154- code = { JSON . stringify ( requestStatus ?. submission , null , 2 ) }
155- language = "json"
156- />
121+ < HighLight code = { JSON . stringify ( requestStatus ?. submission , null , 2 ) } language = "json" />
157122 </ div >
158123 < div >
159124 < TypographyH4 > Presentations</ TypographyH4 >
160- < HighLight
161- code = { JSON . stringify ( requestStatus ?. presentations , null , 2 ) }
162- language = "json"
163- />
125+ < HighLight code = { JSON . stringify ( requestStatus ?. presentations , null , 2 ) } language = "json" />
164126 </ div >
165127 </ div >
166128 ) }
167- < Button
168- onClick = { onSubmitCreateRequest }
169- className = "w-full"
170- onSubmit = { onSubmitCreateRequest }
171- >
129+ < Button onClick = { onSubmitCreateRequest } className = "w-full" onSubmit = { onSubmitCreateRequest } >
172130 Verify Credential
173131 </ Button >
174132 </ form >
175133 </ Card >
176- ) ;
177- } ;
134+ )
135+ }
0 commit comments