PageSourceSearch

https://getmelon.com.au/assets/ApplyDealer-PKe6Y68I.js

js getmelon.com.au collected 2026-09-30 06:38:17 UTC 8,543 bytes, 1 lines download raw bytes

1import{u as _,p as A,r as p,j as e,d as x,i as u}from"./index-DjvjYx8D.js";import{B as b}from"./button-Cz5sYbhP.js";import{I as c}from"./input-vy9OFss5.js";import{L as n}from"./label-BVrYemgw.js";import{C as X,b as F,d as D,c as E,a as I}from"./card-BoeYN9zz.js";import{S as L,a as B,b as T,c as k,d as R}from"./select-CfoOE7i0.js";import{m as q}from"./melon-logo-DaaW67WJ.js";import{P as $}from"./PublicNavBar-C-wZl_UG.js";import{A as Z}from"./arrow-left-DXjop1Hu.js";import{o as M,s as l,Z as V}from"./types-CtWaBghH.js";import"./index-BdQq_4o_.js";import"./index-D8K3azz-.js";import"./Combination-Cmn8Mk01.js";import"./index-Dv7kNRC4.js";import"./chevron-down-BXueFYvF.js";import"./check-BUcFAsHw.js";import"./dropdown-menu-MtG1yKvd.js";import"./index-DAoShclu.js";import"./chevron-right-LW5lYHnM.js";import"./arrow-right-BQhxQtC5.js";const z=M({firstName:l().min(2,"First name must be at least 2 characters"),lastName:l().min(2,"Last name must be at least 2 characters"),email:l().email("Invalid email address"),password:l().min(10,"Password must be at least 10 characters").regex(/[A-Z]/,"Password must contain at least one uppercase letter").regex(/[a-z]/,"Password must contain at least one lowercase letter").regex(/[0-9]/,"Password must contain at least one number").regex(/[^A-Za-z0-9]/,"Password must contain at least one special character"),confirmPassword:l(),mobile:l().min(10,"Please enter a valid mobile number"),companyName:l().min(2,"Company name must be at least 2 characters").max(100),abn:l().regex(/^\d{2}\s?\d{3}\s?\d{3}\s?\d{3}$/,"Invalid ABN format (XX XXX XXX XXX)"),companyAddress:l().min(5,"Please enter a valid address"),companyState:l().min(1,"Please select a state"),companyPostcode:l().regex(/^\d{4}$/,"Postcode must be 4 digits")}).refine(d=>d.password===d.confirmPassword,{message:"Passwords don't match",path:["confirmPassword"]}),U=["NSW","VIC","QLD","SA","WA","TAS","NT","ACT"];function pe(){const d=_(),{code:f}=A(),[g,y]=p.useState(!1),[r,o]=p.useState({}),[t,j]=p.useState({}),[w,P]=p.useState(null),[v,C]=p.useState(null);p.useEffect(()=>{(async()=>{if(f)try{const{data:s,error:m}=await x.from("affiliate_codes").select("user_id, user_type").eq("code",f).eq("user_type","dealer").eq("is_active",!0).maybeSingle();if(m){console.error("Error validating referral code:",m),u.error("Invalid referral code");return}if(!s){u.error("Invalid or inactive referral code");return}P(s.user_id);const{data:i}=await x.from("profiles").select("company_name, first_name, last_name").eq("user_id",s.user_id
1).maybeSingle();if(i){const h=i.company_name||`${i.first_name||""} ${i.last_name||""}`.trim();C(h)}}catch(s){console.error("Error loading referral:",s)}})()},[f]);const S=async a=>{a.preventDefault(),y(!0),j({});try{const s=z.parse(r),{data:m,error:i}=await x.auth.signUp({email:s.email,password:s.password,options:{emailRedirectTo:`${window.location.origin}/`,data:{first_name:s.firstName,last_name:s.lastName,mobile:s.mobile}}});if(i)throw i;if(!m.user)throw new Error("Failed to create account");const{error:h}=await x.from("profiles").update({company_name:s.companyName,abn:s.abn.replace(/\s/g,""),company_address:s.companyAddress,company_state:s.companyState,company_postcode:s.companyPostcode}).eq("user_id",m.user.id);if(h)throw h;const{error:N}=await x.from("dealer_applications").insert({user_id:m.user.id,company_name:s.companyName,abn:s.abn.replace(/\s/g,""),company_address:s.companyAddress,company_state:s.companyState,company_postcode:s.companyPostcode,status:"pending",referred_by_dealer_id:w});if(N)throw N;u.success("Application submitted! Awaiting admin approval."),d("/application-success")}catch(s){if(s instanceof V){const m={};s.errors.forEach(i=>{i.path[0]&&(m[i.path[0]]=i.message)}),j(m)}else console.error("Signup error:",s),u.error(s.message||"Failed to create account")}finally{y(!1)}};return e.jsxs(e.Fragment,{children:[e.jsx($,{onLoginClick:()=>d("/get-started?tab=login"),onApplyClick:()=>d("/get-started?tab=apply")}),e.jsx("div",{className:"min-h-screen bg-gradient-to-br from-primary/5 via-background to-secondary/5 p-4 pt-20",children:e.jsxs("div",{className:"max-w-2xl mx-auto",children:[e.jsxs(b,{variant:"ghost",className:"mb-4",onClick:()=>d("/"),children:[e.jsx(Z,{className:"h-4 w-4 mr-2"}),"Back"]}),e.jsx("div",{className:"flex justify-center mb-6",children:e.jsx("img",{src:q,alt:"Melon logo",className:"h-16"})}),e.jsx("h1",{className:"sr-only",children:"Apply to Become a Melon Dealer Partner"}),e.jsxs(X,{children:[e.jsxs(F,{children:[e.jsx(D,{children:"Partner as a Dealer"}),e.jsxs(E,{children:["Join our dealer network and offer our moped rental service to your customers",v&&e.jsxs("span",{className:"block mt-2 text-primary font-medium",children:["Referred by: ",v]})]})]}),e.jsx(I,{children:e.jsxs("form",{onSubmit:S,className:"space-y-6",children:[e.jsxs("div",{className:"space-y-4",children:[e.jsx("h3",{className:"text-lg font-semibold",children:"Personal Contact"}),e.jsxs("div",{className:"grid grid-cols-2 gap-4",children:[e.jsxs("div",{children:[e.jsx(n,{htmlFor:"firstName",children:"First Name *"}),e.jsx(c,{id:"firstName",value:r.firstName||"",onChange:a=>o({...r,firstName:a.target.value})}),t.firstName&&e.jsx("p",{className:"text-sm text-destructive",children:t.firstName})]}),e.jsxs("div",{children:[e.jsx(n,{htmlFor:"lastName",children:"Last Name *"}),e.jsx(c,{id:"lastName",value:r.lastName||"",onChange:a=>o({...r,lastName:a.target.value})}),t.lastName&&e.jsx("p",{className:"text-sm text-destructive",children:t.lastName})]})]}),e.jsxs("div",{children:[e.jsx(n,{htmlFor:"email",children:"Email *"}),e.jsx(c,{id:"email",type:"email",value:r.email||"",onChange:a=>o({...r,email:a.target.value})}),t.email&&e.jsx("p",{className:"text-sm text-destructive",children:t.email})]}),e.jsxs("div",{children:[e.jsx(n,{htmlFor:"mobile",children:"Mobile *"}),e.jsx(c,{id:"mobile",type:"tel",value:r.mobile||"",onChange:a=>o({...r,mobile:a.target.value})}),t.mobile&&e.jsx("p",{className:"text-sm text-destructive",children:t.mobile})]}),e.jsxs("div",{className:"grid grid-cols-2 gap-4",children:[e.jsxs("div",{children:[e.jsx(n,{htmlFor:"password",children:"Password *"}),e.jsx(c,{id:"password",type:"password",value:r.password||"",onChange:a=>o({...r,password:a.target.value})}),t.password&&e.jsx("p",{className:"text-sm text-destructive",children:t.password})]}),e.jsxs("div",{children:[e.jsx(n,{htmlFor:"confirmPassword",children:"Confirm Password *"}),e.jsx(c,{id:"confirmPassword",type:"password",value:r.confirmPassword||"",onChange:a=>o({...r,confirmPassword:a.target.value})}),t.confirmPassword&&e.jsx("p",{className:"text-sm text-destructive",children:t.confirmPassword})]})]})]}),e.jsxs("div",{className:"space-y-4",children:[e.jsx("h3",{className:"text-lg font-semibold",children:"Business Information"}),e.jsxs("div",{children:[e.jsx(n,{htmlFor:"companyName",children:"Company Name *"}),e.jsx(c,{id:"companyName",value:r.companyName||"",onChange:a=>o({...r,companyName:a.target.value})}),t.companyName&&e.jsx("p",{className:"text-sm text-destructive",children:t.companyName})]}),e.jsxs("div",{children:[e.jsx(n,{htmlFor:"abn",children:"ABN *"}),e.jsx(c,{id:"abn",placeholder:"XX XXX XXX XXX",value:r.abn||"",onChange:a=>o({...r,abn:a.target.value})}),t.abn&&e.jsx("p",{className:"text-sm text-destructive",children:t.abn})]}),e.jsxs("div",{children:[e.jsx(n,{htmlFor:"companyAddress",children:"Business Address *"}),e.jsx(c,{id:"companyAddress",value:r.companyAddress||"",onChange:a=>o({...r,companyAddress:a.target.value})}),t.companyAddress&&e.jsx("p",{className:"text-sm text-destructive",children:t.companyAddress})]}),e.jsxs("div",{className:"grid grid-cols-2 gap-4",children:[e.jsxs("div",{children:[e.jsx(n,{htmlFor:"companyState",children:"State *"}),e.jsxs(L,{value:r.companyState,onValueChange:a=>o({...r,companyState:a}),children:[e.jsx(B,{children:e.jsx(T,{placeholder:"Select state"})}),e.jsx(k,{children:U.map(a=>e.jsx(R,{value:a,children:a},a))})]}),t.companyState&&e.jsx("p",{className:"text-sm text-destructive",children:t.companyState})]}),e.jsxs("div",{children:[e.jsx(n,{htmlFor:"companyPostcode",children:"Postcode *"}),e.jsx(c,{id:"companyPostcode",placeholder:"XXXX",maxLength:4,value:r.companyPostcode||"",onChange:a=>o({...r,companyPostcode:a.target.value})}),t.companyPostcode&&e.jsx("p",{className:"text-sm text-destructive",children:t.companyPostcode})]})]})]}),e.jsx(b,{type:"submit",className:"w-full",disabled:g,children:g?"Creating Account...":"Create Dealer Account"})]})})]})]})})]})}export{pe as default};

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.