diff --git a/src/app/(pages)/weather/_components/weather-info-modal.tsx b/src/app/(pages)/weather/_components/weather-info-modal.tsx new file mode 100644 index 0000000..06ae260 --- /dev/null +++ b/src/app/(pages)/weather/_components/weather-info-modal.tsx @@ -0,0 +1,70 @@ +import { X } from 'lucide-react'; +import RunningGoodIcon from '@/public/svg/weather/running-good.svg'; +import RunningNormalIcon from '@/public/svg/weather/running-normal.svg'; +import RunningBadIcon from '@/public/svg/weather/running-bad.svg'; + +interface WeatherInfoModalProps { + isOpen: boolean; + onClose: () => void; +} + +export function WeatherInfoModal({ isOpen, onClose }: WeatherInfoModalProps) { + if (!isOpen) return null; + return ( +
+
+
+
+

러닝 지수

+

+ 기상 데이터를 기반으로 기온, 바람, 미세먼지 등을 AI가 종합 분석해 + 산출한 러닝 지수입니다. +

+
+ +
+
+
+ + + + 좋음 + + +

+ {`맑고 선선한 날씨로\n 러닝하기에 매우 좋은 조건입니다.`} +

+
+ +
+ + + + 보통 + + +

+ {`러닝하기에 무난한 날씨입니다.\n 개인 컨디션에 따라 속도를 조절하세요.`} +

+
+ +
+ + + + 나쁨 + + +

+ 흐리거나 공기 질이 좋지 않아 러닝 시 주의가 필요합니다. 초보자는 + 실내 러닝을 권장해요. +

+
+
+
+
+ ); +} diff --git a/src/app/(pages)/weather/_components/weather-running-condition.tsx b/src/app/(pages)/weather/_components/weather-running-condition.tsx index bf36654..0c9b955 100644 --- a/src/app/(pages)/weather/_components/weather-running-condition.tsx +++ b/src/app/(pages)/weather/_components/weather-running-condition.tsx @@ -11,6 +11,8 @@ import { } from '../_hooks/running-condition.hook'; import clsx from 'clsx'; import { cn } from '@/utils/cn'; +import { useState } from 'react'; +import { WeatherInfoModal } from './weather-info-modal'; interface RunningIndexProps { weatherData: WeatherData; @@ -18,10 +20,11 @@ interface RunningIndexProps { export function WeatherRunningCondition({ weatherData }: RunningIndexProps) { const runningCondition = useRunningCondition(weatherData); + const [isModalOpen, setIsModalOpen] = useState(false); return (
러닝 지수 - + +
@@ -59,6 +65,10 @@ export function WeatherRunningCondition({ weatherData }: RunningIndexProps) {

{runningCondition.tip}

+ setIsModalOpen(false)} + />
); } diff --git a/src/app/(pages)/weather/page.tsx b/src/app/(pages)/weather/page.tsx index cb8e66e..41ba8ab 100644 --- a/src/app/(pages)/weather/page.tsx +++ b/src/app/(pages)/weather/page.tsx @@ -8,7 +8,7 @@ export default function WeatherPage() {