import{f as N,g as xe,aq as J,j as z}from"./index-BB3C6ia3.js";import{b as i}from"./vendor-q1sfVHxQ.js";import{m as Ee}from"./provider-DbDMk8E0.js";var v=function(){return v=Object.assign||function(n){for(var s,a=1,r=arguments.length;a0&&e[e.length-1])||t[0]!==6&&t[0]!==2)){o=0;continue}if(t[0]===3&&(!e||t[1]>e[0]&&t[1]0)&&!(r=o.next()).done;)d.push(r.value)}catch(p){e={error:p}}finally{try{r&&!r.done&&(a=o.return)&&a.call(o)}finally{if(e)throw e.error}}return d},Z=J.productDetail,Te=Z.Helper,O=Z.QUERY_KEY,$=J.productExtraInfo,we=$.Helper,Ae=$.QUERY_KEY,ee=xe.productReview,Ce=ee.Helper,q=ee.MUTATION_KEY,u={productDetail:{productName:"",unescapedProductName:"",isSoldOut:!1,productNo:0,images:[],likeStatus:{isLiked:!1,count:0},summary:{productName:"",brandName:"",brandNo:0,useDiscount:!1,discountRate:0,discountAmount:0,discountedPrice:0,discountedPriceWithCoupon:0,originalPrice:0,freight:{type:null,areaType:null,partnerCompanyName:"",canFreight:!1,canInternationalFreight:!1,fee:0,isPrePayment:!1,conditionType:null,aboveDeliveryAmt:0,feeLabel:"배송불가 상품",conditionLabel:"",companyType:"",companyTypeLabel:"",defaultConditionLabel:"",remoteDeliveryAreaFee:{address:"",extraDeliveryAmt:0},feeLabels:[],conditionDetails:[],perOrderCnt:0,customerGuidance:"",returnFee:0,returnWarehouse:{warehouseAddressType:"ADDRESS",partnerNo:0,addressStr:"",address:"",isDefaultReleaseWarehouse:!0,countryCd:"KR",detailAddress:"",zipCd:"",warehouseName:"",warehouseNo:0,isDefaultReturnWarehouse:!0}},accumulation:{canAccumulate:!1,accumulatedAmount:0},reviewAvailable:!1},content:{header:"",main:"",footer:"",dutyInfo:{categoryNo:0,categoryName:"",contents:[]}},guide:{freight:"",exchange:"",refund:"",afterService:""}},originProductDetail:null,relatedProducts:[],productName:"",isSoldOut:!1,images:[],likeStatus:{isLiked:!1,count:0},summary:{productName:"",brandName:"",brandNo:0,useDiscount:!1,discountRate:0,discountAmount:0,discountedPrice:0,discountedPriceWithCoupon:0,originalPrice:0,freight:{type:null,areaType:null,partnerCompanyName:"",canFreight:!1,canInternationalFreight:!1,fee:0,isPrePayment:!1,conditionType:null,aboveDeliveryAmt:0,feeLabel:"배송불가 상품",conditionLabel:"",companyType:"",companyTypeLabel:"",defaultConditionLabel:"",remoteDeliveryAreaFee:{address:"",extraDeliveryAmt:0},feeLabels:[],conditionDetails:[],perOrderCnt:0,customerGuidance:"",returnFee:0,returnWarehouse:{warehouseAddressType:"ADDRESS",partnerNo:0,addressStr:"",address:"",isDefaultReleaseWarehouse:!0,countryCd:"KR",detailAddress:"",zipCd:"",warehouseName:"",warehouseNo:0,isDefaultReturnWarehouse:!0}},accumulation:{canAccumulate:!1,accumulatedAmount:0},reviewAvailable:!1},content:{header:"",main:"",footer:"",dutyInfo:{categoryNo:0,categoryName:"",contents:[]}},guide:{freight:"",exchange:"",refund:"",afterService:""},productExtraInfo:{productNo:0,extraInfo:null},extraProducts:[],extraProductTitle:"",isLoading:!0},te=i.createContext(null),re=i.createContext(null),Ye=function(n){var s=n.children,a=n.productNo,r=f(i.useState(u.originProductDetail),2),e=r[0],o=r[1],d=f(i.useState(u.productDetail),2),p=d[0],P=d[1],m=f(i.useState(u.relatedProducts),2),t=m[0],_=m[1],T=f(i.useState(u.extraProducts),2),ae=T[0],ne=T[1],w=f(i.useState(u.extraProductTitle),2),oe=w[0],ue=w[1],A=f(i.useState(u.isLoading),2),ie=A[0],C=A[1],I=f(i.useState(u.productExtraInfo),2),ce=I[0],le=I[1],L=f(i.useState(u.productName),2),se=L[0],U=L[1],Y=f(i.useState(u.isSoldOut),2),de=Y[0],k=Y[1],j=f(i.useState(u.images),2),fe=j[0],F=j[1],W=f(i.useState(u.summary),2),pe=W[0],Q=W[1],H=f(i.useState(u.content),2),me=H[0],K=H[1],M=f(i.useState(u.guide),2),ye=M[0],V=M[1],B=f(i.useState(u.likeStatus),2),Pe=B[0],G=B[1],g=i.useMemo((function(){return N(new Te({productNo:a}))}),[a]).executeQuery,X=i.useMemo((function(){return N(new Ce({productNo:a}))}),[a]).executeMutation,he=X(q.POST_REVIEW_REPORT).mutate,_e=X(q.DELETE_REVIEW_REPORT).mutate,ve=i.useCallback((function(){_(u.relatedProducts)}),[]),Se=i.useCallback((function(){o(u.originProductDetail),P(u.productDetail),U(u.productName),k(u.isSoldOut),F(u.images),Q(u.summary),K(u.content),V(u.guide)}),[]),ge=i.useMemo((function(){return{updateLikeStatus:function(l){P((function(y){return v(v({},y),{likeStatus:l})})),Ee(G)(l)},fetchProductDetail:function(l){return Se(),g(O.QUERY_PRODUCT_DETAIL_BY_PRODUCT_NO,{payload:l,onSuccess:function(y){var c=y.data,h=c.originProductDetail,D=Oe(c,["originProductDetail"]);o(h),P(D);var b=c.isSoldOut,S=c.images,x=c.summary,E=c.productName,R=c.content,De=c.guide,be=c.likeStatus;k(b),U(E),F(S),Q(x),K(R),V(De),G(be),C(!1)}})},fetchRelatedProducts:function(l){return ve(),g(O.QUERY_RELATED_PRODUCTS_BY_PRODUCT_NO,{payload:l,onSuccess:function(y){var c=y.data;_(c),C(!1)}})},fetchProductExtraInfo:function(){return Re(void 0,void 0,void 0,(function(){var l;return Ne(this,(function(y){switch(y.label){case 0:return[4,(0,N(new we).executeQuery)(Ae.QUERY_PRODUCTS_EXTRA_INFO,{payload:{productNos:a.toString()},onSuccess:function(c){var h=c.data;return le(h[0]),h[0]}})];case 1:return l=y.sent(),[2,v(v({},l),{data:l.data.at(0)})]}}))}))},postProductReviewReport:function(l){return he({payload:l})},cancelProductReviewReport:function(l){return _e({payload:l})},fetchExtraProducts:function(l){return g(O.QUERY_EXTRA_PRODUCTS_BY_PRODUCT_NO,{payload:l,onSuccess:function(y){var c,h=y.data||{},D=h.extraProducts,b=h.extraProductTitle,S=((c=p?.baseInfo)===null||c===void 0?void 0:c.paymentMeans)||[],x=(D||[]).filter((function(E){return S?.some((function(R){return E.paymentMeans.includes(R)}))}));ne(x),ue(b||u.extraProductTitle)}})}}}),[a,p]);return z.jsx(te.Provider,{value:{originProductDetail:e,productDetail:p,relatedProducts:t,extraProducts:ae,extraProductTitle:oe,isLoading:ie,productNo:a,productName:se,images:fe,summary:pe,content:me,guide:ye,isSoldOut:de,likeStatus:Pe,productExtraInfo:ce},children:z.jsx(re.Provider,{value:ge,children:s})})},ke=function(){var n=i.useContext(te);if(!n)throw Error("INVALID_ProductDetailStateContext");return n},je=function(){var n=i.useContext(re);if(!n)throw Error("INVALID_ProductDetailActionContext");return n};export{Ye as P,je as a,ke as u};