| { | { | ||||
| "name": "frontend", | "name": "frontend", | ||||
| "version": "1.3.1", | |||||
| "version": "1.3.2", | |||||
| "private": true, | "private": true, | ||||
| "dependencies": { | "dependencies": { | ||||
| "@faceless-ui/slider": "^1.1.14", | "@faceless-ui/slider": "^1.1.14", |
| const ref = useRef(null); | const ref = useRef(null); | ||||
| const { scrollYProgress } = useScroll({ container: ref }); | const { scrollYProgress } = useScroll({ container: ref }); | ||||
| useEffect(() => { | useEffect(() => { | ||||
| const imageArray = document.querySelectorAll('.image-switch'); | const imageArray = document.querySelectorAll('.image-switch'); | ||||
| const switchImage = scrollYProgress.onChange(value => { | const switchImage = scrollYProgress.onChange(value => { | ||||
| className="steps-container no-scrollbar flex flex-col items-center justify-start overflow-auto h-[75vh] pt-72p pl-3" | className="steps-container no-scrollbar flex flex-col items-center justify-start overflow-auto h-[75vh] pt-72p pl-3" | ||||
| > | > | ||||
| {/* Dynamic Image */} | {/* Dynamic Image */} | ||||
| {data.selection_process.steps.map((item, index) => ( | |||||
| <img | |||||
| {data.selection_process.steps.map((item, index) => | |||||
| (item.media.data && | |||||
| <img | |||||
| key={index} | key={index} | ||||
| src={api_url + item.media.data.attributes.url} | src={api_url + item.media.data.attributes.url} | ||||
| alt={item.media.data.attributes.alternativeText} | alt={item.media.data.attributes.alternativeText} | ||||
| 'image-switch bg-fixed hidden sm:block opacity-0 absolute top-1/4 right-10 w-2/5 transition-all' + | 'image-switch bg-fixed hidden sm:block opacity-0 absolute top-1/4 right-10 w-2/5 transition-all' + | ||||
| (index == 0 ? ' active-image' : '') | (index == 0 ? ' active-image' : '') | ||||
| } | } | ||||
| /> | |||||
| ))} | |||||
| /> ) | |||||
| )} | |||||
| <div className="local"> | <div className="local"> | ||||
| {data.selection_process.steps.map((item, index) => ( | {data.selection_process.steps.map((item, index) => ( |
| import Wrapper from '../layout/Wrapper'; | import Wrapper from '../layout/Wrapper'; | ||||
| import PageLayout from '../layout/PageLayout'; | import PageLayout from '../layout/PageLayout'; | ||||
| import PageTitleOneFont from '../components/shared/PageTitleOneFont'; | |||||
| import GradientWrapper from '../components/shared/GradientWrapper'; | |||||
| import '../App.css'; | import '../App.css'; | ||||
| import useAnalytics from './../hooks/useAnalytics'; | import useAnalytics from './../hooks/useAnalytics'; |
| const [{ data, isLoading, isError }, doFetch] = useFetchCollections(strapi); | const [{ data, isLoading, isError }, doFetch] = useFetchCollections(strapi); | ||||
| useAnalytics(''); | |||||
| useEffect(() => { | useEffect(() => { | ||||
| document.title = ''; | |||||
| }, []); | |||||
| if (data && data[0].attributes) document.title = `Case Study: ${data[0].attributes.SlugHeading}`; | |||||
| }, [data]); | |||||
| // useEffect(() => { | |||||
| // data && useAnalytics(data[0].attributes.Slug); | |||||
| // },[data]) | |||||
| if (isLoading) { | if (isLoading) { | ||||
| return ( | return ( | ||||
| {data && data[0].attributes.SEO && data[0].attributes.SEO.length > 0 && ( | {data && data[0].attributes.SEO && data[0].attributes.SEO.length > 0 && ( | ||||
| <ReactHelmet seo={data[0].attributes.SEO} /> | <ReactHelmet seo={data[0].attributes.SEO} /> | ||||
| )} | )} | ||||
| {data && data.length > 0 && ( | |||||
| {data && ( | |||||
| <div className="bg-baby-blue dark:bg-dg-primary-1700 w-full pt-20 md:pt-24"> | <div className="bg-baby-blue dark:bg-dg-primary-1700 w-full pt-20 md:pt-24"> | ||||
| {/* Heading Section */} | {/* Heading Section */} | ||||
| <section | <section | ||||
| id="heading" | id="heading" | ||||
| className={ | className={ | ||||
| `flex flex-col items-center justify-center m-auto py-16 md:py-32 bg-cover bg-[url('${api_url + data[0].attributes.BackgroundImage.data?.attributes.url}')]` | |||||
| 'flex flex-col items-center relative justify-center m-auto py-16 md:py-32' | |||||
| } | } | ||||
| > | > | ||||
| <div className="my-8 flex flex-col md:flex-row justify-start items-center w-full max-w-custom px-8 xl:px-0"> | |||||
| <div className="absolute top-0 left-[-50%] lg:left-0 right-[-50%] lg:right-0 bottom-0"> | |||||
| <img | |||||
| src={api_url + data[0].attributes.BackgroundImage.data?.attributes.url} | |||||
| alt={ | |||||
| data[0].attributes.BackgroundImage.data?.attributes.alternativeText | |||||
| } | |||||
| className="text-center z-0 m-auto object-cover h-full lg:w-full" | |||||
| /> | |||||
| </div> | |||||
| <div className="my-8 flex flex-col md:flex-row justify-start items-center w-full max-w-custom px-8 xl:px-0 z-10"> | |||||
| {data[0].attributes.Heading && ( | {data[0].attributes.Heading && ( | ||||
| <div className="w-full"> | <div className="w-full"> | ||||
| <h6 className="subheading">{data[0].attributes.Heading.subtitle}</h6> | <h6 className="subheading">{data[0].attributes.Heading.subtitle}</h6> | ||||
| </section> | </section> | ||||
| <Wrapper padding={' py-90p'}> | <Wrapper padding={' py-90p'}> | ||||
| {data[0].attributes.Stat && data[0].attributes.Stat > 0 && ( | |||||
| {data[0].attributes.Stat && ( | |||||
| <motion.section | <motion.section | ||||
| id="status-numbers" | id="status-numbers" | ||||
| className="flex flex-col md:flex-row items-start justify-between w-full gap-90p px-90p" | className="flex flex-col md:flex-row items-start justify-between w-full gap-90p px-90p" |
| {data && data.SEO && <ReactHelmet seo={data.SEO} />} | {data && data.SEO && <ReactHelmet seo={data.SEO} />} | ||||
| <div className="mt-[80px] md:mt-[180px]"> | <div className="mt-[80px] md:mt-[180px]"> | ||||
| <Wrapper padding={' py-[48px]'}> | <Wrapper padding={' py-[48px]'}> | ||||
| {data ? ( | |||||
| {data && data.Heading ? ( | |||||
| <Fragment> | <Fragment> | ||||
| <PageTitleOneFont | <PageTitleOneFont | ||||
| heading={data.Heading.title} | heading={data.Heading.title} |