{"version":3,"sources":["components/Snippet/index.tsx"],"names":["portals","canUseDOM","window","document","createElement","Head","props","children","selector","ReactDOM","createPortal","querySelector","Snippet","_ref","_fields$placeInHead2","_fields$isGTM2","fields","dataSource","_useState","useState","_useState2","_slicedToArray","datasource","useEffect","_fields$placeInHead","_fields$isGTM","placeInHead","value","isGTM","push","renderHTML","snippet","React","Helmet","dangerouslySetInnerHTML","__html"],"mappings":"2OAKWA,EAAU,GAErB,SAASC,IACP,QAA4B,qBAAXC,SAA0BA,OAAOC,WAAYD,OAAOC,SAASC,eAWhF,IAAMC,EAAO,SAACC,GAAK,OARYC,EAQeD,EAAMC,SARXC,EAQqB,OANvDP,IAIEQ,IAASC,aAAaH,EAAUJ,SAASQ,cAAcH,IAHrD,KAHX,IAA+BD,EAAUC,GA+B1BI,UArBC,SAAHC,GAAgC,IAADC,EAAAC,EAAzBC,EAAMH,EAANG,OAAQC,EAAUJ,EAAVI,WAAUC,EACCC,mBAASF,GAAWG,EAAAC,YAAAH,EAAA,GAAjDI,EAAUF,EAAA,GAAeA,EAAA,GAWhC,OATAG,qBAAU,WAAO,IAADC,EAAAC,GACH,OAANT,QAAM,IAANA,GAAmB,QAAbQ,EAANR,EAAQU,mBAAW,IAAAF,OAAb,EAANA,EAAqBG,UAAe,OAANX,QAAM,IAANA,GAAa,QAAPS,EAANT,EAAQY,aAAK,IAAAH,OAAP,EAANA,EAAeE,SAG7C1B,KACHD,EAAQ6B,KAAK,CAACC,IAAWd,EAAOe,QAAQJ,OAAQ,YAEjD,CAACL,KAGI,OAANN,QAAM,IAANA,GAAmB,QAAbF,EAANE,EAAQU,mBAAW,IAAAZ,OAAb,EAANA,EAAqBa,QACX,OAANX,QAAM,IAANA,GAAa,QAAPD,EAANC,EAAQY,aAAK,IAAAb,OAAP,EAANA,EAAeY,OACbK,IAAA5B,cAAC6B,IAAM,KAACD,IAAA5B,cAAA,cAAS0B,IAAWd,EAAOe,QAAQJ,SAC3CK,IAAA5B,cAACC,EAAI,KAAEyB,IAAWd,EAAOe,QAAQJ,QACnCK,IAAA5B,cAAA,OAAK8B,wBAAyB,CAAEC,OAAc,OAANnB,QAAM,IAANA,OAAM,EAANA,EAAQe,QAAQJ,W","file":"static/js/Snippet.f4ad05fe.chunk.js","sourcesContent":["import React, { useState, useEffect } from 'react';\r\nimport ReactDOM from \"react-dom\";\r\nimport renderHTML from \"react-render-html\";\r\nimport Helmet from \"react-helmet\";\r\n\r\nexport let portals = [];\r\n\r\nfunction canUseDOM() {\r\n return !!(typeof window !== 'undefined' && window.document && window.document.createElement);\r\n}\r\n\r\nfunction createUniversalPortal(children, selector) {\r\n // server-side. UseEffect handles inserting content into via portal\r\n if (!canUseDOM()) {\r\n return null;\r\n }\r\n\r\n return ReactDOM.createPortal(children, document.querySelector(selector));\r\n}\r\nconst Head = (props) => createUniversalPortal(props.children, 'head');\r\n\r\nconst Snippet = ({ fields, dataSource }) => {\r\n const [datasource, setDatasource] = useState(dataSource);\r\n\r\n useEffect(() => {\r\n if (!fields?.placeInHead?.value || fields?.isGTM?.value)\r\n return;\r\n\r\n if (!canUseDOM()) {\r\n portals.push([renderHTML(fields.snippet.value), 'head']);\r\n }\r\n }, [datasource])\r\n\r\n return (\r\n fields?.placeInHead?.value\r\n ? fields?.isGTM?.value\r\n ? \r\n : {renderHTML(fields.snippet.value)}\r\n :
\r\n );\r\n};\r\n\r\nexport default Snippet;"],"sourceRoot":""}