2024-06-01 17:40:29 +03:00
import { CheckIcon , XMarkIcon , QuestionMarkCircleIcon , FingerPrintIcon , LockClosedIcon } from '@heroicons/react/24/outline'
2024-06-01 23:58:11 +03:00
import Logo from './logo' ;
2024-06-01 23:42:20 +03:00
import { SessionState } from '../lib/session' ;
2024-06-01 17:40:29 +03:00
2024-06-01 23:42:20 +03:00
/ *
2024-06-01 17:40:29 +03:00
const features = [
{
name : 'Correct Questions' ,
description :
'You got [insert number here] questions right! Good Job!' ,
icon : CheckIcon ,
} ,
{
name : 'Incorrect Questions' ,
description :
'You got [insert number here] questions wrong! You can do better!' ,
icon : XMarkIcon ,
} ,
{
name : 'Total Questions' ,
description :
'There were [insert number here] questions in total.' ,
icon : QuestionMarkCircleIcon ,
}
]
2024-06-01 23:42:20 +03:00
* /
2024-06-01 17:40:29 +03:00
2024-06-01 23:42:20 +03:00
const Result = ( { name , text1 , number , text2 , Icon } : { name : string , text1 : string , number : number , text2 : string , Icon : any } ) = > {
return (
< div className = "relative pl-16" >
< dt className = "text-base font-semibold leading-7 text-gray-100" >
< div className = "absolute left-0 top-0 flex h-10 w-10 items-center justify-center rounded-lg bg-indigo-600" >
< Icon className = "h-6 w-6 text-white" aria-hidden = "true" / >
< / div >
{ name }
< / dt >
< dd className = "mt-2 text-base leading-7 text-gray-300" > { ` ${ text1 } ${ number } ${ text2 } ` } < / dd >
< / div >
// {/* <p className="relative pl-16">{`${text1} ${number} ${text2}`}</p> */}
)
}
const ResultScreen = ( { state } : { state : SessionState } ) = > {
2024-06-01 17:40:29 +03:00
return (
2024-06-01 17:48:45 +03:00
< div className = "py-24 sm:py-32" >
< div
className = "absolute inset-x-0 -top-40 -z-10 transform-gpu overflow-hidden blur-3xl sm:-top-80"
aria - hidden = "true"
>
< div
className = "relative left-[calc(50%-11rem)] aspect-[1155/678] w-[36.125rem] -translate-x-1/2 rotate-[30deg] bg-gradient-to-tr from-[#ff80b5] to-[#9089fc] opacity-30 sm:left-[calc(50%-30rem)] sm:w-[72.1875rem]"
style = { {
clipPath :
'polygon(74.1% 44.1%, 100% 61.6%, 97.5% 26.9%, 85.5% 0.1%, 80.7% 2%, 72.5% 32.5%, 60.2% 62.4%, 52.4% 68.1%, 47.5% 58.3%, 45.2% 34.5%, 27.5% 76.7%, 0.1% 64.9%, 17.9% 100%, 27.6% 76.8%, 76.1% 97.7%, 74.1% 44.1%)' ,
} }
/ >
< / div >
< Logo / >
< div style = { { paddingBottom : '128px' } } > < / div >
2024-06-01 17:40:29 +03:00
< div className = "mx-auto max-w-7xl px-6 lg:px-8" >
< div className = "mx-auto max-w-2xl lg:text-center" >
< h2 className = "text-base font-semibold leading-7 text-indigo-300" > You did it ! < / h2 >
< p className = "mt-2 text-3xl font-bold tracking-tight text-gray-100 sm:text-4xl" >
Here are the results :
2024-06-02 01:21:06 +03:00
< / p >
2024-06-01 17:40:29 +03:00
< p className = "mt-6 text-lg leading-8 text-gray-600" >
On this page you can see what you did at the quiz . We ' ll give your wrong questions again , another time !
< / p >
< / div >
< div className = "mx-auto mt-16 max-w-2xl sm:mt-20 lg:mt-24 lg:max-w-4xl" >
< dl className = "grid max-w-xl grid-cols-1 gap-x-8 gap-y-10 lg:max-w-none lg:grid-cols-2 lg:gap-y-16" >
2024-06-01 23:42:20 +03:00
{ / * { f e a t u r e s . m a p ( ( f e a t u r e ) = > (
2024-06-01 17:40:29 +03:00
< div key = { feature . name } className = "relative pl-16" >
< dt className = "text-base font-semibold leading-7 text-gray-100" >
< div className = "absolute left-0 top-0 flex h-10 w-10 items-center justify-center rounded-lg bg-indigo-600" >
< feature.icon className = "h-6 w-6 text-white" aria-hidden = "true" / >
< / div >
{ feature . name }
< / dt >
< dd className = "mt-2 text-base leading-7 text-gray-300" > { feature . description } < / dd >
< / div >
2024-06-01 23:42:20 +03:00
) ) } * / }
< Result name = "Correct Answers" key = "correct" text1 = "Congrats for your" number = { state . right } text2 = "correctly answered questions! Great job!" Icon = { CheckIcon } / >
< Result name = "Wrong Answers" key = "wrong" text1 = "You had" number = { state . wrong } text2 = "wrong answers... It's never too late to learn!" Icon = { XMarkIcon } / >
< Result name = "Total answers" key = "total" text1 = "The" number = { state . answered } text2 = "questions you answered surely helped you learn more." Icon = { QuestionMarkCircleIcon } / >
2024-06-01 17:40:29 +03:00
< / dl >
< br > < / br >
< a
href = "sessionconfig"
className = "rounded-md bg-indigo-600 px-3.5 py-2.5 text-sm font-semibold text-gray-100 shadow-sm hover:bg-indigo-900 focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-white"
style = { { marginTop : '100px' } }
>
Go Back
< / a >
< / div >
< / div >
2024-06-01 17:48:45 +03:00
< div
className = "absolute inset-x-0 top-[calc(100%-13rem)] -z-10 transform-gpu overflow-hidden blur-3xl sm:top-[calc(100%-30rem)]"
aria - hidden = "true"
>
< div
className = "relative left-[calc(50%+3rem)] aspect-[1155/678] w-[36.125rem] -translate-x-1/2 bg-gradient-to-tr from-[#ff80b5] to-[#9089fc] opacity-30 sm:left-[calc(50%+36rem)] sm:w-[72.1875rem]"
style = { {
clipPath :
'polygon(74.1% 44.1%, 100% 61.6%, 97.5% 26.9%, 85.5% 0.1%, 80.7% 2%, 72.5% 32.5%, 60.2% 62.4%, 52.4% 68.1%, 47.5% 58.3%, 45.2% 34.5%, 27.5% 76.7%, 0.1% 64.9%, 17.9% 100%, 27.6% 76.8%, 76.1% 97.7%, 74.1% 44.1%)' ,
} }
/ >
< / div >
2024-06-01 17:40:29 +03:00
< / div >
)
}
2024-06-01 23:42:20 +03:00
export default ResultScreen ;