引入 husky,并全局重新格式化
This commit is contained in:
@@ -24,7 +24,6 @@ import {CheckCircle, CheckCircleIcon, WorkflowIcon} from 'lucide-react'
|
||||
export type IdentifyPageProps = {}
|
||||
|
||||
export default function IdentifyPage(props: IdentifyPageProps) {
|
||||
|
||||
// ======================
|
||||
// 填写信息
|
||||
// ======================
|
||||
@@ -104,72 +103,72 @@ export default function IdentifyPage(props: IdentifyPageProps) {
|
||||
// ======================
|
||||
|
||||
return (
|
||||
<Page className={`flex-row`}>
|
||||
<div className={`flex-3/4 flex flex-col bg-white rounded-lg overflow-hidden gap-16`}>
|
||||
<Page className="flex-row">
|
||||
<div className="flex-3/4 flex flex-col bg-white rounded-lg overflow-hidden gap-16">
|
||||
|
||||
{/* banner */}
|
||||
<section className={`flex-none basis-40 relative flex flex-col gap-4 pl-8 justify-center`}>
|
||||
<Image src={banner} alt={`背景图`} aria-hidden className={`absolute inset-0 w-full h-full object-cover`}/>
|
||||
<h3 className={`text-lg font-bold z-10 relative`}>蓝狐HTTP邀请您参与【先测后买】服务</h3>
|
||||
<p className={`text-sm text-gray-600 z-10 relative`}>为了保障您的账户安全,请先完成实名认证,即可获取福利套餐测试资格</p>
|
||||
<section className="flex-none basis-40 relative flex flex-col gap-4 pl-8 justify-center">
|
||||
<Image src={banner} alt="背景图" aria-hidden className="absolute inset-0 w-full h-full object-cover"/>
|
||||
<h3 className="text-lg font-bold z-10 relative">蓝狐HTTP邀请您参与【先测后买】服务</h3>
|
||||
<p className="text-sm text-gray-600 z-10 relative">为了保障您的账户安全,请先完成实名认证,即可获取福利套餐测试资格</p>
|
||||
</section>
|
||||
|
||||
<div className={`flex-auto flex justify-center items-start`}>
|
||||
<div className="flex-auto flex justify-center items-start">
|
||||
{/* 个人认证 */}
|
||||
<section className={`w-96 bg-gray-50 p-8 rounded-md flex flex-col gap-4 items-center`}>
|
||||
<Image src={personal} alt={`个人认证`}/>
|
||||
<section className="w-96 bg-gray-50 p-8 rounded-md flex flex-col gap-4 items-center">
|
||||
<Image src={personal} alt="个人认证"/>
|
||||
<div>
|
||||
<h3 className={`text-center text-lg font-bold`}>个人认证</h3>
|
||||
<p className={`text-sm text-gray-600`}>
|
||||
<h3 className="text-center text-lg font-bold">个人认证</h3>
|
||||
<p className="text-sm text-gray-600">
|
||||
平台不会收集您的个人信息,您的信息仅用于账户安全认证
|
||||
</p>
|
||||
</div>
|
||||
{profile?.id_token ? (
|
||||
<p className={`flex gap-2 items-center`}>
|
||||
<CheckCircleIcon className={`text-done`}/>
|
||||
<p className="flex gap-2 items-center">
|
||||
<CheckCircleIcon className="text-done"/>
|
||||
<span>已完成实名认证</span>
|
||||
</p>
|
||||
) : (
|
||||
<Dialog open={openDialog} onOpenChange={setOpenDialog}>
|
||||
<DialogTrigger asChild>
|
||||
<Button className={`w-full`}>去认证</Button>
|
||||
<Button className="w-full">去认证</Button>
|
||||
</DialogTrigger>
|
||||
<DialogContent>
|
||||
<DialogTitle>
|
||||
{step === 'form' ? `实名认证` : `扫码完成认证`}
|
||||
</DialogTitle>
|
||||
{step === 'form' && (
|
||||
<Form form={form} handler={handler} className={`flex flex-col gap-4`}>
|
||||
<FormField<Schema> name={`name`} label={`姓名`}>
|
||||
<Form form={form} handler={handler} className="flex flex-col gap-4">
|
||||
<FormField<Schema> name="name" label="姓名">
|
||||
{({id, field}) => (
|
||||
<input
|
||||
{...field}
|
||||
id={id}
|
||||
placeholder={`请输入姓名`}
|
||||
className={`border rounded p-2 w-full`}
|
||||
autoComplete={`name`}
|
||||
placeholder="请输入姓名"
|
||||
className="border rounded p-2 w-full"
|
||||
autoComplete="name"
|
||||
/>
|
||||
)}
|
||||
</FormField>
|
||||
<FormField<Schema> name={`iden_no`} label={`身份证号`}>
|
||||
<FormField<Schema> name="iden_no" label="身份证号">
|
||||
{({id, field}) => (
|
||||
<input
|
||||
{...field}
|
||||
id={id}
|
||||
placeholder={`请输入身份证号`}
|
||||
className={`border rounded p-2 w-full`}
|
||||
placeholder="请输入身份证号"
|
||||
className="border rounded p-2 w-full"
|
||||
/>
|
||||
)}
|
||||
</FormField>
|
||||
<DialogFooter>
|
||||
<Button type={`submit`} className={`w-full mt-4`}>提交</Button>
|
||||
<Button type="submit" className="w-full mt-4">提交</Button>
|
||||
</DialogFooter>
|
||||
</Form>
|
||||
)}
|
||||
{step === 'scan' && (
|
||||
<div className={`flex flex-col gap-4 items-center`}>
|
||||
<div className="flex flex-col gap-4 items-center">
|
||||
<canvas ref={canvas} width={256} height={256}/>
|
||||
<p className={`text-sm text-gray-600`}>请扫码完成认证</p>
|
||||
<p className="text-sm text-gray-600">请扫码完成认证</p>
|
||||
<Button onClick={async () => {
|
||||
await refreshProfile()
|
||||
setOpenDialog(false)
|
||||
@@ -185,48 +184,51 @@ export default function IdentifyPage(props: IdentifyPageProps) {
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<Card className={`flex-none basis-80`}>
|
||||
<Card className="flex-none basis-80">
|
||||
<CardHeader>
|
||||
<CardTitle>
|
||||
<WorkflowIcon size={18}/>操作引导
|
||||
<WorkflowIcon size={18}/>
|
||||
操作引导
|
||||
</CardTitle>
|
||||
</CardHeader>
|
||||
<CardContent className={`flex flex-col px-4`}>
|
||||
<p className={`text-sm text-weak mb-4`}>
|
||||
<CardContent className="flex flex-col px-4">
|
||||
<p className="text-sm text-weak mb-4">
|
||||
为响应国家相关规定,使用HTTP代理需完成实名认证。认证服务由支付宝提供,您的个人信息将受到严格保护,仅用于账户安全认证
|
||||
</p>
|
||||
<p className={`flex gap-2 items-center justify-between w-56 self-center`}>
|
||||
<span className={`flex gap-2`}>
|
||||
<span className={`bg-primary/25 text-primary w-8 h-8 rounded-full flex items-center justify-center`}>01</span>
|
||||
<span>注册账号</span>
|
||||
</span>
|
||||
<Image alt={`步骤配图`} src={step1} aria-hidden/>
|
||||
<p className="flex gap-2 items-center justify-between w-56 self-center">
|
||||
<span className="flex gap-2">
|
||||
<span className="bg-primary/25 text-primary w-8 h-8 rounded-full flex items-center justify-center">01</span>
|
||||
<span>注册账号</span>
|
||||
</span>
|
||||
<Image alt="步骤配图" src={step1} aria-hidden/>
|
||||
</p>
|
||||
<div className={`h-16 w-56 px-4 flex self-center`}>
|
||||
<div className="h-16 w-56 px-4 flex self-center">
|
||||
<div className={merge(
|
||||
`w-0 h-full border-x border-primary border-dashed relative`,
|
||||
`after:absolute after:-left-[3px] after:bottom-0 after:w-[6px] after:h-[6px] after:rounded-full after:bg-primary`,
|
||||
)}></div>
|
||||
)}>
|
||||
</div>
|
||||
</div>
|
||||
<p className={`flex gap-2 items-center justify-between w-56 self-center`}>
|
||||
<span className={`flex gap-2`}>
|
||||
<span className={`bg-primary/25 text-primary w-8 h-8 rounded-full flex items-center justify-center`}>02</span>
|
||||
<span>实名认证</span>
|
||||
</span>
|
||||
<Image alt={`步骤配图`} src={step2} aria-hidden/>
|
||||
<p className="flex gap-2 items-center justify-between w-56 self-center">
|
||||
<span className="flex gap-2">
|
||||
<span className="bg-primary/25 text-primary w-8 h-8 rounded-full flex items-center justify-center">02</span>
|
||||
<span>实名认证</span>
|
||||
</span>
|
||||
<Image alt="步骤配图" src={step2} aria-hidden/>
|
||||
</p>
|
||||
<div className={`h-16 w-56 px-4 flex self-center`}>
|
||||
<div className="h-16 w-56 px-4 flex self-center">
|
||||
<div className={merge(
|
||||
`w-0 h-full border-x border-primary border-dashed relative`,
|
||||
`after:absolute after:-left-[3px] after:bottom-0 after:w-[6px] after:h-[6px] after:rounded-full after:bg-primary`,
|
||||
)}></div>
|
||||
)}>
|
||||
</div>
|
||||
</div>
|
||||
<p className={`flex gap-2 items-center justify-between w-56 self-center`}>
|
||||
<span className={`flex gap-2`}>
|
||||
<span className={`bg-primary/25 text-primary w-8 h-8 rounded-full flex items-center justify-center`}>03</span>
|
||||
<span>充值、支付</span>
|
||||
</span>
|
||||
<Image alt={`步骤配图`} src={step3} aria-hidden/>
|
||||
<p className="flex gap-2 items-center justify-between w-56 self-center">
|
||||
<span className="flex gap-2">
|
||||
<span className="bg-primary/25 text-primary w-8 h-8 rounded-full flex items-center justify-center">03</span>
|
||||
<span>充值、支付</span>
|
||||
</span>
|
||||
<Image alt="步骤配图" src={step3} aria-hidden/>
|
||||
</p>
|
||||
</CardContent>
|
||||
</Card>
|
||||
|
||||
Reference in New Issue
Block a user