fromis_9/frontend/src/pages/pc/public/schedule/sections/DefaultSection.jsx
caadiq 87a69c0cbd refactor: API 응답에서 datetime을 date와 time으로 분리
- datetime 필드를 date와 time 필드로 분리하여 00:00 시간도 정상 표시되도록 수정
- 백엔드: formatSchedule, Meilisearch 검색 결과, 스키마 업데이트
- 프론트엔드: datetime 파싱 로직 제거, date/time 직접 사용
- 문서: API 응답 예시 업데이트

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-24 10:11:02 +09:00

55 lines
1.8 KiB
JavaScript

import { Calendar, Clock } from 'lucide-react';
import { decodeHtmlEntities, formatFullDate, formatTime } from './utils';
/**
* 기본 일정 섹션 컴포넌트 (일반 카테고리용)
*/
function DefaultSection({ schedule }) {
return (
<div>
{/* 제목 */}
<h1 className="text-2xl font-bold text-gray-900 mb-4">{decodeHtmlEntities(schedule.title)}</h1>
{/* 메타 정보 */}
<div className="flex flex-wrap items-center gap-4 text-sm text-gray-500 mb-6">
<div className="flex items-center gap-2">
<Calendar size={16} />
<span>{formatFullDate(schedule.date)}</span>
</div>
{schedule.time && (
<div className="flex items-center gap-2">
<Clock size={16} />
<span>{formatTime(schedule.time)}</span>
</div>
)}
</div>
{/* 멤버 */}
{schedule.members && schedule.members.length > 0 && (
<div className="mb-6">
<p className="text-sm text-gray-500 mb-2">참여 멤버</p>
<div className="flex flex-wrap gap-2">
{schedule.members.length === 5 ? (
<span className="px-3 py-1 bg-primary/10 text-primary text-sm font-medium rounded-full">프로미스나인</span>
) : (
schedule.members.map((member) => (
<span key={member.id} className="px-3 py-1 bg-primary/10 text-primary text-sm font-medium rounded-full">
{member.name}
</span>
))
)}
</div>
</div>
)}
{/* 설명 */}
{schedule.description && (
<div className="pt-6 border-t border-gray-100">
<p className="text-gray-600 leading-relaxed whitespace-pre-wrap">{decodeHtmlEntities(schedule.description)}</p>
</div>
)}
</div>
);
}
export default DefaultSection;