fix(presenter): strip <en> tags from displayed subtitle text
All checks were successful
Build pitch-deck / build-push-deploy (push) Successful in 1m5s
CI / go-lint (push) Has been skipped
CI / python-lint (push) Has been skipped
CI / nodejs-lint (push) Has been skipped
CI / test-go-consent (push) Successful in 33s
CI / test-python-voice (push) Successful in 38s
CI / test-bqas (push) Successful in 29s

Tags are TTS-only markers; display should show plain text.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
Sharang Parnerkar
2026-04-16 22:32:02 +02:00
parent 909301a4de
commit 0923d9b051

View File

@@ -6,6 +6,10 @@ import { PresenterState, SlideScript } from '../presenter/types'
import { PRESENTER_SCRIPT } from '../presenter/presenter-script'
import { SLIDE_ORDER } from './useSlideNavigation'
function stripEnTags(text: string): string {
return text.replace(/<en>(.*?)<\/en>/gs, '$1')
}
interface UsePresenterModeConfig {
goToSlide: (index: number) => void
currentSlide: number
@@ -210,7 +214,7 @@ export function usePresenterMode({
}
// Show first segment immediately
setDisplayText(plan.segments[0]?.text || '')
setDisplayText(stripEnTags(plan.segments[0]?.text || ''))
setCurrentParagraph(0)
slideAdvancedRef.current = false
@@ -228,7 +232,7 @@ export function usePresenterMode({
for (const seg of plan.segments) {
const t = setTimeout(() => {
if (stateRef.current !== 'presenting') return
setDisplayText(seg.text)
setDisplayText(stripEnTags(seg.text))
if (seg.isTransition && slideIdx < totalSlides - 1 && !slideAdvancedRef.current) {
slideAdvancedRef.current = true
goToSlide(slideIdx + 1)
@@ -279,7 +283,7 @@ export function usePresenterMode({
for (let i = plan.segments.length - 1; i >= 0; i--) {
if (ratio >= plan.segments[i].startRatio) {
setDisplayText(plan.segments[i].text)
setDisplayText(stripEnTags(plan.segments[i].text))
setCurrentParagraph(Math.min(i, plan.segments.length - 1))
// Advance slide when transition phrase starts playing