瀏覽代碼

feat(home): 세계지도 국가 커버리지 확대 + 핀 키보드 접근성

- EXCHANGE_GEO 13개국 추가(아시아 4·유럽 5·아메리카 1·중동아프리카 3)
  → 백엔드 WorldIndex Items 구성 시 지역 탭 커버리지 확대(중동·아프리카 포함)
- 지도 핀 Enter/Space 로 차트 열기(키보드 접근성)

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
KIM-JINO5 2 周之前
父節點
當前提交
6e20f907b0
共有 2 個文件被更改,包括 16 次插入1 次删除
  1. 1 0
      app/(main)/_components/WorldMarketMap.tsx
  2. 15 1
      types/worldIndex.ts

+ 1 - 0
app/(main)/_components/WorldMarketMap.tsx

@@ -190,6 +190,7 @@ export default function WorldMarketMap({ rows }: Props)
 										onFocus={() => setActive(pin.row.countryCode)}
 										onFocus={() => setActive(pin.row.countryCode)}
 										onBlur={() => setActive((cur) => (cur === pin.row.countryCode ? null : cur))}
 										onBlur={() => setActive((cur) => (cur === pin.row.countryCode ? null : cur))}
 										onClick={() => { if (TV_SYMBOL[pin.row.countryCode]) { setChartRow(pin.row); } }}
 										onClick={() => { if (TV_SYMBOL[pin.row.countryCode]) { setChartRow(pin.row); } }}
+										onKeyDown={(e) => { if ((e.key === 'Enter' || e.key === ' ') && TV_SYMBOL[pin.row.countryCode]) { e.preventDefault(); setChartRow(pin.row); } }}
 									>
 									>
 										{pin.dir !== 'flat' && <circle className='world-map__pulse' r={pin.radius} />}
 										{pin.dir !== 'flat' && <circle className='world-map__pulse' r={pin.radius} />}
 										<circle className='world-map__pin-dot' r={pin.radius} />
 										<circle className='world-map__pin-dot' r={pin.radius} />

+ 15 - 1
types/worldIndex.ts

@@ -55,7 +55,21 @@ export const EXCHANGE_GEO: Record<string, ExchangeGeo> = {
 	DE: { lat: 50.1, lng: 8.7, label: '독일', region: 'europe', major: true },
 	DE: { lat: 50.1, lng: 8.7, label: '독일', region: 'europe', major: true },
 	FR: { lat: 48.9, lng: 2.3, label: '프랑스', region: 'europe' },
 	FR: { lat: 48.9, lng: 2.3, label: '프랑스', region: 'europe' },
 	CA: { lat: 43.7, lng: -79.4, label: '캐나다', region: 'america' },
 	CA: { lat: 43.7, lng: -79.4, label: '캐나다', region: 'america' },
-	BR: { lat: -23.5, lng: -46.6, label: '브라질', region: 'america' }
+	BR: { lat: -23.5, lng: -46.6, label: '브라질', region: 'america' },
+	// 이하 확장(백엔드 WorldIndex Items 구성 시 활성) — 지역 탭 커버리지 대비
+	ID: { lat: -6.2, lng: 106.85, label: '인도네시아', region: 'asia' },
+	TH: { lat: 13.75, lng: 100.52, label: '태국', region: 'asia' },
+	MY: { lat: 3.14, lng: 101.69, label: '말레이시아', region: 'asia' },
+	VN: { lat: 10.82, lng: 106.63, label: '베트남', region: 'asia' },
+	IT: { lat: 45.46, lng: 9.19, label: '이탈리아', region: 'europe' },
+	ES: { lat: 40.42, lng: -3.70, label: '스페인', region: 'europe' },
+	CH: { lat: 47.37, lng: 8.54, label: '스위스', region: 'europe' },
+	NL: { lat: 52.37, lng: 4.90, label: '네덜란드', region: 'europe' },
+	SE: { lat: 59.33, lng: 18.07, label: '스웨덴', region: 'europe' },
+	MX: { lat: 19.43, lng: -99.13, label: '멕시코', region: 'america' },
+	SA: { lat: 24.71, lng: 46.68, label: '사우디', region: 'mideast' },
+	ZA: { lat: -26.20, lng: 28.05, label: '남아공', region: 'mideast' },
+	AE: { lat: 25.20, lng: 55.27, label: 'UAE', region: 'mideast' }
 };
 };
 
 
 // ── 국가 → TradingView 대표지수 심볼 (드릴다운 차트). best-effort 매핑 ──
 // ── 국가 → TradingView 대표지수 심볼 (드릴다운 차트). best-effort 매핑 ──