收合面板功能加入保存

This commit is contained in:
Minidoracat 2025-06-13 05:50:27 +08:00
parent a257744bd1
commit e0aa50a4e8
3 changed files with 88 additions and 1 deletions

View File

@ -142,6 +142,7 @@
// 6. 初始化會話管理器
self.sessionManager = new window.MCPFeedback.SessionManager({
settingsManager: self.settingsManager,
onSessionChange: function(sessionData) {
console.log('📋 會話變更:', sessionData);
},

View File

@ -38,12 +38,16 @@
this.collapsedToggleBtn = null;
this.mainContent = null;
// 設定管理器引用
this.settingsManager = options.settingsManager || null;
// 回調函數
this.onSessionChange = options.onSessionChange || null;
this.onSessionSelect = options.onSessionSelect || null;
this.initializeModules(options);
this.initializeUI();
this.loadPanelState();
console.log('📋 SessionManager (重構版) 初始化完成');
}
@ -254,6 +258,9 @@
this.updateToggleButton('▶', '展開面板');
}
// 保存面板狀態到設定
this.savePanelState();
console.log('📋 會話面板', this.isPanelVisible ? '顯示' : '隱藏');
};
@ -471,6 +478,84 @@
/**
* 載入面板狀態
*/
SessionManager.prototype.loadPanelState = function() {
if (!this.settingsManager) {
console.log('📋 沒有設定管理器,使用預設面板狀態');
return;
}
const isCollapsed = this.settingsManager.get('sessionPanelCollapsed', false);
this.isPanelVisible = !isCollapsed;
console.log('📋 載入面板狀態:', this.isPanelVisible ? '顯示' : '隱藏');
// 應用面板狀態
this.applyPanelState();
};
/**
* 保存面板狀態
*/
SessionManager.prototype.savePanelState = function() {
if (!this.settingsManager) {
console.log('📋 沒有設定管理器,無法保存面板狀態');
return;
}
const isCollapsed = !this.isPanelVisible;
this.settingsManager.set('sessionPanelCollapsed', isCollapsed);
console.log('📋 保存面板狀態:', isCollapsed ? '收合' : '展開');
};
/**
* 應用面板狀態
*/
SessionManager.prototype.applyPanelState = function() {
if (!this.panel) return;
const DOMUtils = getDOMUtils();
if (this.isPanelVisible) {
// 展開面板
this.panel.classList.remove('collapsed');
if (this.mainContent) {
this.mainContent.classList.remove('panel-collapsed');
}
// 隱藏收合狀態下的展開按鈕
const collapsedToggle = DOMUtils ?
DOMUtils.safeQuerySelector('#collapsedPanelToggle') :
document.querySelector('#collapsedPanelToggle');
if (collapsedToggle) {
collapsedToggle.style.display = 'none';
}
// 更新邊緣按鈕圖示和提示
this.updateToggleButton('◀', '收合面板');
} else {
// 收合面板
this.panel.classList.add('collapsed');
if (this.mainContent) {
this.mainContent.classList.add('panel-collapsed');
}
// 顯示收合狀態下的展開按鈕
const collapsedToggle = DOMUtils ?
DOMUtils.safeQuerySelector('#collapsedPanelToggle') :
document.querySelector('#collapsedPanelToggle');
if (collapsedToggle) {
collapsedToggle.style.display = 'block';
}
// 更新邊緣按鈕圖示和提示
this.updateToggleButton('▶', '展開面板');
}
};
/**
* 更新顯示
*/

View File

@ -27,7 +27,8 @@
enableBase64Detail: false,
autoRefreshEnabled: false,
autoRefreshInterval: 5,
activeTab: 'combined'
activeTab: 'combined',
sessionPanelCollapsed: false
};
// 當前設定