diff --git a/.env b/.env index 30f9379..614494b 100644 --- a/.env +++ b/.env @@ -2,7 +2,7 @@ DB_HOST=mariadb DB_PORT=3306 DB_USER=fromis9 -DB_PASSWORD=Xk9#mP2$vL7@nQ4w +DB_PASSWORD="Xk9#mP2\$vL7@nQ4w" DB_NAME=fromis9 # Server diff --git a/frontend/src/components/pc/Footer.jsx b/frontend/src/components/pc/Footer.jsx index 63c6dd7..4f92901 100644 --- a/frontend/src/components/pc/Footer.jsx +++ b/frontend/src/components/pc/Footer.jsx @@ -1,20 +1,23 @@ -import { Instagram, Youtube, Twitter } from 'lucide-react'; +import { Instagram, Youtube } from 'lucide-react'; import { socialLinks } from '../../data/dummy'; +// X (Twitter) 아이콘 컴포넌트 +const XIcon = ({ size = 24 }) => ( + + + +); + function Footer() { + const currentYear = new Date().getFullYear(); + return ( diff --git a/frontend/src/components/pc/Header.jsx b/frontend/src/components/pc/Header.jsx index 8857fd8..03cd3f5 100644 --- a/frontend/src/components/pc/Header.jsx +++ b/frontend/src/components/pc/Header.jsx @@ -1,7 +1,14 @@ import { NavLink } from 'react-router-dom'; -import { Instagram, Youtube, Twitter } from 'lucide-react'; +import { Instagram, Youtube } from 'lucide-react'; import { socialLinks } from '../../data/dummy'; +// X (Twitter) 아이콘 컴포넌트 +const XIcon = ({ size = 20 }) => ( + + + +); + function Header() { const navItems = [ { path: '/', label: '홈' }, @@ -58,9 +65,9 @@ function Header() { href={socialLinks.twitter} target="_blank" rel="noopener noreferrer" - className="text-gray-500 hover:text-blue-500 transition-colors" + className="text-gray-500 hover:text-black transition-colors" > - + diff --git a/frontend/src/index.css b/frontend/src/index.css index 5fa87d9..ba881c2 100644 --- a/frontend/src/index.css +++ b/frontend/src/index.css @@ -9,6 +9,11 @@ body { color: #1a1a1a; } +/* 최소 너비 설정 - 화면 축소시 깨짐 방지 */ +#root { + min-width: 1200px; +} + /* 스크롤바 스타일 */ ::-webkit-scrollbar { width: 8px; diff --git a/frontend/src/pages/pc/Schedule.jsx b/frontend/src/pages/pc/Schedule.jsx index 77e22df..c0080b4 100644 --- a/frontend/src/pages/pc/Schedule.jsx +++ b/frontend/src/pages/pc/Schedule.jsx @@ -1,5 +1,5 @@ import { motion } from 'framer-motion'; -import { Calendar, Clock, MapPin, Users } from 'lucide-react'; +import { Clock, MapPin, Users } from 'lucide-react'; import { schedules } from '../../data/dummy'; function Schedule() { @@ -45,79 +45,55 @@ function Schedule() { - {/* 스케줄 타임라인 */} -
+ {/* 스케줄 리스트 */} +
{Object.entries(groupedSchedules).map(([date, daySchedules], groupIndex) => { const formatted = formatDate(date); - return ( + return daySchedules.map((schedule, index) => ( - {/* 타임라인 라인 */} -
- - {/* 날짜 원 */} -
-
- {formatted.month}월 - {formatted.day} -
- {formatted.weekday} + {/* 날짜 영역 */} +
+ {formatted.month}월 + {formatted.day} + {formatted.weekday}
- {/* 스케줄 카드들 */} -
- {daySchedules.map((schedule, index) => ( -
-

{schedule.title}

- -
-
- - {schedule.time} -
-
- - {schedule.platform} -
-
- - {schedule.members.join(', ')} -
-
+ {/* 스케줄 내용 */} +
+

{schedule.title}

+ +
+
+ + {schedule.time}
- ))} +
+ + {schedule.platform} +
+
+ + {schedule.members.join(', ')} +
+
- ); + )); })}
- {/* 빈 스케줄 메시지 (스케줄이 없을 때) */} + {/* 빈 스케줄 메시지 */} {Object.keys(groupedSchedules).length === 0 && (
-

예정된 스케줄이 없습니다.

)} - - {/* 안내 */} - -

스케줄은 DC Inside 갤러리에서 자동으로 수집됩니다.

-

일정은 변경될 수 있으니 공식 채널을 확인해 주세요.

-
);