PageSourceSearch

https://datafuelsupplements.com/assets/BoxFeedback-CNjaXuVu.js

js datafuelsupplements.com collected 2026-10-02 01:27:13 UTC 10,004 bytes, 7 lines download raw bytes

1!function(){try{var e="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:{},n=(new e.Error).stack;n&&(e._posthogChunkIds=e._posthogChunkIds||{},e._posthogChunkIds[n]="01a086e7-d7ff-75c0-93a9-26e1d657e1a0")}catch(e){}}();
2!function(){try{var e="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:{},n=(new e.Error).stack;n&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[n]="979504a8-2236-53fc-bca5-3c59ced64b0e")}catch(e){}}();
3import{j as e}from"./query-vendor-Bpmm07UM.js";import{f as J,c as Q,r}from"./router-vendor-PdvXAmya.js";import{b as g,c as V,a as R}from"./index-B4qsZXfP.js";function T({value:t,onChange:i}){const c=g();return e.jsx("div",{className:"flex gap-1",children:[1,2,3,4,5].map(n=>e.jsx("button",{type:"button",className:`h-8 w-8 rounded-full text-sm font-medium transition ${n<=t?"bg-amber-400 text-white":"border border-surface-border bg-[#111] text-neutral-400 hover:bg-surface-raised"}`,onClick:()=>i(n),"aria-label":c("boxfeedback.starAria",{n}),children:n},n))})}function f({value:t,options:i,onChange:c}){const n=g();return e.jsx("div",{className:"flex flex-wrap gap-1.5",children:i.map(d=>e.jsx("button",{type:"button",onClick:()=>c(d.value),className:`rounded-full px-3 py-1 text-xs font-medium transition ${t===d.value?"bg-brand text-white":"border border-surface-border bg-[#111] text-neutral-400 hover:bg-surface-raised"}`,children:n(d.labelKey)},d.value))})}const W=[{value:"LOVED_IT",labelKey:"boxfeedback.opinionLovedIt"},{value:"GOOD_FIT",labelKey:"boxfeedback.opinionGoodFit"},{value:"NEUTRAL",labelKey:"boxfeedback.opinionNeutral"},{value:"NEEDS_IMPROVEMENT",labelKey:"boxfeedback.opinionNeedsImprovement"},{value:"POOR_FIT",labelKey:"boxfeedback.opinionPoorFit"}],X=[{value:"NOT_ENOUGH",labelKey:"boxfeedback.qtyNotEnough"},{value:"JUST_RIGHT",labelKey:"boxfeedback.qtyJustRight"},{value:"TOO_MUCH",labelKey:"boxfeedback.qtyTooMuch"}],E=[{value:"positive",labelKey:"boxfeedback.impactPositive"},{value:"neutral",labelKey:"boxfeedback.impactNeutral"},{value:"negative",labelKey:"boxfeedback.impactNegative"}];function ee(){const t=g(),{user:i}=V(),c=J(),n=Q(),d=Number(c.athleteId||(i==null?void 0:i.athlete_id)),[C,p]=r.useState(!0),[u,b]=r.useState(null),[o,j]=r.useState(null),[K,L]=r.useState(!1),[x,M]=r.useState("GOOD_FIT"),[h,F]=r.useState(0),[N,q]=r.useState(void 0),[_,G]=r.useState(void 0),[y,D]=r.useState(""),[m,k]=r.useState({}),[S,H]=r.useState({}),[v,A]=r.useState({}),[O,w]=r.useState(!1),[I,P]=r.useState(null);r.useEffect(()=>{(async()=>{if(!d){b(t("boxfeedback.errMissingAthlete")),p(!1);return}p(!0),b(null);try{const s=await R.get(`/api/supplements/plan/latest/${d}`);j(s);const a={};(s.items||[]).forEach(B=>{a[B.plan_item_id]=0}),k(a)}catch(s){const a=s==null?void 0:s.message;a!=null&&a.includes("404")||a!=null&&a.includes("Not Found")?(L(!0),j(null)):b(a||t("boxfeedback.errLoadPlan"))}finally{p(!1)}})()},[d]);const $=r.useMemo(()=>o?Object.values(m).some(s=>s>0)&&!!x:!1,[o,m,x]),U=async l=>{if(l.preventDefault(),!!o){w(!0),P(null),b(null);try{const s=(o.items||[]).filter(a=>(m[a.plan_item_id]||0)>0).map(a=>({plan_item_id:a.plan_item_id,supplement_id:a.supplement_id,supplement_name:a.supplement_name,rating:m[a.plan_item_id],quantity_opinion:S[a.plan_item_id]||null,would_reorder:v[a.plan_item_id]!==void 0?v[a.plan_item_id]:null}));await R.post("/api/supplements/feedback",{athlete_id:o.athlete_id,supplement_plan_id:o.plan_id,overall_opinion:x,overall_rating:h>0?h:null,items:s,energy_impact:N||null,recovery_impact:_||null,comments:y||null}),P(t("boxfeedback.submitSuccess")),setTimeout(()=>n("/dashboard"),1500)}catch(s){b((s==null?void 0:s.message)||t("boxfeedback.errSubmit"))}finally{w(!1)}}};return C?e.jsxs("div",{className:"flex items-center justify-center py-20",children:[e.jsx("div",{className:"h-5 w-5 animate-spin rounded-full border-2 border-surface-border border-t-brand"}),e.jsx("span",{className:"ml-3 text-sm text-neutral-400",children:t("boxfeedback.loadingPlan")})]}):u&&!o?e.jsx("div",{className:"rounded-xl border border-red-900/50 bg-red-950/50 p-4 text-sm text-red-400",children:u}):o?e.jsxs(e.Fragment,{children:[e.jsxs("div",{className:"mb-6",children:[e.jsx("p",{className:"text-xs uppercase tracking-[0.3em] text-brand",children:t("boxfeedback.eyebrow")}),e.jsx("h1",{className:"mt-2 text-2xl font-semibold text-white",children:t("boxfeedback.title")}),e.jsx("p",{className:"mt-1 text-sm text-neutral-400",children:t("boxfeedback.subtitle")})]}),e.jsxs("div",{className:"rounded-2xl border border-surface-border bg-[#111]",children:[e.jsxs("div",{className:"flex items-center justify-between border-b border-surface-border px-6 py-4",children:[e.jsx("h2",{className:"text-lg font-semibold text-white",children:t("boxfeedback.title")}),e.jsxs("span",{className:"text-xs text-neutral-500",children:[t("boxfeedback.planLabel",{id:o.plan_id})," • ",o.period_month]})]}),e.jsxs("div",{className:"p-6",children:[I&&e.jsx("div",{className:"mb-4 rounded-xl border border-green-900/50 bg-green-950/50 p-4 text-sm text-green-400",children:I}),u&&e.jsx("div",{className:"mb-4 rounded-xl border border-red-900/50 bg-red-950/50 p-4 text-sm text-red-400",children:u}),e.jsxs("form",{onSubmit:U,children:[e.jsxs("div",{className:"mb-5",children:[e.jsx("label",{className:"mb-1.5 block text-sm font-medium text-neutral-300",children:t("boxfeedback.overallOpinion")}),e.jsx(f,{value:x,options:W,onChange:M})]}),e.jsxs("div",{className:"mb-5",children:[e.jsx("label",{className:"mb-1.5 block text-sm font-medium text-neutral-300",children:t("boxfeedback.overallRating")}),e.jsx(T,{value:h,onChange:F})]}),e.jsxs("div",{className:"mb-5 grid gap-4 sm:grid-cols-2",children:[e.jsxs("div",{children:[e.jsx("label",{className:"mb-1.5 block text-sm font-medium text-neutral-300",children:t("boxfeedback.energyLabel")}),e.jsx("p",{className:"mb-2 text-xs text-neutral-500",children:t("boxfeedback.energyHelp")}),e.jsx(f,{value:N,options:E,onChange:q})]}),e.jsxs("div",{children:[e.jsx("label",{className:"mb-1.5 block text-sm font-medium text-neutral-300",children:t("boxfeedback.recoveryLabel")}),e.jsx("p",{className:"mb-2 text-xs text-neutral-500",children:t("boxfeedback.recoveryHelp")}),e.jsx(f,{value:_,options:E,onChange:G})]})]}),e.jsx("div",{className:"my-5 border-t border-surface-border"}),e.jsx("h3",{className:"mb-2 text-sm font-semibold text-white",children:t("boxfeedback.rateEachProduct")}),e.jsx("p",{className:"mb-4 text-xs text-neutral-500",children:t("boxfeedback.rateEachHelp")}),e.jsx("div",{className:"space-y-4",children:(o.items||[]).map(l
3=>e.jsxs("div",{className:"rounded-xl border border-surface-border bg-surface-raised p-4",children:[e.jsxs("div",{className:"mb-3 flex items-center justify-between",children:[e.jsx("span",{className:"font-medium text-white text-sm",children:l.supplement_name||`#${l.supplement_id}`}),e.jsxs("span",{className:"text-xs text-neutral-500",children:[l.quantity," ",l.dosage_unit||t("boxfeedback.units")]})]}),e.jsxs("div",{className:"mb-3",children:[e.jsx("p",{className:"mb-1.5 text-xs font-medium text-neutral-400",children:t("boxfeedback.ratingLabel")}),e.jsx(T,{value:m[l.plan_item_id]||0,onChange:s=>k(a=>({...a,[l.plan_item_id]:s}))})]}),e.jsxs("div",{className:"mb-3",children:[e.jsx("p",{className:"mb-1.5 text-xs font-medium text-neutral-400",children:t("boxfeedback.quantityLabel")}),e.jsx(f,{value:S[l.plan_item_id],options:X,onChange:s=>H(a=>({...a,[l.plan_item_id]:s}))})]}),e.jsxs("div",{className:"flex items-center gap-3",children:[e.jsx("p",{className:"text-xs font-medium text-neutral-400",children:t("boxfeedback.wouldReorder")}),[{val:!0,label:t("boxfeedback.yes")},{val:!1,label:t("boxfeedback.no")}].map(s=>e.jsx("button",{type:"button",onClick:()=>A(a=>({...a,[l.plan_item_id]:s.val})),className:`rounded-full px-3 py-1 text-xs font-medium transition ${v[l.plan_item_id]===s.val?s.val?"bg-green-500 text-white":"bg-red-400 text-white":"border border-surface-border bg-[#111] text-neutral-400 hover:bg-surface-raised"}`,children:s.label},String(s.val)))]})]},l.plan_item_id))}),e.jsxs("div",{className:"mt-6 mb-4",children:[e.jsx("label",{className:"mb-1.5 block text-sm font-medium text-neutral-300",children:t("boxfeedback.commentsLabel")}),e.jsx("textarea",{className:"w-full rounded-xl border border-surface-border bg-surface-raised px-4 py-2.5 text-base sm:text-sm text-white placeholder:text-neutral-500 focus:border-brand focus:outline-none focus:ring-1 focus:ring-brand/30",rows:3,value:y,onChange:l=>D(l.target.value),placeholder:t("boxfeedback.commentsPlaceholder")})]}),e.jsxs("div",{className:"mt-6 flex gap-3",children:[e.jsx("button",{type:"submit",className:"rounded-full bg-brand px-6 py-2.5 text-sm font-semibold text-white transition hover:bg-[#e66e00] active:scale-[0.98] disabled:opacity-50",disabled:!$||O,children:t(O?"boxfeedback.submitting":"boxfeedback.submit")}),e.jsx("button",{type:"button",className:"rounded-full border border-surface-border bg-[#111] px-6 py-2.5 text-sm font-medium text-neutral-400 transition hover:bg-surface-raised",onClick:()=>n("/dashboard"),children:t("boxfeedback.cancel")})]})]})]})]})]}):e.jsx("div",{className:"rounded-xl border border-amber-900/50 bg-amber-950/50 p-4 text-sm text-amber-400",children:e.jsxs("div",{className:"flex flex-col items-start justify-between gap-3 sm:flex-row sm:items-center",children:[e.jsxs("div",{children:[e.jsx("strong",{children:t("boxfeedback.noPlanTitle")})," ",K?t("boxfeedback.noPlanGenerate"):""]}),e.jsx("button",{className:"rounded-full border border-surface-border bg-[#111] px-5 py-2 text-sm font-medium text-neutral-400 transition hover:bg-surface-raised",onClick:()=>n("/dashboard"),children:t("boxfeedback.goToDashboard")})]})})}export{ee as default};
4
5//# debugId=979504a8-2236-53fc-bca5-3c59ced64b0e
6
7//# chunkId=01a086e7-d7ff-75c0-93a9-26e1d657e1a0

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.