{"version":3,"sources":["pages/WebVariant/index.tsx"],"names":["WebVariant","_ref","content","loading","setLoading","useState","productPage","setProductPage","isMobile","useBreakpoint","useEffect","_links","parentCode","async","products","getVariants","then","variants","productStore","actions","setVariantModels","fetchData","catch","error","console","parent","find","_ref2","rel","request","get","href","c","page","convertContentToPage","propsInfo","getPropsInfoForContent","productPageData","data","pageInfo","info","variant","setSelectedVariant","UpdateState","code","_jsxs","_Fragment","children","_jsx","PageSpinner","fetching","ProductDetails","selectedVariant","concat","ProductDetailsNew"],"mappings":"kHAAA,8FAoGeA,UAxEoCC,IAAkB,IAAjB,QAAEC,GAASD,EAC7D,MAAOE,EAASC,GAAcC,oBAAkB,IACzCC,EAAaC,GAAkBF,qBAChCG,EAAWC,YAAc,MAgD/B,OApCAC,qBAAU,KACR,MAAM,OAAEC,EAAS,GAAE,WAAEC,GAAeV,EAElBW,WACZD,GACFE,IAASC,YAAYH,GAAYI,MAAKC,IACpCC,IAAaC,QAAQC,iBAAiBH,EAAS,GAEnD,EAGFI,GAAYC,OAAMC,IAChBC,QAAQD,MAAMA,EAAM,IAGtB,MAAME,EAASd,EAAOe,MAAKC,IAAA,IAAC,IAAEC,GAAKD,EAAA,MAAa,WAARC,CAAgB,IAEpDH,IACFrB,GAAW,GACXyB,IAAQC,IAAIL,EAAOM,MAAMf,MAAKgB,IAC5B,MAAMC,EAAOC,YAAqBF,GAC5BG,EAAYC,YAAuBJ,EAAGC,IAAS,CAAC,EAChDI,EAAkB,CACtBnC,QAAS+B,EAAKK,KACdC,SAAUN,EAAKO,KACfL,aAEF5B,EAAe8B,GArCrBxB,eAA2BwB,EAA8BI,GACvD,UAEQvB,IAAaC,QAAQuB,mBAAmBD,SACxCvB,IAAaC,QAAQZ,eAAe8B,EAC5C,CAAE,MAAOd,GACPC,QAAQD,MAAMA,EAChB,CACF,CA8BMoB,CAAYN,EAAiBnC,GAE7BE,GAAW,EAAM,IAErB,GAEC,CAACF,EAAQ0C,OAGVC,eAAAC,WAAA,CAAAC,SAAA,CACG5C,GAAW6C,cAACC,IAAW,CAACC,SAAU/C,IAClCG,GAAeA,EAAYJ,UAAYM,GACtCwC,cAACG,IAAc,CAEbC,gBAAiBlD,EACjBI,YAAaA,GAAY,mBAAA+C,OAFDnD,EAAQ0C,OAKnCtC,GAAeA,EAAYJ,SAAWM,GACrCwC,cAACM,IAAiB,CAEhBF,gBAAiBlD,EACjBI,YAAaA,GAAY,mBAAA+C,OAFDnD,EAAQ0C,SAKnC,C","file":"static/js/WebVariant.b5130e48.chunk.js","sourcesContent":["import request from \"@starrepublic/epi/api/request\"\nimport {\n convertContentToPage,\n getPropsInfoForContent\n} from \"@starrepublic/epi/cms/utils/contentConverter\"\nimport { ContentProps } from \"@starrepublic/epi/types/cms/props\"\nimport products from \"api/products\"\nimport PageSpinner from \"common/Spinners/PageSpinner\"\nimport useBreakpoint from \"hooks/useBreakpoint\"\nimport Variant from \"models/Variant\"\nimport ProductDetails from \"pages/WebVariant/ProductDetails\"\nimport { WebProductContent } from \"pages/WebVariant/types\"\nimport React, { useEffect, useState } from \"react\"\nimport productStore, { ProductPage } from \"stores/productStore\"\n\nimport ProductDetailsNew from \"./ProductDetailsNew\"\n\ntype Link = {\n rel: string\n href: string\n}\n\ntype Props = ContentProps<\n Variant & {\n _links: Link[]\n }\n>\n\nconst WebVariant: React.FunctionComponent = ({ content }) => {\n const [loading, setLoading] = useState(false)\n const [productPage, setProductPage] = useState()\n const isMobile = useBreakpoint(\"md\")\n\n async function UpdateState(productPageData: ProductPage, variant: Variant) {\n try {\n // For some reason, the order is important here.\n await productStore.actions.setSelectedVariant(variant)\n await productStore.actions.setProductPage(productPageData)\n } catch (error) {\n console.error(error)\n }\n }\n\n useEffect(() => {\n const { _links = [], parentCode } = content\n\n const fetchData = async () => {\n if (parentCode) {\n products.getVariants(parentCode).then(variants => {\n productStore.actions.setVariantModels(variants)\n })\n }\n }\n\n fetchData().catch(error => {\n console.error(error)\n })\n\n const parent = _links.find(({ rel }) => rel === \"parent\")\n\n if (parent) {\n setLoading(true)\n request.get(parent.href).then(c => {\n const page = convertContentToPage(c)\n const propsInfo = getPropsInfoForContent(c, page) || {}\n const productPageData = {\n content: page.data as WebProductContent,\n pageInfo: page.info,\n propsInfo\n }\n setProductPage(productPageData)\n UpdateState(productPageData, content)\n\n setLoading(false)\n })\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [content.code])\n\n return (\n <>\n {loading && }\n {productPage && productPage.content && !isMobile && (\n \n )}\n {productPage && productPage.content && isMobile && (\n \n )}\n \n )\n}\n\nexport default WebVariant\n"],"sourceRoot":""}