import{u as N,n as F,r as x,i as m,j as i}from"../../../chunks/vendor/react-core.DXghOv-E.min.js";import{v as R,w as A,x as O,y as P,s as f,L as r,D as C,M as d,b0 as p,ar as T,b1 as W,t as h,b2 as M,F as G,O as $,b3 as B,J as S,b4 as X,b5 as _,aV as J,b6 as K,af as q,ag as Q,ah as Y,aa as Z,ab as v,ac as ee,b7 as te,b8 as ae,b9 as se,i as ie,g as ne}from"../../../assets/layouts-e9o3BY4c.js";import{H as oe}from"../../../chunks/HomeWidgetContainer.D0k__UF2.min.js";import{F as le,f as re,a as ce}from"../../../chunks/FrameBody.D3xcktWQ.min.js";import{f as de,F as me}from"../../../chunks/FrameFooter.BOZVZXNi.min.js";import"../../../chunks/HomeWidgetContainer.styles.ClOpoWON.min.js";import"../../../chunks/HomeWidgetItem.styles.D62eM9p_.min.js";import"../../../vendor/clamp.CLeEA06_.min.js";const u=R("@@badges/getUserBadges",async e=>{const{userID:a}=e,{data:t}=await A.get(`/users/${a}/badges`,{params:e});return t}),ge={badgesByID:{},badgeIDsByUserID:{},badgeIDsByParamHash:{}},k=O({name:"badges",initialState:ge,reducers:{},extraReducers:e=>{e.addCase(u.pending,(a,t)=>{const s=f(t.meta.arg);a.badgeIDsByParamHash[s]={status:r.PENDING}}).addCase(u.fulfilled,(a,t)=>{const s=f(t.meta.arg),n=t.payload;n.forEach(o=>{a.badgesByID[o.badgeID]={...a.badgesByID[o.badgeID],...o}});const l=n.map(({badgeID:o})=>o);a.badgeIDsByParamHash[s]={status:r.SUCCESS,data:l},a.badgeIDsByUserID[t.meta.arg.userID]=[...new Set((a.badgeIDsByUserID[t.meta.arg.userID]??[]).concat(l))]}).addCase(u.rejected,(a,t)=>{const s=f(t.meta.arg);a.badgeIDsByParamHash[s]={status:r.ERROR,error:t.error}})}});function ue(e,a){var t;return(t=e.badgeIDsByParamHash[a])==null?void 0:t.status}function he(e,a){var t;return(t=e.badgeIDsByUserID[a])==null?void 0:t.map(s=>e.badgesByID[s])}P(k).dispatch;const be=()=>N(),z=F;function w(e,a,t){const s=f(e),n=be(),l=z(({badges:c})=>ue(c,s)??r.PENDING);x.useEffect(()=>{a?n(u.fulfilled(a,s.toString(),e)):[r.SUCCESS,r.ERROR].includes(l)||n(u(e))},[a,n,l,s]);const o=z(({badges:c})=>l===r.SUCCESS?he(c,e.userID):void 0);return x.useEffect(()=>{o&&(t==null||t(o))},[o,s,t]),{status:l,data:o}}const fe=C(e=>{let a=e.sizing.width;e.name.display&&(a+=(e.name.spacing.left??0)+e.name.width);const t=m({"@supports (display: grid)":{display:"grid",gridTemplateColumns:`repeat(auto-fill, minmax(${a}px, 0.5fr))`,gridRowGap:`${e.spacing.vertical}px`,gridColumnGap:`${e.spacing.horizontal}px`,justifyItems:"center",...d.margin({bottom:e.spacing.vertical})},"@supports not (display: grid)":{display:"flex",flexWrap:"wrap",justifyContent:"space-between",...d.margin({horizontal:-p(e.spacing.horizontal/2)})}},"label:ContributionItem-classes-list"),s=m({"@supports not (display: grid)":{...d.margin({bottom:p(e.spacing.vertical),horizontal:p(e.spacing.horizontal/2)})}},"label:ContributionItem-classes-listItem");return{list:t,listItem:s}}),xe=C(e=>{const a=m({display:"inline-flex",flexDirection:"row",alignItems:"center",...d.font({...e.name.font}),...d.clickable.itemState({default:e.name.font.color}),verticalAlign:"middle"},"label:ContributionItem-classes-link"),t=m({position:"relative",width:e.sizing.width,height:e.sizing.width},"label:ContributionItem-classes-imageAndCountWrapper"),s=m({height:e.count.height,minWidth:e.count.height,position:"absolute",top:"-5%",left:"unset",right:0,transform:`translateX(clamp(${Math.round(e.sizing.width*2/38)}px, 50%, ${e.name.spacing.left/2}px))`,backgroundColor:e.count.backgroundColor,...d.border({color:e.count.borderColor,radius:8,width:1.3}),...d.font({size:e.count.size,letterSpacing:"-1px"})},"label:ContributionItem-classes-count"),n=m({width:e.sizing.width,height:e.sizing.width},"label:ContributionItem-classes-image"),l=m({width:e.name.width,...d.margin({...e.name.spacing}),display:"-webkit-box",WebkitLineClamp:2,wordBreak:"break-word",WebkitBoxOrient:"vertical",overflow:"hidden",textOverflow:"ellipsis"},"label:ContributionItem-classes-name");return{link:a,image:n,imageAndCountWrapper:t,count:s,name:l}});function V(e){const{name:a,photoUrl:t,url:s,count:n,themingVariables:l}=e,o=xe(l);return i.jsxs(T,{to:s,title:a,className:o.link,children:[i.jsxs("div",{className:o.imageAndCountWrapper,children:[i.jsx("img",{alt:a,src:t,className:o.image}),l.count.display&&(n??0)>0&&i.jsx(W,{label:a,count:n,className:o.count,useFormatted:!0,useMax:!1})]}),l.name.display&&i.jsx("div",{className:o.name,children:h(a)})]})}function Ie(e){const{items:a,themingVariables:t}=e,s=fe(t);return e.stacked?i.jsx(M,{themingVariables:t.stackedList,ItemComponent:n=>i.jsx(V,{...n,themingVariables:{...t,name:{...t.name,display:!1},count:{...t.count,display:!1}}}),data:e.items,maxCount:e.maximumLength,openModal:e.openModal}):i.jsx("ul",{className:s.list,children:a.slice(0,e.maximumLength).map((n,l)=>i.jsx("li",{className:s.listItem,children:i.jsx(V,{...n,themingVariables:t})},e!=null&&e.keyID&&n[e.keyID]?n[e.keyID]:l))})}const Ce=C((e,a)=>{const t=G(),s=$(e,void 0,a),n=s("sizing",{width:38}),l=s("spacing",B.spacing({horizontal:18,vertical:22})),o=s("count",{display:!0,height:17,size:t.fonts.size.small,backgroundColor:S.colorOut("#808080"),borderColor:t.elementaryColors.black}),c=s("name",{display:!1,width:80,spacing:B.spacing({left:10}),font:B.font({...t.fontSizeAndWeightVars("small","semiBold"),lineHeight:16/12,color:S.colorOut(t.mainColors.fg)})}),b=s("limit",{maxItems:20}),g=X(`${e}StackedList`);g.sizing.width=n.width,g.sizing.offset=8,g.plus.margin=12;const y=s("stackedList",g);return{sizing:n,spacing:l,count:o,limit:b,name:c,stackedList:y}}),I=C(()=>Ce("badges",new _({"sizing.width":"profile.badges.size.width"})));function E(e){const a=I();return[r.LOADING,r.PENDING].includes(e.status)?i.jsx(J,{small:!0}):!e.data||e.status===r.ERROR||e.error?i.jsx(K,{apiError:e.error}):e.data.length===0?i.jsx("span",{style:e.stacked?{lineHeight:`${a.stackedList.sizing.width}px`}:{},children:h("No badges yet.")}):i.jsx(Ie,{themingVariables:a,items:e.data,maximumLength:e.maximumLength,stacked:e.stacked,openModal:e.openModal})}function U(e){var j,L;const{limit:{maxItems:a}}=I(),{title:t=h("Badges")}=e,s=e.maximumLength??a,[n,l]=x.useState((j=e.apiData)!=null&&j.length?((L=e.apiData)==null?void 0:L.length)>s:!1),[o,c]=x.useState(e.forceBadgeListModalOpen??!1),b=()=>c(!0),g=()=>c(!1),y=w(e.apiParams,e.apiData,H=>{l(H.length>s)});let D=i.jsx(E,{...y,stacked:e.stacked,maximumLength:s,openModal:n?b:void 0});return e.homeWidget&&(D=i.jsx(oe,{title:t,options:{viewAll:n?{onClick:b}:void 0},children:D})),i.jsxs(i.Fragment,{children:[D,n&&i.jsx(q,{children:i.jsx(ye,{userID:e.apiParams.userID,title:t,isVisible:o,exitHandler:g})})]})}function ye(e){const{isVisible:a,exitHandler:t,title:s=h("Badges")}=e,n=de();return i.jsx(Q,{isVisible:a,size:Y.MEDIUM,exitHandler:t,children:i.jsx(le,{header:i.jsx(Z,{closeFrame:t,title:s}),body:i.jsx(De,{...e}),footer:i.jsx(me,{justifyRight:!0,children:i.jsx(v,{buttonType:ee.TEXT,onClick:t,className:n.actionButton,children:h("OK")})})})})}function De(e){const{userID:a}=e,t=w({userID:a,limit:1e4}),s=re();return i.jsx(ce,{children:i.jsx("div",{className:s.contents,children:i.jsx(E,{...t})})})}ne(k.name,k.reducer);te("BadgeListModule",U,{overwrite:!0});function pe(e){return ae.registerContent({key:"BadgeList",component:function({userID:t}){return i.jsx(U,{stacked:!0,maximumLength:7,apiParams:{userID:t},forceBadgeListModalOpen:e})},skeleton:function({userID:t}){return w({userID:t}),i.jsx(M,{themingVariables:I().stackedList,data:[{},{},{},{},{}],ItemComponent:()=>i.jsx(se,{height:I().sizing.width,style:{margin:0}})})}})}ie("badges.showInUserCards")&&pe();export{pe as registerBadgeListInUserCards};
