import React, { useState } from "react"; import { CaseStudy, Content, GalleryOverlay, GalleryThumb, Grid, Header, Heading, Layout, Section, Text, } from "@components/index"; import { getAllCaseStudyIds, getCaseStudyData } from "../../../lib/case-study"; export default function CaseStudyTemplate({ caseStudyData }) { const [openImage, setOpenImage] = useState(-1); const images = Array.from(new Array(caseStudyData.images)).map((_, i) => ({ thumb: `/case-studies/${caseStudyData.id}/thumbs/${i}.jpg`, src: `/case-studies/${caseStudyData.id}/${i}.jpg`, })); const handleThumbClick = (i) => setOpenImage(i); const handlePrevClick = () => setOpenImage(openImage === 0 ? images.length - 1 : openImage - 1); const handleNextClick = () => setOpenImage(openImage === images.length - 1 ? 0 : openImage + 1); return (
{caseStudyData.title} {caseStudyData.location}
{images.map((img, i) => ( handleThumbClick(i)} /> ))} {openImage > -1 && ( setOpenImage(-1)} onNext={handleNextClick} onPrev={handlePrevClick} image={images[openImage].src} desc={`Picture from ${caseStudyData.title}`} /> )}
); } export async function getStaticPaths() { const paths = getAllCaseStudyIds({}); return { paths, fallback: false, }; } export async function getStaticProps({ params }) { const caseStudyData = getCaseStudyData({ ...params }); return { props: { caseStudyData, }, }; }