'use client'; import { useRef, useEffect } from 'react'; import { useTranslations } from 'next-intl'; type props = { items: string[]; }; export function ArticleSummary({ items }: props) { const ref = useRef(null); const t = useTranslations('blogPage'); useEffect(() => { const el = ref.current; if (!el) return; const observer = new IntersectionObserver( ([entry]) => { if (entry.isIntersecting) { el.querySelectorAll('.reveal').forEach((node, i) => { setTimeout(() => node.classList.add('visible'), i * 80); }); observer.unobserve(el); } }, { threshold: 0.1 } ); observer.observe(el); return () => observer.disconnect(); }, []); return (
{t('summary.label')}
    {items.map((item, i) => (
  1. {String(i + 1).padStart(2, '0')} {item}
  2. ))}
); }