From 0923d9b0513eb4ac65a86c82bbfd9d77f306a515 Mon Sep 17 00:00:00 2001 From: Sharang Parnerkar <30073382+mighty840@users.noreply.github.com> Date: Thu, 16 Apr 2026 22:32:02 +0200 Subject: [PATCH] fix(presenter): strip tags from displayed subtitle text Tags are TTS-only markers; display should show plain text. Co-Authored-By: Claude Sonnet 4.6 --- pitch-deck/lib/hooks/usePresenterMode.ts | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/pitch-deck/lib/hooks/usePresenterMode.ts b/pitch-deck/lib/hooks/usePresenterMode.ts index cc30124..fa0fd28 100644 --- a/pitch-deck/lib/hooks/usePresenterMode.ts +++ b/pitch-deck/lib/hooks/usePresenterMode.ts @@ -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>/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