feat(renderer): interactive map with Leaflet + OpenStreetMap (M10.3)
- MapRenderer.vue: lazy-loads Leaflet, renders OSM tiles - Orange marker pins for all places with coordinates - Place list sidebar on desktop, popup on click - "View on map" button in chat messages with places - Integrated into content panel via openMapView() Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Opus 4.6
parent
7a3d874f5e
commit
aec87a347c
@@ -52,6 +52,7 @@ const availableTabs = ref<ContentTab[]>([])
|
||||
const selectedDesignSystemItem = ref<DesignSystemItem | null>(null)
|
||||
const longFormArticle = ref<{ content: string; title?: string } | null>(null)
|
||||
const pdfUrl = ref<{ url: string; title?: string } | null>(null)
|
||||
const mapPlaces = ref<Place[]>([])
|
||||
|
||||
export interface DesignSystemItem {
|
||||
id: string
|
||||
@@ -275,6 +276,7 @@ export function useContentPanel() {
|
||||
selectedDesignSystemItem.value = null
|
||||
longFormArticle.value = null
|
||||
pdfUrl.value = null
|
||||
mapPlaces.value = []
|
||||
}
|
||||
|
||||
function openFilmDetail(film: Film) { clearAllSelections(); selectedFilm.value = film }
|
||||
@@ -301,6 +303,9 @@ export function useContentPanel() {
|
||||
function openPdfViewer(url: string, title?: string) { clearAllSelections(); pdfUrl.value = { url, title }; panelOpen.value = true }
|
||||
function closePdfViewer() { pdfUrl.value = null }
|
||||
|
||||
function openMapView(places: Place[]) { clearAllSelections(); mapPlaces.value = places; panelOpen.value = true }
|
||||
function closeMapView() { mapPlaces.value = [] }
|
||||
|
||||
function openMagazineSectionDetail(section: MagazineSection, index: number) {
|
||||
clearAllSelections()
|
||||
selectedMagazineSection.value = section
|
||||
@@ -451,6 +456,9 @@ export function useContentPanel() {
|
||||
pdfUrl,
|
||||
openPdfViewer,
|
||||
closePdfViewer,
|
||||
mapPlaces,
|
||||
openMapView,
|
||||
closeMapView,
|
||||
enterDesignSystemMode,
|
||||
closePanel,
|
||||
showAllFilms,
|
||||
|
||||
Reference in New Issue
Block a user