PageSourceSearch

https://didjalist.floot.app/_assets/login-Rc3fSKqu.js

js didjalist.floot.app collected 2026-10-03 04:01:16 UTC 9,016 bytes, 1 lines download raw bytes

1import{r as b,j as e,a8 as Q,a9 as C,aa as X,ab as N,ac as Z,ad as A,ae as ee,af as se,ag as ae,ah as te,o as V,z as j,ai as D,aj as re}from"./vendor-D3v4axMk.js";import{u as B,F as q,a as x,b as v,c as T,d as y,S as k,e as M}from"./Spinner-Bj6hYo1l.js";import{I as w}from"./Input-CwJCo-5d.js";import{u as z,B as G}from"./index-DQZ93539.js";var ne=Object.defineProperty,f=(n,s)=>ne(n,"name",{value:s,configurable:!0}),P="Tabs",[oe,He]=ee(P,[A]),O=A(),[ie,$]=oe(P),le=b.forwardRef(f(function(s,o){const{__scopeTabs:i,value:t,onValueChange:c,defaultValue:m,orientation:l="horizontal",dir:u,activationMode:g="automatic",...a}=s,r=se(u),[d,h]=ae({prop:t,onChange:c,defaultProp:m??"",caller:P});return e.jsx(ie,{scope:i,baseId:te(),value:d,onValueChange:h,orientation:l,dir:r,activationMode:g,children:e.jsx(C.div,{dir:r,"data-orientation":l,...a,ref:o})})},"Tabs")),ce="TabsList",de=b.forwardRef(f(function(s,o){const{__scopeTabs:i,loop:t=!0,...c}=s,m=$(ce,i),l=O(i);return e.jsx(Q,{asChild:!0,...l,orientation:m.orientation,dir:m.dir,loop:t,children:e.jsx(C.div,{role:"tablist","aria-orientation":m.orientation,...c,ref:o})})},"TabsList")),ue="TabsTrigger",me=b.forwardRef(f(function(s,o){const{__scopeTabs:i,value:t,disabled:c=!1,...m}=s,l=$(ue,i),u=O(i),g=R(l.baseId,t),a=E(l.baseId,t),r=t===l.value;return e.jsx(X,{asChild:!0,...u,focusable:!c,active:r,children:e.jsx(C.button,{type:"button",role:"tab","aria-selected":r,"aria-controls":a,"data-state":r?"active":"inactive","data-disabled":c?"":void 0,disabled:c,id:g,...m,ref:o,onMouseDown:N(s.onMouseDown,d=>{!c&&d.button===0&&d.ctrlKey===!1?l.onValueChange(t):d.preventDefault()}),onKeyDown:N(s.onKeyDown,d=>{c||d.target!==d.currentTarget||[" ","Enter"].includes(d.key)&&l.onValueChange(t)}),onFocus:N(s.onFocus,()=>{const d=l.activationMode!=="manual";!r&&!c&&d&&l.onValueChange(t)})})})},"TabsTrigger")),ge="TabsContent",be=b.forwardRef(f(function(s,o){const{__scopeTabs:i,value:t,forceMount:c,children:m,...l}=s,u=$(ge,i),g=R(u.baseId,t),a=E(u.baseId,t),r=t===u.value,d=b.useRef(r);return b.useEffect(()=>{const h=requestAnimationFrame(()=>d.current=!1);return()=>cancelAnimationFrame(h)},[]),e.jsx(Z,{present:c||r,children:({present:h})=>e.jsx(C.div,{"data-state":r?"active":"inactive","data-orientation":u.orientation,role:"tabpanel","aria-labelledby":g,hidden:!h,id:a,tabIndex:0,...l,ref:o,style:{...s.style,animationDuration:d.current?"0s":void 0},children:h&&m})})},"TabsContent"));function R(n,s){return`${n}-trigger-${s}`}f(R,"makeTriggerId");function E(n,s){return`${n}-content-${s}`}f(E,"makeContentId");var pe=le,K=de,H=me,J=be;const he="_tabsList_22vco_2",fe="_tabsTrigger_22vco_16",_e="_tabsContent_22vco_92",F={tabsList:he,tabsTrigger:fe,tabsContent:_e},je=pe,U=b.forwardRef(({className:n,...s},o)=>e.jsx(K,{ref:o,className:`${F.tabsList} ${n||""}`,...s}));U.displayName=K.displayName;const S=b.forwardRef(({className:n,...s},o)=>e.jsx(H,{ref:o,className:`${F.tabsTrigger} ${n||""}`,...s}));S.displayName=H.displayName;const I=b.forwardRef(({className:n,...s},o)=>e.jsx(J,{ref:o,className:`${F.tabsContent} ${n||""}`,...s}));I.displayName=J.displayName;const xe="_form_1q6v5_1",ve="_errorMessage_1q6v5_7",Te="_submitButton_1q6v5_17",ye="_loadingText_1q6v5_21",we="_spinner_1q6v5_28",_={form:xe,errorMessage:ve,submitButton:Te,loadingText:ye,spinner:we},W=V({email:j().email("Email is required"),password:j().min(1,"Password is required")}),Ce=async(n,s)=>{const o=W.parse(n),i=await fetch("/_api/auth/login_with_password",{method:"POST",body:JSON.stringify(o),...s,headers:{"Content-Type":"application/json"},credentials:"include"});if(!i.ok){const t=await i.json();throw new Error(t.message||"Login failed")}return i.json()},Ne=({className:n})=>{const[s,o]=b.useState(!1),[i,t]=b.useState(null),{onLogin:c}=z(),m=D(),l=B({defaultValues:{email:"",password:""},schema:W}),u=async g=>{t(null),o(!0);try{const a=await Ce(g);c(a.user),setTimeout(()=>m("/"),200)}catch(a){console.error("Login error:",a),t(a instanceof Error?a.message:"Login failed. Please try again.")}finally{o(!1)}};return e.jsx(q,{...l,children:e.jsxs("form",{onSubmit:l.handleSubmit(u),className:`${_.form} ${n||""}`,children:[i&&e.jsx("div",{className:_.errorMessage,children:i}),e.jsxs(x,{name:"email",children:[e.jsx(v,{children:"Email"}),e.jsx(T,{children:e.jsx(w,{placeholder:"[email protected]",type:"email",autoComplete:"email",disabled:s,value:l.values.email,onChange:g=>l.setValues(a=>({...a,email:g.target.value}))})}),e.jsx(y,{})]}),e.jsxs(x,{name:"password",children:[e.jsx(v,{children:"Password"}),e.jsx(T,{children:e.jsx(w,{type:"password",placeholder:"••••••••",autoComplete:"current-password",disabled:s,value:l.values.password,onChange:g=>l.setValues(a=>({...a,password:g.target.value}))})}),e.jsx(y,{})]}),e.jsx(G,{type:"submit",disabled:s,className:_.submitButton,children:s?e.jsxs("span",{className:_.loadingText,children:[e.jsx(k,{className:_.spinner,size:"sm"}),"Logging in..."]}):"Log In"})]})})},Le="_form_2fte3_1",Se="_submitButton_2fte3_8",Ie="_errorMessage_2fte3_13",L={form:Le,submitButton:Se,errorMessage:Ie},Y=V({email:j().email("Email is required"),password:j().min(8,"Password must be at least 8 characters"),displayName:j().min(1,"Name is required")}),Pe=async(n,s)=>{const o=Y.parse(n),i=await fetch("/_api/auth/register_with_password",{method:"POST",body:JSON.stringify(o),...s,headers:{"Content-Type":"application/json"},credentials:"include"});if(!i.ok){const t=await i.json();throw new Error(t.message||"Registration failed")}return i.json()},$e=({className:n,defaultValues:s})=>{const[o,i]=b.useState(!1),[t,c]=b.useState(null),{onLogin:m}=z(),l=D(),u=B({schema:Y,defaultValues:s||{email:"",password:"",displayName:""}}),g=async a=>{c(null),i(!0);try{const r=await Pe(a);console.log("Registration successful for:",a.email),m(r.user),l("/")}catch(r){if(console.error("Registration error:",r),r instanceof Error){const d=r.message;d.includes("Email already in use")?c("This email is already registered. Please try logging in instead."):d.toLowerCase().includes("display name")?c("Please provide a valid display name that isn't empty."):d.includes("display")||d.includes("name")?c("Please check your display name: "+d):c(d||"Registration failed. Please try again.")}else console.log("Unknown error type:",r),c("Registration failed. Please try again.")}finally{i(!1)}};return e.jsxs(q,{...u,children:[t&&e.jsx("div",{className:L.errorMessage,children:t}),e.jsxs("form",{onSubmit:u.handleSubmit(a=>g(a)),className:`${L.form} ${n||""}`,children:[e.jsxs(x,{name:"email",children:[e.jsx(v,{children:"Email"}),e.jsx(T,{children:e.jsx(w,{placeholder:"[email protected]",value:u.values.email||"",onChange:a=>u.setValues(r=>({...r,email:a.target.value}))})}),e.jsx(y,{})]}),e.jsxs(x,{name:"displayName",children:[e.jsx(v,{children:"Display Name"}),e.jsx(T,{children:e.jsx(w,{id:"register-display-name",placeholder:"Your Name",value:u.values.displayName||"",onChange:a=>u.setValues(r=>({...r,displayName:a.target.value}))})}),e.jsx(M,{children:"Spaces, emojis, and special characters are all allowed"}),e.jsx(y,{})]}),e.jsxs(x,{name:"password",children:[e.jsx(v,{children:"Password"}),e.jsx(T,{children:e.jsx(w,{type:"password",placeholder:"••••••••",value:u.values.password||"",onChange:a=>u.setValues(r=>({...r,password:a.target.value}))})}),e.jsx(M,{children:"At least 8 characters with uppercase, lowercase, and number"}),e.jsx(y,{})]}),e.jsx(G,{type:"submit",disabled:o,className:L.submitButton,children:o?e.jsxs(e.Fragment,{children:[e.jsx(k,{size:"sm"})," Creating Account..."]}):"Create Account"})]})]})},Re="_container_111cb_1",Ee="_card_111cb_10",Fe="_header_111cb_23",Me="_logo_111cb_31",Ae="_title_111cb_36",Ve="_tabs_111cb_43",De="_tabsList_111cb_47",Be="_tabTrigger_111cb_53",qe="_tabContent_111cb_57",ke="_testCreds_111cb_61",p={container:Re,card:Ee,header:Fe,logo:Me,title:Ae,tabs:Ve,tabsList:De,tabTrigger:Be,tabContent:qe,testCreds:ke};function Je(){return e.jsx("div",{className:p.container,children:e.jsxs("div",{className:p.card,children:[e.jsxs("div",{className:p.header,children:[e.jsx("img",{src:"https://assets.floot.app/048e5172-b204-485d-991d-127266716128/021e9fba-b8bb-4d6c-8d39-87ed197f5321.png",alt:"DidjaList Logo",className:p.logo}),e.jsx("h1",{className:p.title,children:"Welcome to DidjaList"})]}),e.jsxs(je,{defaultValue:"login",className:p.tabs,children:[e.jsxs(U,{"data-variant":"pill",className:p.tabsList,children:[e.jsx(S,{value:"login",className:p.tabTrigger,children:"Log In"}),e.jsx(S,{value:"register",className:p.tabTrigger,children:"Sign Up"})]}),e.jsxs(I,{value:"login",className:p.tabContent,children:[e.jsx(Ne,{}),e.jsxs("div",{className:p.testCreds,children:[e.jsx(re,{size:16}),e.jsxs("div",{children:[e.jsx("p",{children:e.jsx("strong",{children:"Test Account:"})}),e.jsx("p",{children:"[email protected]"}),e.jsx("p",{children:"Pizza-House-9-Chord-Spell"})]})]})]}),e.jsx(I,{value:"register",className:p.tabContent,children:e.jsx($e,{})})]})]})})}export{Je 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.