{"version":3,"file":"js/708.js","mappings":"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","sources":["webpack:///./resources/js/components/helpers/formatDate.js","webpack:///./resources/js/components/pages/blog/BlogDetailPage.jsx"],"sourcesContent":["export const formatDate = (date) => {\n let formatted = new Date(date);\n const monthNames = [\"January\", \"February\", \"March\", \"April\", \"May\", \"June\",\n \"July\", \"August\", \"September\", \"October\", \"November\", \"December\"\n ];\n return monthNames[formatted.getMonth()] + ' ' + formatted.getDate() + \", \" + formatted.getFullYear();\n}","import PropTypes from \"prop-types\";\nimport { useLocation, Redirect, useHistory } from \"react-router-dom\";\nimport EntityRenderer from \"@/core/EntityRenderer\";\nimport LoadingSpinner from \"@/core/LoadingSpinner\";\nimport { css, useTheme } from \"@emotion/react\";\nimport useBreakpoints from \"@util/breakpoints\";\nimport { useState, useEffect, useMemo, useContext } from \"react\";\nimport CmsApi from \"@apis/CmsApi\";\nimport useSWR from \"swr\";\nimport { rem } from \"@util/convertUnits\";\nimport { formatDate } from \"@/helpers/formatDate\";\nimport CmsImageLoader from \"@/base/CmsImageLoader\";\nimport HelmetBuilder from \"@/base/HelmetBuilder\";\nimport {InlineShareButtons} from 'sharethis-reactjs';\nimport BreadcrumbsNav from \"@/core/navigation/Breadcrumbs\";\nimport { BreadcrumbContext } from \"@/core/providers/BreadcrumbContext\";\n// import BlogButton from \"@/pages/blog/BlogButton\";\n\nconst BlogDetailPage = ({ preview }) => {\n\n const history = useHistory();\n const theme = useTheme();\n const path = useLocation().pathname;\n const fontBaseTheme = theme.base.fontFamily;\n const fontHeaderTheme = theme.header.fontFamily;\n\n // let path = useLocation().pathname;\n let isPreview = path.includes('/preview');\n let fetchPath = isPreview ? path.replace('/preview', '') : path;\n\n let fetchFunction;\n if (isPreview) {\n fetchFunction = new CmsApi().fetchPreviewByPath(fetchPath)\n } else {\n fetchFunction = new CmsApi().fetchEntityByPath(fetchPath)\n }\n\n const { data, error } = useSWR(\n fetchPath,\n () => fetchFunction,\n {\n revalidateOnFocus: false,\n }\n );\n\n // const { data, error } = useSWR(\n // path,\n // () => new CmsApi().fetchEntityByPath(path),\n // {\n // revalidateOnFocus: false,\n // }\n // );\n\n // Added useMemo here to potentially keep this from\n const entity = useMemo(() => {\n return { ...data, isLoading: !data && !error, isError: error }\n }, [data, error]);\n\n const EntirePost = entity.data;\n\n const dateCss = css(`\n color: rgba(0,0,0,0.6);\n position: static;\n width: 20rem;\n height: 5.5rem;\n left: 0rem;\n top: 0rem;\n font-family: ${fontBaseTheme};\n font-size: 1.6rem;\n line-height: 5.2rem;\n `)\n\n const backCss = css(`\n margin:2em;\n font-family: ${fontHeaderTheme};\n text-decoration: none;\n color: #448DA4;\n font-weight: bold;\n font-size: 80%;\n &:hover{\n text-decoration: underline;\n }\n \n `)\n\n const layoutStyles = useBreakpoints([theme.breakpoint.md])({\n width: [\"auto\", \"50%\"],\n minWidth: [\"auto\", rem(942)],\n marginLeft: \"auto\",\n marginRight: \"auto\"\n });\n\n const bannerImg = useBreakpoints([theme.breakpoint.ns])({\n\n position: \"relative\",\n overflow: \"hidden\",\n left: \"0\",\n top: \"0\",\n width: \"100%\",\n height: \"100%\",\n objectFit: \"cover\",\n\n \"img\": {\n position: [\"initial\", \"relative\"],\n zIndex: [\"initial\", \"-1\"],\n width: '100%',\n height: ['auto', '43vw'],\n objectFit: ['inherit', 'cover'],\n },\n\n \"span\": {\n position: \"absolute\",\n left: \"0\",\n top: \"0\",\n display: [\"none\", \"block\"],\n width: \"100%\",\n height: \"100%\",\n }\n });\n\n const titleStyles = css(`\n height: auto;\n font-family: Arial;\n font-size: 3.2rem;\n padding-bottom: 2rem;\n line-height: 4.3rem;\n /* or 134% */\n top: 3.8rem;\n display: flex;\n align-items: center;\n justify-content: start;\n text-transform: uppercase;\n color: #000000;\n `);\n\n const [splashImageUrl, setSplashImageUrl] = useState(undefined);\n const [imageObject, setImageObject] = useState();\n const [articleTitle, setArticleTitle] = useState(undefined);\n const [articlePublishDate, setArticlePublishDate] = useState(undefined);\n\n const {setBreadcrumbs} = useContext(BreadcrumbContext);\n\n\n useEffect(() => {\n if (!EntirePost) return;\n\n // Set basics, title, publish date.\n setArticleTitle(EntirePost.title);\n\n\n // Find/set image?\n let BlogPostDetails = EntirePost.elements.find(x => x.render_name == \"blog_detail\")\n if (!BlogPostDetails) return;\n let BlogPostSplashImage = BlogPostDetails.value.elements.find(x => x.render_name == \"blog_image\");\n if (!BlogPostSplashImage) return;\n setImageObject(BlogPostSplashImage);\n let Url = BlogPostSplashImage.value.elements.find(x => x.render_name == \"image_url\");\n setSplashImageUrl(Url.value);\n\n let publicationDate = BlogPostDetails.value.elements.find(x => x.render_name === \"publication_date\");\n setArticlePublishDate(formatDate(publicationDate.value));\n\n \n let pathObject = EntirePost.path.split('/');\n let breadcrumbs = [];\n\n if (pathObject[1] === 'blog') {\n breadcrumbs.push({\n label: 'Blog',\n path: '/blog'\n });\n } else if (pathObject[1] === 'news') {\n breadcrumbs.push({\n label: 'News',\n path: '/news'\n });\n } else if (pathObject[1] === 'learn' && pathObject[2] === 'featured-projects') {\n breadcrumbs.push({\n label: 'Learn',\n path: '/learn'\n });\n breadcrumbs.push({\n label: 'Featured Projects',\n path: '/learn/featured-projects'\n });\n }\n\n // Add the final breadcrumb for the post title\n breadcrumbs.push({\n label: EntirePost.title,\n path: `${window.location.pathname}`\n });\n\n setBreadcrumbs(breadcrumbs);\n\n\n }, [entity, EntirePost]);\n\n\n if (entity.isLoading) {\n return