/** * 지역 가이드 · 전체 — 날씨 카드 + 맛집 + 명소 + 월별 축제를 세로로 전부. * "여기 오면 근처에 뭐가 있나"를 한 화면에서 다 보여주고 싶을 때. */ import {Calendar, MapPin, Sparkles, Utensils} from 'lucide-react'; import type {TemplateItem} from '@o2o/shared'; import { EmptyStateNotice, ListCard, PlaceRow, Pill, SectionBody, SectionFrame, SectionHeading, } from '../../primitives'; import type {SectionRenderProps} from '../../types'; import {LiveClock} from './LiveClock'; import type {FestivalItem, NearbyPlace} from './types'; const naverSearch = (q: string) => `https://search.naver.com/search.naver?query=${encodeURIComponent(q)}`; function GroupHeading({ icon: Icon, title, note, colors, }: { icon: typeof Utensils; title: string; note: string; colors: TemplateItem['colors']; }) { return (

{title}

{/* 오른쪽 출처 문구는 부가 정보라 중립 회색 그대로 둔다. */} {note}
); } export function LocalFull(props: SectionRenderProps) { const {section, isSelected, onSelect, industryId, location, template} = props; const isStay = industryId === 'stay'; const locName = location.split(' ')[0] || '주변'; // ★ 맛집·명소·축제는 전부 제주 애월 시연용 목록이다 — 실사업장은 빈 목록으로 떨어진다. // (지역 큐레이션을 읽어올 백엔드 창구가 아직 없어 당분간 계속 빈다.) // 지역 정보는 서버(local.local_contents)가 소유하고 캔버스 계약에 없다 — 시연용 목록을 깔지 않는다. const foods: NearbyPlace[] = []; const spots: NearbyPlace[] = []; const festivals: FestivalItem[] = []; return ( } colors={template.colors} />
{foods.length === 0 ? ( 주변 맛집·카페 추천은 아직 준비 중입니다. ) : ( {foods.map((place) => ( ))} )}
{spots.length === 0 ? ( 주변 명소 추천은 아직 준비 중입니다. ) : ( {spots.map((spot) => ( ))} )}
{isStay && (
{festivals.length === 0 ? ( 월별 축제 안내는 아직 준비 중입니다. ) : ( {festivals.map((fest) => ( {fest.month} {fest.isFeatured && ( 대표축제 )} } colors={template.colors} /> ))} )}
)}
); }