import { formatTimestamp } from '../utils/geojson_transformers' import { getCurrentTheme, getThemeColors } from '../utils/popup_theme' /** * Factory for creating map popups */ export class PopupFactory { /** * Create popup for a point * @param {Object} properties - Point properties * @returns {string} HTML for popup */ static createPointPopup(properties) { const { id, timestamp, altitude, battery, accuracy, velocity } = properties // Get theme colors const theme = getCurrentTheme() const colors = getThemeColors(theme) return `
` } /** * Create popup for a place * @param {Object} properties - Place properties * @returns {string} HTML for popup */ static createPlacePopup(properties) { const { id, name, latitude, longitude, note, tags } = properties // Get theme colors const theme = getCurrentTheme() const colors = getThemeColors(theme) // Parse tags if they're stringified let parsedTags = tags if (typeof tags === 'string') { try { parsedTags = JSON.parse(tags) } catch (e) { parsedTags = [] } } // Format tags as badges const tagsHtml = parsedTags && Array.isArray(parsedTags) && parsedTags.length > 0 ? parsedTags.map(tag => ` ${tag.icon} #${tag.name} `).join(' ') : `Untagged` return `
` } }