"use client"; import { useEffect, useState } from "react"; import { api, type NewsResponse } from "../lib/api"; export function NewsList({ code }: { code: string }) { const [data, setData] = useState(null); const [err, setErr] = useState(null); useEffect(() => { let alive = true; api .news(code, 20) .then((r) => { if (alive) setData(r); }) .catch((e) => { if (alive) setErr(e instanceof Error ? e.message : String(e)); }); return () => { alive = false; }; }, [code]); if (err) return
뉴스 로딩 실패: {err}
; if (!data) return
뉴스 로딩 중…
; if (!data.items.length) return
최근 뉴스 없음
; return (
최근 뉴스/공시
); } function sentimentColor(l: string): string { if (l === "positive") return "text-emerald-400"; if (l === "negative") return "text-red-400"; return "text-zinc-400"; } function formatDate(iso: string): string { try { const d = new Date(iso); return `${d.getFullYear()}-${pad(d.getMonth() + 1)}-${pad(d.getDate())} ${pad(d.getHours())}:${pad(d.getMinutes())}`; } catch { return iso; } } function pad(n: number): string { return n < 10 ? `0${n}` : `${n}`; }