{"version":3,"file":"src_components_modules_questionAndAnswers_ProductQuestionAndAnswer_jsx.js","mappings":"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","sources":["webpack://ecommerce/./src/components/modules/questionAndAnswers/ProductAnswer.jsx","webpack://ecommerce/./src/components/modules/questionAndAnswers/ProductQuestionAndAnswer.jsx","webpack://ecommerce/./src/deferredImagesLoader.js"],"sourcesContent":["import React, { useRef, useState } from 'react';\r\nimport { decode } from 'html-entities';\r\nimport common from '../../../common/common';\r\nimport translateService from '../../../common/translateService';\r\nimport {\r\n handleAbuseTypeChange,\r\n toggleNextElementVisibility,\r\n} from '../../../services/product/productInteraction.js';\r\nimport {\r\n userVoteYes,\r\n userVoteNo,\r\n reportAnswerAbuse,\r\n} from '../../../services/questionAndAnswers/questionAndAnswersService.js';\r\nimport './ProductAnswer.scss';\r\n\r\nconst ProductAnswer = (props) => {\r\n const reportAbuseFormRef = useRef(null);\r\n const [answer, setAnswer] = useState(props.answer);\r\n const [abuseType, setAbuseType] = useState('');\r\n\r\n const handleRadioButtonClick = (e) => {\r\n handleAbuseTypeChange(e, reportAbuseFormRef);\r\n const type = e.currentTarget.value;\r\n setAbuseType(type);\r\n };\r\n\r\n async function handleAnswerIsUseful() {\r\n if (!props.isAuthenticated) {\r\n window.location = common.getSiteUrl(\r\n `${\r\n window.$pathBase\r\n }Account/LogOn?returnUrl=${encodeURIComponent(\r\n window.$pathBase + props.slug + window.location.search\r\n )}`\r\n );\r\n return;\r\n }\r\n if (props.isAuthenticated && !answer.userAlreadyVotedForUseful) {\r\n const result = await userVoteYes(\r\n props.questionId,\r\n answer.id,\r\n props.slug\r\n );\r\n\r\n if (result.isSuccess) {\r\n setAnswer((prevState) => {\r\n const uselessCount = prevState.userAlreadyVotedForUseless\r\n ? prevState.uselessCount - 1\r\n : prevState.uselessCount;\r\n const usefulCount = prevState.usefulCount + 1;\r\n\r\n return {\r\n ...prevState,\r\n userAlreadyVotedForUseful: true,\r\n userAlreadyVotedForUseless: false,\r\n usefulCount: usefulCount,\r\n uselessCount: uselessCount,\r\n };\r\n });\r\n }\r\n }\r\n }\r\n\r\n async function handleAnswerIsUseless() {\r\n if (!props.isAuthenticated) {\r\n window.location = common.getSiteUrl(\r\n `${\r\n window.$pathBase\r\n }Account/LogOn?returnUrl=${encodeURIComponent(\r\n window.$pathBase + props.slug + window.location.search\r\n )}`\r\n );\r\n return;\r\n }\r\n if (props.isAuthenticated && !answer.userAlreadyVotedForUseless) {\r\n const result = await userVoteNo(\r\n props.questionId,\r\n answer.id,\r\n props.slug\r\n );\r\n\r\n if (result.isSuccess) {\r\n setAnswer((prevState) => {\r\n const usefulCount = prevState.userAlreadyVotedForUseful\r\n ? prevState.usefulCount - 1\r\n : prevState.usefulCount;\r\n const uselessCount = prevState.uselessCount + 1;\r\n\r\n return {\r\n ...prevState,\r\n userAlreadyVotedForUseful: false,\r\n userAlreadyVotedForUseless: true,\r\n usefulCount: usefulCount,\r\n uselessCount: uselessCount,\r\n };\r\n });\r\n }\r\n }\r\n }\r\n\r\n async function handleSendReportAbuse() {\r\n const result = await reportAnswerAbuse(\r\n props.questionId,\r\n answer.id,\r\n props.slug,\r\n abuseType\r\n );\r\n\r\n if (result.isSuccess) {\r\n reportAbuseFormRef.current.classList.remove('open');\r\n }\r\n }\r\n\r\n return (\r\n
\r\n \r\n

{answer.user.nickname}

\r\n
\r\n
\r\n

\r\n {translateService.get(`productDetail.isUseful`)}{' '}\r\n \r\n {' '}\r\n {answer.usefulCount}\r\n {' '}\r\n \r\n {' '}\r\n {answer.uselessCount}\r\n \r\n

\r\n {props.isAuthenticated && (\r\n
\r\n \r\n {translateService.get(\r\n `questions.reportAnswerAbuse`\r\n )}\r\n

\r\n \r\n

\r\n {translateService.get(\r\n `questions.answerAabuseKind`\r\n )}\r\n

\r\n \r\n \r\n \r\n

\r\n \r\n {translateService.get(\r\n `productDetail.send`\r\n )}\r\n \r\n

\r\n
\r\n
\r\n )}\r\n
\r\n
\r\n \r\n );\r\n};\r\n\r\nexport default ProductAnswer;\r\n","require('flickity-fullscreen');\r\nimport React, { useRef, useState, useEffect } from 'react';\r\nimport Flickity from 'react-flickity-component';\r\nimport { isEmpty, map } from 'lodash';\r\nimport Globalizer from '../../../globalizer';\r\nimport common from '../../../common/common';\r\nimport translateService from '../../../common/translateService';\r\nimport {\r\n toggleNextElementVisibility,\r\n handleAbuseTypeChange,\r\n} from '../../../services/product/productInteraction';\r\nimport ProductFullScreenHandler from '../products/ProductFullScreenHandler.jsx';\r\nimport { reportQuestionAbuse } from '../../../services/questionAndAnswers/questionAndAnswersService';\r\nimport ProductAnswer from './ProductAnswer.jsx';\r\nimport deferredImagesLoader from '../../../deferredImagesLoader';\r\n\r\nconst ProductQuestionAndAnswer = ({ isMobile, isAuthenticated, question }) => {\r\n Globalizer.init();\r\n const questionRef = useRef(null);\r\n const flktyHtmlRef = useRef(null);\r\n const reportAbuseFormRef = useRef(null);\r\n const [questionState, setQuestionState] = useState(question);\r\n const [flktyRef, setFlktyRef] = useState();\r\n const [abuseType, setAbuseType] = useState('');\r\n const [fullScreenActive, setFullScreenActive] = useState(false);\r\n const [indexZoom, setIndexZoom] = useState(0);\r\n\r\n useEffect(() => {\r\n setQuestionState(question);\r\n deferredImagesLoader.observeReviewGallery({\r\n element: questionRef.current,\r\n cb: (imageToLazyLoad) => {\r\n if (imageToLazyLoad) {\r\n setQuestionState({ ...question, renderImages: true });\r\n }\r\n },\r\n });\r\n }, [question]);\r\n\r\n const handleRadioButtonClick = (e) => {\r\n handleAbuseTypeChange(e, reportAbuseFormRef);\r\n const type = e.currentTarget.value;\r\n setAbuseType(type);\r\n };\r\n\r\n async function handleSendReportAbuse() {\r\n const result = await reportQuestionAbuse(\r\n question.id,\r\n question.productSlug,\r\n abuseType\r\n );\r\n\r\n if (result.isSuccess) {\r\n reportAbuseFormRef.current.classList.remove('open');\r\n }\r\n }\r\n\r\n const handleImageClick = (e, index) => {\r\n setFullScreenActive(!fullScreenActive);\r\n setIndexZoom(index);\r\n };\r\n\r\n const images = map(question.images, (image, idx) => (\r\n
\r\n handleImageClick(e, idx)} />\r\n
\r\n ));\r\n\r\n const answers = map(question.answers, (a, idx) => (\r\n \r\n ));\r\n\r\n if (flktyRef) {\r\n flktyRef.on('fullscreenChange', (isFullscreen) => {\r\n const body = document.querySelector('body');\r\n\r\n if (isFullscreen) {\r\n body.classList.add('no-scroll');\r\n } else {\r\n body.classList.remove('no-scroll');\r\n }\r\n });\r\n }\r\n\r\n return (\r\n
\r\n
\r\n

\r\n {`${question.user.nickname} | ${Globalizer.formatDateLong(\r\n question.creationDate\r\n )}`}\r\n

\r\n
\r\n
\r\n

\r\n {!isEmpty(question.images) &&\r\n questionState.renderImages === true && (\r\n {\r\n setFlktyRef(c);\r\n }}>\r\n {images}\r\n \r\n )}\r\n {fullScreenActive && (\r\n {},\r\n },\r\n startIndex: indexZoom,\r\n }}\r\n items={question.images.map((i) => ({\r\n src: i,\r\n type: 'image',\r\n }))}>\r\n )}\r\n

\r\n\r\n
\r\n {isAuthenticated && (\r\n
\r\n \r\n {translateService.get(\r\n `questions.reportQuestionAbuse`\r\n )}\r\n

\r\n \r\n

\r\n {translateService.get(\r\n `questions.questionAbuseKind`\r\n )}\r\n

\r\n \r\n \r\n \r\n

\r\n \r\n {translateService.get(`productDetail.send`)}\r\n \r\n

\r\n
\r\n
\r\n )}\r\n
\r\n \r\n {translateService.get(`questions.answerQuestionLink`)}\r\n \r\n
\r\n
\r\n\r\n {isEmpty(question.answers) ? (\r\n
\r\n

\r\n {translateService.get(`questions.noAnswers`)}\r\n

\r\n
\r\n ) : (\r\n
\r\n \r\n {question.answers.length === 1\r\n ? translateService.get(`questions.oneAnswer`)\r\n : translateService.interpolate(\r\n `questions.answers`,\r\n { x: question.answers.length }\r\n )}\r\n

\r\n
{answers}
\r\n
\r\n )}\r\n \r\n );\r\n};\r\n\r\nexport default ProductQuestionAndAnswer;\r\n","require('intersection-observer');\r\nimport { each, some } from 'lodash';\r\n\r\n// https://developers.google.com/web/updates/2016/04/intersectionobserver\r\nconst _observeItem = function ({ element, threshold = 0.5, callback }) {\r\n // \"10% visible for more than a continuous second\"\r\n\r\n const isVisible = function (boundingClientRect, intersectionRect) {\r\n return (\r\n (intersectionRect.width * intersectionRect.height) /\r\n (boundingClientRect.width * boundingClientRect.height) >=\r\n threshold\r\n );\r\n };\r\n\r\n const visibleTimerCallback = function (element, observer) {\r\n delete element.visibleTimeout;\r\n // Process any pending observations\r\n processChanges(observer.takeRecords());\r\n if ('isVisible' in element) {\r\n delete element.isVisible;\r\n observer.unobserve(element);\r\n }\r\n };\r\n\r\n function processChanges(changes) {\r\n each(changes, function (changeRecord) {\r\n var element = changeRecord.target;\r\n element.isVisible = isVisible(\r\n changeRecord.boundingClientRect,\r\n changeRecord.intersectionRect\r\n );\r\n if (element.isVisible) {\r\n // Transitioned from hidden to visible\r\n // console.log(\"Became visibile\");\r\n callback(element);\r\n element.visibleTimeout = setTimeout(\r\n visibleTimerCallback,\r\n 1000,\r\n element,\r\n observer\r\n );\r\n } else {\r\n // Transitioned from visible to hidden\r\n // console.log(\"invisible\");\r\n if ('visibleTimeout' in element) {\r\n clearTimeout(element.visibleTimeout);\r\n delete element.visibleTimeout;\r\n }\r\n }\r\n });\r\n }\r\n\r\n var observer = new IntersectionObserver(processChanges, {\r\n threshold: [threshold],\r\n });\r\n\r\n observer.observe(element);\r\n};\r\n\r\nconst _observeItems = ({ items, imageIdentifier, sourceAttribute, cb }) => {\r\n each(items, (item) => {\r\n const itm = item;\r\n const imagesToLazyLoad = itm.getElementsByClassName(imageIdentifier);\r\n\r\n each(imagesToLazyLoad, (imageToLazyLoad) => {\r\n if (imageToLazyLoad !== undefined) {\r\n const url =\r\n imageToLazyLoad.getAttribute(sourceAttribute) ||\r\n imageToLazyLoad.getAttribute('data-src');\r\n const shouldLazyLoad =\r\n (url !== '' &&\r\n url !== null &&\r\n url !== undefined &&\r\n imageToLazyLoad.isSrcAlreadySet === undefined) ||\r\n imageToLazyLoad.getAttribute('data-src') !==\r\n imageToLazyLoad.getAttribute('src');\r\n\r\n _observeItem({\r\n element: itm,\r\n threshold: 0.1,\r\n callback: function () {\r\n imageToLazyLoad.isSrcAlreadySet =\r\n imageToLazyLoad.getAttribute('data-src') ===\r\n imageToLazyLoad.getAttribute('src');\r\n if (shouldLazyLoad) {\r\n if (!imageToLazyLoad.isSrcAlreadySet) {\r\n imageToLazyLoad.setAttribute('src', url);\r\n\r\n if (cb) {\r\n cb(imageToLazyLoad);\r\n }\r\n imageToLazyLoad.isSrcAlreadySet =\r\n imageToLazyLoad.getAttribute('data-src') ===\r\n imageToLazyLoad.getAttribute('src');\r\n imageToLazyLoad.classList.add(\r\n 'image-lazyloaded'\r\n );\r\n }\r\n }\r\n },\r\n });\r\n }\r\n });\r\n });\r\n};\r\n\r\nconst setIntervalX = function (callback, delay, repetitions) {\r\n var x = 0;\r\n var intervalID = window.setInterval(function () {\r\n callback();\r\n\r\n if (++x === repetitions) {\r\n window.clearInterval(intervalID);\r\n }\r\n }, delay);\r\n return intervalID;\r\n};\r\n\r\nconst observeArticleImages = () => {\r\n // Per ogni .article__image visibile per almeno 10% della superficie,\r\n // richiedo al server la immagine.\r\n // Se l'utente ha in viewport l'immagine per + di 1 secondo, non la richiedo piĆ¹\r\n // e sgancio l'observer\r\n var intervalTryId = setIntervalX(\r\n function () {\r\n var items = document.getElementsByClassName('article');\r\n if (items && items.length > 0) {\r\n _observeItems({\r\n items: items,\r\n imageIdentifier: 'article__image',\r\n });\r\n window.clearInterval(intervalTryId);\r\n }\r\n },\r\n //1000,\r\n 300,\r\n 8\r\n );\r\n};\r\n\r\nconst observeBannerImages = () => {\r\n var items = document.getElementsByClassName('banner__link');\r\n\r\n each(items, (item) => {\r\n const itm = item;\r\n const sourcesToLazyLoad = itm.getElementsByTagName('source');\r\n const imageToLazyLoad = itm.getElementsByClassName('banner__img')[0];\r\n\r\n if (imageToLazyLoad !== undefined) {\r\n const url = imageToLazyLoad.getAttribute('data-src') || '';\r\n const shouldLazyLoad =\r\n url !== '' &&\r\n some(\r\n sourcesToLazyLoad,\r\n (s) => (s.getAttribute('data-srcset') || '') !== ''\r\n );\r\n\r\n _observeItem({\r\n element: itm,\r\n threshold: 0.1,\r\n callback: function () {\r\n if (shouldLazyLoad) {\r\n if (!imageToLazyLoad.isSrcAlreadySet) {\r\n each(sourcesToLazyLoad, (s) => {\r\n const srcset =\r\n s.getAttribute('data-srcset') || '';\r\n s.setAttribute('srcset', srcset);\r\n });\r\n\r\n imageToLazyLoad.setAttribute('src', url);\r\n imageToLazyLoad.isSrcAlreadySet = true;\r\n imageToLazyLoad.classList.add('image-lazyloaded');\r\n }\r\n }\r\n },\r\n });\r\n }\r\n });\r\n};\r\n\r\nexport default {\r\n observeArticleImages,\r\n observeBannerImages,\r\n observeReviewGallery: function ({ element, cb }) {\r\n if (element) {\r\n _observeItem({\r\n element,\r\n callback: (imageToLazyLoad) => {\r\n if (imageToLazyLoad) {\r\n return cb(imageToLazyLoad);\r\n }\r\n return undefined;\r\n },\r\n });\r\n }\r\n return undefined;\r\n },\r\n observeQuestionGallery: function ({ element, cb }) {\r\n if (element) {\r\n _observeItem({\r\n element,\r\n callback: (imageToLazyLoad) => {\r\n if (imageToLazyLoad) {\r\n return cb(imageToLazyLoad);\r\n }\r\n return undefined;\r\n },\r\n });\r\n }\r\n return undefined;\r\n },\r\n};\r\n"],"names":["props","reportAbuseFormRef","useRef","_useState","useState","answer","_useState2","_slicedToArray","setAnswer","_useState3","_useState4","abuseType","setAbuseType","handleRadioButtonClick","e","handleAbuseTypeChange","type","currentTarget","value","_handleAnswerIsUseful","_asyncToGenerator","_regeneratorRuntime","_callee","_context","prev","next","isAuthenticated","window","location","common","getSiteUrl","concat","$pathBase","encodeURIComponent","slug","search","abrupt","userAlreadyVotedForUseful","userVoteYes","questionId","id","sent","isSuccess","prevState","uselessCount","userAlreadyVotedForUseless","usefulCount","_objectSpread","stop","apply","arguments","_handleAnswerIsUseless","_callee2","_context2","userVoteNo","_handleSendReportAbuse","_callee3","_context3","reportAnswerAbuse","current","classList","remove","React","className","dangerouslySetInnerHTML","__html","decode","user","nickname","translateService","get","onClick","src","contentFromCdn","path","keepUrlAsIs","alt","toggleNextElementVisibility","ref","htmlFor","onMouseUp","name","require","_ref","isMobile","question","Globalizer","init","questionRef","flktyHtmlRef","questionState","setQuestionState","flktyRef","setFlktyRef","_useState5","_useState6","_useState7","_useState8","fullScreenActive","setFullScreenActive","_useState9","_useState10","indexZoom","setIndexZoom","useEffect","deferredImagesLoader","observeReviewGallery","element","cb","imageToLazyLoad","renderImages","reportQuestionAbuse","productSlug","images","map","image","idx","key","index","answers","a","ProductAnswer","on","isFullscreen","body","document","querySelector","add","formatDateLong","creationDate","isEmpty","Flickity","options","autoPlay","cellAlign","contain","draggable","fullscreen","groupCells","pageDots","prevNextButtons","wrapAround","flickityRef","c","ProductFullScreenHandler","infinite","closing","fancybox","slide","startIndex","items","i","href","answerQuestionLink","length","interpolate","x","_observeItem","_ref$threshold","threshold","callback","visibleTimerCallback","observer","visibleTimeout","processChanges","takeRecords","isVisible","unobserve","changes","each","changeRecord","boundingClientRect","intersectionRect","target","width","height","setTimeout","clearTimeout","IntersectionObserver","observe","observeArticleImages","delay","repetitions","intervalID","intervalTryId","getElementsByClassName","_ref2","imageIdentifier","sourceAttribute","item","itm","imagesToLazyLoad","undefined","url","getAttribute","shouldLazyLoad","isSrcAlreadySet","setAttribute","_observeItems","clearInterval","setInterval","observeBannerImages","sourcesToLazyLoad","getElementsByTagName","some","s","srcset","_ref3","observeQuestionGallery","_ref4"],"sourceRoot":""}