PageSourceSearch

https://doctorpile.com/assets/student-register-V2KRUKgG.js

js doctorpile.com collected 2026-09-28 12:13:06 UTC 4,150 bytes, 1 lines download raw bytes

1import{a as v,r as f,j as e,I as s,B as g,L as C,t as m,b as p,c as w}from"./index-xiHmsbwW.js";import{P as _,S as N}from"./Section-D-jqfQ8n.js";import{C as S}from"./card-D-F8_TGl.js";import{L as q}from"./loader-circle-DY3bQWkx.js";import{o as A,s as n,l as r}from"./types-DnYw_nee.js";import"./chevron-right-C8VU1lGd.js";const I=A({full_name:n().trim().min(2).max(100),email:n().trim().email().max(255),phone:n().trim().min(7).max(20),password:n().min(8).max(72),city:n().trim().max(100).optional().or(r("")),qualification:n().trim().max(100).optional().or(r("")),profession:n().trim().max(100).optional().or(r("")),clinic_name:n().trim().max(200).optional().or(r("")),state:n().trim().max(100).optional().or(r("")),country:n().trim().max(100).default("India")});function z(){const u=v(),[l,c]=f.useState(!1),[t,j]=f.useState({full_name:"",email:"",phone:"",password:"",city:"",qualification:"",profession:"",clinic_name:"",state:"",country:"India"}),i=d=>a=>j({...t,[d]:a.target.value}),y=async d=>{d.preventDefault();const a=I.safeParse(t);if(!a.success){m.error(a.error.issues[0]?.message??"Invalid input");return}c(!0);const{data:h,error:x}=await p.auth.signUp({email:a.data.email,password:a.data.password,options:{emailRedirectTo:window.location.origin+"/student-dashboard",data:{full_name:a.data.full_name,phone:a.data.phone}}});if(x){m.error(x.message),c(!1);return}h.user&&await p.from("profiles").upsert({user_id:h.user.id,full_name:a.data.full_name,email:a.data.email,phone:a.data.phone,city:a.data.city||null,qualification:a.data.qualification||null,profession:a.data.profession||null,clinic_name:a.data.clinic_name||null,state:a.data.state||null,country:a.data.country},{onConflict:"user_id"}),m.success("Account created! You are signed in."),u({to:"/student-dashboard"})},b=async()=>{await p.auth.signInWithOAuth({provider:"google",options:{redirectTo:window.location.origin+"/student-dashboard"}})};return e.jsxs(e.Fragment,{children:[e.jsx(_,{eyebrow:"Create Account",title:"Student Registration",subtitle:"Join Dr. Kamthe's ATAB Accredited Certificate Course platform."}),e.jsx(N,{children:e.jsx(S,{className:"max-w-2xl mx-auto p-6 md:p-8",children:e.jsxs("form",{onSubmit:y,className:"grid md:grid-cols-2 gap-4",children:[e.jsx(o,{label:"Full Name *",children:e.jsx(s,{required:!0,value:t.full_name,onChange:i("full_name")})}),e.jsx(o,{label:"Email *",children:e.jsx(s,{type:"email",required:!0,value:t.email,onChange:i("email")})}),e.jsx(o,{label:"Mobile Number *",children:e.jsx(s,{required:!0,value:t.phone,onChange:i("phone")})}),e.jsx(o,{label:"Password * (min 8 chars)",children:e.jsx(s,{type:"password",required:!0,minLength:8,value:t.password,onChange:i("password")})}),e.jsx(o,{label:"City",children:e.jsx(s,{value:t.city,onChange:i("city")})}),e.jsx(o,{label:"State",children:e.jsx(s,{value:t.state,onChange:i("state")})}),e.jsx(o,{label:"Qualification",children:e.jsx(s,{placeholder:"e.g. BAMS, MD",value:t.qualification,onChange:i("qualification")})}),e.jsx(o,{label:"Profession",children:e.jsx(s,{placeholder:"e.g. Ayurvedic Practitioner",value:t.profession,onChange:i("profession")})}),e.jsx(o,{label:"Clinic / Hospital Name",full:!0,children:e.jsx(s,{value:t.clinic_name,onChange:i("clinic_name")})}),e.jsx(o,{label:"Country",full:!0,children:e.jsx(s,{value:t.country,onChange:i("country")})}),e.jsxs("div",{className:"md:col-span-2 mt-2 space-y-3",children:[e.jsxs(g,{type:"submit",disabled:l,size:"lg",className:"w-full",children:[l&&e.jsx(q,{className:"size-4 animate-spin"})," Create Student Account"]}),e.jsx(g,{type:"button",variant:"outline",size:"lg",className:"w-full",onClick:b,children:"Continue with Google"}),e.jsxs("p",{className:"text-sm text-center text-muted-foreground",children:["Already have an account?"," ",e.jsx(C,{to:"/student-login",search:{redirect:"/student-dashboard"},className:"text-primary font-semibold hover:underline",children:"Sign in"})]})]})]})})})]})}function o({label:u,children:l,full:c}){return e.jsxs("div",{className:c?"md:col-span-2":"",children:[e.jsx(w,{className:"text-sm font-medium",children:u}),e.jsx("div",{className:"mt-1.5",children:l})]})}
1export{z as component};

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.