Battle ships interactive — clickable from BattleMarker tooltip
- 主要語言
- TypeScript
- 星號
- 0
- 分支
- 1
- PR 合併指標
- 30 天內沒有已合併 PR
描述
> **Skills:** TypeScript · React · data resolution patterns · responsive UX
> **Time:** ~4 hours
> **Good for:** UX-minded engineers · lore matchers · battle-trivia people
> **Difficulty:** Intermediate
---
## Context
Each `Battle` in `data/build/wars.json` includes `shipsInvolved: string[]` — a
list of canonical ship class names that fought there. The BattleMarker
currently doesn't expose them.
## Goal
When a battle is selected, surface its ships as clickable chips that
cross-pivot to the matching ship entity (or display an info tooltip if the
ship class isn't in our kb).
## Where to start
- `components/timeline/BattleMarker.tsx` — currently the marker has a small
HTML label; expand into a tooltip on hover or click
- `components/explorer/Datapad.tsx` — when a battle entity is selected, render
the ships array as a row of chips
- Match the chip style to the existing relations rows
- Resolve each ship name against `kb.json` by name (case-insensitive). Capture
unmatched names so we can identify schema gaps.
## Acceptance criteria
- Battle of Yavin: ships chip-row shows Death Star, X-wing, Y-wing, TIE
Fighter, Imperial Star Destroyer
- Click a chip whose ship is in kb → cross-pivot to that ship
- Click a chip whose ship is NOT in kb → tooltip "Ship not in archive yet"
- Mobile-friendly: chip row scrolls horizontally below md
貢獻指南
研究方向
Start by reading components/timeline/BattleMarker.tsx and components/explorer/Datapad.tsx, then run the app and inspect the existing relations-row chip styling and battle selection flow. Use Battle of Yavin to verify resolved ships cross-pivot correctly, unmatched ships show the specified tooltip, and the chip row scrolls horizontally below md.
由索引模型根據 Issue 內容生成。
評估
- 技術堆疊
- nextjs, react, tailwindcss, typescript
- 領域
- data-visualization, frontend
- Issue 類型
- 功能
- 難度
- 3/5
- 預估耗時
- 半天
- 活躍度
- 冷清
- 描述清晰度
- 描述清楚
- 新手友好度
- 74/100