"use strict";(self.webpackChunkui=self.webpackChunkui||[]).push([[35],{149:(e,t,s)=>{s.r(t),s.d(t,{default:()=>a});const a={container:"ARXqDxZt",writeReviewTitle:"BYrMqN9b",field:"mX1RH16p",label:"kOxbIdDY",input:"MWf_zaBJ",textarea:"c4EbHpL4",rating:"qKa8P3SJ",star:"Cr3A6eGy",starSelected:"vRJsPzxd",submit:"dk6iJfOU",imagePreview:"XZ7E9B5A",statusContainer:"OlsGRGkU",thankYouTitle:"COGuffWk",thankYouMessage:"YHPG5NZb"}},67:(e,t,s)=>{s.r(t),s.d(t,{default:()=>a});const a={gallery:"utYziQAE",imageContainer:"u7hALhRV",image:"HRX192Oq",imageMessage:"C0mfa5lU",review:"jT_XY_1t",title:"pfrMrpCr",truncated:"YcyRuLBB",expanded:"IomlcWA2",modal:"EQpOtFeT",fadeIn:"sVWQQ9or",fadeOut:"sZfxzYzK",modalInner:"Lg4GX5Y4",modalContent:"OpbIhP35",modalOverlay:"iZzCdFwp",modalHeader:"wek3E8S1",fullBleedImage:"i2zolDuA",slideUp:"u96mNKND",slideDown:"jAr2PKY3",closeButton:"MvI_gVPT",modalTextContent:"bihC0FqM",modalBodyText:"ksR2mAtx",loadMoreButton:"QklUYRZO",reviewsHeader:"KjJxq4iV"}},148:(e,t,s)=>{const a=s(29);(0,s(2).createEntrypoint)("pdp_reviews",a.Reviews)},5:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.formatPrice=t.SHOPIFY_FILE_PATH=t.VALID_STORE_OPTIONS=t.EXCLUDE_TAGS=t.REVIEWS_ENDPOINT=t.REVIEWS_PER_PAGE=t.PRODUCT_IMAGE_WIDTH=t.PRODUCT_IMAGE_HEIGHT=t.PROJECT_HOSTNAME=void 0,t.PROJECT_HOSTNAME="comfrt.com",t.PRODUCT_IMAGE_HEIGHT=1600,t.PRODUCT_IMAGE_WIDTH=1200,t.REVIEWS_PER_PAGE=28,t.REVIEWS_ENDPOINT="https://shalom-development-worker-may-2024.digitaloptgroup.workers.dev",t.EXCLUDE_TAGS=["add","Extra Comfy"],t.VALID_STORE_OPTIONS=["Size","Color"],t.SHOPIFY_FILE_PATH="https://cdn.shopify.com/s/files/1/0569/4029/8284",t.formatPrice=function(e){return parseInt(e)}},30:function(e,t,s){var a=this&&this.__awaiter||function(e,t,s,a){return new(s||(s=Promise))((function(i,n){function l(e){try{r(a.next(e))}catch(e){n(e)}}function c(e){try{r(a.throw(e))}catch(e){n(e)}}function r(e){var t;e.done?i(e.value):(t=e.value,t instanceof s?t:new s((function(e){e(t)}))).then(l,c)}r((a=a.apply(e,t||[])).next())}))},i=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.ReviewForm=void 0;const n=s(1),l=(s(0),s(3)),c=i(s(149)),r=i(s(67)),d=s(5);t.ReviewForm=function({productId:e,productName:t,productHandle:s,productType:i,productDescription:o,productImageUrl:u,productUrl:h}){const[f,g]=(0,l.useState)("ready"),[m,j]=(0,l.useState)({name:"",email:"",rating:0,title:"",review:"",images:[]});function p(e){const t=e.target;j(Object.assign(Object.assign({},m),{[t.name]:t.value}))}return"submitting"===f?(0,n.jsx)("div",Object.assign({class:c.default.statusContainer},{children:(0,n.jsx)("div",Object.assign({class:c.default.thankYouTitle},{children:"Submitting your review..."}))})):"success"===f?(0,n.jsxs)("div",Object.assign({class:c.default.statusContainer},{children:[(0,n.jsx)("div",Object.assign({class:c.default.thankYouTitle},{children:"Thank you for submitting a review!"})),(0,n.jsx)("div",Object.assign({class:c.default.thankYouMessage},{children:"Your input is very much appreciated. Share it with your friends so they can enjoy it too!"}))]})):(0,n.jsxs)("form",Object.assign({class:c.default.container,onSubmit:function(n){return a(this,void 0,void 0,(function*(){n.preventDefault(),g("submitting");const a=(null==u?void 0:u.startsWith("/fast-image"))?`${d.SHOPIFY_FILE_PATH}${u.split("comfrt")[1]}`:u,l=new FormData;l.append("productId",e),l.append("author",m.name),l.append("email",m.email),l.append("location",""),l.append("reviewRating",m.rating.toString()),l.append("reviewTitle",m.title),l.append("reviewMessage",m.review),l.append("productName",t),l.append("productSKU",s),l.append("productType",i),l.append("productDescription",o),l.append("productImageUrl",null!=a?a:""),l.append("productUrl",h),l.append("reviewSource","widget");for(let e=0;e(0,n.jsx)("span",Object.assign({class:[c.default.star,m.rating>=e?c.default.starSelected:""].join(" "),onClick:()=>{return t=e,void j(Object.assign(Object.assign({},m),{rating:t}));var t}},{children:m.rating>=e?"★":"☆"}),e)))}))]})),(0,n.jsxs)("div",Object.assign({class:c.default.field},{children:[(0,n.jsx)("label",Object.assign({class:c.default.label,for:"title"},{children:"Title of Review"})),(0,n.jsx)("input",{class:c.default.input,type:"text",id:"title",name:"title",value:m.title,onChange:p,placeholder:"Give your review a title"})]})),(0,n.jsxs)("div",Object.assign({class:c.default.field},{children:[(0,n.jsx)("label",Object.assign({class:c.default.label,for:"review"},{children:"How was your overall experience?"})),(0,n.jsx)("textarea",{class:c.default.textarea,id:"review",name:"review",value:m.review,onChange:p})]})),(0,n.jsxs)("div",Object.assign({class:c.default.field},{children:[(0,n.jsx)("label",Object.assign({class:c.default.label,for:"images"},{children:"Add Photos"})),(0,n.jsx)("input",{class:c.default.input,type:"file",id:"images",name:"images",multiple:!0,onChange:function(e){const t=e.target;t.files&&j(Object.assign(Object.assign({},m),{images:[...m.images,...Array.from(t.files)]}))}}),(0,n.jsx)("div",Object.assign({class:c.default.imagePreview},{children:m.images.map(((e,t)=>(0,n.jsx)("img",{src:URL.createObjectURL(e),alt:`Preview ${t+1}`},t)))}))]})),(0,n.jsx)("div",Object.assign({class:c.default.submit},{children:(0,n.jsx)("button",Object.assign({class:r.default.loadMoreButton,type:"submit"},{children:"Submit"}))}))]}))}},58:function(e,t,s){var a=this&&this.__awaiter||function(e,t,s,a){return new(s||(s=Promise))((function(i,n){function l(e){try{r(a.next(e))}catch(e){n(e)}}function c(e){try{r(a.throw(e))}catch(e){n(e)}}function r(e){var t;e.done?i(e.value):(t=e.value,t instanceof s?t:new s((function(e){e(t)}))).then(l,c)}r((a=a.apply(e,t||[])).next())}))};Object.defineProperty(t,"__esModule",{value:!0}),t.ListTracking=void 0;const i=s(1),n=(s(0),s(3)),l=s(5);function c(e,t,s){return a(this,void 0,void 0,(function*(){const a=new URL(l.REVIEWS_ENDPOINT);a.pathname="/__list_engagement__",a.searchParams.set(s,"1"),a.searchParams.set("cacheKey",e),a.searchParams.set("__orly_aid","NA"),a.searchParams.set("itemId",null==t?void 0:t.toString()),yield fetch(a.toString(),{mode:"no-cors"})}))}t.ListTracking=function({children:e,id:t,cacheKey:s}){const l=(0,n.useRef)(null),[r,d]=(0,n.useState)(!1);return(0,n.useEffect)((()=>{const e=new IntersectionObserver((([i])=>a(this,void 0,void 0,(function*(){if(null==i?void 0:i.isIntersecting){l.current&&e.unobserve(l.current);try{yield c(s,t,"trial")}catch(e){}}}))),{root:null,rootMargin:"0px",threshold:1});return l.current&&e.observe(l.current),()=>{l.current&&e.unobserve(l.current)}}),[]),(0,i.jsx)("div",Object.assign({ref:l,onClick:()=>a(this,void 0,void 0,(function*(){try{r||(yield c(s,t,"success"),d(!0))}catch(e){}}))},{children:e}))}},29:function(e,t,s){var a=this&&this.__awaiter||function(e,t,s,a){return new(s||(s=Promise))((function(i,n){function l(e){try{r(a.next(e))}catch(e){n(e)}}function c(e){try{r(a.throw(e))}catch(e){n(e)}}function r(e){var t;e.done?i(e.value):(t=e.value,t instanceof s?t:new s((function(e){e(t)}))).then(l,c)}r((a=a.apply(e,t||[])).next())}))},i=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.Reviews=void 0;const n=s(1),l=s(0),c=s(3),r=i(s(67)),d=s(2),o=s(5),u=s(58),h=s(6),f=s(30);t.Reviews=function(e){var t,s;const i=e.useSharedState()((e=>e.product));if(!i)return(0,n.jsx)(l.Fragment,{});const g=i.handle,{reviewCount:m,reviewRating:j}=i,p=Object.values(i.imageMap).flat().map((({src:e})=>e)),[v,b]=(0,c.useState)(!1),[O,x]=(0,c.useState)(!(e.reviews.length{R(!0),window.matchMedia("(max-width: 600px)").matches||(I(null),P(!1)),setTimeout((()=>{I(null),P(!1),R(!1)}),300),document.body.style.overflow="auto"},D=e=>{e.target===e.currentTarget&&k()},M="Studio photo";return(0,n.jsxs)("div",Object.assign({id:"reviews",class:r.default.reviewContainer},{children:[S&&(0,n.jsxs)(l.Fragment,{children:[(0,n.jsx)("div",{class:[r.default.modal,T?r.default.fadeOut:""].join(" "),onClick:D,onDblClick:k}),(0,n.jsx)("div",Object.assign({class:r.default.modalInner,onClick:D,onDblClick:k},{children:(0,n.jsxs)("div",Object.assign({class:[r.default.modalContent,T?r.default.slideDown:""].join(" "),onClick:e=>e.stopPropagation()},{children:[(0,n.jsx)("div",Object.assign({class:r.default.modalHeader},{children:(0,n.jsx)("button",Object.assign({class:r.default.closeButton,onClick:k},{children:"X"}))})),(0,n.jsx)("div",Object.assign({class:r.default.modalTextContent},{children:(0,n.jsx)(f.ReviewForm,{productId:i.id,productName:i.title,productHandle:i.handle,productType:i.productType,productDescription:i.description,productImageUrl:null===(s=null===(t=i.variants[0])||void 0===t?void 0:t.image)||void 0===s?void 0:s.src,productUrl:`https://comfrt.com/products/${i.handle}`})}))]}))}))]}),m&&j&&(0,n.jsxs)("div",Object.assign({class:r.default.reviewsHeader},{children:["★★★★★ ",m," Reviews | Avg Rating: ",j.toFixed(1)]})),(0,n.jsx)("button",Object.assign({class:r.default.loadMoreButton,onClick:()=>{P(!0),document.body.style.overflow="hidden"}},{children:"Write a Review"})),(0,n.jsx)("div",Object.assign({className:r.default.gallery},{children:w.map(((e,t)=>{const s=(null==e?void 0:e.images[0])?`https://cdn.stamped.io/uploads/photos/${e.images[0]}`:p[t%p.length];return(0,n.jsx)(u.ListTracking,Object.assign({id:e.id,cacheKey:e.cacheKey},{children:(0,n.jsxs)("div",Object.assign({onClick:()=>((e,t)=>{I(Object.assign(Object.assign({},e),{imgSrc:t})),document.body.style.overflow="hidden"})(e,s),class:r.default.reviewContainer},{children:[(0,n.jsxs)("div",Object.assign({class:r.default.imageContainer},{children:[(0,n.jsx)(h.LazyImage,{src:s,initialWidth:400,cssClass:r.default.image,alt:e.author,fullSizeWidth:600,width:200,height:200}),!(null==e?void 0:e.images[0])&&(0,n.jsx)("div",Object.assign({class:r.default.imageMessage},{children:M}))]})),(0,n.jsxs)("div",Object.assign({class:r.default.review},{children:[(0,n.jsx)("h3",Object.assign({class:r.default.title},{children:e.author})),(0,n.jsxs)("h3",{children:["✅ Verified Buyer | ",e.dateCreated]}),(0,n.jsx)("h3",Object.assign({class:r.default.stars},{children:"★★★★★"})),(0,n.jsx)("h3",Object.assign({class:r.default.title},{children:e.title})),(0,n.jsx)("p",Object.assign({class:r.default.truncated},{children:e.body}))]}))]}),e.title)}))}))})),(T||E)&&(0,n.jsxs)(l.Fragment,{children:[(0,n.jsx)("div",{class:[r.default.modal,T?r.default.fadeOut:""].join(" "),onClick:D,onDblClick:k}),E&&(0,n.jsx)("div",Object.assign({class:r.default.modalInner,onClick:D,onDblClick:k},{children:(0,n.jsxs)("div",Object.assign({class:[r.default.modalContent,T?r.default.slideDown:""].join(" "),onClick:e=>e.stopPropagation()},{children:[(0,n.jsxs)("div",Object.assign({class:r.default.modalHeader},{children:[(0,n.jsx)(h.LazyImage,{src:E.imgSrc,initialWidth:400,cssClass:r.default.fullBleedImage,alt:E.author,fullSizeWidth:600,width:200,height:200}),!(null==E?void 0:E.images[0])&&(0,n.jsx)("div",Object.assign({class:r.default.imageMessage},{children:M})),(0,n.jsx)("button",Object.assign({class:r.default.closeButton,onClick:k},{children:"X"}))]})),(0,n.jsxs)("div",Object.assign({class:r.default.modalTextContent},{children:[(0,n.jsx)("h3",Object.assign({class:r.default.title},{children:E.author})),(0,n.jsxs)("h3",{children:["✅ Verified Buyer | ",E.dateCreated]}),(0,n.jsx)("h3",Object.assign({class:r.default.stars},{children:"★★★★★"})),(0,n.jsx)("h3",Object.assign({class:r.default.title},{children:E.title})),(0,n.jsx)("p",Object.assign({class:r.default.modalBodyText},{children:E.body}))]}))]}))}))]}),O&&(0,n.jsx)("button",Object.assign({class:r.default.loadMoreButton,onClick:()=>a(this,void 0,void 0,(function*(){b(!0);const e=yield(0,d.getLazyState)("reviewsLazy",{productHandle:g,page:_+1});b(!1),(null!=e?e:[]).length{Object.defineProperty(t,"__esModule",{value:!0}),t.LazyImage=void 0;const a=s(1),i=(s(0),s(7)),n=s(3);t.LazyImage=function({src:e,initialWidth:t,fullSizeWidth:s,cssClass:l,alt:c="",width:r,height:d}){const o=(0,i.getFastImage)(e,t),u=(0,i.getFastImage)(e,s),[h,f]=(0,n.useState)({}),g=(0,n.useMemo)((()=>h[u]?u:o),[e,t,s,h]);return(0,n.useEffect)((()=>{if(document){const e=document.createElement("img");e.src=u,e.onload=()=>f(Object.assign(Object.assign({},h),{[u]:!0}))}}),[u]),r&&d?(0,a.jsx)("img",{src:g,class:l,alt:c,width:r,height:d}):(0,a.jsx)("img",{src:g,class:l,alt:c})}}},e=>{e.O(0,[1,2,3],(()=>(148,e(e.s=148)))),e.O()}]);