@magmamath/students-features 1.3.23-rc.42 → 1.3.23-rc.44

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -59,7 +59,14 @@ const useVoiceTranscriptionController = ({
59
59
  }
60
60
  }, [model, answersKey]);
61
61
  (0, _react.useEffect)(() => {
62
- model.stopAudio();
62
+ // Skip stopAudio when the audio is already targeting activeAttempt — that's
63
+ // the case when the timeline scrubber auto-progressed to this attempt and
64
+ // VoiceSource just activated playback for it. Stopping here would kill the
65
+ // freshly-started audio (race: activation runs synchronously inside the
66
+ // timeline tick, this effect fires after React commits).
67
+ if (model.$currentAttempt.getState() !== activeAttempt) {
68
+ model.stopAudio();
69
+ }
63
70
  model.setCurrentAttempt(activeAttempt);
64
71
  if (activeAttempt !== null) {
65
72
  model.loader.loadTranscriptForAttempt(activeAttempt);
@@ -1 +1 @@
1
- {"version":3,"names":["_effectorReact","require","_react","_reactI18next","_constants","_helpers","_supportedLanguages","_i18n","useVoiceTranscriptionController","model","answers","attemptOffset","attemptsCount","problemId","t","useText","i18n","useTranslation","playerState","isLoadingTranscripts","isTranslationActive","translations","isTranslating","useUnit","$playerState","loader","loadTranscriptForAttempt","pending","translation","$isActive","$translations","translate","activeAttempt","getActiveAttempt","answersKey","useMemo","map","a","_id","audioFileId","join","activeAudioFileId","undefined","hasActiveAudio","anyAttemptHasAudio","some","cachedEntry","getCachedTranscript","activeTranscript","text","hasTranscriptText","NO_AUDIO_BE_MESSAGE","isActiveTranscriptLoading","isSourceSameAsTarget","language","resolveGoogleLanguageCode","canTranslate","cachedTranslation","showTranslation","isTranslationLoading","displayText","answersRef","useRef","current","useEffect","reinitializePlayer","stopAudio","dropdown","setExpanded","resetPlayer","initializeWithAudios","setCurrentAttempt","autoActivatedAttempts","Set","clear","has","add","setActive","attemptNumber","targetLanguage","doneData","watch","result","onPlayPress","useCallback","togglePlayPause","onTranslationToggle","toggle","display","isLoading","flags","actions","exports"],"sourceRoot":"../../../../../../src","sources":["features/voice/playing/hooks/useVoiceTranscriptionController.ts"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["_effectorReact","require","_react","_reactI18next","_constants","_helpers","_supportedLanguages","_i18n","useVoiceTranscriptionController","model","answers","attemptOffset","attemptsCount","problemId","t","useText","i18n","useTranslation","playerState","isLoadingTranscripts","isTranslationActive","translations","isTranslating","useUnit","$playerState","loader","loadTranscriptForAttempt","pending","translation","$isActive","$translations","translate","activeAttempt","getActiveAttempt","answersKey","useMemo","map","a","_id","audioFileId","join","activeAudioFileId","undefined","hasActiveAudio","anyAttemptHasAudio","some","cachedEntry","getCachedTranscript","activeTranscript","text","hasTranscriptText","NO_AUDIO_BE_MESSAGE","isActiveTranscriptLoading","isSourceSameAsTarget","language","resolveGoogleLanguageCode","canTranslate","cachedTranslation","showTranslation","isTranslationLoading","displayText","answersRef","useRef","current","useEffect","reinitializePlayer","stopAudio","dropdown","setExpanded","resetPlayer","initializeWithAudios","$currentAttempt","getState","setCurrentAttempt","autoActivatedAttempts","Set","clear","has","add","setActive","attemptNumber","targetLanguage","doneData","watch","result","onPlayPress","useCallback","togglePlayPause","onTranslationToggle","toggle","display","isLoading","flags","actions","exports"],"sourceRoot":"../../../../../../src","sources":["features/voice/playing/hooks/useVoiceTranscriptionController.ts"],"mappings":"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","ignoreList":[]}
@@ -55,7 +55,14 @@ export const useVoiceTranscriptionController = ({
55
55
  }
56
56
  }, [model, answersKey]);
57
57
  useEffect(() => {
58
- model.stopAudio();
58
+ // Skip stopAudio when the audio is already targeting activeAttempt — that's
59
+ // the case when the timeline scrubber auto-progressed to this attempt and
60
+ // VoiceSource just activated playback for it. Stopping here would kill the
61
+ // freshly-started audio (race: activation runs synchronously inside the
62
+ // timeline tick, this effect fires after React commits).
63
+ if (model.$currentAttempt.getState() !== activeAttempt) {
64
+ model.stopAudio();
65
+ }
59
66
  model.setCurrentAttempt(activeAttempt);
60
67
  if (activeAttempt !== null) {
61
68
  model.loader.loadTranscriptForAttempt(activeAttempt);
@@ -1 +1 @@
1
- {"version":3,"names":["useUnit","useCallback","useEffect","useMemo","useRef","useTranslation","NO_AUDIO_BE_MESSAGE","getActiveAttempt","resolveGoogleLanguageCode","useText","useVoiceTranscriptionController","model","answers","attemptOffset","attemptsCount","problemId","t","i18n","playerState","isLoadingTranscripts","isTranslationActive","translations","isTranslating","$playerState","loader","loadTranscriptForAttempt","pending","translation","$isActive","$translations","translate","activeAttempt","answersKey","map","a","_id","audioFileId","join","activeAudioFileId","undefined","hasActiveAudio","anyAttemptHasAudio","some","cachedEntry","getCachedTranscript","activeTranscript","text","hasTranscriptText","isActiveTranscriptLoading","isSourceSameAsTarget","language","canTranslate","cachedTranslation","showTranslation","isTranslationLoading","displayText","answersRef","current","reinitializePlayer","stopAudio","dropdown","setExpanded","resetPlayer","initializeWithAudios","setCurrentAttempt","autoActivatedAttempts","Set","clear","has","add","setActive","attemptNumber","targetLanguage","doneData","watch","result","onPlayPress","togglePlayPause","onTranslationToggle","toggle","display","isLoading","flags","actions"],"sourceRoot":"../../../../../../src","sources":["features/voice/playing/hooks/useVoiceTranscriptionController.ts"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["useUnit","useCallback","useEffect","useMemo","useRef","useTranslation","NO_AUDIO_BE_MESSAGE","getActiveAttempt","resolveGoogleLanguageCode","useText","useVoiceTranscriptionController","model","answers","attemptOffset","attemptsCount","problemId","t","i18n","playerState","isLoadingTranscripts","isTranslationActive","translations","isTranslating","$playerState","loader","loadTranscriptForAttempt","pending","translation","$isActive","$translations","translate","activeAttempt","answersKey","map","a","_id","audioFileId","join","activeAudioFileId","undefined","hasActiveAudio","anyAttemptHasAudio","some","cachedEntry","getCachedTranscript","activeTranscript","text","hasTranscriptText","isActiveTranscriptLoading","isSourceSameAsTarget","language","canTranslate","cachedTranslation","showTranslation","isTranslationLoading","displayText","answersRef","current","reinitializePlayer","stopAudio","dropdown","setExpanded","resetPlayer","initializeWithAudios","$currentAttempt","getState","setCurrentAttempt","autoActivatedAttempts","Set","clear","has","add","setActive","attemptNumber","targetLanguage","doneData","watch","result","onPlayPress","togglePlayPause","onTranslationToggle","toggle","display","isLoading","flags","actions"],"sourceRoot":"../../../../../../src","sources":["features/voice/playing/hooks/useVoiceTranscriptionController.ts"],"mappings":"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","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"useVoiceTranscriptionController.d.ts","sourceRoot":"","sources":["../../../../../../../src/features/voice/playing/hooks/useVoiceTranscriptionController.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAA;AAGzC,OAAO,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAA;AAC3C,OAAO,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAA;AAEnD,KAAK,MAAM,GAAG;IACZ,KAAK,EAAE,gBAAgB,CAAA;IACvB,OAAO,EAAE,WAAW,EAAE,CAAA;IACtB,aAAa,EAAE,MAAM,CAAA;IACrB,aAAa,EAAE,MAAM,CAAA;IACrB,SAAS,EAAE,MAAM,CAAA;CAClB,CAAA;AAED,MAAM,MAAM,4BAA4B,GAAG,UAAU,CAAC,OAAO,+BAA+B,CAAC,CAAA;AAE7F,eAAO,MAAM,+BAA+B,iEAMzC,MAAM;;;;;;qBAoIyB,WAAW;;;;;;;;;;CAW5C,CAAA"}
1
+ {"version":3,"file":"useVoiceTranscriptionController.d.ts","sourceRoot":"","sources":["../../../../../../../src/features/voice/playing/hooks/useVoiceTranscriptionController.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAA;AAGzC,OAAO,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAA;AAC3C,OAAO,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAA;AAEnD,KAAK,MAAM,GAAG;IACZ,KAAK,EAAE,gBAAgB,CAAA;IACvB,OAAO,EAAE,WAAW,EAAE,CAAA;IACtB,aAAa,EAAE,MAAM,CAAA;IACrB,aAAa,EAAE,MAAM,CAAA;IACrB,SAAS,EAAE,MAAM,CAAA;CAClB,CAAA;AAED,MAAM,MAAM,4BAA4B,GAAG,UAAU,CAAC,OAAO,+BAA+B,CAAC,CAAA;AAE7F,eAAO,MAAM,+BAA+B,iEAMzC,MAAM;;;;;;qBA2IyB,WAAW;;;;;;;;;;CAW5C,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"useVoiceTranscriptionController.d.ts","sourceRoot":"","sources":["../../../../../../../src/features/voice/playing/hooks/useVoiceTranscriptionController.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAA;AAGzC,OAAO,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAA;AAC3C,OAAO,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAA;AAEnD,KAAK,MAAM,GAAG;IACZ,KAAK,EAAE,gBAAgB,CAAA;IACvB,OAAO,EAAE,WAAW,EAAE,CAAA;IACtB,aAAa,EAAE,MAAM,CAAA;IACrB,aAAa,EAAE,MAAM,CAAA;IACrB,SAAS,EAAE,MAAM,CAAA;CAClB,CAAA;AAED,MAAM,MAAM,4BAA4B,GAAG,UAAU,CAAC,OAAO,+BAA+B,CAAC,CAAA;AAE7F,eAAO,MAAM,+BAA+B,iEAMzC,MAAM;;;;;;qBAoIyB,WAAW;;;;;;;;;;CAW5C,CAAA"}
1
+ {"version":3,"file":"useVoiceTranscriptionController.d.ts","sourceRoot":"","sources":["../../../../../../../src/features/voice/playing/hooks/useVoiceTranscriptionController.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAA;AAGzC,OAAO,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAA;AAC3C,OAAO,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAA;AAEnD,KAAK,MAAM,GAAG;IACZ,KAAK,EAAE,gBAAgB,CAAA;IACvB,OAAO,EAAE,WAAW,EAAE,CAAA;IACtB,aAAa,EAAE,MAAM,CAAA;IACrB,aAAa,EAAE,MAAM,CAAA;IACrB,SAAS,EAAE,MAAM,CAAA;CAClB,CAAA;AAED,MAAM,MAAM,4BAA4B,GAAG,UAAU,CAAC,OAAO,+BAA+B,CAAC,CAAA;AAE7F,eAAO,MAAM,+BAA+B,iEAMzC,MAAM;;;;;;qBA2IyB,WAAW;;;;;;;;;;CAW5C,CAAA"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@magmamath/students-features",
3
- "version": "1.3.23-rc.42",
3
+ "version": "1.3.23-rc.44",
4
4
  "description": "Magmamath features library",
5
5
  "source": "src/index.ts",
6
6
  "main": "src/index.ts",
@@ -97,7 +97,14 @@ export const useVoiceTranscriptionController = ({
97
97
  }, [model, answersKey])
98
98
 
99
99
  useEffect(() => {
100
- model.stopAudio()
100
+ // Skip stopAudio when the audio is already targeting activeAttempt — that's
101
+ // the case when the timeline scrubber auto-progressed to this attempt and
102
+ // VoiceSource just activated playback for it. Stopping here would kill the
103
+ // freshly-started audio (race: activation runs synchronously inside the
104
+ // timeline tick, this effect fires after React commits).
105
+ if (model.$currentAttempt.getState() !== activeAttempt) {
106
+ model.stopAudio()
107
+ }
101
108
  model.setCurrentAttempt(activeAttempt)
102
109
  if (activeAttempt !== null) {
103
110
  model.loader.loadTranscriptForAttempt(activeAttempt)