@@ -2,6 +2,7 @@ import { useEffect, useRef, useState, forwardRef } from 'react';
22import ReactDOMServer from 'react-dom/server' ;
33import { useTranslation } from 'react-i18next' ;
44import styled from '@emotion/styled' ;
5+ import { useToast } from '@/hooks/useToast' ;
56import { theme } from '@/styles/theme' ;
67import Lottie from 'lottie-react' ;
78import { BUSAN_CITY_HALL , DEFAULT_MAP_LEVEL } from '@/constants/locations' ;
@@ -34,10 +35,12 @@ interface RouteViewProps {
3435 onMapLoad ?: ( map : RouteViewMapInstance ) => void ;
3536 onMarkersChange ?: ( markers : { lat : number ; lng : number } [ ] ) => void ;
3637 isRouteGenerated ?: boolean ;
38+ maxMarkers ?: number ;
3739}
3840
39- const RouteView = forwardRef < HTMLDivElement , RouteViewProps > ( ( { onMapLoad, onMarkersChange, isRouteGenerated = false } , ref ) => {
41+ const RouteView = forwardRef < HTMLDivElement , RouteViewProps > ( ( { onMapLoad, onMarkersChange, isRouteGenerated = false , maxMarkers = 30 } , ref ) => {
4042 const [ t ] = useTranslation ( ) ;
43+ const { showWarningToast } = useToast ( ) ;
4144 const mapContainer = useRef < HTMLDivElement > ( null ) ;
4245 const mapInstance = useRef < kakao . maps . Map | null > ( null ) ;
4346 const markersRef = useRef < MarkerData [ ] > ( [ ] ) ;
@@ -134,9 +137,14 @@ const RouteView = forwardRef<HTMLDivElement, RouteViewProps>(({ onMapLoad, onMar
134137 } ;
135138
136139 const addMarker = ( position : kakao . maps . LatLng ) => {
137- console . log ( '🔍 addMarker 호출:' , { isRouteGenerated : isRouteGeneratedRef . current , hasMapInstance : ! ! mapInstance . current } ) ;
138140 if ( ! mapInstance . current || isRouteGeneratedRef . current ) return ;
139141
142+ // 마커 개수 제한 체크
143+ if ( markersRef . current . length >= maxMarkers ) {
144+ showWarningToast ( t ( 'toast.courseCreation.MaxMarkers' ) , { position : 'top' } ) ;
145+ return ;
146+ }
147+
140148 const currentIndex = markersRef . current . length ;
141149 const markerData = createRouteMarker ( position , currentIndex ) ;
142150 markerData . marker . setMap ( mapInstance . current ) ;
0 commit comments