"use client"; import { useState } from "react"; import { Header } from "@/widgets/header"; import { Footer } from "@/widgets/footer"; import { useInView } from "@/shared/hooks/useInView"; import { projects } from "@/shared/config/projects/projects"; import type { Project } from "@/shared/config/projects/types"; import { ProjectModal } from "@/widgets/project-modal"; import ProjectCard from "@/components/projects/ProjectCard"; import styles from "@/static/projects/projects-page.module.css"; const ProjectsPage = () => { const [selected, setSelected] = useState(null); const [headRef, headInView] = useInView(0.4); const [gridRef, gridInView] = useInView(0.08); const reveal = (visible: boolean) => `transition-all duration-700 ease-out will-change-transform ${ visible ? "opacity-100 translate-y-0" : "opacity-0 translate-y-8" }`; return ( <>