"use client"; import { useEffect, useState } from "react"; import { CountUp } from "@/components/count-up"; import { incrementViews } from "@/lib/server/views"; const ViewCounter = ({ slug }: { slug: string }) => { const [views, setViews] = useState(null); const [error, setError] = useState(false); useEffect(() => { // Increment views on client mount (outside of render phase) incrementViews(slug) .then((hits) => { setViews(hits); }) .catch((err) => { console.error("[view-counter] error:", err); setError(true); }); }, [slug]); if (error) { return ?; } if (views === null) { return 0; } return ( ); }; export { ViewCounter };