1import{p as y,v as M,g as T,r as a,j as e,m as n}from"./ThemeContext-CCOCtADw.js";import{n as C,b as A,S as L}from"./StackTemplateBadge-Ch4PyIyL.js";import{M as z}from"./MemberPageActions-bK_F_dh5.js";import{M as k}from"./MemberPageHeader-DRl5CsQj.js";import{l as P,m as B}from"./app-entry-KRjH7_lx.js";import{c as f}from"./gymFacilityRoles-D65_ZN3F.js";import"./index-hjR8rd9R.js";import{c as E}from"./memberPortalApi-BqFEy06v.js";import{r as H}from"./resolveMediaUrl-CfNsOsUK.js";import{P as _}from"./pill-wsUflTWd.js";import{S as U}from"./star-HNyhBXHu.js";import{S as $}from"./save-CxAXwMV7.js";import"./VerifiedBadgeIcon-DHFXCxbD.js";import"./buttonClasses-DUHPZpWJ.js";import"./users-_DXWDtSf.js";function Z(){const{templateId:c}=y(),o=M(),{authAxios:d}=T(),i=a.useMemo(()=>E(d),[d]),[v,p]=a.useState(!0),[l,r]=a.useState(""),[u,N]=a.useState(null),[h,b]=a.useState(!1),x=a.useCallback(async()=>{p(!0),r("");try{const s=await i.fetchStackTemplate(c);N((s==null?void 0:s.template)??s)}catch(s){r(f(s,"Unable to load template."))}finally{p(!1)}},[i,c]);a.useEffect(()=>{document.title="Template · Supreso",x()},[x]);const t=a.useMemo(()=>C(u),[u]),j=a.useMemo(()=>A(t),[t]);a.useEffect(()=>{t!=null&&t.title&&(document.title=`${t.title} · Supreso`)},[t==null?void 0:t.title]);const S=async()=>{b(!0),r("");try{const s=await i.saveStackTemplate(c),m=(s==null?void 0:s.diet_id)||(s==null?void 0:s.stack_id);o(m?`/members/stacks/${m}`:"/members/stacks")}catch(s){r(f(s,"Unable to save template."))}finally{b(!1)}};if(v)return e.jsx(P,{variant:"stack-detail"});if(!t)return e.jsxs("div",{className:"member-portal-page member-stack-template-page",children:[e.jsx(k,{title:"Template not found",subtitle:"This starter stack may have been removed."}),l?e.jsx("p",{className:"member-form-error",children:l}):null,e.jsx(n,{to:"/members/stacks",className:"button button-outline",children:"Back to stacks"})]});const g=H({image_url:t.imageUrl,image:t.imageUrl},{fallback:null});return e.jsxs("div",{className:"member-portal-page member-stack-template-page",children:[e.jsx(k,{title:t.title,subtitle:t.outcomeLabel,action:e.jsx(z,{actions:[{label:"Ask Coach",to:j,variant:"outline"},{label:"All templates",to:"/members/stacks?tab=templates",variant:"secondary"}]})}),l?e.jsx("p",{className:"member-form-error",children:l}):null,e.jsxs("article",{className:"member-stack-template-hero",children:[e.jsxs("div",{className:"member-stack-template-hero__visual",children:[g?e.jsx("img",{src:g,alt:"",className:"member-stack-template-hero__image"}):e.jsx("div",{className:"member-stack-template-hero__image member-stack-template-hero__image--empty",children:e.jsx(_,{size:36,"aria-hidden":"true"})}),e.jsx(L,{badgeType:t.badgeType,className:"member-stack-template-hero__badge",size:20})]}),e.jsxs("div",{className:"member-stack-template-hero__copy",children:[e.jsx("p",{className:"member-stack-template-hero__description",children:t.description}),e.jsxs("p",{className:"member-stack-template-hero__byline",children:["Designed by ",t.createdBy]}),t.priceHint?e.jsx("p",{className:"member-stack-template-hero__price",children:t.priceHint}):null,t.tags.length?e.jsx("div",{className:"member-stack-template-hero__tags",children:t.tags.map(s=>e.jsx("span",{className:"member-stack-template-hero__tag",children:s},s))}):null,e.jsxs("dl",{className:"member-stack-template-stats",children:[t.rating!=null?e.jsxs("div",{children:[e.jsx("dt",{children:"Rating"}),e.jsxs("dd",{children:[e.jsx(U,{size:14,fill:"#f5d565",color:"#f5d565","aria-hidden":"true"}),t.rating.toFixed(1),t.reviewCount!=null?e.jsxs("span",{className:"member-stack-template-stats__muted",children:["(",t.reviewCount.toLocaleString(),")"]}):null]})]}):null,t.goalFitScore!=null?e.jsxs("div",{children:[e.jsx("dt",{children:"Goal fit"}),e.jsxs("dd",{className:"member-stack-template-stats__highlight",children:[t.goalFitScore,"%"]})]}):null,e.jsxs("div",{children:[e.jsx("dt",{children:"Supplements"}),e.jsx("dd",{children:t.supplementCount})]}),e.jsxs("div",{children:[e.jsx("dt",{children:"Budget"}),e.jsx("dd",{children:t.budgetLabel})]}),t.experienceLevel?e.jsxs("div",{children:[e.jsx("dt",{children:"Level"}),e.jsx("dd",{children:t.experienceLevel})]}):null,t.usedByCount!=null?e.jsxs("div",{children:[e.jsx("dt",{children:"Athletes"}
1),e.jsx("dd",{children:t.usedByCount.toLocaleString()})]}):null]})]})]}),e.jsxs("section",{className:"member-stack-template-section",children:[e.jsxs("header",{className:"member-stack-template-section__head",children:[e.jsx("h2",{children:"Supplements in this template"}),e.jsxs("span",{children:[t.supplements.length," items"]})]}),t.supplements.length?e.jsx("ul",{className:"member-stack-template-supplements",children:t.supplements.map((s,m)=>e.jsxs("li",{className:"member-stack-template-supplement",children:[e.jsx("span",{className:"member-stack-template-supplement__icon","aria-hidden":"true",children:e.jsx(_,{size:16})}),e.jsxs("div",{className:"member-stack-template-supplement__copy",children:[e.jsx("strong",{children:s.name}),(s.dose||s.timing)&&e.jsx("span",{children:[s.dose,s.timing].filter(Boolean).join(" · ")})]})]},`${s.name}-${m}`))}):e.jsx("p",{className:"member-empty-copy",children:"Supplement details will appear here once loaded."})]}),t.cloneHint?e.jsx("p",{className:"member-stack-template-note",children:t.cloneHint}):null,e.jsxs("div",{className:"member-stack-template-actions",children:[e.jsxs("button",{type:"button",className:"button button-primary button-surface",disabled:h,onClick:S,children:[e.jsx($,{size:16,"aria-hidden":"true"}),h?"Savingâ¦":"Save as my stack"]}),e.jsxs(n,{to:j,className:"button button-outline button-surface",children:[e.jsx(B,{size:16,"aria-hidden":"true"}),"Ask Coach about this"]}),e.jsx(n,{to:"/members/stacks/new",className:"button button-outline button-surface",children:"Customize from scratch"})]})]})}export{Z as MemberStackTemplatePage};
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.