@magmamath/students-features 1.3.23-rc.3 → 1.3.23-rc.4

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.
Files changed (38) hide show
  1. package/dist/commonjs/features/voice/playing/components/VoiceTranscription.js +24 -9
  2. package/dist/commonjs/features/voice/playing/components/VoiceTranscription.js.map +1 -1
  3. package/dist/commonjs/features/voice/playing/model/TranscriptionsDownloaderModel.js +15 -4
  4. package/dist/commonjs/features/voice/playing/model/TranscriptionsDownloaderModel.js.map +1 -1
  5. package/dist/commonjs/features/voice/playing/model/VoicePlayer.model.js +2 -1
  6. package/dist/commonjs/features/voice/playing/model/VoicePlayer.model.js.map +1 -1
  7. package/dist/commonjs/features/voice/playing/model/VoiceTranscriptionTranslation.model.js +33 -0
  8. package/dist/commonjs/features/voice/playing/model/VoiceTranscriptionTranslation.model.js.map +1 -1
  9. package/dist/commonjs/features/voice/types.js.map +1 -1
  10. package/dist/module/features/voice/playing/components/VoiceTranscription.js +25 -10
  11. package/dist/module/features/voice/playing/components/VoiceTranscription.js.map +1 -1
  12. package/dist/module/features/voice/playing/model/TranscriptionsDownloaderModel.js +15 -4
  13. package/dist/module/features/voice/playing/model/TranscriptionsDownloaderModel.js.map +1 -1
  14. package/dist/module/features/voice/playing/model/VoicePlayer.model.js +2 -1
  15. package/dist/module/features/voice/playing/model/VoicePlayer.model.js.map +1 -1
  16. package/dist/module/features/voice/playing/model/VoiceTranscriptionTranslation.model.js +34 -1
  17. package/dist/module/features/voice/playing/model/VoiceTranscriptionTranslation.model.js.map +1 -1
  18. package/dist/module/features/voice/types.js.map +1 -1
  19. package/dist/typescript/commonjs/features/voice/playing/components/VoiceTranscription.d.ts.map +1 -1
  20. package/dist/typescript/commonjs/features/voice/playing/model/TranscriptionsDownloaderModel.d.ts.map +1 -1
  21. package/dist/typescript/commonjs/features/voice/playing/model/VoicePlayer.model.d.ts.map +1 -1
  22. package/dist/typescript/commonjs/features/voice/playing/model/VoiceTranscriptionTranslation.model.d.ts +18 -0
  23. package/dist/typescript/commonjs/features/voice/playing/model/VoiceTranscriptionTranslation.model.d.ts.map +1 -1
  24. package/dist/typescript/commonjs/features/voice/types.d.ts +16 -0
  25. package/dist/typescript/commonjs/features/voice/types.d.ts.map +1 -1
  26. package/dist/typescript/module/features/voice/playing/components/VoiceTranscription.d.ts.map +1 -1
  27. package/dist/typescript/module/features/voice/playing/model/TranscriptionsDownloaderModel.d.ts.map +1 -1
  28. package/dist/typescript/module/features/voice/playing/model/VoicePlayer.model.d.ts.map +1 -1
  29. package/dist/typescript/module/features/voice/playing/model/VoiceTranscriptionTranslation.model.d.ts +18 -0
  30. package/dist/typescript/module/features/voice/playing/model/VoiceTranscriptionTranslation.model.d.ts.map +1 -1
  31. package/dist/typescript/module/features/voice/types.d.ts +16 -0
  32. package/dist/typescript/module/features/voice/types.d.ts.map +1 -1
  33. package/package.json +1 -1
  34. package/src/features/voice/playing/components/VoiceTranscription.tsx +40 -11
  35. package/src/features/voice/playing/model/TranscriptionsDownloaderModel.ts +8 -5
  36. package/src/features/voice/playing/model/VoicePlayer.model.ts +3 -1
  37. package/src/features/voice/playing/model/VoiceTranscriptionTranslation.model.ts +51 -1
  38. package/src/features/voice/types.ts +17 -0
@@ -7,6 +7,7 @@ exports.VoiceTranscription = void 0;
7
7
  var _reactNativeUi = require("@magmamath/react-native-ui");
8
8
  var _effectorReact = require("effector-react");
9
9
  var _react = _interopRequireWildcard(require("react"));
10
+ var _reactI18next = require("react-i18next");
10
11
  var _reactNative = require("react-native");
11
12
  var _reactNativeReanimated = _interopRequireDefault(require("react-native-reanimated"));
12
13
  var _constants = require("../../constants.js");
@@ -31,7 +32,10 @@ const VoiceTranscription = ({
31
32
  variant = _types.VoiceTranscriptionVariant.SMALL
32
33
  }) => {
33
34
  const t = (0, _i18n.useText)();
34
- const [playerState, isLoadingTranscripts, isTranslationActive] = (0, _effectorReact.useUnit)([model.$playerState, model.loader.loadAllTranscripts.pending, model.translation.$isActive]);
35
+ const {
36
+ i18n
37
+ } = (0, _reactI18next.useTranslation)();
38
+ const [playerState, isLoadingTranscripts, isTranslationActive, translations, isTranslating] = (0, _effectorReact.useUnit)([model.$playerState, model.loader.loadAllTranscripts.pending, model.translation.$isActive, model.translation.$translations, model.translation.translate.pending]);
35
39
  const activeAttempt = (0, _helpers.getActiveAttempt)(attemptOffset, attemptsCount);
36
40
  const isLargeVariant = variant === _types.VoiceTranscriptionVariant.LARGE;
37
41
  const answersKey = (0, _react.useMemo)(() => answers.map(a => `${a._id}:${a.audioFileId ?? ''}`).join(','), [answers]);
@@ -42,11 +46,22 @@ const VoiceTranscription = ({
42
46
  problemId,
43
47
  activeAttempt
44
48
  });
45
- const hasActiveTranscript = activeAttempt !== null && answers?.[activeAttempt - 1]?.audioFileId !== undefined;
49
+ const hasActiveAudio = activeAttempt !== null && answers?.[activeAttempt - 1]?.audioFileId !== undefined;
46
50
  const activeTranscript = activeAttempt !== null ? model.loader.getTranscript(activeAttempt) : null;
47
51
  const hasTranscriptText = !!activeTranscript && activeTranscript !== _constants.NO_AUDIO_BE_MESSAGE;
48
- const isActiveTranscriptLoading = isLoadingTranscripts && hasActiveTranscript && !activeTranscript;
49
- const activeTranscriptText = hasTranscriptText ? activeTranscript : t('voice.transcriptNotAvailable');
52
+ const isActiveTranscriptLoading = isLoadingTranscripts && hasActiveAudio && !activeTranscript;
53
+ const cachedTranslation = activeAttempt !== null ? translations[activeAttempt] : undefined;
54
+ const showTranslation = isTranslationActive && hasTranscriptText;
55
+ const isTranslationLoading = showTranslation && !cachedTranslation && isTranslating;
56
+ const displayText = showTranslation ? cachedTranslation ?? activeTranscript : hasTranscriptText ? activeTranscript : t('voice.transcriptNotAvailable');
57
+ (0, _react.useEffect)(() => {
58
+ if (showTranslation && activeAttempt !== null && !cachedTranslation && !isTranslating) {
59
+ model.translation.translate({
60
+ attemptNumber: activeAttempt,
61
+ targetLanguage: i18n.language
62
+ });
63
+ }
64
+ }, [showTranslation, activeAttempt, cachedTranslation, isTranslating, i18n.language, model]);
50
65
  const handlePlayPress = (0, _react.useCallback)(() => {
51
66
  if (activeAttempt) {
52
67
  model.translation.setActive(false);
@@ -64,7 +79,7 @@ const VoiceTranscription = ({
64
79
  style: styles.title,
65
80
  variant: "h7",
66
81
  children: t('voice.transcriptions')
67
- }), hasActiveTranscript && /*#__PURE__*/(0, _jsxRuntime.jsx)(_VoiceTranscriptionHeaderActions.VoiceTranscriptionHeaderActions, {
82
+ }), hasActiveAudio && /*#__PURE__*/(0, _jsxRuntime.jsx)(_VoiceTranscriptionHeaderActions.VoiceTranscriptionHeaderActions, {
68
83
  playerState: playerState,
69
84
  isTranslationActive: isTranslationActive,
70
85
  canTranslate: hasTranscriptText,
@@ -72,11 +87,11 @@ const VoiceTranscription = ({
72
87
  onTranslationPress: handleTranslationToggle
73
88
  })]
74
89
  }), isLargeVariant ? /*#__PURE__*/(0, _jsxRuntime.jsx)(_VoiceTranscriptContent.VoiceTranscriptContent, {
75
- text: activeTranscriptText,
76
- isLoading: isActiveTranscriptLoading
90
+ text: displayText,
91
+ isLoading: isActiveTranscriptLoading || isTranslationLoading
77
92
  }) : /*#__PURE__*/(0, _jsxRuntime.jsx)(_VoiceTranscriptionCollapsible.VoiceTranscriptionCollapsible, {
78
- text: activeTranscriptText,
79
- isLoading: isActiveTranscriptLoading,
93
+ text: displayText,
94
+ isLoading: isActiveTranscriptLoading || isTranslationLoading,
80
95
  dropdown: model.dropdown
81
96
  })]
82
97
  });
@@ -1 +1 @@
1
- {"version":3,"names":["_reactNativeUi","require","_effectorReact","_react","_interopRequireWildcard","_reactNative","_reactNativeReanimated","_interopRequireDefault","_constants","_helpers","_types","_i18n","_useVoiceTranscriptionEffects","_VoiceTranscriptContent","_VoiceTranscriptionCollapsible","_VoiceTranscriptionHeaderActions","_jsxRuntime","e","__esModule","default","_getRequireWildcardCache","WeakMap","r","t","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","hasOwnProperty","call","i","set","VoiceTranscription","style","model","answers","attemptOffset","attemptsCount","problemId","variant","VoiceTranscriptionVariant","SMALL","useText","playerState","isLoadingTranscripts","isTranslationActive","useUnit","$playerState","loader","loadAllTranscripts","pending","translation","$isActive","activeAttempt","getActiveAttempt","isLargeVariant","LARGE","answersKey","useMemo","map","_id","audioFileId","join","useVoiceTranscriptionEffects","hasActiveTranscript","undefined","activeTranscript","getTranscript","hasTranscriptText","NO_AUDIO_BE_MESSAGE","isActiveTranscriptLoading","activeTranscriptText","handlePlayPress","useCallback","setActive","togglePlayPause","handleTranslationToggle","toggle","jsxs","View","styles","container","largeContainer","children","header","jsx","Typography","title","VoiceTranscriptionHeaderActions","canTranslate","onPlayPress","onTranslationPress","VoiceTranscriptContent","text","isLoading","VoiceTranscriptionCollapsible","dropdown","exports","StyleSheet","create","position","top","left","width","maxHeight","minHeight","padding","boxShadow","borderRadius","backgroundColor","COLORS","NEUTRAL_1","overflow","height","flexDirection","justifyContent","alignItems","marginBottom","color","NEUTRAL_9","marginLeft"],"sourceRoot":"../../../../../../src","sources":["features/voice/playing/components/VoiceTranscription.tsx"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["_reactNativeUi","require","_effectorReact","_react","_interopRequireWildcard","_reactI18next","_reactNative","_reactNativeReanimated","_interopRequireDefault","_constants","_helpers","_types","_i18n","_useVoiceTranscriptionEffects","_VoiceTranscriptContent","_VoiceTranscriptionCollapsible","_VoiceTranscriptionHeaderActions","_jsxRuntime","e","__esModule","default","_getRequireWildcardCache","WeakMap","r","t","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","hasOwnProperty","call","i","set","VoiceTranscription","style","model","answers","attemptOffset","attemptsCount","problemId","variant","VoiceTranscriptionVariant","SMALL","useText","i18n","useTranslation","playerState","isLoadingTranscripts","isTranslationActive","translations","isTranslating","useUnit","$playerState","loader","loadAllTranscripts","pending","translation","$isActive","$translations","translate","activeAttempt","getActiveAttempt","isLargeVariant","LARGE","answersKey","useMemo","map","_id","audioFileId","join","useVoiceTranscriptionEffects","hasActiveAudio","undefined","activeTranscript","getTranscript","hasTranscriptText","NO_AUDIO_BE_MESSAGE","isActiveTranscriptLoading","cachedTranslation","showTranslation","isTranslationLoading","displayText","useEffect","attemptNumber","targetLanguage","language","handlePlayPress","useCallback","setActive","togglePlayPause","handleTranslationToggle","toggle","jsxs","View","styles","container","largeContainer","children","header","jsx","Typography","title","VoiceTranscriptionHeaderActions","canTranslate","onPlayPress","onTranslationPress","VoiceTranscriptContent","text","isLoading","VoiceTranscriptionCollapsible","dropdown","exports","StyleSheet","create","position","top","left","width","maxHeight","minHeight","padding","boxShadow","borderRadius","backgroundColor","COLORS","NEUTRAL_1","overflow","height","flexDirection","justifyContent","alignItems","marginBottom","color","NEUTRAL_9","marginLeft"],"sourceRoot":"../../../../../../src","sources":["features/voice/playing/components/VoiceTranscription.tsx"],"mappings":"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","ignoreList":[]}
@@ -18,16 +18,23 @@ class TranscriptionsDownloaderModel {
18
18
  for (let attempt = 0; attempt < _constants.TRANSCRIPT_MAX_RETRIES; attempt++) {
19
19
  const response = await this.api.getAudioFileTranscript(audioFileId);
20
20
  if (response.status === 'completed') {
21
- return response.text;
21
+ return {
22
+ text: response.text,
23
+ language: response.language
24
+ };
22
25
  }
23
26
  if (response.status === 'failed') {
24
- return _constants.NO_AUDIO_BE_MESSAGE;
27
+ return {
28
+ text: _constants.NO_AUDIO_BE_MESSAGE
29
+ };
25
30
  }
26
31
  if (attempt < _constants.TRANSCRIPT_MAX_RETRIES - 1) {
27
32
  await new Promise(resolve => setTimeout(resolve, _constants.TRANSCRIPT_RETRY_INTERVAL_MS));
28
33
  }
29
34
  }
30
- return _constants.NO_AUDIO_BE_MESSAGE;
35
+ return {
36
+ text: _constants.NO_AUDIO_BE_MESSAGE
37
+ };
31
38
  }
32
39
  loadAllTranscripts = (0, _effector.createEffect)(async () => {
33
40
  const attempts = this.collection.getAll();
@@ -39,9 +46,13 @@ class TranscriptionsDownloaderModel {
39
46
  transcriptLoading: true
40
47
  });
41
48
  try {
42
- const text = await this.fetchTranscriptWithRetry(item.audioFileId);
49
+ const {
50
+ text,
51
+ language
52
+ } = await this.fetchTranscriptWithRetry(item.audioFileId);
43
53
  this.collection.update(item.attemptNumber, {
44
54
  transcript: text,
55
+ transcriptLanguage: language,
45
56
  transcriptLoading: false,
46
57
  transcriptError: undefined
47
58
  });
@@ -1 +1 @@
1
- {"version":3,"names":["_effector","require","_constants","TranscriptionsDownloaderModel","setTranscriptsLoaded","createEvent","reset","$transcriptsLoaded","restore","constructor","collection","api","fetchTranscriptWithRetry","audioFileId","attempt","TRANSCRIPT_MAX_RETRIES","response","getAudioFileTranscript","status","text","NO_AUDIO_BE_MESSAGE","Promise","resolve","setTimeout","TRANSCRIPT_RETRY_INTERVAL_MS","loadAllTranscripts","createEffect","attempts","getAll","transcriptPromises","map","item","hasTranscript","attemptNumber","update","transcriptLoading","transcript","transcriptError","undefined","error","Error","message","all","getTranscript","get","isTranscriptLoading","exports"],"sourceRoot":"../../../../../../src","sources":["features/voice/playing/model/TranscriptionsDownloaderModel.ts"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["_effector","require","_constants","TranscriptionsDownloaderModel","setTranscriptsLoaded","createEvent","reset","$transcriptsLoaded","restore","constructor","collection","api","fetchTranscriptWithRetry","audioFileId","attempt","TRANSCRIPT_MAX_RETRIES","response","getAudioFileTranscript","status","text","language","NO_AUDIO_BE_MESSAGE","Promise","resolve","setTimeout","TRANSCRIPT_RETRY_INTERVAL_MS","loadAllTranscripts","createEffect","attempts","getAll","transcriptPromises","map","item","hasTranscript","attemptNumber","update","transcriptLoading","transcript","transcriptLanguage","transcriptError","undefined","error","Error","message","all","getTranscript","get","isTranscriptLoading","exports"],"sourceRoot":"../../../../../../src","sources":["features/voice/playing/model/TranscriptionsDownloaderModel.ts"],"mappings":"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","ignoreList":[]}
@@ -15,7 +15,6 @@ class VoicePlayerModel {
15
15
  collection = new _VoiceTranscriptionsCollection.VoiceTranscriptionsCollection();
16
16
  downloader = new _VoiceFileDownloaderModel.VoiceFileDownloaderModel();
17
17
  dropdown = new _VoiceTranscriptionModel.VoiceTranscriptionModel();
18
- translation = new _VoiceTranscriptionTranslationModel.VoiceTranscriptionTranslationModel();
19
18
  playerModel = new _PlayerModel.PlayerModel();
20
19
  currentPlayingAttempt = null;
21
20
  shouldPreventPlayback = false;
@@ -38,10 +37,12 @@ class VoicePlayerModel {
38
37
  this.currentPlayingAttempt = null;
39
38
  this.setCurrentAttempt(null);
40
39
  this.collection.clear();
40
+ this.translation.clearCache();
41
41
  };
42
42
  constructor(params) {
43
43
  this.api = params.api;
44
44
  this.loader = new _TranscriptionsDownloaderModel.TranscriptionsDownloaderModel(this.collection, params.api);
45
+ this.translation = new _VoiceTranscriptionTranslationModel.VoiceTranscriptionTranslationModel(this.collection, params.api);
45
46
  this.downloader.setApi(params.api);
46
47
  this.playerModel.playbackFinished.watch(() => {
47
48
  this.currentPlayingAttempt = null;
@@ -1 +1 @@
1
- {"version":3,"names":["_effector","require","_VoiceTranscriptionsCollection","_VoiceFileDownloaderModel","_VoiceTranscriptionModel","_VoiceTranscriptionTranslationModel","_PlayerModel","_TranscriptionsDownloaderModel","VoicePlayerModel","collection","VoiceTranscriptionsCollection","downloader","VoiceFileDownloaderModel","dropdown","VoiceTranscriptionModel","translation","VoiceTranscriptionTranslationModel","playerModel","PlayerModel","currentPlayingAttempt","shouldPreventPlayback","setCurrentAttempt","createEvent","reset","$currentAttempt","restore","$playerState","pauseAudio","pause","stopAudio","abortAllDownloads","stop","resetPlayer","releaseCollectionResources","clear","constructor","params","api","loader","TranscriptionsDownloaderModel","setApi","playbackFinished","watch","audios","initializeCollectionFromAudios","setupAudioMode","initializeWithAudios","answerAudio","setTranscriptsLoaded","console","warn","forEach","audio","index","attemptNumber","audioFileId","add","_id","hasDrawing","drawing","getAll","item","controller","abortDownload","audioUri","startsWith","URL","revokeObjectURL","e","audioLoading","update","undefined","audioDownloadPromise","handlePlayAttempt","createEffect","get","hasAudio","playAudioFx","setPlayerState","PlayerState","LOADING","collectionItem","downloadPromise","download","abort","result","uri","audioError","IDLE","error","Error","name","message","player","remove","playing","resume","play","isAudioLoading","getAllAttempts","reinitializePlayer","reinitialize","cleanup","release","togglePlayPause","attach","source","mapParams","playerState","effect","PLAYING","exports"],"sourceRoot":"../../../../../../src","sources":["features/voice/playing/model/VoicePlayer.model.ts"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["_effector","require","_VoiceTranscriptionsCollection","_VoiceFileDownloaderModel","_VoiceTranscriptionModel","_VoiceTranscriptionTranslationModel","_PlayerModel","_TranscriptionsDownloaderModel","VoicePlayerModel","collection","VoiceTranscriptionsCollection","downloader","VoiceFileDownloaderModel","dropdown","VoiceTranscriptionModel","playerModel","PlayerModel","currentPlayingAttempt","shouldPreventPlayback","setCurrentAttempt","createEvent","reset","$currentAttempt","restore","$playerState","pauseAudio","pause","stopAudio","abortAllDownloads","stop","resetPlayer","releaseCollectionResources","clear","translation","clearCache","constructor","params","api","loader","TranscriptionsDownloaderModel","VoiceTranscriptionTranslationModel","setApi","playbackFinished","watch","audios","initializeCollectionFromAudios","setupAudioMode","initializeWithAudios","answerAudio","setTranscriptsLoaded","console","warn","forEach","audio","index","attemptNumber","audioFileId","add","_id","hasDrawing","drawing","getAll","item","controller","abortDownload","audioUri","startsWith","URL","revokeObjectURL","e","audioLoading","update","undefined","audioDownloadPromise","handlePlayAttempt","createEffect","get","hasAudio","playAudioFx","setPlayerState","PlayerState","LOADING","collectionItem","downloadPromise","download","abort","result","uri","audioError","IDLE","error","Error","name","message","player","remove","playing","resume","play","isAudioLoading","getAllAttempts","reinitializePlayer","reinitialize","cleanup","release","togglePlayPause","attach","source","mapParams","playerState","effect","PLAYING","exports"],"sourceRoot":"../../../../../../src","sources":["features/voice/playing/model/VoicePlayer.model.ts"],"mappings":"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","ignoreList":[]}
@@ -8,8 +8,41 @@ var _effector = require("effector");
8
8
  class VoiceTranscriptionTranslationModel {
9
9
  toggle = (0, _effector.createEvent)();
10
10
  setActive = (0, _effector.createEvent)();
11
+ clearCache = (0, _effector.createEvent)();
11
12
  reset = (0, _effector.createEvent)();
12
13
  $isActive = (0, _effector.restore)(this.setActive, false).on(this.toggle, state => !state).reset(this.reset);
14
+ translate = (0, _effector.createEffect)(async ({
15
+ attemptNumber,
16
+ targetLanguage
17
+ }) => {
18
+ const item = this.collection.get(attemptNumber);
19
+ if (!item?.transcript) return null;
20
+ const response = await this.api.translateText({
21
+ text: [item.transcript],
22
+ targetLanguage,
23
+ sourceLanguage: item.transcriptLanguage
24
+ });
25
+ const text = response.data.translations[0]?.translatedText;
26
+ if (!text) return null;
27
+ return {
28
+ attemptNumber,
29
+ text
30
+ };
31
+ });
32
+ $translations = (0, _effector.createStore)({}).on(this.translate.doneData, (state, result) => {
33
+ if (!result) return state;
34
+ return {
35
+ ...state,
36
+ [result.attemptNumber]: result.text
37
+ };
38
+ }).reset(this.reset, this.clearCache);
39
+ constructor(collection, api) {
40
+ this.collection = collection;
41
+ this.api = api;
42
+ }
43
+ getTranslation(attemptNumber) {
44
+ return this.$translations.getState()[attemptNumber];
45
+ }
13
46
  }
14
47
  exports.VoiceTranscriptionTranslationModel = VoiceTranscriptionTranslationModel;
15
48
  //# sourceMappingURL=VoiceTranscriptionTranslation.model.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["_effector","require","VoiceTranscriptionTranslationModel","toggle","createEvent","setActive","reset","$isActive","restore","on","state","exports"],"sourceRoot":"../../../../../../src","sources":["features/voice/playing/model/VoiceTranscriptionTranslation.model.ts"],"mappings":";;;;;;AAAA,IAAAA,SAAA,GAAAC,OAAA;AAEO,MAAMC,kCAAkC,CAAC;EAC9BC,MAAM,GAAG,IAAAC,qBAAW,EAAC,CAAC;EACtBC,SAAS,GAAG,IAAAD,qBAAW,EAAU,CAAC;EAClCE,KAAK,GAAG,IAAAF,qBAAW,EAAC,CAAC;EAErBG,SAAS,GAAG,IAAAC,iBAAO,EAAC,IAAI,CAACH,SAAS,EAAE,KAAK,CAAC,CACvDI,EAAE,CAAC,IAAI,CAACN,MAAM,EAAGO,KAAK,IAAK,CAACA,KAAK,CAAC,CAClCJ,KAAK,CAAC,IAAI,CAACA,KAAK,CAAC;AACtB;AAACK,OAAA,CAAAT,kCAAA,GAAAA,kCAAA","ignoreList":[]}
1
+ {"version":3,"names":["_effector","require","VoiceTranscriptionTranslationModel","toggle","createEvent","setActive","clearCache","reset","$isActive","restore","on","state","translate","createEffect","attemptNumber","targetLanguage","item","collection","get","transcript","response","api","translateText","text","sourceLanguage","transcriptLanguage","data","translations","translatedText","$translations","createStore","doneData","result","constructor","getTranslation","getState","exports"],"sourceRoot":"../../../../../../src","sources":["features/voice/playing/model/VoiceTranscriptionTranslation.model.ts"],"mappings":";;;;;;AAAA,IAAAA,SAAA,GAAAC,OAAA;AAcO,MAAMC,kCAAkC,CAAC;EAI9BC,MAAM,GAAG,IAAAC,qBAAW,EAAC,CAAC;EACtBC,SAAS,GAAG,IAAAD,qBAAW,EAAU,CAAC;EAClCE,UAAU,GAAG,IAAAF,qBAAW,EAAC,CAAC;EAC1BG,KAAK,GAAG,IAAAH,qBAAW,EAAC,CAAC;EAErBI,SAAS,GAAG,IAAAC,iBAAO,EAAC,IAAI,CAACJ,SAAS,EAAE,KAAK,CAAC,CACvDK,EAAE,CAAC,IAAI,CAACP,MAAM,EAAGQ,KAAK,IAAK,CAACA,KAAK,CAAC,CAClCJ,KAAK,CAAC,IAAI,CAACA,KAAK,CAAC;EAEJK,SAAS,GAAG,IAAAC,sBAAY,EACtC,OAAO;IAAEC,aAAa;IAAEC;EAAe,CAAC,KAAK;IAC3C,MAAMC,IAAI,GAAG,IAAI,CAACC,UAAU,CAACC,GAAG,CAACJ,aAAa,CAAC;IAC/C,IAAI,CAACE,IAAI,EAAEG,UAAU,EAAE,OAAO,IAAI;IAElC,MAAMC,QAAQ,GAAG,MAAM,IAAI,CAACC,GAAG,CAACC,aAAa,CAAC;MAC5CC,IAAI,EAAE,CAACP,IAAI,CAACG,UAAU,CAAC;MACvBJ,cAAc;MACdS,cAAc,EAAER,IAAI,CAACS;IACvB,CAAC,CAAC;IAEF,MAAMF,IAAI,GAAGH,QAAQ,CAACM,IAAI,CAACC,YAAY,CAAC,CAAC,CAAC,EAAEC,cAAc;IAC1D,IAAI,CAACL,IAAI,EAAE,OAAO,IAAI;IAEtB,OAAO;MAAET,aAAa;MAAES;IAAK,CAAC;EAChC,CACF,CAAC;EAEeM,aAAa,GAAG,IAAAC,qBAAW,EAAyB,CAAC,CAAC,CAAC,CACpEpB,EAAE,CAAC,IAAI,CAACE,SAAS,CAACmB,QAAQ,EAAE,CAACpB,KAAK,EAAEqB,MAAM,KAAK;IAC9C,IAAI,CAACA,MAAM,EAAE,OAAOrB,KAAK;IACzB,OAAO;MAAE,GAAGA,KAAK;MAAE,CAACqB,MAAM,CAAClB,aAAa,GAAGkB,MAAM,CAACT;IAAK,CAAC;EAC1D,CAAC,CAAC,CACDhB,KAAK,CAAC,IAAI,CAACA,KAAK,EAAE,IAAI,CAACD,UAAU,CAAC;EAErC2B,WAAWA,CAAChB,UAAyC,EAAEI,GAAmB,EAAE;IAC1E,IAAI,CAACJ,UAAU,GAAGA,UAAU;IAC5B,IAAI,CAACI,GAAG,GAAGA,GAAG;EAChB;EAEOa,cAAcA,CAACpB,aAAqB,EAAsB;IAC/D,OAAO,IAAI,CAACe,aAAa,CAACM,QAAQ,CAAC,CAAC,CAACrB,aAAa,CAAC;EACrD;AACF;AAACsB,OAAA,CAAAlC,kCAAA,GAAAA,kCAAA","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"names":["RecordButtonVariant","exports","VoiceTranscriptionVariant"],"sourceRoot":"../../../../src","sources":["features/voice/types.ts"],"mappings":";;;;;;IAsFYA,mBAAmB,GAAAC,OAAA,CAAAD,mBAAA,0BAAnBA,mBAAmB;EAAnBA,mBAAmB;EAAnBA,mBAAmB;EAAA,OAAnBA,mBAAmB;AAAA;AAAA,IAKnBE,yBAAyB,GAAAD,OAAA,CAAAC,yBAAA,0BAAzBA,yBAAyB;EAAzBA,yBAAyB;EAAzBA,yBAAyB;EAAA,OAAzBA,yBAAyB;AAAA","ignoreList":[]}
1
+ {"version":3,"names":["RecordButtonVariant","exports","VoiceTranscriptionVariant"],"sourceRoot":"../../../../src","sources":["features/voice/types.ts"],"mappings":";;;;;;IAwFYA,mBAAmB,GAAAC,OAAA,CAAAD,mBAAA,0BAAnBA,mBAAmB;EAAnBA,mBAAmB;EAAnBA,mBAAmB;EAAA,OAAnBA,mBAAmB;AAAA;AAAA,IAKnBE,yBAAyB,GAAAD,OAAA,CAAAC,yBAAA,0BAAzBA,yBAAyB;EAAzBA,yBAAyB;EAAzBA,yBAAyB;EAAA,OAAzBA,yBAAyB;AAAA","ignoreList":[]}
@@ -2,7 +2,8 @@
2
2
 
3
3
  import { Typography, COLORS } from '@magmamath/react-native-ui';
4
4
  import { useUnit } from 'effector-react';
5
- import React, { useCallback, useMemo } from 'react';
5
+ import React, { useCallback, useEffect, useMemo } from 'react';
6
+ import { useTranslation } from 'react-i18next';
6
7
  import { StyleSheet, View } from 'react-native';
7
8
  import Animated from 'react-native-reanimated';
8
9
  import { NO_AUDIO_BE_MESSAGE } from "../../constants.js";
@@ -24,7 +25,10 @@ export const VoiceTranscription = ({
24
25
  variant = VoiceTranscriptionVariant.SMALL
25
26
  }) => {
26
27
  const t = useText();
27
- const [playerState, isLoadingTranscripts, isTranslationActive] = useUnit([model.$playerState, model.loader.loadAllTranscripts.pending, model.translation.$isActive]);
28
+ const {
29
+ i18n
30
+ } = useTranslation();
31
+ const [playerState, isLoadingTranscripts, isTranslationActive, translations, isTranslating] = useUnit([model.$playerState, model.loader.loadAllTranscripts.pending, model.translation.$isActive, model.translation.$translations, model.translation.translate.pending]);
28
32
  const activeAttempt = getActiveAttempt(attemptOffset, attemptsCount);
29
33
  const isLargeVariant = variant === VoiceTranscriptionVariant.LARGE;
30
34
  const answersKey = useMemo(() => answers.map(a => `${a._id}:${a.audioFileId ?? ''}`).join(','), [answers]);
@@ -35,11 +39,22 @@ export const VoiceTranscription = ({
35
39
  problemId,
36
40
  activeAttempt
37
41
  });
38
- const hasActiveTranscript = activeAttempt !== null && answers?.[activeAttempt - 1]?.audioFileId !== undefined;
42
+ const hasActiveAudio = activeAttempt !== null && answers?.[activeAttempt - 1]?.audioFileId !== undefined;
39
43
  const activeTranscript = activeAttempt !== null ? model.loader.getTranscript(activeAttempt) : null;
40
44
  const hasTranscriptText = !!activeTranscript && activeTranscript !== NO_AUDIO_BE_MESSAGE;
41
- const isActiveTranscriptLoading = isLoadingTranscripts && hasActiveTranscript && !activeTranscript;
42
- const activeTranscriptText = hasTranscriptText ? activeTranscript : t('voice.transcriptNotAvailable');
45
+ const isActiveTranscriptLoading = isLoadingTranscripts && hasActiveAudio && !activeTranscript;
46
+ const cachedTranslation = activeAttempt !== null ? translations[activeAttempt] : undefined;
47
+ const showTranslation = isTranslationActive && hasTranscriptText;
48
+ const isTranslationLoading = showTranslation && !cachedTranslation && isTranslating;
49
+ const displayText = showTranslation ? cachedTranslation ?? activeTranscript : hasTranscriptText ? activeTranscript : t('voice.transcriptNotAvailable');
50
+ useEffect(() => {
51
+ if (showTranslation && activeAttempt !== null && !cachedTranslation && !isTranslating) {
52
+ model.translation.translate({
53
+ attemptNumber: activeAttempt,
54
+ targetLanguage: i18n.language
55
+ });
56
+ }
57
+ }, [showTranslation, activeAttempt, cachedTranslation, isTranslating, i18n.language, model]);
43
58
  const handlePlayPress = useCallback(() => {
44
59
  if (activeAttempt) {
45
60
  model.translation.setActive(false);
@@ -57,7 +72,7 @@ export const VoiceTranscription = ({
57
72
  style: styles.title,
58
73
  variant: "h7",
59
74
  children: t('voice.transcriptions')
60
- }), hasActiveTranscript && /*#__PURE__*/_jsx(VoiceTranscriptionHeaderActions, {
75
+ }), hasActiveAudio && /*#__PURE__*/_jsx(VoiceTranscriptionHeaderActions, {
61
76
  playerState: playerState,
62
77
  isTranslationActive: isTranslationActive,
63
78
  canTranslate: hasTranscriptText,
@@ -65,11 +80,11 @@ export const VoiceTranscription = ({
65
80
  onTranslationPress: handleTranslationToggle
66
81
  })]
67
82
  }), isLargeVariant ? /*#__PURE__*/_jsx(VoiceTranscriptContent, {
68
- text: activeTranscriptText,
69
- isLoading: isActiveTranscriptLoading
83
+ text: displayText,
84
+ isLoading: isActiveTranscriptLoading || isTranslationLoading
70
85
  }) : /*#__PURE__*/_jsx(VoiceTranscriptionCollapsible, {
71
- text: activeTranscriptText,
72
- isLoading: isActiveTranscriptLoading,
86
+ text: displayText,
87
+ isLoading: isActiveTranscriptLoading || isTranslationLoading,
73
88
  dropdown: model.dropdown
74
89
  })]
75
90
  });
@@ -1 +1 @@
1
- {"version":3,"names":["Typography","COLORS","useUnit","React","useCallback","useMemo","StyleSheet","View","Animated","NO_AUDIO_BE_MESSAGE","getActiveAttempt","VoiceTranscriptionVariant","useText","useVoiceTranscriptionEffects","VoiceTranscriptContent","VoiceTranscriptionCollapsible","VoiceTranscriptionHeaderActions","jsx","_jsx","jsxs","_jsxs","VoiceTranscription","style","model","answers","attemptOffset","attemptsCount","problemId","variant","SMALL","t","playerState","isLoadingTranscripts","isTranslationActive","$playerState","loader","loadAllTranscripts","pending","translation","$isActive","activeAttempt","isLargeVariant","LARGE","answersKey","map","a","_id","audioFileId","join","hasActiveTranscript","undefined","activeTranscript","getTranscript","hasTranscriptText","isActiveTranscriptLoading","activeTranscriptText","handlePlayPress","setActive","togglePlayPause","handleTranslationToggle","toggle","styles","container","largeContainer","children","header","title","canTranslate","onPlayPress","onTranslationPress","text","isLoading","dropdown","create","position","top","left","width","maxHeight","minHeight","padding","boxShadow","borderRadius","backgroundColor","NEUTRAL_1","overflow","height","flexDirection","justifyContent","alignItems","marginBottom","color","NEUTRAL_9","marginLeft"],"sourceRoot":"../../../../../../src","sources":["features/voice/playing/components/VoiceTranscription.tsx"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["Typography","COLORS","useUnit","React","useCallback","useEffect","useMemo","useTranslation","StyleSheet","View","Animated","NO_AUDIO_BE_MESSAGE","getActiveAttempt","VoiceTranscriptionVariant","useText","useVoiceTranscriptionEffects","VoiceTranscriptContent","VoiceTranscriptionCollapsible","VoiceTranscriptionHeaderActions","jsx","_jsx","jsxs","_jsxs","VoiceTranscription","style","model","answers","attemptOffset","attemptsCount","problemId","variant","SMALL","t","i18n","playerState","isLoadingTranscripts","isTranslationActive","translations","isTranslating","$playerState","loader","loadAllTranscripts","pending","translation","$isActive","$translations","translate","activeAttempt","isLargeVariant","LARGE","answersKey","map","a","_id","audioFileId","join","hasActiveAudio","undefined","activeTranscript","getTranscript","hasTranscriptText","isActiveTranscriptLoading","cachedTranslation","showTranslation","isTranslationLoading","displayText","attemptNumber","targetLanguage","language","handlePlayPress","setActive","togglePlayPause","handleTranslationToggle","toggle","styles","container","largeContainer","children","header","title","canTranslate","onPlayPress","onTranslationPress","text","isLoading","dropdown","create","position","top","left","width","maxHeight","minHeight","padding","boxShadow","borderRadius","backgroundColor","NEUTRAL_1","overflow","height","flexDirection","justifyContent","alignItems","marginBottom","color","NEUTRAL_9","marginLeft"],"sourceRoot":"../../../../../../src","sources":["features/voice/playing/components/VoiceTranscription.tsx"],"mappings":"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","ignoreList":[]}
@@ -14,16 +14,23 @@ export class TranscriptionsDownloaderModel {
14
14
  for (let attempt = 0; attempt < TRANSCRIPT_MAX_RETRIES; attempt++) {
15
15
  const response = await this.api.getAudioFileTranscript(audioFileId);
16
16
  if (response.status === 'completed') {
17
- return response.text;
17
+ return {
18
+ text: response.text,
19
+ language: response.language
20
+ };
18
21
  }
19
22
  if (response.status === 'failed') {
20
- return NO_AUDIO_BE_MESSAGE;
23
+ return {
24
+ text: NO_AUDIO_BE_MESSAGE
25
+ };
21
26
  }
22
27
  if (attempt < TRANSCRIPT_MAX_RETRIES - 1) {
23
28
  await new Promise(resolve => setTimeout(resolve, TRANSCRIPT_RETRY_INTERVAL_MS));
24
29
  }
25
30
  }
26
- return NO_AUDIO_BE_MESSAGE;
31
+ return {
32
+ text: NO_AUDIO_BE_MESSAGE
33
+ };
27
34
  }
28
35
  loadAllTranscripts = createEffect(async () => {
29
36
  const attempts = this.collection.getAll();
@@ -35,9 +42,13 @@ export class TranscriptionsDownloaderModel {
35
42
  transcriptLoading: true
36
43
  });
37
44
  try {
38
- const text = await this.fetchTranscriptWithRetry(item.audioFileId);
45
+ const {
46
+ text,
47
+ language
48
+ } = await this.fetchTranscriptWithRetry(item.audioFileId);
39
49
  this.collection.update(item.attemptNumber, {
40
50
  transcript: text,
51
+ transcriptLanguage: language,
41
52
  transcriptLoading: false,
42
53
  transcriptError: undefined
43
54
  });
@@ -1 +1 @@
1
- {"version":3,"names":["createEffect","createEvent","restore","NO_AUDIO_BE_MESSAGE","TRANSCRIPT_MAX_RETRIES","TRANSCRIPT_RETRY_INTERVAL_MS","TranscriptionsDownloaderModel","setTranscriptsLoaded","reset","$transcriptsLoaded","constructor","collection","api","fetchTranscriptWithRetry","audioFileId","attempt","response","getAudioFileTranscript","status","text","Promise","resolve","setTimeout","loadAllTranscripts","attempts","getAll","transcriptPromises","map","item","hasTranscript","attemptNumber","update","transcriptLoading","transcript","transcriptError","undefined","error","Error","message","all","getTranscript","get","isTranscriptLoading"],"sourceRoot":"../../../../../../src","sources":["features/voice/playing/model/TranscriptionsDownloaderModel.ts"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["createEffect","createEvent","restore","NO_AUDIO_BE_MESSAGE","TRANSCRIPT_MAX_RETRIES","TRANSCRIPT_RETRY_INTERVAL_MS","TranscriptionsDownloaderModel","setTranscriptsLoaded","reset","$transcriptsLoaded","constructor","collection","api","fetchTranscriptWithRetry","audioFileId","attempt","response","getAudioFileTranscript","status","text","language","Promise","resolve","setTimeout","loadAllTranscripts","attempts","getAll","transcriptPromises","map","item","hasTranscript","attemptNumber","update","transcriptLoading","transcript","transcriptLanguage","transcriptError","undefined","error","Error","message","all","getTranscript","get","isTranscriptLoading"],"sourceRoot":"../../../../../../src","sources":["features/voice/playing/model/TranscriptionsDownloaderModel.ts"],"mappings":"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","ignoreList":[]}
@@ -11,7 +11,6 @@ export class VoicePlayerModel {
11
11
  collection = new VoiceTranscriptionsCollection();
12
12
  downloader = new VoiceFileDownloaderModel();
13
13
  dropdown = new VoiceTranscriptionModel();
14
- translation = new VoiceTranscriptionTranslationModel();
15
14
  playerModel = new PlayerModel();
16
15
  currentPlayingAttempt = null;
17
16
  shouldPreventPlayback = false;
@@ -34,10 +33,12 @@ export class VoicePlayerModel {
34
33
  this.currentPlayingAttempt = null;
35
34
  this.setCurrentAttempt(null);
36
35
  this.collection.clear();
36
+ this.translation.clearCache();
37
37
  };
38
38
  constructor(params) {
39
39
  this.api = params.api;
40
40
  this.loader = new TranscriptionsDownloaderModel(this.collection, params.api);
41
+ this.translation = new VoiceTranscriptionTranslationModel(this.collection, params.api);
41
42
  this.downloader.setApi(params.api);
42
43
  this.playerModel.playbackFinished.watch(() => {
43
44
  this.currentPlayingAttempt = null;
@@ -1 +1 @@
1
- {"version":3,"names":["attach","createEffect","createEvent","restore","VoiceTranscriptionsCollection","VoiceFileDownloaderModel","VoiceTranscriptionModel","VoiceTranscriptionTranslationModel","PlayerModel","PlayerState","TranscriptionsDownloaderModel","VoicePlayerModel","collection","downloader","dropdown","translation","playerModel","currentPlayingAttempt","shouldPreventPlayback","setCurrentAttempt","reset","$currentAttempt","$playerState","pauseAudio","pause","stopAudio","abortAllDownloads","stop","resetPlayer","releaseCollectionResources","clear","constructor","params","api","loader","setApi","playbackFinished","watch","audios","initializeCollectionFromAudios","setupAudioMode","initializeWithAudios","answerAudio","setTranscriptsLoaded","console","warn","forEach","audio","index","attemptNumber","audioFileId","add","_id","hasDrawing","drawing","getAll","item","controller","abortDownload","audioUri","startsWith","URL","revokeObjectURL","e","audioLoading","update","undefined","audioDownloadPromise","handlePlayAttempt","get","hasAudio","playAudioFx","setPlayerState","LOADING","collectionItem","downloadPromise","download","abort","result","uri","audioError","IDLE","error","Error","name","message","player","remove","playing","resume","play","isAudioLoading","getAllAttempts","reinitializePlayer","reinitialize","cleanup","release","togglePlayPause","source","mapParams","playerState","effect","PLAYING"],"sourceRoot":"../../../../../../src","sources":["features/voice/playing/model/VoicePlayer.model.ts"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["attach","createEffect","createEvent","restore","VoiceTranscriptionsCollection","VoiceFileDownloaderModel","VoiceTranscriptionModel","VoiceTranscriptionTranslationModel","PlayerModel","PlayerState","TranscriptionsDownloaderModel","VoicePlayerModel","collection","downloader","dropdown","playerModel","currentPlayingAttempt","shouldPreventPlayback","setCurrentAttempt","reset","$currentAttempt","$playerState","pauseAudio","pause","stopAudio","abortAllDownloads","stop","resetPlayer","releaseCollectionResources","clear","translation","clearCache","constructor","params","api","loader","setApi","playbackFinished","watch","audios","initializeCollectionFromAudios","setupAudioMode","initializeWithAudios","answerAudio","setTranscriptsLoaded","console","warn","forEach","audio","index","attemptNumber","audioFileId","add","_id","hasDrawing","drawing","getAll","item","controller","abortDownload","audioUri","startsWith","URL","revokeObjectURL","e","audioLoading","update","undefined","audioDownloadPromise","handlePlayAttempt","get","hasAudio","playAudioFx","setPlayerState","LOADING","collectionItem","downloadPromise","download","abort","result","uri","audioError","IDLE","error","Error","name","message","player","remove","playing","resume","play","isAudioLoading","getAllAttempts","reinitializePlayer","reinitialize","cleanup","release","togglePlayPause","source","mapParams","playerState","effect","PLAYING"],"sourceRoot":"../../../../../../src","sources":["features/voice/playing/model/VoicePlayer.model.ts"],"mappings":";;AAAA,SAASA,MAAM,EAAEC,YAAY,EAAEC,WAAW,EAAEC,OAAO,QAAQ,UAAU;AACrE,SAASC,6BAA6B,QAAQ,oCAAiC;AAC/E,SAASC,wBAAwB,QAAQ,gCAA6B;AACtE,SAASC,uBAAuB,QAAQ,+BAA4B;AACpE,SAASC,kCAAkC,QAAQ,0CAAuC;AAE1F,SAASC,WAAW,EAAEC,WAAW,QAAQ,mBAAgB;AACzD,SAASC,6BAA6B,QAAQ,oCAAiC;AAW/E,OAAO,MAAMC,gBAAgB,CAAC;EACZC,UAAU,GAAG,IAAIR,6BAA6B,CAAC,CAAC;EAChDS,UAAU,GAAG,IAAIR,wBAAwB,CAAC,CAAC;EAC3CS,QAAQ,GAAG,IAAIR,uBAAuB,CAAC,CAAC;EAExCS,WAAW,GAAG,IAAIP,WAAW,CAAC,CAAC;EAGvCQ,qBAAqB,GAAkB,IAAI;EAC3CC,qBAAqB,GAAG,KAAK;EAErBC,iBAAiB,GAAGhB,WAAW,CAAgB,CAAC;EAChDiB,KAAK,GAAGjB,WAAW,CAAC,CAAC;EAErBkB,eAAe,GAAGjB,OAAO,CAAC,IAAI,CAACe,iBAAiB,EAAE,IAAI,CAAC,CAACC,KAAK,CAAC,IAAI,CAACA,KAAK,CAAC;EACzEE,YAAY,GAAG,IAAI,CAACN,WAAW,CAACM,YAAY;EAE5CC,UAAU,GAAG,IAAI,CAACP,WAAW,CAACQ,KAAK;EAEnCC,SAAS,GAAGA,CAAA,KAAM;IAChC,IAAI,CAACP,qBAAqB,GAAG,IAAI;IACjC,IAAI,CAACQ,iBAAiB,CAAC,CAAC;IACxB,IAAI,CAACV,WAAW,CAACW,IAAI,CAAC,CAAC;IACvB,IAAI,CAACV,qBAAqB,GAAG,IAAI;IACjC,IAAI,CAACE,iBAAiB,CAAC,IAAI,CAAC;EAC9B,CAAC;EAEeS,WAAW,GAAGA,CAAA,KAAM;IAClC,IAAI,CAACV,qBAAqB,GAAG,IAAI;IACjC,IAAI,CAACW,0BAA0B,CAAC,CAAC;IACjC,IAAI,CAACb,WAAW,CAACW,IAAI,CAAC,CAAC;IACvB,IAAI,CAACV,qBAAqB,GAAG,IAAI;IACjC,IAAI,CAACE,iBAAiB,CAAC,IAAI,CAAC;IAC5B,IAAI,CAACN,UAAU,CAACiB,KAAK,CAAC,CAAC;IACvB,IAAI,CAACC,WAAW,CAACC,UAAU,CAAC,CAAC;EAC/B,CAAC;EAEDC,WAAWA,CAACC,MAA4C,EAAE;IACxD,IAAI,CAACC,GAAG,GAAGD,MAAM,CAACC,GAAG;IACrB,IAAI,CAACC,MAAM,GAAG,IAAIzB,6BAA6B,CAAC,IAAI,CAACE,UAAU,EAAEqB,MAAM,CAACC,GAAG,CAAC;IAC5E,IAAI,CAACJ,WAAW,GAAG,IAAIvB,kCAAkC,CAAC,IAAI,CAACK,UAAU,EAAEqB,MAAM,CAACC,GAAG,CAAC;IACtF,IAAI,CAACrB,UAAU,CAACuB,MAAM,CAACH,MAAM,CAACC,GAAG,CAAC;IAElC,IAAI,CAACnB,WAAW,CAACsB,gBAAgB,CAACC,KAAK,CAAC,MAAM;MAC5C,IAAI,CAACtB,qBAAqB,GAAG,IAAI;MACjC,IAAI,CAACE,iBAAiB,CAAC,IAAI,CAAC;IAC9B,CAAC,CAAC;IAEF,IAAIe,MAAM,CAACM,MAAM,EAAE;MACjB,IAAI,CAACC,8BAA8B,CAACP,MAAM,CAACM,MAAM,CAAC;IACpD;IAEA,IAAI,CAACxB,WAAW,CAAC0B,cAAc,CAAC,CAAC;EACnC;EAEOC,oBAAoBA,CAACC,WAA0B,EAAE;IACtD,IAAI,CAACR,MAAM,CAACS,oBAAoB,CAAC,KAAK,CAAC;IACvC,IAAI,CAAChC,UAAU,CAACiB,KAAK,CAAC,CAAC;IACvB,IAAI,CAACW,8BAA8B,CAACG,WAAW,CAAC;EAClD;EAEQH,8BAA8BA,CAACD,MAAqB,EAAE;IAC5D,IAAI,CAACA,MAAM,EAAE;MACXM,OAAO,CAACC,IAAI,CAAC,0CAA0C,CAAC;MACxD;IACF;IACAP,MAAM,CAACQ,OAAO,CAAC,CAACC,KAAK,EAAEC,KAAK,KAAK;MAC/B,MAAMC,aAAa,GAAGD,KAAK,GAAG,CAAC;MAC/B,IAAI,CAACD,KAAK,CAACG,WAAW,EAAE;QACtBN,OAAO,CAACC,IAAI,CAAC,oDAAoD,EAAEE,KAAK,CAAC;QACzE;MACF;MACA,IAAI,CAACpC,UAAU,CAACwC,GAAG,CAACF,aAAa,EAAE;QACjCA,aAAa;QACbC,WAAW,EAAEH,KAAK,CAACG,WAAW;QAC9BE,GAAG,EAAEL,KAAK,CAACK,GAAG;QACdC,UAAU,EAAE,CAAC,CAACN,KAAK,CAACO;MACtB,CAAC,CAAC;IACJ,CAAC,CAAC;EACJ;EAEQ3B,0BAA0BA,CAAA,EAAG;IACnC,IAAI,CAAChB,UAAU,CAAC4C,MAAM,CAAC,CAAC,CAACT,OAAO,CAAEU,IAAI,IAAK;MACzC,IAAIA,IAAI,CAACC,UAAU,EAAE;QACnB,IAAI,CAAC7C,UAAU,CAAC8C,aAAa,CAACF,IAAI,CAACC,UAAU,CAAC;MAChD;MACA,IAAID,IAAI,CAACG,QAAQ,EAAEC,UAAU,CAAC,OAAO,CAAC,EAAE;QACtC,IAAI;UACFC,GAAG,CAACC,eAAe,CAACN,IAAI,CAACG,QAAQ,CAAC;QACpC,CAAC,CAAC,OAAOI,CAAC,EAAE,CAAC;MACf;IACF,CAAC,CAAC;EACJ;EAEQvC,iBAAiBA,CAAA,EAAG;IAC1B,IAAI,CAACb,UAAU,CAAC4C,MAAM,CAAC,CAAC,CAACT,OAAO,CAAEU,IAAI,IAAK;MACzC,IAAIA,IAAI,CAACC,UAAU,IAAID,IAAI,CAACQ,YAAY,EAAE;QACxC,IAAI,CAACpD,UAAU,CAAC8C,aAAa,CAACF,IAAI,CAACC,UAAU,CAAC;QAC9C,IAAI,CAAC9C,UAAU,CAACsD,MAAM,CAACT,IAAI,CAACP,aAAa,EAAE;UACzCe,YAAY,EAAE,KAAK;UACnBP,UAAU,EAAES,SAAS;UACrBC,oBAAoB,EAAED;QACxB,CAAC,CAAC;MACJ;IACF,CAAC,CAAC;EACJ;EAEiBE,iBAAiB,GAAGpE,YAAY,CAAC,MAAOiD,aAAqB,IAAK;IACjF,IAAI,CAACjC,qBAAqB,GAAG,KAAK;IAClC,MAAMwC,IAAI,GAAG,IAAI,CAAC7C,UAAU,CAAC0D,GAAG,CAACpB,aAAa,CAAC;IAC/C,IAAI,CAACO,IAAI,EAAE;IAEX,IAAI,IAAI,CAACzC,qBAAqB,KAAK,IAAI,IAAI,IAAI,CAACA,qBAAqB,KAAKkC,aAAa,EAAE;MACvF,IAAI,CAACzB,iBAAiB,CAAC,CAAC;IAC1B;IAEA,IAAI,IAAI,CAACb,UAAU,CAAC2D,QAAQ,CAACrB,aAAa,CAAC,EAAE;MAC3C,IAAI,CAACsB,WAAW,CAACtB,aAAa,CAAC;MAC/B;IACF;IAEA,IAAI;MACF,IAAI,CAACnC,WAAW,CAAC0D,cAAc,CAAChE,WAAW,CAACiE,OAAO,CAAC;MACpD,MAAM;QAAEC,cAAc;QAAEC;MAAgB,CAAC,GAAG,MAAM,IAAI,CAAC/D,UAAU,CAACgE,QAAQ,CAAC;QACzE1B,WAAW,EAAEM,IAAI,CAACN,WAAW;QAC7BD;MACF,CAAC,CAAC;MAEF,IAAI,IAAI,CAACjC,qBAAqB,EAAE;QAC9B0D,cAAc,CAACjB,UAAU,EAAEoB,KAAK,CAAC,CAAC;QAClC;MACF;MAEA,IAAI,CAAClE,UAAU,CAACsD,MAAM,CAAChB,aAAa,EAAEyB,cAAc,CAAC;MAErD,MAAMI,MAAM,GAAG,MAAMH,eAAe;MAEpC,IAAI,IAAI,CAAC3D,qBAAqB,EAAE;QAC9B,IAAI8D,MAAM,CAACC,GAAG,EAAEnB,UAAU,CAAC,OAAO,CAAC,EAAE;UACnCC,GAAG,CAACC,eAAe,CAACgB,MAAM,CAACC,GAAG,CAAC;QACjC;QACA;MACF;MAEA,IAAI,CAACpE,UAAU,CAACsD,MAAM,CAAChB,aAAa,EAAE;QACpCU,QAAQ,EAAEmB,MAAM,CAACC,GAAG;QACpBf,YAAY,EAAE,KAAK;QACnBgB,UAAU,EAAEd,SAAS;QACrBT,UAAU,EAAES,SAAS;QACrBC,oBAAoB,EAAED;MACxB,CAAC,CAAC;MAEF,IAAI,CAACpD,WAAW,CAAC0D,cAAc,CAAChE,WAAW,CAACyE,IAAI,CAAC;MACjD,IAAI,CAACV,WAAW,CAACtB,aAAa,CAAC;IACjC,CAAC,CAAC,OAAOiC,KAAK,EAAE;MACdtC,OAAO,CAACsC,KAAK,CAAC,uBAAuB,EAAEA,KAAK,CAAC;MAC7C,IAAIA,KAAK,YAAYC,KAAK,IAAID,KAAK,CAACE,IAAI,KAAK,YAAY,EAAE;QACzD,IAAI,CAACtE,WAAW,CAAC0D,cAAc,CAAChE,WAAW,CAACyE,IAAI,CAAC;QACjD;MACF;MAEA,IAAI,CAACtE,UAAU,CAACsD,MAAM,CAAChB,aAAa,EAAE;QACpCe,YAAY,EAAE,KAAK;QACnBgB,UAAU,EAAEE,KAAK,YAAYC,KAAK,GAAGD,KAAK,CAACG,OAAO,GAAG,0BAA0B;QAC/E5B,UAAU,EAAES,SAAS;QACrBC,oBAAoB,EAAED;MACxB,CAAC,CAAC;IACJ;EACF,CAAC,CAAC;EAEMK,WAAW,GAAGvE,YAAY,CAAC,MAAOiD,aAAqB,IAAK;IAClE,IAAI,IAAI,CAACjC,qBAAqB,EAAE;IAEhC,MAAMwC,IAAI,GAAG,IAAI,CAAC7C,UAAU,CAAC0D,GAAG,CAACpB,aAAa,CAAC;IAC/C,IAAI,CAACO,IAAI,EAAEG,QAAQ,EAAE;MACnBf,OAAO,CAACC,IAAI,CAAC,qCAAqC,EAAEI,aAAa,CAAC;MAClE;IACF;IAEA,IAAI;MACF,IAAI,IAAI,CAAClC,qBAAqB,KAAK,IAAI,IAAI,IAAI,CAACA,qBAAqB,KAAKkC,aAAa,EAAE;QACvF,IAAI,CAACnC,WAAW,CAACwE,MAAM,EAAEC,MAAM,CAAC,CAAC;MACnC;MAEA,IAAI,IAAI,CAACxE,qBAAqB,KAAKkC,aAAa,IAAI,IAAI,CAACnC,WAAW,CAACwE,MAAM,EAAEE,OAAO,EAAE;QACpF,IAAI,CAAC1E,WAAW,CAACQ,KAAK,CAAC,CAAC;QACxB;MACF;MAEA,IAAI,IAAI,CAACP,qBAAqB,KAAKkC,aAAa,IAAI,CAAC,IAAI,CAACnC,WAAW,CAACwE,MAAM,EAAEE,OAAO,EAAE;QACrF,IAAI,CAAC1E,WAAW,CAAC2E,MAAM,CAAC,CAAC;QACzB;MACF;MAEA,IAAI,CAAC1E,qBAAqB,GAAGkC,aAAa;MAC1C,IAAI,CAAChC,iBAAiB,CAACgC,aAAa,CAAC;MACrC,MAAM,IAAI,CAACnC,WAAW,CAAC4E,IAAI,CAAClC,IAAI,CAACG,QAAQ,CAAC;IAC5C,CAAC,CAAC,OAAOuB,KAAK,EAAE;MACdtC,OAAO,CAACsC,KAAK,CAAC,sBAAsB,EAAEA,KAAK,CAAC;MAC5C,IAAI,CAACpE,WAAW,CAAC0D,cAAc,CAAChE,WAAW,CAACyE,IAAI,CAAC;MAEjD,IAAI,CAACtE,UAAU,CAACsD,MAAM,CAAChB,aAAa,EAAE;QACpC+B,UAAU,EAAEE,KAAK,YAAYC,KAAK,GAAGD,KAAK,CAACG,OAAO,GAAG;MACvD,CAAC,CAAC;IACJ;EACF,CAAC,CAAC;EAEKM,cAAcA,CAAC1C,aAAqB,EAAW;IACpD,OAAO,IAAI,CAACtC,UAAU,CAAC0D,GAAG,CAACpB,aAAa,CAAC,EAAEe,YAAY,IAAI,KAAK;EAClE;EAEO4B,cAAcA,CAAA,EAA6B;IAChD,OAAO,IAAI,CAACjF,UAAU,CAAC4C,MAAM,CAAC,CAAC;EACjC;EAEOsC,kBAAkBA,CAAA,EAAG;IAC1B,IAAI,CAAC/E,WAAW,CAACgF,YAAY,CAAC,CAAC;EACjC;EAEOC,OAAOA,CAAA,EAAG;IACf,IAAI,CAACpE,0BAA0B,CAAC,CAAC;IACjC,IAAI,CAAChB,UAAU,CAACiB,KAAK,CAAC,CAAC;IACvB,IAAI,CAACb,qBAAqB,GAAG,IAAI;IACjC,IAAI,CAACG,KAAK,CAAC,CAAC;IACZ,IAAI,CAACgB,MAAM,CAAChB,KAAK,CAAC,CAAC;IACnB,IAAI,CAACL,QAAQ,CAACK,KAAK,CAAC,CAAC;IACrB,IAAI,CAACW,WAAW,CAACX,KAAK,CAAC,CAAC;IACxB,IAAI,CAACJ,WAAW,CAACkF,OAAO,CAAC,CAAC;EAC5B;EAEOC,eAAe,GAAGlG,MAAM,CAAC;IAC9BmG,MAAM,EAAE,IAAI,CAACpF,WAAW,CAACM,YAAY;IACrC+E,SAAS,EAAEA,CAAClD,aAAqB,EAAEmD,WAAW,MAAM;MAAEnD,aAAa;MAAEmD;IAAY,CAAC,CAAC;IACnFC,MAAM,EAAErG,YAAY,CAAC,CAAC;MAAEiD,aAAa;MAAEmD;IAAmC,CAAC,KAAK;MAC9E,IAAI,IAAI,CAACrF,qBAAqB,KAAKkC,aAAa,IAAImD,WAAW,KAAK5F,WAAW,CAAC8F,OAAO,EAAE;QACvF,IAAI,CAACjF,UAAU,CAAC,CAAC;MACnB,CAAC,MAAM;QACL,IAAI,CAAC+C,iBAAiB,CAACnB,aAAa,CAAC;MACvC;IACF,CAAC;EACH,CAAC,CAAC;AACJ","ignoreList":[]}
@@ -1,10 +1,43 @@
1
1
  "use strict";
2
2
 
3
- import { createEvent, restore } from 'effector';
3
+ import { createEffect, createEvent, createStore, restore } from 'effector';
4
4
  export class VoiceTranscriptionTranslationModel {
5
5
  toggle = createEvent();
6
6
  setActive = createEvent();
7
+ clearCache = createEvent();
7
8
  reset = createEvent();
8
9
  $isActive = restore(this.setActive, false).on(this.toggle, state => !state).reset(this.reset);
10
+ translate = createEffect(async ({
11
+ attemptNumber,
12
+ targetLanguage
13
+ }) => {
14
+ const item = this.collection.get(attemptNumber);
15
+ if (!item?.transcript) return null;
16
+ const response = await this.api.translateText({
17
+ text: [item.transcript],
18
+ targetLanguage,
19
+ sourceLanguage: item.transcriptLanguage
20
+ });
21
+ const text = response.data.translations[0]?.translatedText;
22
+ if (!text) return null;
23
+ return {
24
+ attemptNumber,
25
+ text
26
+ };
27
+ });
28
+ $translations = createStore({}).on(this.translate.doneData, (state, result) => {
29
+ if (!result) return state;
30
+ return {
31
+ ...state,
32
+ [result.attemptNumber]: result.text
33
+ };
34
+ }).reset(this.reset, this.clearCache);
35
+ constructor(collection, api) {
36
+ this.collection = collection;
37
+ this.api = api;
38
+ }
39
+ getTranslation(attemptNumber) {
40
+ return this.$translations.getState()[attemptNumber];
41
+ }
9
42
  }
10
43
  //# sourceMappingURL=VoiceTranscriptionTranslation.model.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["createEvent","restore","VoiceTranscriptionTranslationModel","toggle","setActive","reset","$isActive","on","state"],"sourceRoot":"../../../../../../src","sources":["features/voice/playing/model/VoiceTranscriptionTranslation.model.ts"],"mappings":";;AAAA,SAASA,WAAW,EAAEC,OAAO,QAAQ,UAAU;AAE/C,OAAO,MAAMC,kCAAkC,CAAC;EAC9BC,MAAM,GAAGH,WAAW,CAAC,CAAC;EACtBI,SAAS,GAAGJ,WAAW,CAAU,CAAC;EAClCK,KAAK,GAAGL,WAAW,CAAC,CAAC;EAErBM,SAAS,GAAGL,OAAO,CAAC,IAAI,CAACG,SAAS,EAAE,KAAK,CAAC,CACvDG,EAAE,CAAC,IAAI,CAACJ,MAAM,EAAGK,KAAK,IAAK,CAACA,KAAK,CAAC,CAClCH,KAAK,CAAC,IAAI,CAACA,KAAK,CAAC;AACtB","ignoreList":[]}
1
+ {"version":3,"names":["createEffect","createEvent","createStore","restore","VoiceTranscriptionTranslationModel","toggle","setActive","clearCache","reset","$isActive","on","state","translate","attemptNumber","targetLanguage","item","collection","get","transcript","response","api","translateText","text","sourceLanguage","transcriptLanguage","data","translations","translatedText","$translations","doneData","result","constructor","getTranslation","getState"],"sourceRoot":"../../../../../../src","sources":["features/voice/playing/model/VoiceTranscriptionTranslation.model.ts"],"mappings":";;AAAA,SAASA,YAAY,EAAEC,WAAW,EAAEC,WAAW,EAAEC,OAAO,QAAQ,UAAU;AAc1E,OAAO,MAAMC,kCAAkC,CAAC;EAI9BC,MAAM,GAAGJ,WAAW,CAAC,CAAC;EACtBK,SAAS,GAAGL,WAAW,CAAU,CAAC;EAClCM,UAAU,GAAGN,WAAW,CAAC,CAAC;EAC1BO,KAAK,GAAGP,WAAW,CAAC,CAAC;EAErBQ,SAAS,GAAGN,OAAO,CAAC,IAAI,CAACG,SAAS,EAAE,KAAK,CAAC,CACvDI,EAAE,CAAC,IAAI,CAACL,MAAM,EAAGM,KAAK,IAAK,CAACA,KAAK,CAAC,CAClCH,KAAK,CAAC,IAAI,CAACA,KAAK,CAAC;EAEJI,SAAS,GAAGZ,YAAY,CACtC,OAAO;IAAEa,aAAa;IAAEC;EAAe,CAAC,KAAK;IAC3C,MAAMC,IAAI,GAAG,IAAI,CAACC,UAAU,CAACC,GAAG,CAACJ,aAAa,CAAC;IAC/C,IAAI,CAACE,IAAI,EAAEG,UAAU,EAAE,OAAO,IAAI;IAElC,MAAMC,QAAQ,GAAG,MAAM,IAAI,CAACC,GAAG,CAACC,aAAa,CAAC;MAC5CC,IAAI,EAAE,CAACP,IAAI,CAACG,UAAU,CAAC;MACvBJ,cAAc;MACdS,cAAc,EAAER,IAAI,CAACS;IACvB,CAAC,CAAC;IAEF,MAAMF,IAAI,GAAGH,QAAQ,CAACM,IAAI,CAACC,YAAY,CAAC,CAAC,CAAC,EAAEC,cAAc;IAC1D,IAAI,CAACL,IAAI,EAAE,OAAO,IAAI;IAEtB,OAAO;MAAET,aAAa;MAAES;IAAK,CAAC;EAChC,CACF,CAAC;EAEeM,aAAa,GAAG1B,WAAW,CAAyB,CAAC,CAAC,CAAC,CACpEQ,EAAE,CAAC,IAAI,CAACE,SAAS,CAACiB,QAAQ,EAAE,CAAClB,KAAK,EAAEmB,MAAM,KAAK;IAC9C,IAAI,CAACA,MAAM,EAAE,OAAOnB,KAAK;IACzB,OAAO;MAAE,GAAGA,KAAK;MAAE,CAACmB,MAAM,CAACjB,aAAa,GAAGiB,MAAM,CAACR;IAAK,CAAC;EAC1D,CAAC,CAAC,CACDd,KAAK,CAAC,IAAI,CAACA,KAAK,EAAE,IAAI,CAACD,UAAU,CAAC;EAErCwB,WAAWA,CAACf,UAAyC,EAAEI,GAAmB,EAAE;IAC1E,IAAI,CAACJ,UAAU,GAAGA,UAAU;IAC5B,IAAI,CAACI,GAAG,GAAGA,GAAG;EAChB;EAEOY,cAAcA,CAACnB,aAAqB,EAAsB;IAC/D,OAAO,IAAI,CAACe,aAAa,CAACK,QAAQ,CAAC,CAAC,CAACpB,aAAa,CAAC;EACrD;AACF","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"names":["RecordButtonVariant","VoiceTranscriptionVariant"],"sourceRoot":"../../../../src","sources":["features/voice/types.ts"],"mappings":";;AAsFA,WAAYA,mBAAmB,0BAAnBA,mBAAmB;EAAnBA,mBAAmB;EAAnBA,mBAAmB;EAAA,OAAnBA,mBAAmB;AAAA;AAK/B,WAAYC,yBAAyB,0BAAzBA,yBAAyB;EAAzBA,yBAAyB;EAAzBA,yBAAyB;EAAA,OAAzBA,yBAAyB;AAAA","ignoreList":[]}
1
+ {"version":3,"names":["RecordButtonVariant","VoiceTranscriptionVariant"],"sourceRoot":"../../../../src","sources":["features/voice/types.ts"],"mappings":";;AAwFA,WAAYA,mBAAmB,0BAAnBA,mBAAmB;EAAnBA,mBAAmB;EAAnBA,mBAAmB;EAAA,OAAnBA,mBAAmB;AAAA;AAK/B,WAAYC,yBAAyB,0BAAzBA,yBAAyB;EAAzBA,yBAAyB;EAAzBA,yBAAyB;EAAA,OAAzBA,yBAAyB;AAAA","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"VoiceTranscription.d.ts","sourceRoot":"","sources":["../../../../../../../src/features/voice/playing/components/VoiceTranscription.tsx"],"names":[],"mappings":"AAEA,OAAO,KAA+B,MAAM,OAAO,CAAA;AACnD,OAAO,EAAE,SAAS,EAAoB,SAAS,EAAE,MAAM,cAAc,CAAA;AAIrE,OAAO,EAAE,WAAW,EAAE,yBAAyB,EAAE,MAAM,aAAa,CAAA;AAGpE,OAAO,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAA;AAK3C,KAAK,uBAAuB,GAAG;IAC7B,KAAK,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,CAAA;IAC5B,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;IACjB,OAAO,CAAC,EAAE,yBAAyB,CAAA;CACpC,CAAA;AAED,eAAO,MAAM,kBAAkB,iFAQ5B,uBAAuB,sBAoEzB,CAAA"}
1
+ {"version":3,"file":"VoiceTranscription.d.ts","sourceRoot":"","sources":["../../../../../../../src/features/voice/playing/components/VoiceTranscription.tsx"],"names":[],"mappings":"AAEA,OAAO,KAA0C,MAAM,OAAO,CAAA;AAE9D,OAAO,EAAE,SAAS,EAAoB,SAAS,EAAE,MAAM,cAAc,CAAA;AAIrE,OAAO,EAAE,WAAW,EAAE,yBAAyB,EAAE,MAAM,aAAa,CAAA;AAGpE,OAAO,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAA;AAK3C,KAAK,uBAAuB,GAAG;IAC7B,KAAK,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,CAAA;IAC5B,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;IACjB,OAAO,CAAC,EAAE,yBAAyB,CAAA;CACpC,CAAA;AAED,eAAO,MAAM,kBAAkB,iFAQ5B,uBAAuB,sBAgGzB,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"TranscriptionsDownloaderModel.d.ts","sourceRoot":"","sources":["../../../../../../../src/features/voice/playing/model/TranscriptionsDownloaderModel.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,6BAA6B,EAAE,MAAM,iCAAiC,CAAA;AAC/E,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAA;AAO5C,qBAAa,6BAA6B;IACxC,OAAO,CAAC,QAAQ,CAAC,UAAU,CAA+B;IAC1D,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAgB;IAEpC,SAAgB,oBAAoB,4CAAyB;IAC7D,SAAgB,KAAK,yCAAgB;IAErC,SAAgB,kBAAkB,4CAA8D;gBAEpF,UAAU,EAAE,6BAA6B,EAAE,GAAG,EAAE,cAAc;YAK5D,wBAAwB;IAmBtC,SAAgB,kBAAkB,+CA4BhC;IAEK,aAAa,CAAC,aAAa,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS;IAIxD,mBAAmB,CAAC,aAAa,EAAE,MAAM,GAAG,OAAO;CAG3D"}
1
+ {"version":3,"file":"TranscriptionsDownloaderModel.d.ts","sourceRoot":"","sources":["../../../../../../../src/features/voice/playing/model/TranscriptionsDownloaderModel.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,6BAA6B,EAAE,MAAM,iCAAiC,CAAA;AAC/E,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAA;AAO5C,qBAAa,6BAA6B;IACxC,OAAO,CAAC,QAAQ,CAAC,UAAU,CAA+B;IAC1D,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAgB;IAEpC,SAAgB,oBAAoB,4CAAyB;IAC7D,SAAgB,KAAK,yCAAgB;IAErC,SAAgB,kBAAkB,4CAA8D;gBAEpF,UAAU,EAAE,6BAA6B,EAAE,GAAG,EAAE,cAAc;YAK5D,wBAAwB;IAqBtC,SAAgB,kBAAkB,+CA6BhC;IAEK,aAAa,CAAC,aAAa,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS;IAIxD,mBAAmB,CAAC,aAAa,EAAE,MAAM,GAAG,OAAO;CAG3D"}
@@ -1 +1 @@
1
- {"version":3,"file":"VoicePlayer.model.d.ts","sourceRoot":"","sources":["../../../../../../../src/features/voice/playing/model/VoicePlayer.model.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,6BAA6B,EAAE,MAAM,iCAAiC,CAAA;AAC/E,OAAO,EAAE,wBAAwB,EAAE,MAAM,6BAA6B,CAAA;AACtE,OAAO,EAAE,uBAAuB,EAAE,MAAM,4BAA4B,CAAA;AACpE,OAAO,EAAE,kCAAkC,EAAE,MAAM,uCAAuC,CAAA;AAC1F,OAAO,EAAE,WAAW,EAAE,cAAc,EAAE,sBAAsB,EAAE,MAAM,aAAa,CAAA;AACjF,OAAO,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAA;AACzD,OAAO,EAAE,6BAA6B,EAAE,MAAM,iCAAiC,CAAA;AAE/E,KAAK,oCAAoC,GAAG;IAC1C,GAAG,EAAE,cAAc,CAAA;IACnB,MAAM,CAAC,EAAE,WAAW,EAAE,CAAA;CACvB,CAAA;AAMD,qBAAa,gBAAgB;IAC3B,SAAgB,UAAU,gCAAsC;IAChE,SAAgB,UAAU,2BAAiC;IAC3D,SAAgB,QAAQ,0BAAgC;IACxD,SAAgB,WAAW,qCAA2C;IACtE,SAAgB,WAAW,cAAoB;IAC/C,SAAgB,MAAM,EAAE,6BAA6B,CAAA;IACrD,SAAgB,GAAG,EAAE,cAAc,CAAA;IACnC,OAAO,CAAC,qBAAqB,CAAsB;IACnD,OAAO,CAAC,qBAAqB,CAAQ;IAErC,SAAgB,iBAAiB,kDAA+B;IAChE,SAAgB,KAAK,yCAAgB;IAErC,SAAgB,eAAe,kDAA0D;IACzF,SAAgB,YAAY,gDAAgC;IAE5D,SAAgB,UAAU,+CAAyB;IAEnD,SAAgB,SAAS,aAMxB;IAED,SAAgB,WAAW,aAO1B;gBAEW,MAAM,EAAE,oCAAoC;IAiBjD,oBAAoB,CAAC,WAAW,EAAE,WAAW,EAAE;IAMtD,OAAO,CAAC,8BAA8B;IAoBtC,OAAO,CAAC,0BAA0B;IAalC,OAAO,CAAC,iBAAiB;IAazB,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CA6DhC;IAEF,OAAO,CAAC,WAAW,CAmCjB;IAEK,cAAc,CAAC,aAAa,EAAE,MAAM,GAAG,OAAO;IAI9C,cAAc,IAAI,sBAAsB,EAAE;IAI1C,kBAAkB;IAIlB,OAAO;IAWP,eAAe,iDAUpB;CACH"}
1
+ {"version":3,"file":"VoicePlayer.model.d.ts","sourceRoot":"","sources":["../../../../../../../src/features/voice/playing/model/VoicePlayer.model.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,6BAA6B,EAAE,MAAM,iCAAiC,CAAA;AAC/E,OAAO,EAAE,wBAAwB,EAAE,MAAM,6BAA6B,CAAA;AACtE,OAAO,EAAE,uBAAuB,EAAE,MAAM,4BAA4B,CAAA;AACpE,OAAO,EAAE,kCAAkC,EAAE,MAAM,uCAAuC,CAAA;AAC1F,OAAO,EAAE,WAAW,EAAE,cAAc,EAAE,sBAAsB,EAAE,MAAM,aAAa,CAAA;AACjF,OAAO,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAA;AACzD,OAAO,EAAE,6BAA6B,EAAE,MAAM,iCAAiC,CAAA;AAE/E,KAAK,oCAAoC,GAAG;IAC1C,GAAG,EAAE,cAAc,CAAA;IACnB,MAAM,CAAC,EAAE,WAAW,EAAE,CAAA;CACvB,CAAA;AAMD,qBAAa,gBAAgB;IAC3B,SAAgB,UAAU,gCAAsC;IAChE,SAAgB,UAAU,2BAAiC;IAC3D,SAAgB,QAAQ,0BAAgC;IACxD,SAAgB,WAAW,EAAE,kCAAkC,CAAA;IAC/D,SAAgB,WAAW,cAAoB;IAC/C,SAAgB,MAAM,EAAE,6BAA6B,CAAA;IACrD,SAAgB,GAAG,EAAE,cAAc,CAAA;IACnC,OAAO,CAAC,qBAAqB,CAAsB;IACnD,OAAO,CAAC,qBAAqB,CAAQ;IAErC,SAAgB,iBAAiB,kDAA+B;IAChE,SAAgB,KAAK,yCAAgB;IAErC,SAAgB,eAAe,kDAA0D;IACzF,SAAgB,YAAY,gDAAgC;IAE5D,SAAgB,UAAU,+CAAyB;IAEnD,SAAgB,SAAS,aAMxB;IAED,SAAgB,WAAW,aAQ1B;gBAEW,MAAM,EAAE,oCAAoC;IAkBjD,oBAAoB,CAAC,WAAW,EAAE,WAAW,EAAE;IAMtD,OAAO,CAAC,8BAA8B;IAoBtC,OAAO,CAAC,0BAA0B;IAalC,OAAO,CAAC,iBAAiB;IAazB,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CA6DhC;IAEF,OAAO,CAAC,WAAW,CAmCjB;IAEK,cAAc,CAAC,aAAa,EAAE,MAAM,GAAG,OAAO;IAI9C,cAAc,IAAI,sBAAsB,EAAE;IAI1C,kBAAkB;IAIlB,OAAO;IAWP,eAAe,iDAUpB;CACH"}
@@ -1,7 +1,25 @@
1
+ import { VoiceTranscriptionsCollection } from './VoiceTranscriptionsCollection';
2
+ import { VoicePlayerApi } from '../../types';
3
+ type TranslateParams = {
4
+ attemptNumber: number;
5
+ targetLanguage: string;
6
+ };
7
+ type TranslateResult = {
8
+ attemptNumber: number;
9
+ text: string;
10
+ };
1
11
  export declare class VoiceTranscriptionTranslationModel {
12
+ private readonly collection;
13
+ private readonly api;
2
14
  readonly toggle: import("effector").EventCallable<void>;
3
15
  readonly setActive: import("effector").EventCallable<boolean>;
16
+ readonly clearCache: import("effector").EventCallable<void>;
4
17
  readonly reset: import("effector").EventCallable<void>;
5
18
  readonly $isActive: import("effector").StoreWritable<boolean>;
19
+ readonly translate: import("effector").Effect<TranslateParams, TranslateResult | null, Error>;
20
+ readonly $translations: import("effector").StoreWritable<Record<number, string>>;
21
+ constructor(collection: VoiceTranscriptionsCollection, api: VoicePlayerApi);
22
+ getTranslation(attemptNumber: number): string | undefined;
6
23
  }
24
+ export {};
7
25
  //# sourceMappingURL=VoiceTranscriptionTranslation.model.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"VoiceTranscriptionTranslation.model.d.ts","sourceRoot":"","sources":["../../../../../../../src/features/voice/playing/model/VoiceTranscriptionTranslation.model.ts"],"names":[],"mappings":"AAEA,qBAAa,kCAAkC;IAC7C,SAAgB,MAAM,yCAAgB;IACtC,SAAgB,SAAS,4CAAyB;IAClD,SAAgB,KAAK,yCAAgB;IAErC,SAAgB,SAAS,4CAEL;CACrB"}
1
+ {"version":3,"file":"VoiceTranscriptionTranslation.model.d.ts","sourceRoot":"","sources":["../../../../../../../src/features/voice/playing/model/VoiceTranscriptionTranslation.model.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,6BAA6B,EAAE,MAAM,iCAAiC,CAAA;AAC/E,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAA;AAE5C,KAAK,eAAe,GAAG;IACrB,aAAa,EAAE,MAAM,CAAA;IACrB,cAAc,EAAE,MAAM,CAAA;CACvB,CAAA;AAED,KAAK,eAAe,GAAG;IACrB,aAAa,EAAE,MAAM,CAAA;IACrB,IAAI,EAAE,MAAM,CAAA;CACb,CAAA;AAED,qBAAa,kCAAkC;IAC7C,OAAO,CAAC,QAAQ,CAAC,UAAU,CAA+B;IAC1D,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAgB;IAEpC,SAAgB,MAAM,yCAAgB;IACtC,SAAgB,SAAS,4CAAyB;IAClD,SAAgB,UAAU,yCAAgB;IAC1C,SAAgB,KAAK,yCAAgB;IAErC,SAAgB,SAAS,4CAEL;IAEpB,SAAgB,SAAS,4EAgBxB;IAED,SAAgB,aAAa,2DAKQ;gBAEzB,UAAU,EAAE,6BAA6B,EAAE,GAAG,EAAE,cAAc;IAKnE,cAAc,CAAC,aAAa,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS;CAGjE"}
@@ -54,12 +54,14 @@ export type VoicePlayerApi = {
54
54
  downloadAudioFile: (audioFileId: string, options?: {
55
55
  signal?: AbortSignal;
56
56
  }) => Promise<AxiosResponse<Blob>>;
57
+ translateText: (payload: GoogleTranslatePayload) => Promise<GoogleTranslateResponse>;
57
58
  };
58
59
  export type VoiceTranscriptionItem = {
59
60
  attemptNumber: number;
60
61
  audioFileId: string;
61
62
  _id: string;
62
63
  transcript?: string;
64
+ transcriptLanguage?: string;
63
65
  transcriptLoading?: boolean;
64
66
  transcriptError?: string;
65
67
  audioUri?: string;
@@ -77,5 +79,19 @@ export declare enum VoiceTranscriptionVariant {
77
79
  SMALL = "small",
78
80
  LARGE = "large"
79
81
  }
82
+ export type GoogleTranslatePayload = {
83
+ text: string[];
84
+ targetLanguage: string;
85
+ sourceLanguage?: string;
86
+ };
87
+ type Translation = {
88
+ translatedText: string;
89
+ detectedSourceLanguage: string;
90
+ };
91
+ export type GoogleTranslateResponse = {
92
+ data: {
93
+ translations: Translation[];
94
+ };
95
+ };
80
96
  export {};
81
97
  //# sourceMappingURL=types.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../../src/features/voice/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../../src/features/voice/types.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"VoiceTranscription.d.ts","sourceRoot":"","sources":["../../../../../../../src/features/voice/playing/components/VoiceTranscription.tsx"],"names":[],"mappings":"AAEA,OAAO,KAA+B,MAAM,OAAO,CAAA;AACnD,OAAO,EAAE,SAAS,EAAoB,SAAS,EAAE,MAAM,cAAc,CAAA;AAIrE,OAAO,EAAE,WAAW,EAAE,yBAAyB,EAAE,MAAM,aAAa,CAAA;AAGpE,OAAO,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAA;AAK3C,KAAK,uBAAuB,GAAG;IAC7B,KAAK,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,CAAA;IAC5B,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;IACjB,OAAO,CAAC,EAAE,yBAAyB,CAAA;CACpC,CAAA;AAED,eAAO,MAAM,kBAAkB,iFAQ5B,uBAAuB,sBAoEzB,CAAA"}
1
+ {"version":3,"file":"VoiceTranscription.d.ts","sourceRoot":"","sources":["../../../../../../../src/features/voice/playing/components/VoiceTranscription.tsx"],"names":[],"mappings":"AAEA,OAAO,KAA0C,MAAM,OAAO,CAAA;AAE9D,OAAO,EAAE,SAAS,EAAoB,SAAS,EAAE,MAAM,cAAc,CAAA;AAIrE,OAAO,EAAE,WAAW,EAAE,yBAAyB,EAAE,MAAM,aAAa,CAAA;AAGpE,OAAO,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAA;AAK3C,KAAK,uBAAuB,GAAG;IAC7B,KAAK,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,CAAA;IAC5B,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;IACjB,OAAO,CAAC,EAAE,yBAAyB,CAAA;CACpC,CAAA;AAED,eAAO,MAAM,kBAAkB,iFAQ5B,uBAAuB,sBAgGzB,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"TranscriptionsDownloaderModel.d.ts","sourceRoot":"","sources":["../../../../../../../src/features/voice/playing/model/TranscriptionsDownloaderModel.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,6BAA6B,EAAE,MAAM,iCAAiC,CAAA;AAC/E,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAA;AAO5C,qBAAa,6BAA6B;IACxC,OAAO,CAAC,QAAQ,CAAC,UAAU,CAA+B;IAC1D,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAgB;IAEpC,SAAgB,oBAAoB,4CAAyB;IAC7D,SAAgB,KAAK,yCAAgB;IAErC,SAAgB,kBAAkB,4CAA8D;gBAEpF,UAAU,EAAE,6BAA6B,EAAE,GAAG,EAAE,cAAc;YAK5D,wBAAwB;IAmBtC,SAAgB,kBAAkB,+CA4BhC;IAEK,aAAa,CAAC,aAAa,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS;IAIxD,mBAAmB,CAAC,aAAa,EAAE,MAAM,GAAG,OAAO;CAG3D"}
1
+ {"version":3,"file":"TranscriptionsDownloaderModel.d.ts","sourceRoot":"","sources":["../../../../../../../src/features/voice/playing/model/TranscriptionsDownloaderModel.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,6BAA6B,EAAE,MAAM,iCAAiC,CAAA;AAC/E,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAA;AAO5C,qBAAa,6BAA6B;IACxC,OAAO,CAAC,QAAQ,CAAC,UAAU,CAA+B;IAC1D,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAgB;IAEpC,SAAgB,oBAAoB,4CAAyB;IAC7D,SAAgB,KAAK,yCAAgB;IAErC,SAAgB,kBAAkB,4CAA8D;gBAEpF,UAAU,EAAE,6BAA6B,EAAE,GAAG,EAAE,cAAc;YAK5D,wBAAwB;IAqBtC,SAAgB,kBAAkB,+CA6BhC;IAEK,aAAa,CAAC,aAAa,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS;IAIxD,mBAAmB,CAAC,aAAa,EAAE,MAAM,GAAG,OAAO;CAG3D"}
@@ -1 +1 @@
1
- {"version":3,"file":"VoicePlayer.model.d.ts","sourceRoot":"","sources":["../../../../../../../src/features/voice/playing/model/VoicePlayer.model.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,6BAA6B,EAAE,MAAM,iCAAiC,CAAA;AAC/E,OAAO,EAAE,wBAAwB,EAAE,MAAM,6BAA6B,CAAA;AACtE,OAAO,EAAE,uBAAuB,EAAE,MAAM,4BAA4B,CAAA;AACpE,OAAO,EAAE,kCAAkC,EAAE,MAAM,uCAAuC,CAAA;AAC1F,OAAO,EAAE,WAAW,EAAE,cAAc,EAAE,sBAAsB,EAAE,MAAM,aAAa,CAAA;AACjF,OAAO,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAA;AACzD,OAAO,EAAE,6BAA6B,EAAE,MAAM,iCAAiC,CAAA;AAE/E,KAAK,oCAAoC,GAAG;IAC1C,GAAG,EAAE,cAAc,CAAA;IACnB,MAAM,CAAC,EAAE,WAAW,EAAE,CAAA;CACvB,CAAA;AAMD,qBAAa,gBAAgB;IAC3B,SAAgB,UAAU,gCAAsC;IAChE,SAAgB,UAAU,2BAAiC;IAC3D,SAAgB,QAAQ,0BAAgC;IACxD,SAAgB,WAAW,qCAA2C;IACtE,SAAgB,WAAW,cAAoB;IAC/C,SAAgB,MAAM,EAAE,6BAA6B,CAAA;IACrD,SAAgB,GAAG,EAAE,cAAc,CAAA;IACnC,OAAO,CAAC,qBAAqB,CAAsB;IACnD,OAAO,CAAC,qBAAqB,CAAQ;IAErC,SAAgB,iBAAiB,kDAA+B;IAChE,SAAgB,KAAK,yCAAgB;IAErC,SAAgB,eAAe,kDAA0D;IACzF,SAAgB,YAAY,gDAAgC;IAE5D,SAAgB,UAAU,+CAAyB;IAEnD,SAAgB,SAAS,aAMxB;IAED,SAAgB,WAAW,aAO1B;gBAEW,MAAM,EAAE,oCAAoC;IAiBjD,oBAAoB,CAAC,WAAW,EAAE,WAAW,EAAE;IAMtD,OAAO,CAAC,8BAA8B;IAoBtC,OAAO,CAAC,0BAA0B;IAalC,OAAO,CAAC,iBAAiB;IAazB,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CA6DhC;IAEF,OAAO,CAAC,WAAW,CAmCjB;IAEK,cAAc,CAAC,aAAa,EAAE,MAAM,GAAG,OAAO;IAI9C,cAAc,IAAI,sBAAsB,EAAE;IAI1C,kBAAkB;IAIlB,OAAO;IAWP,eAAe,iDAUpB;CACH"}
1
+ {"version":3,"file":"VoicePlayer.model.d.ts","sourceRoot":"","sources":["../../../../../../../src/features/voice/playing/model/VoicePlayer.model.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,6BAA6B,EAAE,MAAM,iCAAiC,CAAA;AAC/E,OAAO,EAAE,wBAAwB,EAAE,MAAM,6BAA6B,CAAA;AACtE,OAAO,EAAE,uBAAuB,EAAE,MAAM,4BAA4B,CAAA;AACpE,OAAO,EAAE,kCAAkC,EAAE,MAAM,uCAAuC,CAAA;AAC1F,OAAO,EAAE,WAAW,EAAE,cAAc,EAAE,sBAAsB,EAAE,MAAM,aAAa,CAAA;AACjF,OAAO,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAA;AACzD,OAAO,EAAE,6BAA6B,EAAE,MAAM,iCAAiC,CAAA;AAE/E,KAAK,oCAAoC,GAAG;IAC1C,GAAG,EAAE,cAAc,CAAA;IACnB,MAAM,CAAC,EAAE,WAAW,EAAE,CAAA;CACvB,CAAA;AAMD,qBAAa,gBAAgB;IAC3B,SAAgB,UAAU,gCAAsC;IAChE,SAAgB,UAAU,2BAAiC;IAC3D,SAAgB,QAAQ,0BAAgC;IACxD,SAAgB,WAAW,EAAE,kCAAkC,CAAA;IAC/D,SAAgB,WAAW,cAAoB;IAC/C,SAAgB,MAAM,EAAE,6BAA6B,CAAA;IACrD,SAAgB,GAAG,EAAE,cAAc,CAAA;IACnC,OAAO,CAAC,qBAAqB,CAAsB;IACnD,OAAO,CAAC,qBAAqB,CAAQ;IAErC,SAAgB,iBAAiB,kDAA+B;IAChE,SAAgB,KAAK,yCAAgB;IAErC,SAAgB,eAAe,kDAA0D;IACzF,SAAgB,YAAY,gDAAgC;IAE5D,SAAgB,UAAU,+CAAyB;IAEnD,SAAgB,SAAS,aAMxB;IAED,SAAgB,WAAW,aAQ1B;gBAEW,MAAM,EAAE,oCAAoC;IAkBjD,oBAAoB,CAAC,WAAW,EAAE,WAAW,EAAE;IAMtD,OAAO,CAAC,8BAA8B;IAoBtC,OAAO,CAAC,0BAA0B;IAalC,OAAO,CAAC,iBAAiB;IAazB,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CA6DhC;IAEF,OAAO,CAAC,WAAW,CAmCjB;IAEK,cAAc,CAAC,aAAa,EAAE,MAAM,GAAG,OAAO;IAI9C,cAAc,IAAI,sBAAsB,EAAE;IAI1C,kBAAkB;IAIlB,OAAO;IAWP,eAAe,iDAUpB;CACH"}
@@ -1,7 +1,25 @@
1
+ import { VoiceTranscriptionsCollection } from './VoiceTranscriptionsCollection';
2
+ import { VoicePlayerApi } from '../../types';
3
+ type TranslateParams = {
4
+ attemptNumber: number;
5
+ targetLanguage: string;
6
+ };
7
+ type TranslateResult = {
8
+ attemptNumber: number;
9
+ text: string;
10
+ };
1
11
  export declare class VoiceTranscriptionTranslationModel {
12
+ private readonly collection;
13
+ private readonly api;
2
14
  readonly toggle: import("effector").EventCallable<void>;
3
15
  readonly setActive: import("effector").EventCallable<boolean>;
16
+ readonly clearCache: import("effector").EventCallable<void>;
4
17
  readonly reset: import("effector").EventCallable<void>;
5
18
  readonly $isActive: import("effector").StoreWritable<boolean>;
19
+ readonly translate: import("effector").Effect<TranslateParams, TranslateResult | null, Error>;
20
+ readonly $translations: import("effector").StoreWritable<Record<number, string>>;
21
+ constructor(collection: VoiceTranscriptionsCollection, api: VoicePlayerApi);
22
+ getTranslation(attemptNumber: number): string | undefined;
6
23
  }
24
+ export {};
7
25
  //# sourceMappingURL=VoiceTranscriptionTranslation.model.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"VoiceTranscriptionTranslation.model.d.ts","sourceRoot":"","sources":["../../../../../../../src/features/voice/playing/model/VoiceTranscriptionTranslation.model.ts"],"names":[],"mappings":"AAEA,qBAAa,kCAAkC;IAC7C,SAAgB,MAAM,yCAAgB;IACtC,SAAgB,SAAS,4CAAyB;IAClD,SAAgB,KAAK,yCAAgB;IAErC,SAAgB,SAAS,4CAEL;CACrB"}
1
+ {"version":3,"file":"VoiceTranscriptionTranslation.model.d.ts","sourceRoot":"","sources":["../../../../../../../src/features/voice/playing/model/VoiceTranscriptionTranslation.model.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,6BAA6B,EAAE,MAAM,iCAAiC,CAAA;AAC/E,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAA;AAE5C,KAAK,eAAe,GAAG;IACrB,aAAa,EAAE,MAAM,CAAA;IACrB,cAAc,EAAE,MAAM,CAAA;CACvB,CAAA;AAED,KAAK,eAAe,GAAG;IACrB,aAAa,EAAE,MAAM,CAAA;IACrB,IAAI,EAAE,MAAM,CAAA;CACb,CAAA;AAED,qBAAa,kCAAkC;IAC7C,OAAO,CAAC,QAAQ,CAAC,UAAU,CAA+B;IAC1D,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAgB;IAEpC,SAAgB,MAAM,yCAAgB;IACtC,SAAgB,SAAS,4CAAyB;IAClD,SAAgB,UAAU,yCAAgB;IAC1C,SAAgB,KAAK,yCAAgB;IAErC,SAAgB,SAAS,4CAEL;IAEpB,SAAgB,SAAS,4EAgBxB;IAED,SAAgB,aAAa,2DAKQ;gBAEzB,UAAU,EAAE,6BAA6B,EAAE,GAAG,EAAE,cAAc;IAKnE,cAAc,CAAC,aAAa,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS;CAGjE"}
@@ -54,12 +54,14 @@ export type VoicePlayerApi = {
54
54
  downloadAudioFile: (audioFileId: string, options?: {
55
55
  signal?: AbortSignal;
56
56
  }) => Promise<AxiosResponse<Blob>>;
57
+ translateText: (payload: GoogleTranslatePayload) => Promise<GoogleTranslateResponse>;
57
58
  };
58
59
  export type VoiceTranscriptionItem = {
59
60
  attemptNumber: number;
60
61
  audioFileId: string;
61
62
  _id: string;
62
63
  transcript?: string;
64
+ transcriptLanguage?: string;
63
65
  transcriptLoading?: boolean;
64
66
  transcriptError?: string;
65
67
  audioUri?: string;
@@ -77,5 +79,19 @@ export declare enum VoiceTranscriptionVariant {
77
79
  SMALL = "small",
78
80
  LARGE = "large"
79
81
  }
82
+ export type GoogleTranslatePayload = {
83
+ text: string[];
84
+ targetLanguage: string;
85
+ sourceLanguage?: string;
86
+ };
87
+ type Translation = {
88
+ translatedText: string;
89
+ detectedSourceLanguage: string;
90
+ };
91
+ export type GoogleTranslateResponse = {
92
+ data: {
93
+ translations: Translation[];
94
+ };
95
+ };
80
96
  export {};
81
97
  //# sourceMappingURL=types.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../../src/features/voice/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../../src/features/voice/types.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@magmamath/students-features",
3
- "version": "1.3.23-rc.3",
3
+ "version": "1.3.23-rc.4",
4
4
  "description": "Magmamath features library",
5
5
  "source": "src/index.ts",
6
6
  "main": "src/index.ts",
@@ -1,6 +1,7 @@
1
1
  import { Typography, COLORS } from '@magmamath/react-native-ui'
2
2
  import { useUnit } from 'effector-react'
3
- import React, { useCallback, useMemo } from 'react'
3
+ import React, { useCallback, useEffect, useMemo } from 'react'
4
+ import { useTranslation } from 'react-i18next'
4
5
  import { StyleProp, StyleSheet, View, ViewStyle } from 'react-native'
5
6
  import Animated from 'react-native-reanimated'
6
7
  import { NO_AUDIO_BE_MESSAGE } from '../../constants'
@@ -33,11 +34,20 @@ export const VoiceTranscription = ({
33
34
  variant = VoiceTranscriptionVariant.SMALL,
34
35
  }: VoiceTranscriptionProps) => {
35
36
  const t = useText()
37
+ const { i18n } = useTranslation()
36
38
 
37
- const [playerState, isLoadingTranscripts, isTranslationActive] = useUnit([
39
+ const [
40
+ playerState,
41
+ isLoadingTranscripts,
42
+ isTranslationActive,
43
+ translations,
44
+ isTranslating,
45
+ ] = useUnit([
38
46
  model.$playerState,
39
47
  model.loader.loadAllTranscripts.pending,
40
48
  model.translation.$isActive,
49
+ model.translation.$translations,
50
+ model.translation.translate.pending,
41
51
  ])
42
52
 
43
53
  const activeAttempt = getActiveAttempt(attemptOffset, attemptsCount)
@@ -50,15 +60,31 @@ export const VoiceTranscription = ({
50
60
 
51
61
  useVoiceTranscriptionEffects({ model, answers, answersKey, problemId, activeAttempt })
52
62
 
53
- const hasActiveTranscript =
63
+ const hasActiveAudio =
54
64
  activeAttempt !== null && answers?.[activeAttempt - 1]?.audioFileId !== undefined
55
65
 
56
66
  const activeTranscript = activeAttempt !== null ? model.loader.getTranscript(activeAttempt) : null
57
67
  const hasTranscriptText = !!activeTranscript && activeTranscript !== NO_AUDIO_BE_MESSAGE
58
- const isActiveTranscriptLoading = isLoadingTranscripts && hasActiveTranscript && !activeTranscript
59
- const activeTranscriptText = hasTranscriptText
60
- ? activeTranscript
61
- : t('voice.transcriptNotAvailable')
68
+ const isActiveTranscriptLoading = isLoadingTranscripts && hasActiveAudio && !activeTranscript
69
+
70
+ const cachedTranslation = activeAttempt !== null ? translations[activeAttempt] : undefined
71
+ const showTranslation = isTranslationActive && hasTranscriptText
72
+ const isTranslationLoading = showTranslation && !cachedTranslation && isTranslating
73
+
74
+ const displayText = showTranslation
75
+ ? cachedTranslation ?? activeTranscript!
76
+ : hasTranscriptText
77
+ ? activeTranscript!
78
+ : t('voice.transcriptNotAvailable')
79
+
80
+ useEffect(() => {
81
+ if (showTranslation && activeAttempt !== null && !cachedTranslation && !isTranslating) {
82
+ model.translation.translate({
83
+ attemptNumber: activeAttempt,
84
+ targetLanguage: i18n.language,
85
+ })
86
+ }
87
+ }, [showTranslation, activeAttempt, cachedTranslation, isTranslating, i18n.language, model])
62
88
 
63
89
  const handlePlayPress = useCallback(() => {
64
90
  if (activeAttempt) {
@@ -77,7 +103,7 @@ export const VoiceTranscription = ({
77
103
  <Typography style={styles.title} variant="h7">
78
104
  {t('voice.transcriptions')}
79
105
  </Typography>
80
- {hasActiveTranscript && (
106
+ {hasActiveAudio && (
81
107
  <VoiceTranscriptionHeaderActions
82
108
  playerState={playerState}
83
109
  isTranslationActive={isTranslationActive}
@@ -89,11 +115,14 @@ export const VoiceTranscription = ({
89
115
  </View>
90
116
 
91
117
  {isLargeVariant ? (
92
- <VoiceTranscriptContent text={activeTranscriptText} isLoading={isActiveTranscriptLoading} />
118
+ <VoiceTranscriptContent
119
+ text={displayText}
120
+ isLoading={isActiveTranscriptLoading || isTranslationLoading}
121
+ />
93
122
  ) : (
94
123
  <VoiceTranscriptionCollapsible
95
- text={activeTranscriptText}
96
- isLoading={isActiveTranscriptLoading}
124
+ text={displayText}
125
+ isLoading={isActiveTranscriptLoading || isTranslationLoading}
97
126
  dropdown={model.dropdown}
98
127
  />
99
128
  )}
@@ -21,23 +21,25 @@ export class TranscriptionsDownloaderModel {
21
21
  this.api = api
22
22
  }
23
23
 
24
- private async fetchTranscriptWithRetry(audioFileId: string): Promise<string> {
24
+ private async fetchTranscriptWithRetry(
25
+ audioFileId: string,
26
+ ): Promise<{ text: string; language?: string }> {
25
27
  for (let attempt = 0; attempt < TRANSCRIPT_MAX_RETRIES; attempt++) {
26
28
  const response = await this.api.getAudioFileTranscript(audioFileId)
27
29
 
28
30
  if (response.status === 'completed') {
29
- return response.text
31
+ return { text: response.text, language: response.language }
30
32
  }
31
33
 
32
34
  if (response.status === 'failed') {
33
- return NO_AUDIO_BE_MESSAGE
35
+ return { text: NO_AUDIO_BE_MESSAGE }
34
36
  }
35
37
 
36
38
  if (attempt < TRANSCRIPT_MAX_RETRIES - 1) {
37
39
  await new Promise((resolve) => setTimeout(resolve, TRANSCRIPT_RETRY_INTERVAL_MS))
38
40
  }
39
41
  }
40
- return NO_AUDIO_BE_MESSAGE
42
+ return { text: NO_AUDIO_BE_MESSAGE }
41
43
  }
42
44
 
43
45
  public readonly loadAllTranscripts = createEffect(async () => {
@@ -51,10 +53,11 @@ export class TranscriptionsDownloaderModel {
51
53
  this.collection.update(item.attemptNumber, { transcriptLoading: true })
52
54
 
53
55
  try {
54
- const text = await this.fetchTranscriptWithRetry(item.audioFileId)
56
+ const { text, language } = await this.fetchTranscriptWithRetry(item.audioFileId)
55
57
 
56
58
  this.collection.update(item.attemptNumber, {
57
59
  transcript: text,
60
+ transcriptLanguage: language,
58
61
  transcriptLoading: false,
59
62
  transcriptError: undefined,
60
63
  })
@@ -20,7 +20,7 @@ export class VoicePlayerModel {
20
20
  public readonly collection = new VoiceTranscriptionsCollection()
21
21
  public readonly downloader = new VoiceFileDownloaderModel()
22
22
  public readonly dropdown = new VoiceTranscriptionModel()
23
- public readonly translation = new VoiceTranscriptionTranslationModel()
23
+ public readonly translation: VoiceTranscriptionTranslationModel
24
24
  public readonly playerModel = new PlayerModel()
25
25
  public readonly loader: TranscriptionsDownloaderModel
26
26
  public readonly api: VoicePlayerApi
@@ -50,11 +50,13 @@ export class VoicePlayerModel {
50
50
  this.currentPlayingAttempt = null
51
51
  this.setCurrentAttempt(null)
52
52
  this.collection.clear()
53
+ this.translation.clearCache()
53
54
  }
54
55
 
55
56
  constructor(params: VoiceTranscriptionsPlayerModelParams) {
56
57
  this.api = params.api
57
58
  this.loader = new TranscriptionsDownloaderModel(this.collection, params.api)
59
+ this.translation = new VoiceTranscriptionTranslationModel(this.collection, params.api)
58
60
  this.downloader.setApi(params.api)
59
61
 
60
62
  this.playerModel.playbackFinished.watch(() => {
@@ -1,11 +1,61 @@
1
- import { createEvent, restore } from 'effector'
1
+ import { createEffect, createEvent, createStore, restore } from 'effector'
2
+ import { VoiceTranscriptionsCollection } from './VoiceTranscriptionsCollection'
3
+ import { VoicePlayerApi } from '../../types'
4
+
5
+ type TranslateParams = {
6
+ attemptNumber: number
7
+ targetLanguage: string
8
+ }
9
+
10
+ type TranslateResult = {
11
+ attemptNumber: number
12
+ text: string
13
+ }
2
14
 
3
15
  export class VoiceTranscriptionTranslationModel {
16
+ private readonly collection: VoiceTranscriptionsCollection
17
+ private readonly api: VoicePlayerApi
18
+
4
19
  public readonly toggle = createEvent()
5
20
  public readonly setActive = createEvent<boolean>()
21
+ public readonly clearCache = createEvent()
6
22
  public readonly reset = createEvent()
7
23
 
8
24
  public readonly $isActive = restore(this.setActive, false)
9
25
  .on(this.toggle, (state) => !state)
10
26
  .reset(this.reset)
27
+
28
+ public readonly translate = createEffect<TranslateParams, TranslateResult | null>(
29
+ async ({ attemptNumber, targetLanguage }) => {
30
+ const item = this.collection.get(attemptNumber)
31
+ if (!item?.transcript) return null
32
+
33
+ const response = await this.api.translateText({
34
+ text: [item.transcript],
35
+ targetLanguage,
36
+ sourceLanguage: item.transcriptLanguage,
37
+ })
38
+
39
+ const text = response.data.translations[0]?.translatedText
40
+ if (!text) return null
41
+
42
+ return { attemptNumber, text }
43
+ },
44
+ )
45
+
46
+ public readonly $translations = createStore<Record<number, string>>({})
47
+ .on(this.translate.doneData, (state, result) => {
48
+ if (!result) return state
49
+ return { ...state, [result.attemptNumber]: result.text }
50
+ })
51
+ .reset(this.reset, this.clearCache)
52
+
53
+ constructor(collection: VoiceTranscriptionsCollection, api: VoicePlayerApi) {
54
+ this.collection = collection
55
+ this.api = api
56
+ }
57
+
58
+ public getTranslation(attemptNumber: number): string | undefined {
59
+ return this.$translations.getState()[attemptNumber]
60
+ }
11
61
  }
@@ -67,6 +67,7 @@ export type VoicePlayerApi = {
67
67
  audioFileId: string,
68
68
  options?: { signal?: AbortSignal },
69
69
  ) => Promise<AxiosResponse<Blob>>
70
+ translateText: (payload: GoogleTranslatePayload) => Promise<GoogleTranslateResponse>
70
71
  }
71
72
 
72
73
  export type VoiceTranscriptionItem = {
@@ -74,6 +75,7 @@ export type VoiceTranscriptionItem = {
74
75
  audioFileId: string
75
76
  _id: string
76
77
  transcript?: string
78
+ transcriptLanguage?: string
77
79
  transcriptLoading?: boolean
78
80
  transcriptError?: string
79
81
  audioUri?: string
@@ -93,3 +95,18 @@ export enum VoiceTranscriptionVariant {
93
95
  SMALL = 'small',
94
96
  LARGE = 'large',
95
97
  }
98
+
99
+ export type GoogleTranslatePayload = {
100
+ text: string[]
101
+ targetLanguage: string
102
+ sourceLanguage?: string
103
+ }
104
+ type Translation = {
105
+ translatedText: string
106
+ detectedSourceLanguage: string
107
+ }
108
+ export type GoogleTranslateResponse = {
109
+ data: {
110
+ translations: Translation[]
111
+ }
112
+ }