Skip to content
Snippets Groups Projects
Commit f97bd83a authored by pjookim's avatar pjookim
Browse files

feat: add additional information for festivals in AddPlace component

parent bb086c24
Branches
No related tags found
No related merge requests found
import React, { useState, useEffect, useRef, useCallback, useMemo } from 'react'; import React, { useState, useEffect, useRef, useCallback, useMemo } from 'react';
import '../styles/AddPlace.css'; import '../styles/AddPlace.css';
import { FaStar, FaPlus, FaCalendarAlt, FaUser, FaTicketAlt } from 'react-icons/fa'; import { FaPhoneAlt, FaStar, FaPlus, FaCalendarAlt, FaUser, FaTicketAlt } from 'react-icons/fa';
import axios from 'axios'; import axios from 'axios';
import { toast } from 'react-toastify'; import { toast } from 'react-toastify';
import { AREA_CODE } from '../constants/areaCode'; import { AREA_CODE } from '../constants/areaCode';
...@@ -87,7 +87,7 @@ const AddPlace = ({ tripId, day, onBack, onPlaceSelect, tripStartDate, tripEndDa ...@@ -87,7 +87,7 @@ const AddPlace = ({ tripId, day, onBack, onPlaceSelect, tripStartDate, tripEndDa
console.log('로딩 상태:', currentState.loading); console.log('로딩 상태:', currentState.loading);
console.log('더 불러올 데이터 여부:', currentState.hasMore); console.log('더 불러올 데이터 여부:', currentState.hasMore);
console.log('현재 탭:', activeTab); console.log('현재 탭:', activeTab);
console.log('현재 탭의 데이터 ���수:', currentState.places.length); console.log('현재 탭의 데이터 수:', currentState.places.length);
}, [tabStates, activeTab]); }, [tabStates, activeTab]);
useEffect(() => { useEffect(() => {
...@@ -316,7 +316,7 @@ const AddPlace = ({ tripId, day, onBack, onPlaceSelect, tripStartDate, tripEndDa ...@@ -316,7 +316,7 @@ const AddPlace = ({ tripId, day, onBack, onPlaceSelect, tripStartDate, tripEndDa
const areaCode = getAreaCode(location); const areaCode = getAreaCode(location);
if (!areaCode) { if (!areaCode) {
toast.error('올바른 지�� 정보가 아닙니다.'); toast.error('올바른 지 정보가 아닙니다.');
return; return;
} }
...@@ -405,6 +405,7 @@ const AddPlace = ({ tripId, day, onBack, onPlaceSelect, tripStartDate, tripEndDa ...@@ -405,6 +405,7 @@ const AddPlace = ({ tripId, day, onBack, onPlaceSelect, tripStartDate, tripEndDa
if (festivalEnd >= formattedTripStartDate && festivalStart <= formattedTripEndDate) { if (festivalEnd >= formattedTripStartDate && festivalStart <= formattedTripEndDate) {
console.log(festivalInfo.sponsor1); console.log(festivalInfo.sponsor1);
console.log(festivalInfo.usetimefestival); console.log(festivalInfo.usetimefestival);
console.log(festivalInfo);
return { return {
...item, ...item,
eventStartDate: festivalStart, eventStartDate: festivalStart,
...@@ -435,7 +436,9 @@ const AddPlace = ({ tripId, day, onBack, onPlaceSelect, tripStartDate, tripEndDa ...@@ -435,7 +436,9 @@ const AddPlace = ({ tripId, day, onBack, onPlaceSelect, tripStartDate, tripEndDa
tel: item.tel, tel: item.tel,
dist: item.dist, dist: item.dist,
eventStartDate: item.eventStartDate, eventStartDate: item.eventStartDate,
eventEndDate: item.eventEndDate eventEndDate: item.eventEndDate,
sponsor: item.sponsor,
usetimefestival: item.usetimefestival
})); }));
updateTabState('festivals', { updateTabState('festivals', {
...@@ -577,7 +580,7 @@ const AddPlace = ({ tripId, day, onBack, onPlaceSelect, tripStartDate, tripEndDa ...@@ -577,7 +580,7 @@ const AddPlace = ({ tripId, day, onBack, onPlaceSelect, tripStartDate, tripEndDa
<div className="place-info"> <div className="place-info">
<h3>{place.name}</h3> <h3>{place.name}</h3>
<p className="location">{place.location}</p> <p className="location">{place.location}</p>
{place.tel && <p className="tel">{place.tel}</p>} {place.tel && <p className="tel"><FaPhoneAlt className="tel-icon" />{place.tel}</p>}
{activeTab === 'festivals' && ( {activeTab === 'festivals' && (
<> <>
{place.eventStartDate && place.eventEndDate && ( {place.eventStartDate && place.eventEndDate && (
...@@ -589,13 +592,13 @@ const AddPlace = ({ tripId, day, onBack, onPlaceSelect, tripStartDate, tripEndDa ...@@ -589,13 +592,13 @@ const AddPlace = ({ tripId, day, onBack, onPlaceSelect, tripStartDate, tripEndDa
{place.sponsor && ( {place.sponsor && (
<p className="festival-sponsor"> <p className="festival-sponsor">
<FaUser className="sponsor-icon" /> <FaUser className="sponsor-icon" />
주최: {place.sponsor} {place.sponsor}
</p> </p>
)} )}
{place.usetimefestival && ( {place.usetimefestival && (
<p className="festival-fee"> <p className="festival-fee">
<FaTicketAlt className="fee-icon" /> <FaTicketAlt className="fee-icon" />
요금: {place.usetimefestival} <span dangerouslySetInnerHTML={{ __html: place.usetimefestival }} />
</p> </p>
)} )}
</> </>
......
...@@ -188,3 +188,34 @@ ...@@ -188,3 +188,34 @@
.add-button:hover { .add-button:hover {
color: var(--primary-color-dark); color: var(--primary-color-dark);
} }
.place-info .location {
margin-bottom: 10px;
}
.place-info p {
display: flex;
align-items: center;
gap: 8px;
margin: 6px 0;
line-height: 1.25;
}
.place-info .tel-icon,
.place-info .calendar-icon,
.place-info .sponsor-icon,
.place-info .fee-icon {
min-width: 16px;
color: var(--primary-color);
}
.place-info h3 {
margin-bottom: 8px;
}
.festival-period,
.festival-sponsor,
.festival-fee {
font-size: 0.9rem;
color: #555;
}
\ No newline at end of file
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment