{"version":3,"file":"download.1c5d17ccc31ccb19dc13.js","sources":["webpack:///./Source/FECOM.Web.UI/Scripts/apps/product/components/Download.tsx"],"sourcesContent":["import { useState, useEffect, ReactElement } from 'react';\r\nimport { getIsDownloadUser, apiPathProducts } from '../productPageApi';\r\nimport Icon from '../../../components/Icon';\r\n\r\ninterface DownloadProps {\r\n catalogueRef: string | null;\r\n}\r\n\r\nexport default function Download(props: DownloadProps): ReactElement {\r\n const [isDownloadUser, setIsDownloadUser] = useState(false);\r\n const [isLoading, setIsLoading] = useState(false);\r\n\r\n useEffect(() => {\r\n getIsDownloadUser()\r\n .then((data: any) => setIsDownloadUser(data))\r\n .catch((error: any) => console.log(error));\r\n }, []);\r\n\r\n function getProductAssets(catalogueRef?: string | null) {\r\n const path = `${apiPathProducts}ExportProductDetails/?catalogueRef=${catalogueRef}`;\r\n\r\n const fetchBaseConfig: RequestInit = {\r\n credentials: 'same-origin',\r\n headers: {\r\n 'content-type': 'application/zip',\r\n accept: 'application/zip',\r\n },\r\n };\r\n\r\n fetch(path, fetchBaseConfig)\r\n .then((response: any) => {\r\n setIsLoading(false);\r\n if (!response.ok) {\r\n throw new Error('There was a problem with your request');\r\n }\r\n return response.blob();\r\n })\r\n .then((blob: any) => {\r\n // IE11 & Edge\r\n if (window.navigator && window.navigator.msSaveOrOpenBlob) {\r\n window.navigator.msSaveOrOpenBlob(blob, `${catalogueRef}.zip`);\r\n } else {\r\n const blobUrl = window.URL.createObjectURL(blob);\r\n const downloadBtn = document.createElement('a');\r\n downloadBtn?.setAttribute('href', blobUrl);\r\n downloadBtn?.setAttribute('download', `${catalogueRef}.zip`);\r\n downloadBtn?.click();\r\n window.URL.revokeObjectURL(blobUrl);\r\n }\r\n })\r\n .catch((error: any) => console.log(error));\r\n }\r\n\r\n function handleClick(e: React.MouseEvent) {\r\n e.preventDefault();\r\n setIsLoading(true);\r\n getProductAssets(props.catalogueRef);\r\n }\r\n\r\n return (\r\n <>\r\n {isDownloadUser && (\r\n <>\r\n {/* Mobile */}\r\n
\r\n \r\n \r\n {' '}\r\n \r\n {isLoading ? 'Loading...': 'Download product data and images'}\r\n \r\n
\r\n\r\n {/* Desktop */}\r\n
\r\n \r\n \r\n {' '}\r\n \r\n {isLoading ? 'Loading...': 'Click here to download product data and images'}\r\n \r\n
\r\n \r\n )}\r\n \r\n );\r\n}\r\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AACA;AACA;;;;AAMA;AACA;AAAA;AAAA;AAAA;AACA;AAAA;AAAA;AAAA;AAAA;AACA;AACA;AACA;AACA;AAAA;AACA;AAAA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AAFA;AAFA;AAQA;AAEA;AACA;AAAA;AACA;AACA;AACA;AAAA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AAEA;AAAA;AACA;AAAA;AAAA;AACA;AAAA;AACA;AAAA;AAAA;AADA;AADA;AADA;AAUA;AAAA;AACA;AAAA;AAAA;AACA;AAAA;AACA;AAAA;AAAA;AADA;AADA;AADA;AAZA;AAFA;AA0BA;;;;A","sourceRoot":""}