2 lines
8.3 KiB
JavaScript
2 lines
8.3 KiB
JavaScript
import"../chunks/DsnmJJEf.js";import{p as Ge,t as m,a as d,b as He,i as h,k as e,d as n,j as F,s as o,e as r,r as t,l as G,n as Je,c as Ke,f as Le}from"../chunks/BxEwC6Zc.js";import{d as Qe,a as H,s as b}from"../chunks/DoLu9QLy.js";import{i as l}from"../chunks/BQKoxf2Q.js";import{e as ce,i as le}from"../chunks/BLQQas77.js";import{a as W,e as X}from"../chunks/BAocuFgQ.js";import{s as me,r as Z,a as ue}from"../chunks/BnX5ZnVA.js";import{s as Re}from"../chunks/BqOsL1Vv.js";import{b as Se}from"../chunks/CAkKRSSs.js";import"../chunks/DAtZQVjv.js";var Ve=n('<form method="post" action="?/create" class="mt-4 flex gap-3 rounded-lg border border-border bg-surface-800 p-4"><input type="text" name="name" placeholder="Team name" required="" class="flex-1 rounded-md border border-border bg-surface-700 px-3 py-2 text-sm text-text-primary placeholder:text-text-secondary/50 focus:border-accent focus:outline-none"/> <button type="submit" class="rounded-md bg-accent px-4 py-2 text-sm font-600 text-surface-900 transition-colors hover:bg-accent-hover">Create</button></form>'),We=n('<p class="mt-3 text-sm text-red-400"> </p>'),Xe=n('<img alt="" class="h-10 w-10 rounded-full"/>'),Ze=n('<div class="flex h-10 w-10 items-center justify-center rounded-full bg-surface-600 text-sm font-700 text-text-secondary"> </div>'),$e=n('<span class="rounded bg-surface-600 px-1.5 py-0.5 text-[10px] font-500 text-text-secondary">solo</span>'),et=n('<img alt="" class="h-6 w-6 rounded-full"/>'),tt=n('<div class="h-6 w-6 rounded-full bg-surface-600"></div>'),at=n('<form method="post" action="?/removeMember"><input type="hidden" name="memberId"/> <button type="submit" class="text-xs text-red-400 opacity-50 transition-opacity hover:opacity-100">×</button></form>'),rt=n('<div class="flex items-center gap-3 rounded-md bg-surface-700 px-3 py-2"><!> <span class="flex-1 text-sm"> </span> <span class="text-xs text-text-secondary"> </span> <!></div>'),st=n('<form method="post" action="?/addMember" class="mt-3 flex gap-2"><input type="hidden" name="teamId"/> <input type="text" name="username" placeholder="osu! username" required="" class="flex-1 rounded-md border border-border bg-surface-600 px-3 py-1.5 text-sm text-text-primary placeholder:text-text-secondary/50 focus:border-accent focus:outline-none"/> <button type="submit" class="rounded-md bg-accent px-3 py-1.5 text-xs font-600 text-surface-900 hover:bg-accent-hover">Add</button> <button type="button" class="rounded-md border border-border px-3 py-1.5 text-xs text-text-secondary hover:bg-surface-600">Cancel</button></form>'),ot=n('<button class="mt-3 w-full rounded-md border border-dashed border-border py-2 text-xs text-text-secondary transition-colors hover:border-accent/40 hover:text-accent">+ Add Member</button>'),dt=n('<form method="post" action="?/deleteTeam"><input type="hidden" name="teamId"/> <button type="submit" class="mt-3 text-xs text-red-400 opacity-50 transition-opacity hover:opacity-100">Delete team</button></form>'),nt=n('<div class="border-t border-border px-4 pb-4 pt-3"><div class="flex flex-col gap-2"></div> <!> <!></div>'),it=n('<div class="rounded-lg border border-border bg-surface-800 transition-colors"><button class="flex w-full items-center gap-4 p-4 text-left transition-colors hover:bg-surface-700"><!> <div class="flex-1"><div class="flex items-center gap-2"><span class="text-sm font-600"> </span> <!></div> <p class="mt-0.5 text-xs text-text-secondary"> </p></div> <span>›</span></button> <!></div>'),vt=n('<div class="mt-6"><h2 class="text-sm font-600 text-text-secondary">My Teams</h2> <div class="mt-3 flex flex-col gap-3"></div></div>'),ct=n('<img alt="" class="h-8 w-8 rounded-full"/>'),lt=n('<div class="flex h-8 w-8 items-center justify-center rounded-full bg-surface-600 text-xs font-700 text-text-secondary"> </div>'),mt=n('<div class="flex items-center gap-4 rounded-lg border border-border bg-surface-800 p-3"><!> <div class="flex-1"><span class="text-sm font-600"> </span> <p class="text-xs text-text-secondary"> </p></div></div>'),ut=n('<div class="mt-6"><h2 class="text-sm font-600 text-text-secondary">Other Teams</h2> <div class="mt-3 flex flex-col gap-2"></div></div>'),xt=n('<div class="mt-6 rounded-lg border border-dashed border-border py-12 text-center"><p class="text-sm text-text-secondary">No teams yet. Your personal team is created when you sign in.</p></div>'),ft=n('<div class="mx-auto max-w-4xl"><div class="flex items-center justify-between"><div><h1 class="text-2xl font-700 tracking-tight">Teams</h1> <p class="mt-1 text-sm text-text-secondary"> </p></div> <button class="rounded-md bg-accent px-4 py-2 text-sm font-600 text-surface-900 transition-colors hover:bg-accent-hover"> </button></div> <!> <!> <!> <!> <!></div>');function Ut(we,_){Ge(_,!0);let O=F(!1),J=F(null),K=F(null),$=F(""),L=F("");const xe=G(()=>_.data.teams.filter(s=>s.members.some(i=>i.userId===_.data.userId))),fe=G(()=>_.data.teams.filter(s=>!s.members.some(i=>i.userId===_.data.userId)));function ee(s){return s.ownerId===_.data.userId}var te=ft(),ae=r(te),re=r(ae),pe=o(r(re),2),Ie=r(pe);t(pe),t(re);var se=o(re,2),ke=r(se,!0);t(se),t(ae);var be=o(ae,2);{var Te=s=>{var i=Ve();W(i,(u,C)=>X?.(u,C),()=>()=>async({result:u,update:C})=>{u.type==="success"&&u.data?.success&&(h(O,!1),await C())}),d(s,i)};l(be,s=>{e(O)&&s(Te)})}var _e=o(be,2);{var Ue=s=>{var i=We(),u=r(i,!0);t(i),m(()=>b(u,e(L))),d(s,i)};l(_e,s=>{e(L)&&s(Ue)})}var ge=o(_e,2);{var Ce=s=>{var i=vt(),u=o(r(i),2);ce(u,21,()=>e(xe),le,(C,a)=>{var M=it(),j=r(M),Q=r(j);{var oe=v=>{var x=Xe();m(()=>me(x,"src",e(a).avatarUrl)),d(v,x)},R=v=>{var x=Ze(),Y=r(x,!0);t(x),m(V=>b(Y,V),[()=>e(a).name.charAt(0).toUpperCase()]),d(v,x)};l(Q,v=>{e(a).avatarUrl?v(oe):v(R,!1)})}var A=o(Q,2),E=r(A),P=r(E),de=r(P,!0);t(P);var k=o(P,2);{var T=v=>{var x=$e();d(v,x)};l(k,v=>{e(a).isPersonal&&v(T)})}t(E);var S=o(E,2),ne=r(S);t(S),t(A);var qe=o(A,2);t(j);var De=o(j,2);{var Pe=v=>{var x=nt(),Y=r(x);ce(Y,21,()=>e(a).members,le,(y,c)=>{var w=rt(),N=r(w);{var q=g=>{var I=et();m(()=>me(I,"src",e(c).user.image)),d(g,I)},U=g=>{var I=tt();d(g,I)};l(N,g=>{e(c).user?.image?g(q):g(U,!1)})}var f=o(N,2),z=r(f,!0);t(f);var D=o(f,2),ie=r(D,!0);t(D);var p=o(D,2);{var B=g=>{var I=at(),ye=r(I);Z(ye),Je(2),t(I),W(I,(ve,Fe)=>X?.(ve,Fe),()=>()=>async({update:ve})=>{await ve()}),m(()=>ue(ye,e(c).id)),d(g,I)},Be=G(()=>ee(e(a))&&e(c).userId!==_.data.userId);l(p,g=>{e(Be)&&g(B)})}t(w),m(()=>{b(z,e(c).user?.name??"Unknown"),b(ie,e(c).role)}),d(y,w)}),t(Y);var V=o(Y,2);{var Ne=y=>{var c=Ke(),w=Le(c);{var N=U=>{var f=st(),z=r(f);Z(z);var D=o(z,2);Z(D);var ie=o(D,4);t(f),W(f,(p,B)=>X?.(p,B),()=>()=>(h(L,""),async({result:p,update:B})=>{p.type==="success"&&p.data?.success?(h($,""),h(K,null),await B()):p.type==="success"&&p.data?.error&&h(L,p.data.error,!0)})),m(()=>ue(z,e(a).id)),Se(D,()=>e($),p=>h($,p)),H("click",ie,()=>h(K,null)),d(U,f)},q=U=>{var f=ot();H("click",f,()=>h(K,e(a).id,!0)),d(U,f)};l(w,U=>{e(K)===e(a).id?U(N):U(q,!1)})}d(y,c)},Oe=G(()=>ee(e(a))&&!e(a).isPersonal);l(V,y=>{e(Oe)&&y(Ne)})}var Ee=o(V,2);{var Ye=y=>{var c=dt(),w=r(c);Z(w);var N=o(w,2);t(c),W(c,q=>X?.(q)),m(()=>ue(w,e(a).id)),H("click",N,q=>{confirm(`Delete ${e(a).name}?`)||q.preventDefault()}),d(y,c)},ze=G(()=>ee(e(a))&&!e(a).isPersonal);l(Ee,y=>{e(ze)&&y(Ye)})}t(x),d(v,x)};l(De,v=>{e(J)===e(a).id&&v(Pe)})}t(M),m(()=>{b(de,e(a).name),b(ne,`${e(a).members.length??""} member${e(a).members.length!==1?"s":""}`),Re(qe,1,`text-sm text-text-secondary transition-transform ${e(J)===e(a).id?"rotate-90":""}`)}),H("click",j,()=>h(J,e(J)===e(a).id?null:e(a).id,!0)),d(C,M)}),t(u),t(i),d(s,i)};l(ge,s=>{e(xe).length>0&&s(Ce)})}var he=o(ge,2);{var Me=s=>{var i=ut(),u=o(r(i),2);ce(u,21,()=>e(fe),le,(C,a)=>{var M=mt(),j=r(M);{var Q=k=>{var T=ct();m(()=>me(T,"src",e(a).avatarUrl)),d(k,T)},oe=k=>{var T=lt(),S=r(T,!0);t(T),m(ne=>b(S,ne),[()=>e(a).name.charAt(0).toUpperCase()]),d(k,T)};l(j,k=>{e(a).avatarUrl?k(Q):k(oe,!1)})}var R=o(j,2),A=r(R),E=r(A,!0);t(A);var P=o(A,2),de=r(P);t(P),t(R),t(M),m(()=>{b(E,e(a).name),b(de,`${e(a).members.length??""} member${e(a).members.length!==1?"s":""}`)}),d(C,M)}),t(u),t(i),d(s,i)};l(he,s=>{e(fe).length>0&&s(Me)})}var je=o(he,2);{var Ae=s=>{var i=xt();d(s,i)};l(je,s=>{_.data.teams.length===0&&s(Ae)})}t(te),m(()=>{b(Ie,`${_.data.teams.length??""} team${_.data.teams.length!==1?"s":""}`),b(ke,e(O)?"Cancel":"New Team")}),H("click",se,()=>h(O,!e(O))),d(we,te),He()}Qe(["click"]);export{Ut as component};
|