/** * Platforms Manager - Alpine.js Component * * Handles platform listing and management for multi-platform CMS. */ function platformsManager() { return { // State platforms: [], loading: true, error: null, // Lifecycle async init() { this.currentPage = "platforms"; await this.loadPlatforms(); }, // API Methods async loadPlatforms() { this.loading = true; this.error = null; try { const response = await apiClient.get("/admin/platforms"); this.platforms = response.platforms || []; console.log(`[PLATFORMS] Loaded ${this.platforms.length} platforms`); } catch (err) { console.error("[PLATFORMS] Error loading platforms:", err); this.error = err.message || "Failed to load platforms"; } finally { this.loading = false; } }, // Helper Methods getPlatformIcon(code) { const icons = { oms: "clipboard-list", loyalty: "star", sitebuilder: "template", default: "globe-alt", }; return icons[code] || icons.default; }, formatDate(dateString) { if (!dateString) return "—"; const date = new Date(dateString); return date.toLocaleDateString("fr-LU", { year: "numeric", month: "short", day: "numeric", }); }, }; }