|
|
|
|
|
|
|
|
import StrataThumb from './../assets/images/CaseStudy/StrataThumb.jpg'; |
|
|
import StrataThumb from './../assets/images/CaseStudy/StrataThumb.jpg'; |
|
|
import useAnalytics from '../hooks/useAnalytics'; |
|
|
import useAnalytics from '../hooks/useAnalytics'; |
|
|
import ReactHelmet from '../components/shared/ReactHelmet'; |
|
|
import ReactHelmet from '../components/shared/ReactHelmet'; |
|
|
|
|
|
import { strapiApiBuilder } from '../utils/strapiApiBuilder'; |
|
|
|
|
|
import useDataApi from '../hooks/useDataApi'; |
|
|
|
|
|
import PortfolioDataLayer from '../api/PortfolioDataLayer'; |
|
|
|
|
|
|
|
|
const _data = { |
|
|
const _data = { |
|
|
heading: { |
|
|
heading: { |
|
|
|
|
|
|
|
|
], |
|
|
], |
|
|
}; |
|
|
}; |
|
|
|
|
|
|
|
|
|
|
|
const strapiPopulate = [ |
|
|
|
|
|
'Heading', |
|
|
|
|
|
'Heading.subtitle', |
|
|
|
|
|
'Heading.title', |
|
|
|
|
|
'Problems', |
|
|
|
|
|
'Highlighted', |
|
|
|
|
|
'Highlighted.title', |
|
|
|
|
|
'Highlighted.paragraph', |
|
|
|
|
|
'WhyWork', |
|
|
|
|
|
'WhyWork.img', |
|
|
|
|
|
'Stats', |
|
|
|
|
|
'SucessParagraph', |
|
|
|
|
|
'Specs', |
|
|
|
|
|
'Download', |
|
|
|
|
|
'OfficeImg', |
|
|
|
|
|
'WorkTogether', |
|
|
|
|
|
'SEO', |
|
|
|
|
|
'SEO.metaSocial', |
|
|
|
|
|
'SEO.metaImage', |
|
|
|
|
|
'SEO.metaSocial.image', |
|
|
|
|
|
]; |
|
|
|
|
|
|
|
|
|
|
|
// const [{ data, isLoading, isError }, doFetch] = useFetchCollections(strapi); |
|
|
|
|
|
|
|
|
const api_url = process.env.REACT_APP_API_URL; |
|
|
const api_url = process.env.REACT_APP_API_URL; |
|
|
|
|
|
|
|
|
export default function Portfolio() { |
|
|
export default function Portfolio() { |
|
|
const [cnt, setCnt] = useState(''); |
|
|
const [cnt, setCnt] = useState(''); |
|
|
const [isLoaded, setIsLoaded] = useState(''); |
|
|
const [isLoaded, setIsLoaded] = useState(''); |
|
|
|
|
|
|
|
|
useEffect(async () => { |
|
|
|
|
|
document.title = 'Case Studies'; |
|
|
|
|
|
var vid = document.getElementById('animation'); |
|
|
|
|
|
vid.playbackRate = 2; |
|
|
|
|
|
await axios |
|
|
|
|
|
.get( |
|
|
|
|
|
`${api_url}/api/portfoliopage?populate[0]=SEO&populate[1]=SEO.metaSocial&populate[2]=SEO.metaImage&populate[3]=SEO.metaSocial.image`, |
|
|
|
|
|
) |
|
|
|
|
|
.then(res => { |
|
|
|
|
|
setCnt(res.data.data.attributes); |
|
|
|
|
|
setIsLoaded(true); |
|
|
|
|
|
}) |
|
|
|
|
|
.catch(err => { |
|
|
|
|
|
console.log(err); |
|
|
|
|
|
setIsLoaded(false); |
|
|
|
|
|
}); |
|
|
|
|
|
}, []); |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
const strapi = strapiApiBuilder('portfoliopage', strapiPopulate, ''); |
|
|
|
|
|
|
|
|
|
|
|
const [{ data, isLoading, isError }, doFetch] = useDataApi(strapi); |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
useAnalytics('Case Studies'); |
|
|
useAnalytics('Case Studies'); |
|
|
|
|
|
|
|
|
if (!isLoaded) { |
|
|
|
|
|
|
|
|
if (isLoading) { |
|
|
return ( |
|
|
return ( |
|
|
<div className="z-50 w-full h-screen bg-white dark:bg-dg-primary-1700 dark:text-white flex items-center justify-center text-3xl font-semibold"> |
|
|
<div className="z-50 w-full h-screen bg-white dark:bg-dg-primary-1700 dark:text-white flex items-center justify-center text-3xl font-semibold"> |
|
|
<video id="animation" width="540" height="540" autoPlay muted loop> |
|
|
<video id="animation" width="540" height="540" autoPlay muted loop> |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
return ( |
|
|
return ( |
|
|
<PageLayout> |
|
|
<PageLayout> |
|
|
{cnt && cnt.SEO && <ReactHelmet seo={cnt.SEO} />} |
|
|
|
|
|
|
|
|
{data && data.SEO && <ReactHelmet seo={data.SEO} />} |
|
|
<div className="flex flex-col gap-90p pt-32"> |
|
|
<div className="flex flex-col gap-90p pt-32"> |
|
|
<Wrapper> |
|
|
<Wrapper> |
|
|
<h1 className="hidden">Our Work - Case Studies</h1> |
|
|
<h1 className="hidden">Our Work - Case Studies</h1> |
|
|
|
|
|
|
|
|
</div> |
|
|
</div> |
|
|
</Wrapper> |
|
|
</Wrapper> |
|
|
<Wrapper> |
|
|
<Wrapper> |
|
|
|
|
|
<PortfolioDataLayer/> |
|
|
<CardsGrid data={_data.cards} /> |
|
|
<CardsGrid data={_data.cards} /> |
|
|
</Wrapper> |
|
|
</Wrapper> |
|
|
</div> |
|
|
</div> |