import { env } from "../../../lib/env";
import { connection } from "next/server";
import CountUp from "../../../components/CountUp";
import redis from "../../../lib/redis";
const HitCounter = async ({ slug }: { slug: string }) => {
// ensure this component isn't triggered by prerenders and/or preloads
await connection();
try {
// if this is a new slug, redis will automatically create a new key and set its value to 0 (and then 1, obviously)
// https://upstash.com/docs/redis/sdks/ts/commands/string/incr
// TODO: maybe don't allow this? or maybe it's fine? kinda unclear how secure this is:
// https://nextjs.org/blog/security-nextjs-server-components-actions
// https://nextjs.org/docs/app/building-your-application/rendering/server-components
const hits = await redis.incr(`hits:${slug}`);
// we have data!
return (
);
} catch (error) {
console.error("[/notes/[slug]/counter] fatal error:", error);
return ?;
}
};
export default HitCounter;