PageSourceSearch

https://fsp.ac/build/assets/billing-page-routes.2fb84099.js

js fsp.ac collected 2026-10-08 13:16:39 UTC 15,729 bytes, 2 lines download raw bytes

1import{Y as D,j as e,c1 as q,ak as F,cn as E,a as l,b2 as H,T as t,N as W,M as V,al as J,bD as v,r as o,ah as M,B as u,ag as y,cl as K,b3 as X,e as N,f as U,A as j,cq as _,cz as Z,cA as ee,m as k,bg as B,cr as w,ac as A,bi as b,a1 as ae,d as ne,t as te,V as se,bC as le,af as P,G,bm as ie,v as re,cB as ce,cC as de,cD as f}from"./main.724dba5a.js";import{B as C,a as m,E as Y}from"./Edit.d2871342.js";import{S as oe,l as me,B as ue}from"./billing-redirect-message.e3a1ce55.js";import{u as pe,a as ge}from"./use-resume-subscription.fdb68534.js";import{C as he,O as fe}from"./OpenInNew.b3332d5e.js";import"./TaskAlt.7fe97aff.js";function be({children:a}){const{isSubscribed:s}=D();return s?a||e(F,{}):e(q,{to:"/pricing",replace:!0})}function ye(){const{user:a}=D(),s=E(a.id,{with:["subscriptions.product","subscriptions.price"]});return l("div",{className:"flex flex-col h-full",children:[e(H,{children:e(t,{message:"Billing"})}),e(W,{className:"flex-shrink-0",menuPosition:"billing-page"}),l("div",{className:"flex-auto overflow-auto flex flex-col",children:[e("div",{className:"container mx-auto my-24 px-24 flex-auto",children:s.isLoading?e(V,{className:"my-80","aria-label":"Loading user..",isIndeterminate:!0}):e(F,{})}),e(J,{className:"flex-shrink-0 container mx-auto px-24"})]})]})}const xe="/billing";function ve(){const a=v();return l(o.exports.Fragment,{children:[l(C,{children:[e(m,{isLink:!0,onSelected:()=>a(xe),children:e(t,{message:"Billing"})}),e(m,{children:e(t,{message:"Payment method"})})]}),e("h1",{className:"text-3xl font-bold my-32 md:my-64",children:e(t,{message:"Change payment method"})}),e(F,{})]})}const Ne="/billing";function we(){const{base_url:a}=M();
1return l("div",{className:"max-w-[464px]",children:[e(oe,{type:"setupIntent",submitLabel:e(t,{message:"Change"}),returnUrl:`${a}/billing/change-payment-method/done`}),e(u,{variant:"outline",className:"w-full mt-16",size:"md",to:Ne,elementType:y,type:"button",children:e(t,{message:"Go back"})})]})}function p(){var n,i,r;const a=E("me",{with:["subscriptions.product","subscriptions.price"]});return{subscription:(i=(n=a.data)==null?void 0:n.user.subscriptions)==null?void 0:i[0],isLoading:a.isLoading,user:(r=a.data)==null?void 0:r.user}}function L(){K("me")}const O="/billing";function Pe(){const{billing:{stripe_public_key:a}}=M(),s=v(),[n]=X(),i=n.get("setup_intent_client_secret"),[r,c]=o.exports.useState(),d=o.exports.useRef();return o.exports.useEffect(()=>{d.current||!i||(me(a).then(g=>{if(!g){c($());return}g.retrieveSetupIntent(i).then(({setupIntent:h})=>{(h==null?void 0:h.status)==="succeeded"&&Ce(h.payment_method).then(()=>{L()}),c($(h==null?void 0:h.status))})}),d.current=!0)},[a,i]),i?e(ue,{config:r}):(s(O),null)}function $(a){switch(a){case"succeeded":return{...S,message:N("Payment method changed successfully!"),status:"success"};case"processing":return{...S,message:N("Your request is processing. We'll update you when your payment method is confirmed."),status:"success"};case"requires_payment_method":return{...S,message:N("Payment method confirmation failed. Please try another payment method."),status:"error"};default:return{...S,message:N("Something went wrong"),status:"error"}}}const S={link:O,buttonLabel:N("Go back")};function Ce(a){return U.post("billing/stripe/change-default-payment-method",{payment_method_id:a})}function x({title:a,children:s}){return l("div",{className:"mb-64",children:[e("div",{className:"text-sm font-medium uppercase pb-16 mb-16 border-b",children:a}),s]})}function Se(){const a=v();return l(o.exports.Fragment,{children:[l(C,{children:[e(m,{isLink:!0,onSelected:()=>a("/billing"),children:e(t,{message:"Billing"})}),e(m,{children:e(t,{message:"Plans"})})]}),e("h1",{className:"text-3xl font-bold my-32 md:my-64",children:e(t,{message:"Change your plan"})}),e(x,{title:e(t,{message:"Available plans"}),children:e(j,{initial:!1,mode:"wait",children:e(_e,{})})})]})}function _e(){var i,r;const a=_(),[s,n]=o.exports.useState("monthly");return a.isLoading?e(Le,{},"plan-skeleton"):l(o.exports.Fragment,{children:[e(Z,{products:(i=a.data)==null?void 0:i.products,selectedCycle:s,onChange:n,className:"mb-20",size:"md"}),(r=a.data)==null?void 0:r.products.map(c=>{const d=ee(s,c.prices);return d?o.exports.createElement(k.div,{...B,key:c.id,className:"md:flex gap-40 justify-between py-32 border-b"},l("div",{className:"mb-40 md:mb-0",children:[e("div",{className:"text-xl font-bold",children:c.name}),e(w,{price:d,className:"text-lg"}),e("div",{className:"text-base mt-12",children:c.description}),e(ke,{plan:c})]}),e(Be,{product:c,price:d})):null})]},"plan-list")}function ke({plan:a}){return a.feature_list.length?l("div",{className:"mt-32",children:[e("div",{className:"text-sm mb-10 font-semibold",children:e(t,{message:"What's included"})}),a.feature_list.map(s=>l("div",{className:"flex items-center gap-10 text-sm",children:[e(A,{className:"text-positive",size:"sm"}),e(t,{message:s})]},s))]}):null}function Be({product:a,price:s}){const{subscription:n}=p();return!(n!=null&&n.price)||!(n!=null&&n.product)?null:n.product_id===a.id&&n.price_id===s.id?l("div",{className:"flex items-center justify-center gap-10 w-[168px] text-muted",children:[e(A,{size:"md"}),e(t,{message:"Current plan"})]}):e(u,{variant:"flat",color:"primary",className:"w-[168px]",size:"md",elementType:y,to:`/billing/change-plan/${a.id}/${s.id}/confirm`,children:e(t,{message:"Continue"})})}function Le(){return l(k.div,{...B,className:"text-2xl border-b py-32",children:[e(b,{className:"mb-8"}),e(b,{className:"mb-14"}),e(b,{className:"mb-24"}),e(b,{className:"mb-12"})]},"plan-skeleton")}function ze(){const{trans:a}=ae(),s=v();return ne(n=>Ie(n),{onSuccess:()=>{te(a(N("Plan changed."))),L(),s("/billing")},onError:n=>se(n)})}function Ie({subscriptionId:a,...s}){return U.post(`billing/subscriptions/${a}/change-plan`,s).then(n=>n.data)}const I="/billing/change-plan";function Re(){const{productId:a,priceId:s}=le(),n=v(),i=_(),{subscription:r}=p(),c=ze();if(!i.data||(r==null?void 0:r.price_id)==s)return e(q,{to:"/billing/change-plan",replace:!0});const d=i.data.products.find(z=>`${z.id}`===a),g=d==null?void 0:d.prices.find(z=>`${z.id}`===s);if(!d||!g||!r)return n(I),null;const h=l("span",{className:"whitespace-nowrap",children:[e(P,{date:r.renews_at,preset:"long"}),";"]});return l(o.exports.Fragment,{children:[l(C,{children:[e(m,{isLink:!0,onSelected:()=>n("/billing"),children:e(t,{message:"Billing"})}),e(m,{onSelected:()=>n(I),children:e(t,{message:"Plans"})}),e(m,{children:e(t,{message:"Confirm"})})]}),e("h1",{className:"text-3xl font-bold my-32 md:my-64",children:e(t,{message:"Confirm your new plan"})}),e(x,{title:e(t,{message:"Changing to"}),children:l("div",{className:"max-w-[464px]",children:[e("div",{className:"text-xl font-bold",children:d.name}),e(w,{price:g,className:"text-lg"}),e("div",{className:"text-base mt-12 border-b pb-24 mb-48",children:e(t,{message:"You will be charged the new price starting :date",values:{date:h}})}),l("div",{children:[e("div",{children:e(u,{variant:"flat",color:"primary",size:"md",className:"w-full mb-16",onClick:()=>{c.mutate({subscriptionId:r.id,newProductId:d.id,newPriceId:g.id})},disabled:c.isLoading,children:e(t,{message:"Confirm"})})}),e("div",{children:e(u,{variant:"outline",className:"w-full",to:I,elementType:y,children:e(t,{message:"Go back"})})}),e("div",{className:"text-xs text-muted mt-12",children:e(t,{message:"By confirming your new plan, you agree to our terms of Service and privacy policy."})})]})]})})]})}const R="/billing";function Te(){const a=v(),s=_(),{subscription:n}=p(),i=pe(),r=n==null?void 0:n.product,c=n==null?void 0:n.price;if(!s.data)return null;if(!n||!r||!c)return a(R),null;const d=e("span",{className:"whitespace-nowrap",children:e(P,{date:n.renews_at,preset:"long"})}),g=()=>{i.mutate({subscriptionId:n.id},{onSuccess:()=>{L(),a("/billing")}})};return l(o.exports.Fragment,{children:[l(C,{children:[e(m,{isLink:!0,onSelected:()=>a(R),children:e(t,{message:"Billing"})}),e(m,{children:e(t,{message:"Cancel"})})]}),e("h1",{className:"text-3xl font-bold my-32 md:my-64",children:e(t,{message:"Cancel your plan"})}),e(x,{title:e(t,{message:"Current plan"}),children:l("div",{className:"max-w-[464px]",children:[e("div",{className:"text-xl font-bold",children:r.name}),e(w,{price:c,className:"text-lg"}),l("div",{className:"text-base mt-12 border-b pb-24 mb-48",children:[e(t,{message:"Your plan will be canceled, but is still available until the end of your billing period on :date",values:{date:d}}),e("div",{className:"mt-20",children:e(t,{message:"If you change your mind, you can renew your subscription."})})]}),l("div",{children:[e("div",{children:e(u,{variant:"flat",color:"primary",size:"md",className:"w-full mb-16",onClick:g,disabled:i.isLoading,children:e(t,{message:"Cancel plan"})})}),e("div",{children:e(u,{variant:"outline",className:"w-full",to:R,elementType:y,children:e(t,{message:"Go back"})})}),e("div",{className:"text-xs text-muted mt-12",children:e(t,{message:"By cancelling your plan, you agree to our terms of service and privacy policy."})})]})]})})]})}const T="/billing";function Fe(){const a=v(),s=_(),{subscription:n}=p(),i=ge(),r=n==null?void 0:n.product,c=n==null?void 0:n.price;if(!s.data)return null;if(!n||!r||!c)return a(T),null;const d=l("span",{className:"whitespace-nowrap",children:[e(P,{date:n.ends_at,preset:"long"}),";"]}),g=()=>{i.mutate({subscriptionId:n.id},{onSuccess:()=>{L(),a("/billing")}})};return l(o.exports.Fragment,{children:[l(C,{children:[e(m,{isLink:!0,onSelected:()=>a(T),children:e(t,{message:"Billing"})}),e(m,{children:e(t,{message:"Renew"})})]}),e("h1",{className:"text-3xl font-bold my-32 md:my-64",children:e(t,{message:"Renew your plan"})}),e(x,{title:e(t,{message:"Current plan"}),children:l("div",{className:"max-w-[464px]",children:[e("div",{className:"text-xl font-bold",children:r.name}),e(w,{price:c,className:"text-lg"}),e("div",{className:"text-base mt-12 border-b pb-24 mb-48",children:e(t,{message:"This plan will no longer be canceled. It will renew on :date",values:{date:d}})}),e(u,{variant:"flat",color:"primary",size:"md",className:"w-full mb-16",onClick:g,disabled:i.isLoading,children:e(t,{message:"Renew plan"})}),e(u,{variant:"outline",className:"w-full",to:T,elementType:y,children:e(t,{message:"Go back"})}),e("div",{className:"text-xs text-muted mt-12",children:e(t,{message:"By renewing your plan, you agree to our terms of service and privacy policy."})})]})})]})}function Me(){const{subscription:a}=p();if(!(a!=null&&a.price)||!(a!=null&&a.product))return null;const s=e("span",{className:"whitespace-nowrap",children:e(P,{preset:"long",date:a.ends_at})});return e(x,{title:e(t,{message:"Current plan"}),children:l("div",{className:"flex gap-20 justify-between mt-24",children:[l("div",{children:[e(G,{className:"w-min mb-10",size:"xs",radius:"roun
1ded",color:"danger",children:e(t,{message:"Canceled"})}),e("div",{className:"text-xl font-bold mb-2",children:a.product.name}),e(w,{className:"text-xl mb-8",price:a.price}),l("div",{className:"text-base flex items-center gap-8",children:[e(he,{size:"sm",className:"text-muted"}),e(t,{message:"Your plan will be canceled on :date",values:{date:s}})]})]}),e("div",{className:"w-[233px]",children:e(u,{variant:"flat",color:"primary",size:"md",className:"w-full mb-12",elementType:y,to:"/billing/renew",children:e(t,{message:"Renew plan"})})})]})})}function Ue(){const{subscription:a}=p();if(!(a!=null&&a.price)||!(a!=null&&a.product))return null;const s=e(P,{preset:"long",date:a.renews_at});return e(x,{title:e(t,{message:"Current plan"}),children:l("div",{className:"flex gap-20 justify-between mt-24",children:[l("div",{children:[e("div",{className:"text-xl font-bold mb-2",children:a.product.name}),e(w,{className:"text-xl mb-2",price:a.price}),e("div",{className:"text-base",children:e(t,{message:"Your plan renews on :date",values:{date:s}})})]}),l("div",{className:"w-[233px]",children:[e(u,{variant:"flat",color:"primary",size:"md",className:"w-full mb-12",elementType:y,to:"/billing/change-plan",children:e(t,{message:"Change plan"})}),e(u,{variant:"outline",color:"danger",size:"md",className:"w-full",elementType:y,to:"/billing/cancel",children:e(t,{message:"Cancel plan"})})]})]})})}const $e=""+new URL("paypal.c2a77c63.svg",import.meta.url).href;function De(){const{user:a,subscription:s}=p();if(!a||!s)return null;const i=s.gateway_name==="paypal"?Ee:qe;return e(x,{title:e(t,{message:"Payment method"}),children:e(i,{methodClassName:"whitespace-nowrap text-base max-w-[464px] flex items-center gap-10",linkClassName:"flex items-center gap-4 text-muted mt-18 block hover:underline"})})}function qe({methodClassName:a,linkClassName:s}){const{user:n}=p();return n?l(o.exports.Fragment,{children:[l("div",{className:a,children:[e("span",{className:"capitalize",children:n.card_brand})," \u2022\u2022\u2022\u2022",n.card_last_four,n.card_expires&&e("div",{className:"ml-auto",children:e(t,{message:"Expires :date",values:{date:n.card_expires}})})]}),l(y,{className:s,to:"/billing/change-payment-method",children:[e(Y,{size:"sm"}),e(t,{message:"Change payment method"})]})]}):null}function Ee({methodClassName:a,linkClassName:s}){const{subscription:n}=p();return l(o.exports.Fragment,{children:[e("div",{className:a,children:e(ie,{src:$e})}),l("a",{className:s,href:`https://www.sandbox.paypal.com/myaccount/autopay/connect/${n==null?void 0:n.gateway_id}/funding`,target:"_blank",rel:"noreferrer",children:[e(Y,{size:"sm"}),e(t,{message:"Change payment method"})]})]})}const Q="billing/invoices";function je(a){return re([Q],()=>Ae(a))}function Ae(a){return U.get(Q,{params:{userId:a}}).then(s=>s.data)}function Ge(){var i;const{user:a}=p(),s=je(a==null?void 0:a.id);if(!a)return null;const n=(i=s.data)==null?void 0:i.invoices;return e(x,{title:e(t,{message:"Payment history"}),children:e("div",{className:"max-w-[464px]",children:e(j,{initial:!1,mode:"wait",children:s.isLoading?e(Oe,{},"loading-skeleton"):e(Ye,{invoices:n},"invoices")})})})}function Ye({invoices:a}){const{base_url:s}=M();return l(k.div,{...B,children:[a!=null&&a.length?void 0:e("div",{className:"text-muted italic",children:e(t,{message:"No invoices yet"})}),a==null?void 0:a.map(n=>{var i;return l("div",{className:"whitespace-nowrap text-base flex items-center justify-between gap-10 mb-14",children:[l("a",{href:`${s}/billing/invoices/${n.uuid}`,target:"_blank",className:"flex items-center gap-8 hover:underline",rel:"noreferrer",children:[e(P,{date:n.created_at}),e(fe,{size:"xs"})]}),n.subscription.price&&e("div",{children:e(ce,{value:n.subscription.price.amount,currency:n.subscription.price.currency})}),e(G,{size:"xs",color:n.paid?"positive":"danger",radius:"rounded",children:n.paid?e(t,{message:"Paid"}):e(t,{message:"Unpaid"})}),e("div",{children:(i=n.subscription.product)==null?void 0:i.name})]},n.id)})]})}function Oe(){return l(k.div,{...B,children:[e(b,{className:"mb-14"}),e(b,{className:"mb-14"}),e(b,{className:"mb-14"}),e(b,{className:"mb-14"}),e(b,{})]})}function Qe(){const{subscription:a}=p();if(!(a!=null&&a.price)||!(a!=null&&a.product))return null;const s=a.ends_at?e(Me,{}):e(Ue,{});return l("div",{children:[s,e(De,{}),e(Ge,{})]})}function Ze(){return e(de,{children:l(f,{path:"/",element:e(be,{children:e(ye,{})}),children:[e(f,{index:!0,element:e(Qe,{})}),l(f,{path:"change-payment-method",element:e(ve,{}),children:[e(f,{index:!0,element:e(we,{})}),e(f,{path:"done",element:e(Pe,{})})]}),e(f,{path:"change-plan",element:e(Se,{})}),e(f,{path:"change-plan/:productId/:priceId/confirm",element:e(Re,{})}),e(f,{path:"cancel",element:e(Te,{})}),e(f,{path:"renew",element:e(Fe,{})})]})})}export{Ze as default};
2//# sourceMappingURL=billing-page-routes.2fb84099.js.map

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.