Fixed two way binding for speech button.
This commit is contained in:
+16
-1
@@ -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) {
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
Reference in New Issue
Block a user