From 5aa8d37cd008550fb906c1d3930e36c421cb5902 Mon Sep 17 00:00:00 2001 From: catlog22 Date: Mon, 8 Dec 2025 23:23:40 +0800 Subject: [PATCH] fix(dashboard): ensure Lucide icons are initialized after all dynamic content renders - Add lucide.createIcons() calls in renderSessions, renderProjectOverview, renderMcpManager, renderHookManager, renderLiteTasks, showSessionDetailPage - Fixes issue where icons would not appear after page render --- ccw/src/templates/dashboard-js/views/home.js | 3 +++ ccw/src/templates/dashboard-js/views/hook-manager.js | 3 +++ ccw/src/templates/dashboard-js/views/lite-tasks.js | 3 +++ ccw/src/templates/dashboard-js/views/mcp-manager.js | 3 +++ 4 files changed, 12 insertions(+) diff --git a/ccw/src/templates/dashboard-js/views/home.js b/ccw/src/templates/dashboard-js/views/home.js index 0f003c38..2861c267 100644 --- a/ccw/src/templates/dashboard-js/views/home.js +++ b/ccw/src/templates/dashboard-js/views/home.js @@ -83,6 +83,9 @@ function renderSessions() { } container.innerHTML = `
${sessions.map(session => renderSessionCard(session)).join('')}
`; + + // Initialize Lucide icons after rendering + if (typeof lucide !== 'undefined') lucide.createIcons(); } function renderSessionCard(session) { diff --git a/ccw/src/templates/dashboard-js/views/hook-manager.js b/ccw/src/templates/dashboard-js/views/hook-manager.js index f73ada56..e402cecf 100644 --- a/ccw/src/templates/dashboard-js/views/hook-manager.js +++ b/ccw/src/templates/dashboard-js/views/hook-manager.js @@ -133,6 +133,9 @@ async function renderHookManager() { // Attach event listeners attachHookEventListeners(); + + // Initialize Lucide icons + if (typeof lucide !== 'undefined') lucide.createIcons(); } function countHooks(hooks) { diff --git a/ccw/src/templates/dashboard-js/views/lite-tasks.js b/ccw/src/templates/dashboard-js/views/lite-tasks.js index ab005489..06cc7764 100644 --- a/ccw/src/templates/dashboard-js/views/lite-tasks.js +++ b/ccw/src/templates/dashboard-js/views/lite-tasks.js @@ -24,6 +24,9 @@ function renderLiteTasks() { } container.innerHTML = `
${sessions.map(session => renderLiteTaskCard(session)).join('')}
`; + + // Initialize Lucide icons + if (typeof lucide !== 'undefined') lucide.createIcons(); // Initialize collapsible sections document.querySelectorAll('.collapsible-header').forEach(header => { diff --git a/ccw/src/templates/dashboard-js/views/mcp-manager.js b/ccw/src/templates/dashboard-js/views/mcp-manager.js index 39ee7d8d..82201717 100644 --- a/ccw/src/templates/dashboard-js/views/mcp-manager.js +++ b/ccw/src/templates/dashboard-js/views/mcp-manager.js @@ -197,6 +197,9 @@ async function renderMcpManager() { // Attach event listeners for toggle switches attachMcpEventListeners(); + + // Initialize Lucide icons + if (typeof lucide !== 'undefined') lucide.createIcons(); } function renderMcpServerCard(serverName, serverConfig, isEnabled, isInCurrentProject) {