mirror of
https://github.com/Minidoracat/mcp-feedback-enhanced.git
synced 2025-07-27 10:42:25 +08:00
🐛 修正自動提交的處理邏輯
This commit is contained in:
parent
c0324fdb23
commit
c254602531
@ -1154,11 +1154,13 @@
|
||||
} else {
|
||||
console.log('⚠️ 自動提交提示詞驗證失敗:', {
|
||||
promptExists: !!prompt,
|
||||
isAutoSubmit: prompt ? prompt.isAutoSubmit : false
|
||||
isAutoSubmit: prompt ? prompt.isAutoSubmit : false,
|
||||
reason: !prompt ? '提示詞不存在' : '提示詞未標記為自動提交'
|
||||
});
|
||||
// 清空無效的自動提交設定
|
||||
// 只清空無效的 promptId,保留用戶的 autoSubmitEnabled 設定
|
||||
// 這樣避免因為提示詞問題而強制關閉用戶的自動提交偏好
|
||||
this.settingsManager.set('autoSubmitPromptId', null);
|
||||
this.settingsManager.set('autoSubmitEnabled', false);
|
||||
console.log('🔧 已清空無效的 autoSubmitPromptId,保留 autoSubmitEnabled 設定:', autoSubmitEnabled);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -396,16 +396,31 @@
|
||||
// 同步更新設定管理器中的自動提交提示詞 ID
|
||||
if (this.settingsManager) {
|
||||
console.log('🔄 updateAutoSubmitSelect 設定前:', this.settingsManager.get('autoSubmitPromptId'));
|
||||
const currentAutoSubmitEnabled = this.settingsManager.get('autoSubmitEnabled');
|
||||
|
||||
if (autoSubmitPromptId) {
|
||||
this.settingsManager.set('autoSubmitPromptId', autoSubmitPromptId);
|
||||
this.settingsManager.set('autoSubmitEnabled', true);
|
||||
console.log('🔄 updateAutoSubmitSelect 同步設定:', autoSubmitPromptId);
|
||||
// 檢查狀態一致性:如果設定中的 promptId 與找到的不一致,以找到的為準
|
||||
const currentPromptId = this.settingsManager.get('autoSubmitPromptId');
|
||||
if (currentPromptId !== autoSubmitPromptId) {
|
||||
console.log('🔧 狀態不一致,修正 autoSubmitPromptId:', currentPromptId, '->', autoSubmitPromptId);
|
||||
this.settingsManager.set('autoSubmitPromptId', autoSubmitPromptId);
|
||||
}
|
||||
|
||||
// 不自動改變 autoSubmitEnabled 的值,完全尊重用戶的設定
|
||||
// updateAutoSubmitSelect 只負責同步 promptId 和下拉選單顯示
|
||||
console.log('🔄 updateAutoSubmitSelect 同步 promptId,保持 autoSubmitEnabled 狀態:', {
|
||||
promptId: autoSubmitPromptId,
|
||||
enabled: currentAutoSubmitEnabled
|
||||
});
|
||||
} else {
|
||||
// 沒有找到自動提交提示詞,清空 promptId 但完全保留 enabled 狀態
|
||||
this.settingsManager.set('autoSubmitPromptId', null);
|
||||
this.settingsManager.set('autoSubmitEnabled', false);
|
||||
console.log('🔄 updateAutoSubmitSelect 清空設定');
|
||||
console.log('🔄 updateAutoSubmitSelect 清空 promptId,完全保留 autoSubmitEnabled 狀態:', currentAutoSubmitEnabled);
|
||||
}
|
||||
console.log('🔄 updateAutoSubmitSelect 設定後:', this.settingsManager.get('autoSubmitPromptId'));
|
||||
console.log('🔄 updateAutoSubmitSelect 設定後:', {
|
||||
promptId: this.settingsManager.get('autoSubmitPromptId'),
|
||||
enabled: this.settingsManager.get('autoSubmitEnabled')
|
||||
});
|
||||
} else {
|
||||
console.warn('⚠️ updateAutoSubmitSelect: settingsManager 未設定,無法同步設定');
|
||||
}
|
||||
|
@ -677,11 +677,51 @@
|
||||
if (!promptId || promptId === '') {
|
||||
self.set('autoSubmitPromptId', null);
|
||||
self.set('autoSubmitEnabled', false);
|
||||
console.log('清除自動提交設定');
|
||||
|
||||
// 同時清除所有提示詞的 isAutoSubmit 標記
|
||||
if (window.feedbackApp && window.feedbackApp.promptManager) {
|
||||
window.feedbackApp.promptManager.clearAutoSubmitPrompt();
|
||||
console.log('🔄 已清除所有提示詞的自動提交標記');
|
||||
} else {
|
||||
console.warn('⚠️ promptManager 未找到,無法清除提示詞標記');
|
||||
}
|
||||
|
||||
// 觸發狀態變更事件,更新相關 UI 組件
|
||||
self.triggerAutoSubmitStateChange(false);
|
||||
|
||||
// 更新 UI 元素(按鈕狀態、倒數計時器等)
|
||||
self.applyAutoSubmitSettingsToUI();
|
||||
|
||||
console.log('清除自動提交設定並更新 UI');
|
||||
} else {
|
||||
// 設定新的自動提交提示詞
|
||||
self.set('autoSubmitPromptId', promptId);
|
||||
console.log('設定自動提交提示詞 ID:', promptId);
|
||||
|
||||
// 同時更新對應提示詞的 isAutoSubmit 標記
|
||||
if (window.feedbackApp && window.feedbackApp.promptManager) {
|
||||
try {
|
||||
window.feedbackApp.promptManager.setAutoSubmitPrompt(promptId);
|
||||
console.log('🔄 已設定提示詞的自動提交標記:', promptId);
|
||||
|
||||
// 觸發狀態變更事件,更新相關 UI 組件
|
||||
const currentEnabled = self.get('autoSubmitEnabled');
|
||||
self.triggerAutoSubmitStateChange(currentEnabled);
|
||||
|
||||
// 更新 UI 元素
|
||||
self.applyAutoSubmitSettingsToUI();
|
||||
|
||||
console.log('🔄 已更新自動提交 UI 狀態');
|
||||
} catch (promptError) {
|
||||
console.error('❌ 設定提示詞自動提交標記失敗:', promptError);
|
||||
// 如果設定提示詞失敗,回滾設定
|
||||
self.set('autoSubmitPromptId', null);
|
||||
e.target.value = '';
|
||||
throw promptError;
|
||||
}
|
||||
} else {
|
||||
console.warn('⚠️ promptManager 未找到,無法設定提示詞標記');
|
||||
}
|
||||
}
|
||||
} catch (error) {
|
||||
Utils.showMessage(error.message, Utils.CONSTANTS.MESSAGE_ERROR);
|
||||
|
Loading…
x
Reference in New Issue
Block a user