Files
a301_client/src/components/AnnouncementBoard.jsx
tolelom 86c6720f30 feat: mock 데이터 제거 및 실제 API 연동
- 모든 API 파일에서 mock 제거, 실제 백엔드 호출로 전환
- 공지사항 날짜 ISO 포맷에서 날짜만 표시하도록 수정
- VITE_API_BASE_URL을 https://a301.api.tolelom.xyz로 변경 (.env, gitignore)

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-02-24 14:32:02 +09:00

35 lines
1.1 KiB
JavaScript

import { useState, useEffect } from 'react';
import { getAnnouncements } from '../api/announcements';
import './AnnouncementBoard.css';
export default function AnnouncementBoard() {
const [list, setList] = useState([]);
const [expanded, setExpanded] = useState(null);
useEffect(() => {
getAnnouncements().then(setList);
}, []);
return (
<section className="announcement-board">
<h2 className="announcement-heading">공지사항</h2>
<ul className="announcement-list">
{list.map((item) => (
<li key={item.id} className="announcement-item">
<button
className="announcement-row"
onClick={() => setExpanded(expanded === item.id ? null : item.id)}
>
<span className="announcement-title">{item.title}</span>
<span className="announcement-date">{item.createdAt?.slice(0, 10)}</span>
</button>
{expanded === item.id && (
<div className="announcement-content">{item.content}</div>
)}
</li>
))}
</ul>
</section>
);
}