Fixed two way binding for speech button.

This commit is contained in:
2025-04-05 11:48:37 +00:00
parent 115704f89d
commit 5cd9adcb46
2 changed files with 29 additions and 1 deletions
+16 -1
View File
@@ -82,7 +82,7 @@ class TTSPlayerModule extends BaseModule {
} }
}); });
// Listen for TTS toggle events from UI // Listen for TTS toggle events from UI - support both event names
this.addEventListener(document, 'tts:toggle', () => { this.addEventListener(document, 'tts:toggle', () => {
this.toggle(); this.toggle();
// Dispatch state change event for UI to update // Dispatch state change event for UI to update
@@ -91,6 +91,21 @@ class TTSPlayerModule extends BaseModule {
})); }));
}); });
// Also listen for ui:tts:toggle events (from the main UI)
this.addEventListener(document, 'ui:tts:toggle', (event) => {
// If we have explicit enabled value, use it instead of toggling
if (event.detail && typeof event.detail.enabled === 'boolean') {
this.enabled = event.detail.enabled;
} else {
this.toggle();
}
// Dispatch state change event for UI to update
document.dispatchEvent(new CustomEvent('tts:stateChange', {
detail: { enabled: this.enabled, available: ttsFactory.ttsAvailable }
}));
});
// Listen for sentence ready events to preload TTS // Listen for sentence ready events to preload TTS
this.addEventListener(document, 'buffer:sentence', (event) => { this.addEventListener(document, 'buffer:sentence', (event) => {
if (event.detail && event.detail.sentence && this.enabled) { if (event.detail && event.detail.sentence && this.enabled) {
+13
View File
@@ -269,6 +269,19 @@ class UIController extends BaseModule {
} }
}); });
// Listen for TTS state changes (from options UI or TTS player)
document.addEventListener('tts:stateChange', (event) => {
if (event.detail && typeof event.detail.enabled === 'boolean') {
this.ttsEnabled = event.detail.enabled;
this.updateButtonStates();
// Ensure persistence is updated
if (persistenceManager) {
persistenceManager.updatePreference('tts', 'enabled', this.ttsEnabled);
}
}
});
// Listen for TTS engine changes // Listen for TTS engine changes
document.addEventListener('tts:engine:change', (event) => { document.addEventListener('tts:engine:change', (event) => {
// Update button states since TTS engine changed // Update button states since TTS engine changed