@magmamath/students-features 1.5.3-rc.2 → 1.5.3-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 (26) hide show
  1. package/dist/commonjs/features/chatbot/model/VoiceTranscriptSnapshotModel.js +23 -4
  2. package/dist/commonjs/features/chatbot/model/VoiceTranscriptSnapshotModel.js.map +1 -1
  3. package/dist/commonjs/features/voice/recording/components/VoiceRecordButton.js +2 -1
  4. package/dist/commonjs/features/voice/recording/components/VoiceRecordButton.js.map +1 -1
  5. package/dist/commonjs/lib/effector/createControllerEffect.js +7 -6
  6. package/dist/commonjs/lib/effector/createControllerEffect.js.map +1 -1
  7. package/dist/module/features/chatbot/model/VoiceTranscriptSnapshotModel.js +23 -4
  8. package/dist/module/features/chatbot/model/VoiceTranscriptSnapshotModel.js.map +1 -1
  9. package/dist/module/features/voice/recording/components/VoiceRecordButton.js +2 -1
  10. package/dist/module/features/voice/recording/components/VoiceRecordButton.js.map +1 -1
  11. package/dist/module/lib/effector/createControllerEffect.js +7 -6
  12. package/dist/module/lib/effector/createControllerEffect.js.map +1 -1
  13. package/dist/typescript/commonjs/features/chatbot/model/VoiceTranscriptSnapshotModel.d.ts +2 -0
  14. package/dist/typescript/commonjs/features/chatbot/model/VoiceTranscriptSnapshotModel.d.ts.map +1 -1
  15. package/dist/typescript/commonjs/features/voice/recording/components/VoiceRecordButton.d.ts.map +1 -1
  16. package/dist/typescript/commonjs/lib/effector/createControllerEffect.d.ts +1 -0
  17. package/dist/typescript/commonjs/lib/effector/createControllerEffect.d.ts.map +1 -1
  18. package/dist/typescript/module/features/chatbot/model/VoiceTranscriptSnapshotModel.d.ts +2 -0
  19. package/dist/typescript/module/features/chatbot/model/VoiceTranscriptSnapshotModel.d.ts.map +1 -1
  20. package/dist/typescript/module/features/voice/recording/components/VoiceRecordButton.d.ts.map +1 -1
  21. package/dist/typescript/module/lib/effector/createControllerEffect.d.ts +1 -0
  22. package/dist/typescript/module/lib/effector/createControllerEffect.d.ts.map +1 -1
  23. package/package.json +1 -1
  24. package/src/features/chatbot/model/VoiceTranscriptSnapshotModel.ts +27 -4
  25. package/src/features/voice/recording/components/VoiceRecordButton.tsx +2 -3
  26. package/src/lib/effector/createControllerEffect.ts +13 -6
@@ -8,6 +8,7 @@ var _effector = require("effector");
8
8
  var _types = require("../../voice/types.js");
9
9
  const TRANSCRIPT_RETRY_INTERVAL_MS = 2000;
10
10
  const TRANSCRIPT_MAX_RETRIES = 20;
11
+ const CHAT_WITH_VOICE_TIMEOUT_MS = 60_000;
11
12
  // Voice key: `${assignmentId}-${problemId}-${attemptsCount}`
12
13
  // Chat key: `${assignmentId}-${problemId}` — survives attempt increments and voice deletion.
13
14
  const toChatKey = voiceKey => {
@@ -39,6 +40,9 @@ class VoiceTranscriptSnapshotModel {
39
40
  };
40
41
  wrapRequestHint = apiFn => {
41
42
  return async (params, requestConfig) => {
43
+ if (this.hasPendingVoice()) {
44
+ requestConfig?.extendTimeoutMs?.(CHAT_WITH_VOICE_TIMEOUT_MS);
45
+ }
42
46
  const voiceTranscript = await this.getTranscriptForCurrent();
43
47
  return apiFn(voiceTranscript ? {
44
48
  ...params,
@@ -46,6 +50,13 @@ class VoiceTranscriptSnapshotModel {
46
50
  } : params, requestConfig);
47
51
  };
48
52
  };
53
+ hasPendingVoice() {
54
+ const voiceKey = this.voiceRecord.$currentKey.getState();
55
+ if (!voiceKey) return false;
56
+ const chatKey = toChatKey(voiceKey);
57
+ if (chatKey && this.snapshotByChatKey.has(chatKey)) return true;
58
+ return !!this.voiceRecord.collection.get(voiceKey);
59
+ }
49
60
  constructor({
50
61
  voiceRecord,
51
62
  api
@@ -62,18 +73,26 @@ class VoiceTranscriptSnapshotModel {
62
73
  }),
63
74
  target: this.captureSnapshotFx
64
75
  });
76
+ (0, _effector.sample)({
77
+ clock: voiceRecord.deleteCurrentRecording,
78
+ source: voiceRecord.$currentKey,
79
+ target: this.clearSnapshotFx
80
+ });
65
81
  }
66
82
  transcriptByAudioFileId = new Map();
67
83
  snapshotByChatKey = new Map();
68
- captureSnapshotFx = (0, _effector.createEffect)(async ({
84
+ captureSnapshotFx = (0, _effector.createEffect)(({
69
85
  voiceKey,
70
86
  record
71
87
  }) => {
72
88
  const chatKey = toChatKey(voiceKey);
73
89
  if (!chatKey) return;
74
- const audioFileId = await this.resolveAudioFileId(record);
75
- if (!audioFileId) return;
76
- this.snapshotByChatKey.set(chatKey, this.fetchTranscript(audioFileId));
90
+ const transcriptPromise = this.resolveAudioFileId(record).then(audioFileId => audioFileId ? this.fetchTranscript(audioFileId) : undefined);
91
+ this.snapshotByChatKey.set(chatKey, transcriptPromise);
92
+ });
93
+ clearSnapshotFx = (0, _effector.createEffect)(voiceKey => {
94
+ const chatKey = toChatKey(voiceKey);
95
+ if (chatKey) this.snapshotByChatKey.delete(chatKey);
77
96
  });
78
97
  async pollTranscript(audioFileId) {
79
98
  for (let attempt = 0; attempt < TRANSCRIPT_MAX_RETRIES; attempt++) {
@@ -1 +1 @@
1
- {"version":3,"names":["_effector","require","_types","TRANSCRIPT_RETRY_INTERVAL_MS","TRANSCRIPT_MAX_RETRIES","toChatKey","voiceKey","lastDashIndex","lastIndexOf","slice","VoiceTranscriptSnapshotModel","fetchTranscript","audioFileId","cached","transcriptByAudioFileId","get","promise","pollTranscript","catch","undefined","set","getTranscriptForCurrent","voiceRecord","$currentKey","getState","chatKey","snapshot","snapshotByChatKey","record","collection","resolveAudioFileId","wrapRequestHint","apiFn","params","requestConfig","voiceTranscript","constructor","api","sample","clock","setCurrentRecord","source","filter","_","fn","target","captureSnapshotFx","Map","createEffect","attempt","Promise","resolve","setTimeout","response","getAudioFileTranscript","status","TranscriptionStatus","COMPLETED","text","FAILED","id","audioUploadPromise","result","exports"],"sourceRoot":"../../../../../src","sources":["features/chatbot/model/VoiceTranscriptSnapshotModel.ts"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["_effector","require","_types","TRANSCRIPT_RETRY_INTERVAL_MS","TRANSCRIPT_MAX_RETRIES","CHAT_WITH_VOICE_TIMEOUT_MS","toChatKey","voiceKey","lastDashIndex","lastIndexOf","slice","VoiceTranscriptSnapshotModel","fetchTranscript","audioFileId","cached","transcriptByAudioFileId","get","promise","pollTranscript","catch","undefined","set","getTranscriptForCurrent","voiceRecord","$currentKey","getState","chatKey","snapshot","snapshotByChatKey","record","collection","resolveAudioFileId","wrapRequestHint","apiFn","params","requestConfig","hasPendingVoice","extendTimeoutMs","voiceTranscript","has","constructor","api","sample","clock","setCurrentRecord","source","filter","_","fn","target","captureSnapshotFx","deleteCurrentRecording","clearSnapshotFx","Map","createEffect","transcriptPromise","then","delete","attempt","Promise","resolve","setTimeout","response","getAudioFileTranscript","status","TranscriptionStatus","COMPLETED","text","FAILED","id","audioUploadPromise","result","exports"],"sourceRoot":"../../../../../src","sources":["features/chatbot/model/VoiceTranscriptSnapshotModel.ts"],"mappings":"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","ignoreList":[]}
@@ -43,13 +43,14 @@ const AdvancedButton = ({
43
43
  },
44
44
  isActive: isRecording,
45
45
  variant: _reactNativeUi.ButtonVariant.TERTIARY,
46
+ disabled: disabled,
46
47
  onPressIn: onPressIn,
47
48
  icon: isRecording ? /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNativeUi.CheckIcon, {
48
49
  size: 25,
49
50
  color: _reactNativeUi.COLORS.NEUTRAL_1
50
51
  }) : /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNativeUi.MicrophoneIcon, {
51
52
  style: styles.advancedMicrophoneIcon,
52
- color: disabled ? _reactNativeUi.COLORS.NEUTRAL_5 : isRecording ? _reactNativeUi.COLORS.NEUTRAL_1 : _reactNativeUi.COLORS.NEUTRAL_9
53
+ color: isRecording ? _reactNativeUi.COLORS.NEUTRAL_1 : _reactNativeUi.COLORS.NEUTRAL_9
53
54
  })
54
55
  })
55
56
  });
@@ -1 +1 @@
1
- {"version":3,"names":["_react","_interopRequireDefault","require","_reactNativeUi","_reactNative","_effectorReact","_studentsQa","_constants","_types","_i18n","_jsxRuntime","e","__esModule","default","defaultButtonStyles","button","width","height","AdvancedButton","isRecording","disabled","onPressIn","jsx","Pressable","style","styles","advancedButtonContainer","disabledCursor","children","Button","customColorScheme","ButtonStates","ACTIVE","backgroundColor","COLORS","PRIMARY_BLUE","borderColor","raiseColor","color","advancedButton","isActive","variant","ButtonVariant","TERTIARY","icon","CheckIcon","size","NEUTRAL_1","MicrophoneIcon","advancedMicrophoneIcon","NEUTRAL_5","NEUTRAL_9","VoiceRecordButton","model","buttonVariant","t","useText","availableInputs","useUnit","recorderModel","$availableInputs","voiceRecordState","$voiceRecordState","isButtonDisabled","$isButtonDisabled","isInitializing","initializeRecording","pending","VoiceRecorderState","RECORDING","hasInputs","length","preventDefault","notification","warning","pointerEvents","undefined","RecordButtonVariant","ADVANCED","recorderButtonHandler","testID","TEST_IDS","VOICE_RECORD_BUTTON","ButtonSize","LARGE","SECONDARY","colorScheme","ButtonColor","WHITE","IS_WEB","microphoneIconWeb","microphoneIconNative","exports","StyleSheet","create","alignItems","justifyContent","borderRadius","BORDER_RADIUS","boxShadow","VOICE_RECORD_SHADOWS","advancedIconContainer","cursor","minWidth","minHeight","advancedIconContainerActive"],"sourceRoot":"../../../../../../src","sources":["features/voice/recording/components/VoiceRecordButton.tsx"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["_react","_interopRequireDefault","require","_reactNativeUi","_reactNative","_effectorReact","_studentsQa","_constants","_types","_i18n","_jsxRuntime","e","__esModule","default","defaultButtonStyles","button","width","height","AdvancedButton","isRecording","disabled","onPressIn","jsx","Pressable","style","styles","advancedButtonContainer","disabledCursor","children","Button","customColorScheme","ButtonStates","ACTIVE","backgroundColor","COLORS","PRIMARY_BLUE","borderColor","raiseColor","color","advancedButton","isActive","variant","ButtonVariant","TERTIARY","icon","CheckIcon","size","NEUTRAL_1","MicrophoneIcon","advancedMicrophoneIcon","NEUTRAL_9","VoiceRecordButton","model","buttonVariant","t","useText","availableInputs","useUnit","recorderModel","$availableInputs","voiceRecordState","$voiceRecordState","isButtonDisabled","$isButtonDisabled","isInitializing","initializeRecording","pending","VoiceRecorderState","RECORDING","hasInputs","length","preventDefault","notification","warning","pointerEvents","undefined","RecordButtonVariant","ADVANCED","recorderButtonHandler","testID","TEST_IDS","VOICE_RECORD_BUTTON","ButtonSize","LARGE","SECONDARY","colorScheme","ButtonColor","WHITE","IS_WEB","microphoneIconWeb","microphoneIconNative","exports","StyleSheet","create","alignItems","justifyContent","borderRadius","BORDER_RADIUS","boxShadow","VOICE_RECORD_SHADOWS","advancedIconContainer","cursor","minWidth","minHeight","advancedIconContainerActive"],"sourceRoot":"../../../../../../src","sources":["features/voice/recording/components/VoiceRecordButton.tsx"],"mappings":";;;;;;AAAA,IAAAA,MAAA,GAAAC,sBAAA,CAAAC,OAAA;AACA,IAAAC,cAAA,GAAAD,OAAA;AAaA,IAAAE,YAAA,GAAAF,OAAA;AAEA,IAAAG,cAAA,GAAAH,OAAA;AACA,IAAAI,WAAA,GAAAJ,OAAA;AACA,IAAAK,UAAA,GAAAL,OAAA;AACA,IAAAM,MAAA,GAAAN,OAAA;AACA,IAAAO,KAAA,GAAAP,OAAA;AAA+C,IAAAQ,WAAA,GAAAR,OAAA;AAAA,SAAAD,uBAAAU,CAAA,WAAAA,CAAA,IAAAA,CAAA,CAAAC,UAAA,GAAAD,CAAA,KAAAE,OAAA,EAAAF,CAAA;AAO/C,MAAMG,mBAAgC,GAAG;EACvCC,MAAM,EAAE;IACNC,KAAK,EAAE,EAAE;IACTC,MAAM,EAAE;EACV;AACF,CAAC;AAQD,MAAMC,cAAc,GAAGA,CAAC;EAAEC,WAAW;EAAEC,QAAQ;EAAEC;AAA+B,CAAC,KAAK;EACpF,oBACE,IAAAX,WAAA,CAAAY,GAAA,EAAClB,YAAA,CAAAmB,SAAS;IACRC,KAAK,EAAE,CAACC,MAAM,CAACC,uBAAuB,EAAEN,QAAQ,IAAIK,MAAM,CAACE,cAAc,CAAE;IAC3EN,SAAS,EAAEA,SAAU;IACrBD,QAAQ,EAAEA,QAAS;IAAAQ,QAAA,eAEnB,IAAAlB,WAAA,CAAAY,GAAA,EAACnB,cAAA,CAAA0B,MAAM;MACLC,iBAAiB,EAAE;QACjB,CAACC,2BAAY,CAACC,MAAM,GAAG;UACrBC,eAAe,EAAEC,qBAAM,CAACC,YAAY;UACpCC,WAAW,EAAEF,qBAAM,CAACC,YAAY;UAChCE,UAAU,EAAEH,qBAAM,CAACC,YAAY;UAC/BG,KAAK,EAAEJ,qBAAM,CAACC;QAChB;MACF,CAAE;MACFX,KAAK,EAAE;QACLT,MAAM,EAAEU,MAAM,CAACc;MACjB,CAAE;MACFC,QAAQ,EAAErB,WAAY;MACtBsB,OAAO,EAAEC,4BAAa,CAACC,QAAS;MAChCvB,QAAQ,EAAEA,QAAS;MACnBC,SAAS,EAAEA,SAAU;MACrBuB,IAAI,EACFzB,WAAW,gBACT,IAAAT,WAAA,CAAAY,GAAA,EAACnB,cAAA,CAAA0C,SAAS;QAACC,IAAI,EAAE,EAAG;QAACR,KAAK,EAAEJ,qBAAM,CAACa;MAAU,CAAE,CAAC,gBAEhD,IAAArC,WAAA,CAAAY,GAAA,EAACnB,cAAA,CAAA6C,cAAc;QACbxB,KAAK,EAAEC,MAAM,CAACwB,sBAAuB;QACrCX,KAAK,EAAEnB,WAAW,GAAGe,qBAAM,CAACa,SAAS,GAAGb,qBAAM,CAACgB;MAAU,CAC1D;IAEJ,CACF;EAAC,CACO,CAAC;AAEhB,CAAC;AAEM,MAAMC,iBAAiB,GAAGA,CAAC;EAAEC,KAAK;EAAEC;AAAsC,CAAC,KAAK;EACrF,MAAMC,CAAC,GAAG,IAAAC,aAAO,EAAC,CAAC;EAEnB,MAAMC,eAAe,GAAG,IAAAC,sBAAO,EAACL,KAAK,CAACM,aAAa,CAACC,gBAAgB,CAAC;EACrE,MAAMC,gBAAgB,GAAG,IAAAH,sBAAO,EAACL,KAAK,CAACM,aAAa,CAACG,iBAAiB,CAAC;EACvE,MAAMC,gBAAgB,GAAG,IAAAL,sBAAO,EAACL,KAAK,CAACW,iBAAiB,CAAC;EACzD,MAAMC,cAAc,GAAG,IAAAP,sBAAO,EAACL,KAAK,CAACa,mBAAmB,CAACC,OAAO,CAAC;EAEjE,MAAM/C,WAAW,GAAGyC,gBAAgB,KAAKO,6BAAkB,CAACC,SAAS;EACrE,MAAMC,SAAS,GAAGb,eAAe,CAACc,MAAM,GAAG,CAAC;EAE5C,oBACE,IAAA5D,WAAA,CAAAY,GAAA,EAAClB,YAAA,CAAAmB,SAAS;IACRF,SAAS,EAAGV,CAAC,IAAK;MAChB,IAAI0D,SAAS,EAAE;MACf1D,CAAC,CAAC4D,cAAc,CAAC,CAAC;MAClBnB,KAAK,CAACoB,YAAY,CAACC,OAAO,CAACnB,CAAC,CAAC,yBAAyB,CAAC,CAAC;IAC1D,CAAE;IACFoB,aAAa,EAAE,CAACL,SAAS,IAAIL,cAAc,GAAG,UAAU,GAAG,MAAO;IAClExC,KAAK,EAAE,CAACsC,gBAAgB,GAAGrC,MAAM,CAACE,cAAc,GAAGgD,SAAS,CAAE;IAAA/C,QAAA,EAE7DyB,aAAa,KAAKuB,0BAAmB,CAACC,QAAQ,gBAC7C,IAAAnE,WAAA,CAAAY,GAAA,EAACJ,cAAc;MACbC,WAAW,EAAEA,WAAY;MACzBC,QAAQ,EAAE0C,gBAAiB;MAC3BzC,SAAS,EAAEA,CAAA,KAAM+B,KAAK,CAAC0B,qBAAqB,CAAC;IAAE,CAChD,CAAC,gBAEF,IAAApE,WAAA,CAAAY,GAAA,EAACnB,cAAA,CAAA0B,MAAM;MACLkD,MAAM,EAAEC,oBAAQ,CAACC,mBAAoB;MACrC7D,QAAQ,EAAE0C,gBAAiB;MAC3BzC,SAAS,EAAEA,CAAA,KAAM+B,KAAK,CAAC0B,qBAAqB,CAAC,CAAE;MAC/CtD,KAAK,EAAEV,mBAAoB;MAC3BgC,IAAI,EAAEoC,yBAAU,CAACC,KAAM;MACvB1C,OAAO,EAAEC,4BAAa,CAAC0C,SAAU;MACjCC,WAAW,EAAEC,0BAAW,CAACC,KAAM;MAC/B3C,IAAI,EACFzB,WAAW,gBACT,IAAAT,WAAA,CAAAY,GAAA,EAACnB,cAAA,CAAA0C,SAAS;QAACC,IAAI,EAAE;MAAG,CAAE,CAAC,gBAEvB,IAAApC,WAAA,CAAAY,GAAA,EAACnB,cAAA,CAAA6C,cAAc;QACbxB,KAAK,EAAEgE,qBAAM,GAAG/D,MAAM,CAACgE,iBAAiB,GAAGhE,MAAM,CAACiE;MAAqB,CACxE;IAEJ,CACF;EACF,CACQ,CAAC;AAEhB,CAAC;AAAAC,OAAA,CAAAxC,iBAAA,GAAAA,iBAAA;AAED,MAAM1B,MAAM,GAAGmE,uBAAU,CAACC,MAAM,CAAC;EAC/BnE,uBAAuB,EAAE;IACvBV,KAAK,EAAE,EAAE;IACTC,MAAM,EAAE,EAAE;IACVgB,eAAe,EAAE,OAAO;IACxB6D,UAAU,EAAE,QAAQ;IACpBC,cAAc,EAAE,QAAQ;IACxBC,YAAY,EAAEC,4BAAa,CAAC,GAAG,CAAC;IAChCC,SAAS,EAAEC,+BAAoB,CAACvB,0BAAmB,CAACC,QAAQ;EAC9D,CAAC;EACDuB,qBAAqB,EAAE;IACrBpF,KAAK,EAAE,EAAE;IACTC,MAAM,EAAE,EAAE;IACV+E,YAAY,EAAEC,4BAAa,CAAC,GAAG,CAAC;IAChCF,cAAc,EAAE,QAAQ;IACxBD,UAAU,EAAE;EACd,CAAC;EACDnE,cAAc,EAAE;IACd;IACA0E,MAAM,EAAE;EACV,CAAC;EACDZ,iBAAiB,EAAE;IACjBzE,KAAK,EAAE;EACT,CAAC;EACD0E,oBAAoB,EAAE;IACpBY,QAAQ,EAAE,EAAE;IACZC,SAAS,EAAE;EACb,CAAC;EACDC,2BAA2B,EAAE;IAC3BR,YAAY,EAAE,EAAE;IAChB/D,eAAe,EAAEC,qBAAM,CAACC;EAC1B,CAAC;EACDc,sBAAsB,EAAE;IACtBjC,KAAK,EAAE,EAAE;IACTC,MAAM,EAAE;EACV,CAAC;EACDsB,cAAc,EAAE;IACd2D,SAAS,EAAE;EACb;AACF,CAAC,CAAC","ignoreList":[]}
@@ -13,14 +13,15 @@ function controlledRequest(request) {
13
13
  abortAfter = 20000
14
14
  }) => {
15
15
  let timeout = null;
16
- if (abortAfter) {
17
- timeout = setTimeout(() => {
18
- controller.abort('timeout');
19
- }, abortAfter);
20
- }
16
+ const scheduleAbort = ms => {
17
+ if (timeout !== null) clearTimeout(timeout);
18
+ timeout = ms > 0 ? setTimeout(() => controller.abort('timeout'), ms) : null;
19
+ };
20
+ if (abortAfter) scheduleAbort(abortAfter);
21
21
  try {
22
22
  const response = await request(data, {
23
- signal: controller?.signal
23
+ signal: controller?.signal,
24
+ extendTimeoutMs: scheduleAbort
24
25
  });
25
26
  if (timeout !== null) clearTimeout(timeout);
26
27
  return response;
@@ -1 +1 @@
1
- {"version":3,"names":["_effector","require","controlledRequest","request","data","controller","AbortController","abortAfter","timeout","setTimeout","abort","response","signal","clearTimeout","error","code","reason","Error","createControllerEffect","fn","effect","createEffect","fail","watch","exports"],"sourceRoot":"../../../../src","sources":["lib/effector/createControllerEffect.ts"],"mappings":";;;;;;;AAAA,IAAAA,SAAA,GAAAC,OAAA;AAkBO,SAASC,iBAAiBA,CAC/BC,OAAiE,EACjE;EACA,OAAO,OAAO;IACZC,IAAI;IACJC,UAAU,GAAG,IAAIC,eAAe,CAAC,CAAC;IAClCC,UAAU,GAAG;EACY,CAAC,KAAK;IAC/B,IAAIC,OAA6C,GAAG,IAAI;IAExD,IAAID,UAAU,EAAE;MACdC,OAAO,GAAGC,UAAU,CAAC,MAAM;QACzBJ,UAAU,CAACK,KAAK,CAAC,SAAS,CAAC;MAC7B,CAAC,EAAEH,UAAU,CAAC;IAChB;IAEA,IAAI;MACF,MAAMI,QAAQ,GAAG,MAAMR,OAAO,CAACC,IAAI,EAAE;QAAEQ,MAAM,EAAEP,UAAU,EAAEO;MAAO,CAAC,CAAC;MACpE,IAAIJ,OAAO,KAAK,IAAI,EAAEK,YAAY,CAACL,OAAO,CAAC;MAC3C,OAAOG,QAAQ;IACjB,CAAC,CAAC,OAAOG,KAAc,EAAE;MACvB,IAAKA,KAAK,CAAuBC,IAAI,KAAK,cAAc,EAAE;QACxD,IAAIV,UAAU,CAACO,MAAM,CAACI,MAAM,KAAK,SAAS,EAAE;UAC1C,MAAM,IAAIC,KAAK,CAAC,mBAAmB,CAAC;QACtC;QACA,MAAM,IAAIA,KAAK,CAAC,0BAA0B,CAAC;MAC7C;MAEA,MAAMH,KAAK;IACb;EACF,CAAC;AACH;AAEO,MAAMI,sBAAsB,GACjCC,EAA4D,IACzD;EACH,MAAMhB,OAAO,GAAGD,iBAAiB,CAAOiB,EAAE,CAAC;EAC3C,MAAMC,MAAM,GAAG,IAAAC,sBAAY,EAAEjB,IAAO,IAClCD,OAAO,CAAC;IAAEC,IAAI;IAAEC,UAAU,EAAEe,MAAM,CAACf;EAAW,CAAC,CACjD,CAA2B;EAC3Be,MAAM,CAACf,UAAU,GAAG,IAAIC,eAAe,CAAC,CAAC;EAEzCc,MAAM,CAACE,IAAI,CAACC,KAAK,CAAC,MAAM;IACtBH,MAAM,CAACf,UAAU,GAAG,IAAIC,eAAe,CAAC,CAAC;EAC3C,CAAC,CAAC;EAEF,OAAOc,MAAM;AACf,CAAC;AAAAI,OAAA,CAAAN,sBAAA,GAAAA,sBAAA","ignoreList":[]}
1
+ {"version":3,"names":["_effector","require","controlledRequest","request","data","controller","AbortController","abortAfter","timeout","scheduleAbort","ms","clearTimeout","setTimeout","abort","response","signal","extendTimeoutMs","error","code","reason","Error","createControllerEffect","fn","effect","createEffect","fail","watch","exports"],"sourceRoot":"../../../../src","sources":["lib/effector/createControllerEffect.ts"],"mappings":";;;;;;;AAAA,IAAAA,SAAA,GAAAC,OAAA;AAqBO,SAASC,iBAAiBA,CAC/BC,OAAiE,EACjE;EACA,OAAO,OAAO;IACZC,IAAI;IACJC,UAAU,GAAG,IAAIC,eAAe,CAAC,CAAC;IAClCC,UAAU,GAAG;EACY,CAAC,KAAK;IAC/B,IAAIC,OAA6C,GAAG,IAAI;IAExD,MAAMC,aAAa,GAAIC,EAAU,IAAK;MACpC,IAAIF,OAAO,KAAK,IAAI,EAAEG,YAAY,CAACH,OAAO,CAAC;MAC3CA,OAAO,GAAGE,EAAE,GAAG,CAAC,GAAGE,UAAU,CAAC,MAAMP,UAAU,CAACQ,KAAK,CAAC,SAAS,CAAC,EAAEH,EAAE,CAAC,GAAG,IAAI;IAC7E,CAAC;IAED,IAAIH,UAAU,EAAEE,aAAa,CAACF,UAAU,CAAC;IAEzC,IAAI;MACF,MAAMO,QAAQ,GAAG,MAAMX,OAAO,CAACC,IAAI,EAAE;QACnCW,MAAM,EAAEV,UAAU,EAAEU,MAAM;QAC1BC,eAAe,EAAEP;MACnB,CAAC,CAAC;MACF,IAAID,OAAO,KAAK,IAAI,EAAEG,YAAY,CAACH,OAAO,CAAC;MAC3C,OAAOM,QAAQ;IACjB,CAAC,CAAC,OAAOG,KAAc,EAAE;MACvB,IAAKA,KAAK,CAAuBC,IAAI,KAAK,cAAc,EAAE;QACxD,IAAIb,UAAU,CAACU,MAAM,CAACI,MAAM,KAAK,SAAS,EAAE;UAC1C,MAAM,IAAIC,KAAK,CAAC,mBAAmB,CAAC;QACtC;QACA,MAAM,IAAIA,KAAK,CAAC,0BAA0B,CAAC;MAC7C;MAEA,MAAMH,KAAK;IACb;EACF,CAAC;AACH;AAEO,MAAMI,sBAAsB,GACjCC,EAA4D,IACzD;EACH,MAAMnB,OAAO,GAAGD,iBAAiB,CAAOoB,EAAE,CAAC;EAC3C,MAAMC,MAAM,GAAG,IAAAC,sBAAY,EAAEpB,IAAO,IAClCD,OAAO,CAAC;IAAEC,IAAI;IAAEC,UAAU,EAAEkB,MAAM,CAAClB;EAAW,CAAC,CACjD,CAA2B;EAC3BkB,MAAM,CAAClB,UAAU,GAAG,IAAIC,eAAe,CAAC,CAAC;EAEzCiB,MAAM,CAACE,IAAI,CAACC,KAAK,CAAC,MAAM;IACtBH,MAAM,CAAClB,UAAU,GAAG,IAAIC,eAAe,CAAC,CAAC;EAC3C,CAAC,CAAC;EAEF,OAAOiB,MAAM;AACf,CAAC;AAAAI,OAAA,CAAAN,sBAAA,GAAAA,sBAAA","ignoreList":[]}
@@ -4,6 +4,7 @@ import { createEffect, sample } from 'effector';
4
4
  import { TranscriptionStatus } from "../../voice/types.js";
5
5
  const TRANSCRIPT_RETRY_INTERVAL_MS = 2000;
6
6
  const TRANSCRIPT_MAX_RETRIES = 20;
7
+ const CHAT_WITH_VOICE_TIMEOUT_MS = 60_000;
7
8
  // Voice key: `${assignmentId}-${problemId}-${attemptsCount}`
8
9
  // Chat key: `${assignmentId}-${problemId}` — survives attempt increments and voice deletion.
9
10
  const toChatKey = voiceKey => {
@@ -35,6 +36,9 @@ export class VoiceTranscriptSnapshotModel {
35
36
  };
36
37
  wrapRequestHint = apiFn => {
37
38
  return async (params, requestConfig) => {
39
+ if (this.hasPendingVoice()) {
40
+ requestConfig?.extendTimeoutMs?.(CHAT_WITH_VOICE_TIMEOUT_MS);
41
+ }
38
42
  const voiceTranscript = await this.getTranscriptForCurrent();
39
43
  return apiFn(voiceTranscript ? {
40
44
  ...params,
@@ -42,6 +46,13 @@ export class VoiceTranscriptSnapshotModel {
42
46
  } : params, requestConfig);
43
47
  };
44
48
  };
49
+ hasPendingVoice() {
50
+ const voiceKey = this.voiceRecord.$currentKey.getState();
51
+ if (!voiceKey) return false;
52
+ const chatKey = toChatKey(voiceKey);
53
+ if (chatKey && this.snapshotByChatKey.has(chatKey)) return true;
54
+ return !!this.voiceRecord.collection.get(voiceKey);
55
+ }
45
56
  constructor({
46
57
  voiceRecord,
47
58
  api
@@ -58,18 +69,26 @@ export class VoiceTranscriptSnapshotModel {
58
69
  }),
59
70
  target: this.captureSnapshotFx
60
71
  });
72
+ sample({
73
+ clock: voiceRecord.deleteCurrentRecording,
74
+ source: voiceRecord.$currentKey,
75
+ target: this.clearSnapshotFx
76
+ });
61
77
  }
62
78
  transcriptByAudioFileId = new Map();
63
79
  snapshotByChatKey = new Map();
64
- captureSnapshotFx = createEffect(async ({
80
+ captureSnapshotFx = createEffect(({
65
81
  voiceKey,
66
82
  record
67
83
  }) => {
68
84
  const chatKey = toChatKey(voiceKey);
69
85
  if (!chatKey) return;
70
- const audioFileId = await this.resolveAudioFileId(record);
71
- if (!audioFileId) return;
72
- this.snapshotByChatKey.set(chatKey, this.fetchTranscript(audioFileId));
86
+ const transcriptPromise = this.resolveAudioFileId(record).then(audioFileId => audioFileId ? this.fetchTranscript(audioFileId) : undefined);
87
+ this.snapshotByChatKey.set(chatKey, transcriptPromise);
88
+ });
89
+ clearSnapshotFx = createEffect(voiceKey => {
90
+ const chatKey = toChatKey(voiceKey);
91
+ if (chatKey) this.snapshotByChatKey.delete(chatKey);
73
92
  });
74
93
  async pollTranscript(audioFileId) {
75
94
  for (let attempt = 0; attempt < TRANSCRIPT_MAX_RETRIES; attempt++) {
@@ -1 +1 @@
1
- {"version":3,"names":["createEffect","sample","TranscriptionStatus","TRANSCRIPT_RETRY_INTERVAL_MS","TRANSCRIPT_MAX_RETRIES","toChatKey","voiceKey","lastDashIndex","lastIndexOf","slice","VoiceTranscriptSnapshotModel","fetchTranscript","audioFileId","cached","transcriptByAudioFileId","get","promise","pollTranscript","catch","undefined","set","getTranscriptForCurrent","voiceRecord","$currentKey","getState","chatKey","snapshot","snapshotByChatKey","record","collection","resolveAudioFileId","wrapRequestHint","apiFn","params","requestConfig","voiceTranscript","constructor","api","clock","setCurrentRecord","source","filter","_","fn","target","captureSnapshotFx","Map","attempt","Promise","resolve","setTimeout","response","getAudioFileTranscript","status","COMPLETED","text","FAILED","id","audioUploadPromise","result"],"sourceRoot":"../../../../../src","sources":["features/chatbot/model/VoiceTranscriptSnapshotModel.ts"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["createEffect","sample","TranscriptionStatus","TRANSCRIPT_RETRY_INTERVAL_MS","TRANSCRIPT_MAX_RETRIES","CHAT_WITH_VOICE_TIMEOUT_MS","toChatKey","voiceKey","lastDashIndex","lastIndexOf","slice","VoiceTranscriptSnapshotModel","fetchTranscript","audioFileId","cached","transcriptByAudioFileId","get","promise","pollTranscript","catch","undefined","set","getTranscriptForCurrent","voiceRecord","$currentKey","getState","chatKey","snapshot","snapshotByChatKey","record","collection","resolveAudioFileId","wrapRequestHint","apiFn","params","requestConfig","hasPendingVoice","extendTimeoutMs","voiceTranscript","has","constructor","api","clock","setCurrentRecord","source","filter","_","fn","target","captureSnapshotFx","deleteCurrentRecording","clearSnapshotFx","Map","transcriptPromise","then","delete","attempt","Promise","resolve","setTimeout","response","getAudioFileTranscript","status","COMPLETED","text","FAILED","id","audioUploadPromise","result"],"sourceRoot":"../../../../../src","sources":["features/chatbot/model/VoiceTranscriptSnapshotModel.ts"],"mappings":"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","ignoreList":[]}
@@ -38,13 +38,14 @@ const AdvancedButton = ({
38
38
  },
39
39
  isActive: isRecording,
40
40
  variant: ButtonVariant.TERTIARY,
41
+ disabled: disabled,
41
42
  onPressIn: onPressIn,
42
43
  icon: isRecording ? /*#__PURE__*/_jsx(CheckIcon, {
43
44
  size: 25,
44
45
  color: COLORS.NEUTRAL_1
45
46
  }) : /*#__PURE__*/_jsx(MicrophoneIcon, {
46
47
  style: styles.advancedMicrophoneIcon,
47
- color: disabled ? COLORS.NEUTRAL_5 : isRecording ? COLORS.NEUTRAL_1 : COLORS.NEUTRAL_9
48
+ color: isRecording ? COLORS.NEUTRAL_1 : COLORS.NEUTRAL_9
48
49
  })
49
50
  })
50
51
  });
@@ -1 +1 @@
1
- {"version":3,"names":["React","BORDER_RADIUS","Button","ButtonColor","ButtonSize","ButtonStates","ButtonVariant","CheckIcon","COLORS","IS_WEB","MicrophoneIcon","Pressable","StyleSheet","useUnit","TEST_IDS","VOICE_RECORD_SHADOWS","VoiceRecorderState","RecordButtonVariant","useText","jsx","_jsx","defaultButtonStyles","button","width","height","AdvancedButton","isRecording","disabled","onPressIn","style","styles","advancedButtonContainer","disabledCursor","children","customColorScheme","ACTIVE","backgroundColor","PRIMARY_BLUE","borderColor","raiseColor","color","advancedButton","isActive","variant","TERTIARY","icon","size","NEUTRAL_1","advancedMicrophoneIcon","NEUTRAL_5","NEUTRAL_9","VoiceRecordButton","model","buttonVariant","t","availableInputs","recorderModel","$availableInputs","voiceRecordState","$voiceRecordState","isButtonDisabled","$isButtonDisabled","isInitializing","initializeRecording","pending","RECORDING","hasInputs","length","e","preventDefault","notification","warning","pointerEvents","undefined","ADVANCED","recorderButtonHandler","testID","VOICE_RECORD_BUTTON","LARGE","SECONDARY","colorScheme","WHITE","microphoneIconWeb","microphoneIconNative","create","alignItems","justifyContent","borderRadius","boxShadow","advancedIconContainer","cursor","minWidth","minHeight","advancedIconContainerActive"],"sourceRoot":"../../../../../../src","sources":["features/voice/recording/components/VoiceRecordButton.tsx"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["React","BORDER_RADIUS","Button","ButtonColor","ButtonSize","ButtonStates","ButtonVariant","CheckIcon","COLORS","IS_WEB","MicrophoneIcon","Pressable","StyleSheet","useUnit","TEST_IDS","VOICE_RECORD_SHADOWS","VoiceRecorderState","RecordButtonVariant","useText","jsx","_jsx","defaultButtonStyles","button","width","height","AdvancedButton","isRecording","disabled","onPressIn","style","styles","advancedButtonContainer","disabledCursor","children","customColorScheme","ACTIVE","backgroundColor","PRIMARY_BLUE","borderColor","raiseColor","color","advancedButton","isActive","variant","TERTIARY","icon","size","NEUTRAL_1","advancedMicrophoneIcon","NEUTRAL_9","VoiceRecordButton","model","buttonVariant","t","availableInputs","recorderModel","$availableInputs","voiceRecordState","$voiceRecordState","isButtonDisabled","$isButtonDisabled","isInitializing","initializeRecording","pending","RECORDING","hasInputs","length","e","preventDefault","notification","warning","pointerEvents","undefined","ADVANCED","recorderButtonHandler","testID","VOICE_RECORD_BUTTON","LARGE","SECONDARY","colorScheme","WHITE","microphoneIconWeb","microphoneIconNative","create","alignItems","justifyContent","borderRadius","boxShadow","advancedIconContainer","cursor","minWidth","minHeight","advancedIconContainerActive"],"sourceRoot":"../../../../../../src","sources":["features/voice/recording/components/VoiceRecordButton.tsx"],"mappings":"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","ignoreList":[]}
@@ -8,14 +8,15 @@ export function controlledRequest(request) {
8
8
  abortAfter = 20000
9
9
  }) => {
10
10
  let timeout = null;
11
- if (abortAfter) {
12
- timeout = setTimeout(() => {
13
- controller.abort('timeout');
14
- }, abortAfter);
15
- }
11
+ const scheduleAbort = ms => {
12
+ if (timeout !== null) clearTimeout(timeout);
13
+ timeout = ms > 0 ? setTimeout(() => controller.abort('timeout'), ms) : null;
14
+ };
15
+ if (abortAfter) scheduleAbort(abortAfter);
16
16
  try {
17
17
  const response = await request(data, {
18
- signal: controller?.signal
18
+ signal: controller?.signal,
19
+ extendTimeoutMs: scheduleAbort
19
20
  });
20
21
  if (timeout !== null) clearTimeout(timeout);
21
22
  return response;
@@ -1 +1 @@
1
- {"version":3,"names":["createEffect","controlledRequest","request","data","controller","AbortController","abortAfter","timeout","setTimeout","abort","response","signal","clearTimeout","error","code","reason","Error","createControllerEffect","fn","effect","fail","watch"],"sourceRoot":"../../../../src","sources":["lib/effector/createControllerEffect.ts"],"mappings":";;AAAA,SAASA,YAAY,QAAqB,UAAU;AAkBpD,OAAO,SAASC,iBAAiBA,CAC/BC,OAAiE,EACjE;EACA,OAAO,OAAO;IACZC,IAAI;IACJC,UAAU,GAAG,IAAIC,eAAe,CAAC,CAAC;IAClCC,UAAU,GAAG;EACY,CAAC,KAAK;IAC/B,IAAIC,OAA6C,GAAG,IAAI;IAExD,IAAID,UAAU,EAAE;MACdC,OAAO,GAAGC,UAAU,CAAC,MAAM;QACzBJ,UAAU,CAACK,KAAK,CAAC,SAAS,CAAC;MAC7B,CAAC,EAAEH,UAAU,CAAC;IAChB;IAEA,IAAI;MACF,MAAMI,QAAQ,GAAG,MAAMR,OAAO,CAACC,IAAI,EAAE;QAAEQ,MAAM,EAAEP,UAAU,EAAEO;MAAO,CAAC,CAAC;MACpE,IAAIJ,OAAO,KAAK,IAAI,EAAEK,YAAY,CAACL,OAAO,CAAC;MAC3C,OAAOG,QAAQ;IACjB,CAAC,CAAC,OAAOG,KAAc,EAAE;MACvB,IAAKA,KAAK,CAAuBC,IAAI,KAAK,cAAc,EAAE;QACxD,IAAIV,UAAU,CAACO,MAAM,CAACI,MAAM,KAAK,SAAS,EAAE;UAC1C,MAAM,IAAIC,KAAK,CAAC,mBAAmB,CAAC;QACtC;QACA,MAAM,IAAIA,KAAK,CAAC,0BAA0B,CAAC;MAC7C;MAEA,MAAMH,KAAK;IACb;EACF,CAAC;AACH;AAEA,OAAO,MAAMI,sBAAsB,GACjCC,EAA4D,IACzD;EACH,MAAMhB,OAAO,GAAGD,iBAAiB,CAAOiB,EAAE,CAAC;EAC3C,MAAMC,MAAM,GAAGnB,YAAY,CAAEG,IAAO,IAClCD,OAAO,CAAC;IAAEC,IAAI;IAAEC,UAAU,EAAEe,MAAM,CAACf;EAAW,CAAC,CACjD,CAA2B;EAC3Be,MAAM,CAACf,UAAU,GAAG,IAAIC,eAAe,CAAC,CAAC;EAEzCc,MAAM,CAACC,IAAI,CAACC,KAAK,CAAC,MAAM;IACtBF,MAAM,CAACf,UAAU,GAAG,IAAIC,eAAe,CAAC,CAAC;EAC3C,CAAC,CAAC;EAEF,OAAOc,MAAM;AACf,CAAC","ignoreList":[]}
1
+ {"version":3,"names":["createEffect","controlledRequest","request","data","controller","AbortController","abortAfter","timeout","scheduleAbort","ms","clearTimeout","setTimeout","abort","response","signal","extendTimeoutMs","error","code","reason","Error","createControllerEffect","fn","effect","fail","watch"],"sourceRoot":"../../../../src","sources":["lib/effector/createControllerEffect.ts"],"mappings":";;AAAA,SAASA,YAAY,QAAqB,UAAU;AAqBpD,OAAO,SAASC,iBAAiBA,CAC/BC,OAAiE,EACjE;EACA,OAAO,OAAO;IACZC,IAAI;IACJC,UAAU,GAAG,IAAIC,eAAe,CAAC,CAAC;IAClCC,UAAU,GAAG;EACY,CAAC,KAAK;IAC/B,IAAIC,OAA6C,GAAG,IAAI;IAExD,MAAMC,aAAa,GAAIC,EAAU,IAAK;MACpC,IAAIF,OAAO,KAAK,IAAI,EAAEG,YAAY,CAACH,OAAO,CAAC;MAC3CA,OAAO,GAAGE,EAAE,GAAG,CAAC,GAAGE,UAAU,CAAC,MAAMP,UAAU,CAACQ,KAAK,CAAC,SAAS,CAAC,EAAEH,EAAE,CAAC,GAAG,IAAI;IAC7E,CAAC;IAED,IAAIH,UAAU,EAAEE,aAAa,CAACF,UAAU,CAAC;IAEzC,IAAI;MACF,MAAMO,QAAQ,GAAG,MAAMX,OAAO,CAACC,IAAI,EAAE;QACnCW,MAAM,EAAEV,UAAU,EAAEU,MAAM;QAC1BC,eAAe,EAAEP;MACnB,CAAC,CAAC;MACF,IAAID,OAAO,KAAK,IAAI,EAAEG,YAAY,CAACH,OAAO,CAAC;MAC3C,OAAOM,QAAQ;IACjB,CAAC,CAAC,OAAOG,KAAc,EAAE;MACvB,IAAKA,KAAK,CAAuBC,IAAI,KAAK,cAAc,EAAE;QACxD,IAAIb,UAAU,CAACU,MAAM,CAACI,MAAM,KAAK,SAAS,EAAE;UAC1C,MAAM,IAAIC,KAAK,CAAC,mBAAmB,CAAC;QACtC;QACA,MAAM,IAAIA,KAAK,CAAC,0BAA0B,CAAC;MAC7C;MAEA,MAAMH,KAAK;IACb;EACF,CAAC;AACH;AAEA,OAAO,MAAMI,sBAAsB,GACjCC,EAA4D,IACzD;EACH,MAAMnB,OAAO,GAAGD,iBAAiB,CAAOoB,EAAE,CAAC;EAC3C,MAAMC,MAAM,GAAGtB,YAAY,CAAEG,IAAO,IAClCD,OAAO,CAAC;IAAEC,IAAI;IAAEC,UAAU,EAAEkB,MAAM,CAAClB;EAAW,CAAC,CACjD,CAA2B;EAC3BkB,MAAM,CAAClB,UAAU,GAAG,IAAIC,eAAe,CAAC,CAAC;EAEzCiB,MAAM,CAACC,IAAI,CAACC,KAAK,CAAC,MAAM;IACtBF,MAAM,CAAClB,UAAU,GAAG,IAAIC,eAAe,CAAC,CAAC;EAC3C,CAAC,CAAC;EAEF,OAAOiB,MAAM;AACf,CAAC","ignoreList":[]}
@@ -14,12 +14,14 @@ export declare class VoiceTranscriptSnapshotModel {
14
14
  readonly wrapRequestHint: <P extends object, R>(apiFn: (params: P & {
15
15
  voiceTranscript?: string;
16
16
  }, requestConfig?: RequestOptionalConfig) => Promise<R>) => (params: P, requestConfig?: RequestOptionalConfig) => Promise<R>;
17
+ private hasPendingVoice;
17
18
  constructor({ voiceRecord, api }: VoiceTranscriptSnapshotModelProps);
18
19
  private readonly voiceRecord;
19
20
  private readonly api;
20
21
  private readonly transcriptByAudioFileId;
21
22
  private readonly snapshotByChatKey;
22
23
  private readonly captureSnapshotFx;
24
+ private readonly clearSnapshotFx;
23
25
  private pollTranscript;
24
26
  private resolveAudioFileId;
25
27
  }
@@ -1 +1 @@
1
- {"version":3,"file":"VoiceTranscriptSnapshotModel.d.ts","sourceRoot":"","sources":["../../../../../../src/features/chatbot/model/VoiceTranscriptSnapshotModel.ts"],"names":[],"mappings":"AACA,OAAO,EACL,uBAAuB,EAGxB,MAAM,mBAAmB,CAAA;AAC1B,OAAO,EAAE,gBAAgB,EAAE,MAAM,+CAA+C,CAAA;AAChF,OAAO,EAAE,qBAAqB,EAAE,MAAM,8CAA8C,CAAA;AAKpF,KAAK,gBAAgB,GAAG;IACtB,sBAAsB,EAAE,CAAC,WAAW,EAAE,MAAM,KAAK,OAAO,CAAC,uBAAuB,CAAC,CAAA;CAClF,CAAA;AAOD,KAAK,iCAAiC,GAAG;IACvC,WAAW,EAAE,gBAAgB,CAAA;IAC7B,GAAG,EAAE,gBAAgB,CAAA;CACtB,CAAA;AAUD,qBAAa,4BAA4B;IACvC,SAAgB,eAAe,gBAAiB,MAAM,KAAG,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CAOnF;IAED,SAAgB,uBAAuB,QAAa,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CAiB9E;IAED,SAAgB,eAAe,GAAI,CAAC,SAAS,MAAM,EAAE,CAAC,SAC7C,CACL,MAAM,EAAE,CAAC,GAAG;QAAE,eAAe,CAAC,EAAE,MAAM,CAAA;KAAE,EACxC,aAAa,CAAC,EAAE,qBAAqB,KAClC,OAAO,CAAC,CAAC,CAAC,cAEO,CAAC,kBAAkB,qBAAqB,KAAG,OAAO,CAAC,CAAC,CAAC,CAI5E;gBAEW,EAAE,WAAW,EAAE,GAAG,EAAE,EAAE,iCAAiC;IAanE,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAkB;IAC9C,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAkB;IACtC,OAAO,CAAC,QAAQ,CAAC,uBAAuB,CAAiD;IACzF,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAAiD;IAEnF,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAQhC;YAEY,cAAc;YAYd,kBAAkB;CAUjC"}
1
+ {"version":3,"file":"VoiceTranscriptSnapshotModel.d.ts","sourceRoot":"","sources":["../../../../../../src/features/chatbot/model/VoiceTranscriptSnapshotModel.ts"],"names":[],"mappings":"AACA,OAAO,EACL,uBAAuB,EAGxB,MAAM,mBAAmB,CAAA;AAC1B,OAAO,EAAE,gBAAgB,EAAE,MAAM,+CAA+C,CAAA;AAChF,OAAO,EAAE,qBAAqB,EAAE,MAAM,8CAA8C,CAAA;AAMpF,KAAK,gBAAgB,GAAG;IACtB,sBAAsB,EAAE,CAAC,WAAW,EAAE,MAAM,KAAK,OAAO,CAAC,uBAAuB,CAAC,CAAA;CAClF,CAAA;AAOD,KAAK,iCAAiC,GAAG;IACvC,WAAW,EAAE,gBAAgB,CAAA;IAC7B,GAAG,EAAE,gBAAgB,CAAA;CACtB,CAAA;AAUD,qBAAa,4BAA4B;IACvC,SAAgB,eAAe,gBAAiB,MAAM,KAAG,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CAOnF;IAED,SAAgB,uBAAuB,QAAa,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CAiB9E;IAED,SAAgB,eAAe,GAAI,CAAC,SAAS,MAAM,EAAE,CAAC,SAC7C,CACL,MAAM,EAAE,CAAC,GAAG;QAAE,eAAe,CAAC,EAAE,MAAM,CAAA;KAAE,EACxC,aAAa,CAAC,EAAE,qBAAqB,KAClC,OAAO,CAAC,CAAC,CAAC,cAEO,CAAC,kBAAkB,qBAAqB,KAAG,OAAO,CAAC,CAAC,CAAC,CAO5E;IAED,OAAO,CAAC,eAAe;gBAQX,EAAE,WAAW,EAAE,GAAG,EAAE,EAAE,iCAAiC;IAmBnE,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAkB;IAC9C,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAkB;IACtC,OAAO,CAAC,QAAQ,CAAC,uBAAuB,CAAiD;IACzF,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAAiD;IAEnF,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAQhC;IAEF,OAAO,CAAC,QAAQ,CAAC,eAAe,CAG9B;YAEY,cAAc;YAYd,kBAAkB;CAUjC"}
@@ -1 +1 @@
1
- {"version":3,"file":"VoiceRecordButton.d.ts","sourceRoot":"","sources":["../../../../../../../src/features/voice/recording/components/VoiceRecordButton.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAA;AAezB,OAAO,EAAE,gBAAgB,EAAE,MAAM,4BAA4B,CAAA;AAI7D,OAAO,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAA;AAGjD,KAAK,sBAAsB,GAAG;IAC5B,KAAK,EAAE,gBAAgB,CAAA;IACvB,aAAa,EAAE,mBAAmB,CAAA;CACnC,CAAA;AAsDD,eAAO,MAAM,iBAAiB,6BAA8B,sBAAsB,sBAiDjF,CAAA"}
1
+ {"version":3,"file":"VoiceRecordButton.d.ts","sourceRoot":"","sources":["../../../../../../../src/features/voice/recording/components/VoiceRecordButton.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAA;AAezB,OAAO,EAAE,gBAAgB,EAAE,MAAM,4BAA4B,CAAA;AAI7D,OAAO,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAA;AAGjD,KAAK,sBAAsB,GAAG;IAC5B,KAAK,EAAE,gBAAgB,CAAA;IACvB,aAAa,EAAE,mBAAmB,CAAA;CACnC,CAAA;AAqDD,eAAO,MAAM,iBAAiB,6BAA8B,sBAAsB,sBAiDjF,CAAA"}
@@ -9,6 +9,7 @@ type ControlledRequestProps<P> = {
9
9
  };
10
10
  export type RequestOptionalConfig = {
11
11
  signal?: AbortSignal;
12
+ extendTimeoutMs?: (ms: number) => void;
12
13
  };
13
14
  export declare function controlledRequest<R = void, P = void>(request: (props: P, config?: RequestOptionalConfig) => Promise<R>): ({ data, controller, abortAfter, }: ControlledRequestProps<P>) => Promise<R>;
14
15
  export declare const createControllerEffect: <T, P = void>(fn: (props: P, config?: RequestOptionalConfig) => Promise<T>) => ControlledEffect<P, T>;
@@ -1 +1 @@
1
- {"version":3,"file":"createControllerEffect.d.ts","sourceRoot":"","sources":["../../../../../src/lib/effector/createControllerEffect.ts"],"names":[],"mappings":"AAAA,OAAO,EAAgB,KAAK,MAAM,EAAE,MAAM,UAAU,CAAA;AAMpD,MAAM,MAAM,gBAAgB,CAAC,CAAC,EAAE,CAAC,IAAI,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG;IAClD,UAAU,EAAE,eAAe,CAAA;CAC5B,CAAA;AAED,KAAK,sBAAsB,CAAC,CAAC,IAAI;IAC/B,IAAI,EAAE,CAAC,CAAA;IACP,UAAU,CAAC,EAAE,eAAe,CAAA;IAC5B,UAAU,CAAC,EAAE,MAAM,CAAA;CACpB,CAAA;AAED,MAAM,MAAM,qBAAqB,GAAG;IAAE,MAAM,CAAC,EAAE,WAAW,CAAA;CAAE,CAAA;AAE5D,wBAAgB,iBAAiB,CAAC,CAAC,GAAG,IAAI,EAAE,CAAC,GAAG,IAAI,EAClD,OAAO,EAAE,CAAC,KAAK,EAAE,CAAC,EAAE,MAAM,CAAC,EAAE,qBAAqB,KAAK,OAAO,CAAC,CAAC,CAAC,uCAM9D,sBAAsB,CAAC,CAAC,CAAC,gBAwB7B;AAED,eAAO,MAAM,sBAAsB,GAAI,CAAC,EAAE,CAAC,aACrC,CAAC,KAAK,EAAE,CAAC,EAAE,MAAM,CAAC,EAAE,qBAAqB,KAAK,OAAO,CAAC,CAAC,CAAC,2BAa7D,CAAA"}
1
+ {"version":3,"file":"createControllerEffect.d.ts","sourceRoot":"","sources":["../../../../../src/lib/effector/createControllerEffect.ts"],"names":[],"mappings":"AAAA,OAAO,EAAgB,KAAK,MAAM,EAAE,MAAM,UAAU,CAAA;AAMpD,MAAM,MAAM,gBAAgB,CAAC,CAAC,EAAE,CAAC,IAAI,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG;IAClD,UAAU,EAAE,eAAe,CAAA;CAC5B,CAAA;AAED,KAAK,sBAAsB,CAAC,CAAC,IAAI;IAC/B,IAAI,EAAE,CAAC,CAAA;IACP,UAAU,CAAC,EAAE,eAAe,CAAA;IAC5B,UAAU,CAAC,EAAE,MAAM,CAAA;CACpB,CAAA;AAED,MAAM,MAAM,qBAAqB,GAAG;IAClC,MAAM,CAAC,EAAE,WAAW,CAAA;IACpB,eAAe,CAAC,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,IAAI,CAAA;CACvC,CAAA;AAED,wBAAgB,iBAAiB,CAAC,CAAC,GAAG,IAAI,EAAE,CAAC,GAAG,IAAI,EAClD,OAAO,EAAE,CAAC,KAAK,EAAE,CAAC,EAAE,MAAM,CAAC,EAAE,qBAAqB,KAAK,OAAO,CAAC,CAAC,CAAC,uCAM9D,sBAAsB,CAAC,CAAC,CAAC,gBA4B7B;AAED,eAAO,MAAM,sBAAsB,GAAI,CAAC,EAAE,CAAC,aACrC,CAAC,KAAK,EAAE,CAAC,EAAE,MAAM,CAAC,EAAE,qBAAqB,KAAK,OAAO,CAAC,CAAC,CAAC,2BAa7D,CAAA"}
@@ -14,12 +14,14 @@ export declare class VoiceTranscriptSnapshotModel {
14
14
  readonly wrapRequestHint: <P extends object, R>(apiFn: (params: P & {
15
15
  voiceTranscript?: string;
16
16
  }, requestConfig?: RequestOptionalConfig) => Promise<R>) => (params: P, requestConfig?: RequestOptionalConfig) => Promise<R>;
17
+ private hasPendingVoice;
17
18
  constructor({ voiceRecord, api }: VoiceTranscriptSnapshotModelProps);
18
19
  private readonly voiceRecord;
19
20
  private readonly api;
20
21
  private readonly transcriptByAudioFileId;
21
22
  private readonly snapshotByChatKey;
22
23
  private readonly captureSnapshotFx;
24
+ private readonly clearSnapshotFx;
23
25
  private pollTranscript;
24
26
  private resolveAudioFileId;
25
27
  }
@@ -1 +1 @@
1
- {"version":3,"file":"VoiceTranscriptSnapshotModel.d.ts","sourceRoot":"","sources":["../../../../../../src/features/chatbot/model/VoiceTranscriptSnapshotModel.ts"],"names":[],"mappings":"AACA,OAAO,EACL,uBAAuB,EAGxB,MAAM,mBAAmB,CAAA;AAC1B,OAAO,EAAE,gBAAgB,EAAE,MAAM,+CAA+C,CAAA;AAChF,OAAO,EAAE,qBAAqB,EAAE,MAAM,8CAA8C,CAAA;AAKpF,KAAK,gBAAgB,GAAG;IACtB,sBAAsB,EAAE,CAAC,WAAW,EAAE,MAAM,KAAK,OAAO,CAAC,uBAAuB,CAAC,CAAA;CAClF,CAAA;AAOD,KAAK,iCAAiC,GAAG;IACvC,WAAW,EAAE,gBAAgB,CAAA;IAC7B,GAAG,EAAE,gBAAgB,CAAA;CACtB,CAAA;AAUD,qBAAa,4BAA4B;IACvC,SAAgB,eAAe,gBAAiB,MAAM,KAAG,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CAOnF;IAED,SAAgB,uBAAuB,QAAa,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CAiB9E;IAED,SAAgB,eAAe,GAAI,CAAC,SAAS,MAAM,EAAE,CAAC,SAC7C,CACL,MAAM,EAAE,CAAC,GAAG;QAAE,eAAe,CAAC,EAAE,MAAM,CAAA;KAAE,EACxC,aAAa,CAAC,EAAE,qBAAqB,KAClC,OAAO,CAAC,CAAC,CAAC,cAEO,CAAC,kBAAkB,qBAAqB,KAAG,OAAO,CAAC,CAAC,CAAC,CAI5E;gBAEW,EAAE,WAAW,EAAE,GAAG,EAAE,EAAE,iCAAiC;IAanE,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAkB;IAC9C,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAkB;IACtC,OAAO,CAAC,QAAQ,CAAC,uBAAuB,CAAiD;IACzF,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAAiD;IAEnF,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAQhC;YAEY,cAAc;YAYd,kBAAkB;CAUjC"}
1
+ {"version":3,"file":"VoiceTranscriptSnapshotModel.d.ts","sourceRoot":"","sources":["../../../../../../src/features/chatbot/model/VoiceTranscriptSnapshotModel.ts"],"names":[],"mappings":"AACA,OAAO,EACL,uBAAuB,EAGxB,MAAM,mBAAmB,CAAA;AAC1B,OAAO,EAAE,gBAAgB,EAAE,MAAM,+CAA+C,CAAA;AAChF,OAAO,EAAE,qBAAqB,EAAE,MAAM,8CAA8C,CAAA;AAMpF,KAAK,gBAAgB,GAAG;IACtB,sBAAsB,EAAE,CAAC,WAAW,EAAE,MAAM,KAAK,OAAO,CAAC,uBAAuB,CAAC,CAAA;CAClF,CAAA;AAOD,KAAK,iCAAiC,GAAG;IACvC,WAAW,EAAE,gBAAgB,CAAA;IAC7B,GAAG,EAAE,gBAAgB,CAAA;CACtB,CAAA;AAUD,qBAAa,4BAA4B;IACvC,SAAgB,eAAe,gBAAiB,MAAM,KAAG,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CAOnF;IAED,SAAgB,uBAAuB,QAAa,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CAiB9E;IAED,SAAgB,eAAe,GAAI,CAAC,SAAS,MAAM,EAAE,CAAC,SAC7C,CACL,MAAM,EAAE,CAAC,GAAG;QAAE,eAAe,CAAC,EAAE,MAAM,CAAA;KAAE,EACxC,aAAa,CAAC,EAAE,qBAAqB,KAClC,OAAO,CAAC,CAAC,CAAC,cAEO,CAAC,kBAAkB,qBAAqB,KAAG,OAAO,CAAC,CAAC,CAAC,CAO5E;IAED,OAAO,CAAC,eAAe;gBAQX,EAAE,WAAW,EAAE,GAAG,EAAE,EAAE,iCAAiC;IAmBnE,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAkB;IAC9C,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAkB;IACtC,OAAO,CAAC,QAAQ,CAAC,uBAAuB,CAAiD;IACzF,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAAiD;IAEnF,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAQhC;IAEF,OAAO,CAAC,QAAQ,CAAC,eAAe,CAG9B;YAEY,cAAc;YAYd,kBAAkB;CAUjC"}
@@ -1 +1 @@
1
- {"version":3,"file":"VoiceRecordButton.d.ts","sourceRoot":"","sources":["../../../../../../../src/features/voice/recording/components/VoiceRecordButton.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAA;AAezB,OAAO,EAAE,gBAAgB,EAAE,MAAM,4BAA4B,CAAA;AAI7D,OAAO,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAA;AAGjD,KAAK,sBAAsB,GAAG;IAC5B,KAAK,EAAE,gBAAgB,CAAA;IACvB,aAAa,EAAE,mBAAmB,CAAA;CACnC,CAAA;AAsDD,eAAO,MAAM,iBAAiB,6BAA8B,sBAAsB,sBAiDjF,CAAA"}
1
+ {"version":3,"file":"VoiceRecordButton.d.ts","sourceRoot":"","sources":["../../../../../../../src/features/voice/recording/components/VoiceRecordButton.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAA;AAezB,OAAO,EAAE,gBAAgB,EAAE,MAAM,4BAA4B,CAAA;AAI7D,OAAO,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAA;AAGjD,KAAK,sBAAsB,GAAG;IAC5B,KAAK,EAAE,gBAAgB,CAAA;IACvB,aAAa,EAAE,mBAAmB,CAAA;CACnC,CAAA;AAqDD,eAAO,MAAM,iBAAiB,6BAA8B,sBAAsB,sBAiDjF,CAAA"}
@@ -9,6 +9,7 @@ type ControlledRequestProps<P> = {
9
9
  };
10
10
  export type RequestOptionalConfig = {
11
11
  signal?: AbortSignal;
12
+ extendTimeoutMs?: (ms: number) => void;
12
13
  };
13
14
  export declare function controlledRequest<R = void, P = void>(request: (props: P, config?: RequestOptionalConfig) => Promise<R>): ({ data, controller, abortAfter, }: ControlledRequestProps<P>) => Promise<R>;
14
15
  export declare const createControllerEffect: <T, P = void>(fn: (props: P, config?: RequestOptionalConfig) => Promise<T>) => ControlledEffect<P, T>;
@@ -1 +1 @@
1
- {"version":3,"file":"createControllerEffect.d.ts","sourceRoot":"","sources":["../../../../../src/lib/effector/createControllerEffect.ts"],"names":[],"mappings":"AAAA,OAAO,EAAgB,KAAK,MAAM,EAAE,MAAM,UAAU,CAAA;AAMpD,MAAM,MAAM,gBAAgB,CAAC,CAAC,EAAE,CAAC,IAAI,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG;IAClD,UAAU,EAAE,eAAe,CAAA;CAC5B,CAAA;AAED,KAAK,sBAAsB,CAAC,CAAC,IAAI;IAC/B,IAAI,EAAE,CAAC,CAAA;IACP,UAAU,CAAC,EAAE,eAAe,CAAA;IAC5B,UAAU,CAAC,EAAE,MAAM,CAAA;CACpB,CAAA;AAED,MAAM,MAAM,qBAAqB,GAAG;IAAE,MAAM,CAAC,EAAE,WAAW,CAAA;CAAE,CAAA;AAE5D,wBAAgB,iBAAiB,CAAC,CAAC,GAAG,IAAI,EAAE,CAAC,GAAG,IAAI,EAClD,OAAO,EAAE,CAAC,KAAK,EAAE,CAAC,EAAE,MAAM,CAAC,EAAE,qBAAqB,KAAK,OAAO,CAAC,CAAC,CAAC,uCAM9D,sBAAsB,CAAC,CAAC,CAAC,gBAwB7B;AAED,eAAO,MAAM,sBAAsB,GAAI,CAAC,EAAE,CAAC,aACrC,CAAC,KAAK,EAAE,CAAC,EAAE,MAAM,CAAC,EAAE,qBAAqB,KAAK,OAAO,CAAC,CAAC,CAAC,2BAa7D,CAAA"}
1
+ {"version":3,"file":"createControllerEffect.d.ts","sourceRoot":"","sources":["../../../../../src/lib/effector/createControllerEffect.ts"],"names":[],"mappings":"AAAA,OAAO,EAAgB,KAAK,MAAM,EAAE,MAAM,UAAU,CAAA;AAMpD,MAAM,MAAM,gBAAgB,CAAC,CAAC,EAAE,CAAC,IAAI,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG;IAClD,UAAU,EAAE,eAAe,CAAA;CAC5B,CAAA;AAED,KAAK,sBAAsB,CAAC,CAAC,IAAI;IAC/B,IAAI,EAAE,CAAC,CAAA;IACP,UAAU,CAAC,EAAE,eAAe,CAAA;IAC5B,UAAU,CAAC,EAAE,MAAM,CAAA;CACpB,CAAA;AAED,MAAM,MAAM,qBAAqB,GAAG;IAClC,MAAM,CAAC,EAAE,WAAW,CAAA;IACpB,eAAe,CAAC,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,IAAI,CAAA;CACvC,CAAA;AAED,wBAAgB,iBAAiB,CAAC,CAAC,GAAG,IAAI,EAAE,CAAC,GAAG,IAAI,EAClD,OAAO,EAAE,CAAC,KAAK,EAAE,CAAC,EAAE,MAAM,CAAC,EAAE,qBAAqB,KAAK,OAAO,CAAC,CAAC,CAAC,uCAM9D,sBAAsB,CAAC,CAAC,CAAC,gBA4B7B;AAED,eAAO,MAAM,sBAAsB,GAAI,CAAC,EAAE,CAAC,aACrC,CAAC,KAAK,EAAE,CAAC,EAAE,MAAM,CAAC,EAAE,qBAAqB,KAAK,OAAO,CAAC,CAAC,CAAC,2BAa7D,CAAA"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@magmamath/students-features",
3
- "version": "1.5.3-rc.2",
3
+ "version": "1.5.3-rc.4",
4
4
  "description": "Magmamath features library",
5
5
  "source": "src/index.ts",
6
6
  "main": "src/index.ts",
@@ -9,6 +9,7 @@ import { RequestOptionalConfig } from '../../../lib/effector/createControllerEff
9
9
 
10
10
  const TRANSCRIPT_RETRY_INTERVAL_MS = 2000
11
11
  const TRANSCRIPT_MAX_RETRIES = 20
12
+ const CHAT_WITH_VOICE_TIMEOUT_MS = 60_000
12
13
 
13
14
  type GetTranscriptApi = {
14
15
  getAudioFileTranscript: (audioFileId: string) => Promise<AudioTranscriptResponse>
@@ -68,11 +69,22 @@ export class VoiceTranscriptSnapshotModel {
68
69
  ) => Promise<R>,
69
70
  ) => {
70
71
  return async (params: P, requestConfig?: RequestOptionalConfig): Promise<R> => {
72
+ if (this.hasPendingVoice()) {
73
+ requestConfig?.extendTimeoutMs?.(CHAT_WITH_VOICE_TIMEOUT_MS)
74
+ }
71
75
  const voiceTranscript = await this.getTranscriptForCurrent()
72
76
  return apiFn(voiceTranscript ? { ...params, voiceTranscript } : params, requestConfig)
73
77
  }
74
78
  }
75
79
 
80
+ private hasPendingVoice(): boolean {
81
+ const voiceKey = this.voiceRecord.$currentKey.getState()
82
+ if (!voiceKey) return false
83
+ const chatKey = toChatKey(voiceKey)
84
+ if (chatKey && this.snapshotByChatKey.has(chatKey)) return true
85
+ return !!this.voiceRecord.collection.get(voiceKey)
86
+ }
87
+
76
88
  constructor({ voiceRecord, api }: VoiceTranscriptSnapshotModelProps) {
77
89
  this.voiceRecord = voiceRecord
78
90
  this.api = api
@@ -84,6 +96,12 @@ export class VoiceTranscriptSnapshotModel {
84
96
  fn: (voiceKey, record) => ({ voiceKey, record }),
85
97
  target: this.captureSnapshotFx,
86
98
  })
99
+
100
+ sample({
101
+ clock: voiceRecord.deleteCurrentRecording,
102
+ source: voiceRecord.$currentKey,
103
+ target: this.clearSnapshotFx,
104
+ })
87
105
  }
88
106
 
89
107
  private readonly voiceRecord: VoiceRecordModel
@@ -91,14 +109,19 @@ export class VoiceTranscriptSnapshotModel {
91
109
  private readonly transcriptByAudioFileId = new Map<string, Promise<string | undefined>>()
92
110
  private readonly snapshotByChatKey = new Map<string, Promise<string | undefined>>()
93
111
 
94
- private readonly captureSnapshotFx = createEffect(async ({ voiceKey, record }: CaptureParams) => {
112
+ private readonly captureSnapshotFx = createEffect(({ voiceKey, record }: CaptureParams) => {
95
113
  const chatKey = toChatKey(voiceKey)
96
114
  if (!chatKey) return
97
115
 
98
- const audioFileId = await this.resolveAudioFileId(record)
99
- if (!audioFileId) return
116
+ const transcriptPromise = this.resolveAudioFileId(record).then((audioFileId) =>
117
+ audioFileId ? this.fetchTranscript(audioFileId) : undefined,
118
+ )
119
+ this.snapshotByChatKey.set(chatKey, transcriptPromise)
120
+ })
100
121
 
101
- this.snapshotByChatKey.set(chatKey, this.fetchTranscript(audioFileId))
122
+ private readonly clearSnapshotFx = createEffect((voiceKey: string) => {
123
+ const chatKey = toChatKey(voiceKey)
124
+ if (chatKey) this.snapshotByChatKey.delete(chatKey)
102
125
  })
103
126
 
104
127
  private async pollTranscript(audioFileId: string): Promise<string | undefined> {
@@ -59,6 +59,7 @@ const AdvancedButton = ({ isRecording, disabled, onPressIn }: AdvancedButtonProp
59
59
  }}
60
60
  isActive={isRecording}
61
61
  variant={ButtonVariant.TERTIARY}
62
+ disabled={disabled}
62
63
  onPressIn={onPressIn}
63
64
  icon={
64
65
  isRecording ? (
@@ -66,9 +67,7 @@ const AdvancedButton = ({ isRecording, disabled, onPressIn }: AdvancedButtonProp
66
67
  ) : (
67
68
  <MicrophoneIcon
68
69
  style={styles.advancedMicrophoneIcon}
69
- color={
70
- disabled ? COLORS.NEUTRAL_5 : isRecording ? COLORS.NEUTRAL_1 : COLORS.NEUTRAL_9
71
- }
70
+ color={isRecording ? COLORS.NEUTRAL_1 : COLORS.NEUTRAL_9}
72
71
  />
73
72
  )
74
73
  }
@@ -14,7 +14,10 @@ type ControlledRequestProps<P> = {
14
14
  abortAfter?: number
15
15
  }
16
16
 
17
- export type RequestOptionalConfig = { signal?: AbortSignal }
17
+ export type RequestOptionalConfig = {
18
+ signal?: AbortSignal
19
+ extendTimeoutMs?: (ms: number) => void
20
+ }
18
21
 
19
22
  export function controlledRequest<R = void, P = void>(
20
23
  request: (props: P, config?: RequestOptionalConfig) => Promise<R>,
@@ -26,14 +29,18 @@ export function controlledRequest<R = void, P = void>(
26
29
  }: ControlledRequestProps<P>) => {
27
30
  let timeout: ReturnType<typeof setTimeout> | null = null
28
31
 
29
- if (abortAfter) {
30
- timeout = setTimeout(() => {
31
- controller.abort('timeout')
32
- }, abortAfter)
32
+ const scheduleAbort = (ms: number) => {
33
+ if (timeout !== null) clearTimeout(timeout)
34
+ timeout = ms > 0 ? setTimeout(() => controller.abort('timeout'), ms) : null
33
35
  }
34
36
 
37
+ if (abortAfter) scheduleAbort(abortAfter)
38
+
35
39
  try {
36
- const response = await request(data, { signal: controller?.signal })
40
+ const response = await request(data, {
41
+ signal: controller?.signal,
42
+ extendTimeoutMs: scheduleAbort,
43
+ })
37
44
  if (timeout !== null) clearTimeout(timeout)
38
45
  return response
39
46
  } catch (error: unknown) {