fix(presenter): fix resume after chat interruption + sync stateRef
stateRef was still 'resuming' when advanceRef.current() ran, causing it to bail out. Now sync stateRef immediately before advance. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -313,6 +313,7 @@ export function usePresenterMode({
|
|||||||
clearTimer()
|
clearTimer()
|
||||||
cancelSpeech()
|
cancelSpeech()
|
||||||
setState('presenting')
|
setState('presenting')
|
||||||
|
stateRef.current = 'presenting'
|
||||||
|
|
||||||
const slideIdx = slideIndexRef.current
|
const slideIdx = slideIndexRef.current
|
||||||
const script = getScriptForIndex(slideIdx)
|
const script = getScriptForIndex(slideIdx)
|
||||||
@@ -345,8 +346,10 @@ export function usePresenterMode({
|
|||||||
|
|
||||||
const resume = useCallback(() => {
|
const resume = useCallback(() => {
|
||||||
setState('resuming')
|
setState('resuming')
|
||||||
|
stateRef.current = 'resuming'
|
||||||
timerRef.current = setTimeout(() => {
|
timerRef.current = setTimeout(() => {
|
||||||
setState('presenting')
|
setState('presenting')
|
||||||
|
stateRef.current = 'presenting' // Sync ref immediately before calling advance
|
||||||
advanceRef.current()
|
advanceRef.current()
|
||||||
}, 2000)
|
}, 2000)
|
||||||
}, [])
|
}, [])
|
||||||
|
|||||||
Reference in New Issue
Block a user