@magmamath/students-features 0.9.107-rc.14 → 0.9.107-rc.15

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 (31) hide show
  1. package/dist/commonjs/features/voiceRecord/components/VoiceRecord.js +2 -2
  2. package/dist/commonjs/features/voiceRecord/components/VoiceRecord.js.map +1 -1
  3. package/dist/commonjs/features/voiceRecord/hooks/useVoiceRecorder.js +5 -14
  4. package/dist/commonjs/features/voiceRecord/hooks/useVoiceRecorder.js.map +1 -1
  5. package/dist/commonjs/features/voiceRecord/modal/VoiceRecordDeleteModal.js +1 -1
  6. package/dist/commonjs/features/voiceRecord/modal/VoiceRecordDeleteModal.js.map +1 -1
  7. package/dist/commonjs/features/voiceRecord/model/VoiceRecord.model.js +43 -7
  8. package/dist/commonjs/features/voiceRecord/model/VoiceRecord.model.js.map +1 -1
  9. package/dist/module/features/voiceRecord/components/VoiceRecord.js +2 -2
  10. package/dist/module/features/voiceRecord/components/VoiceRecord.js.map +1 -1
  11. package/dist/module/features/voiceRecord/hooks/useVoiceRecorder.js +5 -14
  12. package/dist/module/features/voiceRecord/hooks/useVoiceRecorder.js.map +1 -1
  13. package/dist/module/features/voiceRecord/modal/VoiceRecordDeleteModal.js +1 -1
  14. package/dist/module/features/voiceRecord/modal/VoiceRecordDeleteModal.js.map +1 -1
  15. package/dist/module/features/voiceRecord/model/VoiceRecord.model.js +43 -7
  16. package/dist/module/features/voiceRecord/model/VoiceRecord.model.js.map +1 -1
  17. package/dist/typescript/commonjs/features/voiceRecord/components/VoiceRecord.d.ts.map +1 -1
  18. package/dist/typescript/commonjs/features/voiceRecord/hooks/useVoiceRecorder.d.ts.map +1 -1
  19. package/dist/typescript/commonjs/features/voiceRecord/modal/VoiceRecordDeleteModal.d.ts.map +1 -1
  20. package/dist/typescript/commonjs/features/voiceRecord/model/VoiceRecord.model.d.ts +8 -4
  21. package/dist/typescript/commonjs/features/voiceRecord/model/VoiceRecord.model.d.ts.map +1 -1
  22. package/dist/typescript/module/features/voiceRecord/components/VoiceRecord.d.ts.map +1 -1
  23. package/dist/typescript/module/features/voiceRecord/hooks/useVoiceRecorder.d.ts.map +1 -1
  24. package/dist/typescript/module/features/voiceRecord/modal/VoiceRecordDeleteModal.d.ts.map +1 -1
  25. package/dist/typescript/module/features/voiceRecord/model/VoiceRecord.model.d.ts +8 -4
  26. package/dist/typescript/module/features/voiceRecord/model/VoiceRecord.model.d.ts.map +1 -1
  27. package/package.json +1 -1
  28. package/src/features/voiceRecord/components/VoiceRecord.tsx +6 -2
  29. package/src/features/voiceRecord/hooks/useVoiceRecorder.ts +5 -14
  30. package/src/features/voiceRecord/modal/VoiceRecordDeleteModal.tsx +2 -1
  31. package/src/features/voiceRecord/model/VoiceRecord.model.ts +47 -10
@@ -26,9 +26,9 @@ const VoiceRecord = ({
26
26
  const {
27
27
  recorderState
28
28
  } = (0, _useVoiceRecorder.useVoiceRecorder)(model);
29
- const [isRecording, audioFilePath] = (0, _effectorReact.useUnit)([model.recorderModel.$voiceRecordState, model.$uri]);
29
+ const [isRecording, currentRecord] = (0, _effectorReact.useUnit)([model.recorderModel.$voiceRecordState, model.$currentRecord]);
30
30
  const isDisabled = (0, _effectorReact.useUnit)(model.$isDisabled);
31
- const isExpanded = !!(isRecording || audioFilePath);
31
+ const isExpanded = !!(isRecording || currentRecord);
32
32
  const {
33
33
  containerAnimatedStyle
34
34
  } = (0, _useVoiceRecorderAnimation.useVoiceRecorderAnimation)(isExpanded);
@@ -1 +1 @@
1
- {"version":3,"names":["_reactNative","require","_VoiceRecordButton","_react","_interopRequireWildcard","_reactNativeUi","_VoiceRecordDeleteButton","_VoiceRecordDevider","_VoiceRecordTimer","_interopRequireDefault","_reactNativeReanimated","_useVoiceRecorder","_useVoiceRecorderAnimation","_effectorReact","_jsxRuntime","e","__esModule","default","_getRequireWildcardCache","WeakMap","r","t","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","hasOwnProperty","call","i","set","VoiceRecord","style","model","recorderState","useVoiceRecorder","isRecording","audioFilePath","useUnit","recorderModel","$voiceRecordState","$uri","isDisabled","$isDisabled","isExpanded","containerAnimatedStyle","useVoiceRecorderAnimation","cleanup","recorder","getStatus","stop","reset","useEffect","jsxs","View","styles","container","children","jsx","VoiceRecordButton","entering","FadeIn","exiting","FadeOut","expendedContainer","timer","recordingFileDurationMs","durationMillis","VoiceRecordDevider","VoiceRecordDeleteButton","onPress","events","deleteRecord","exports","StyleSheet","create","alignItems","padding","paddingBottom","backgroundColor","COLORS","NEUTRAL_3","borderRadius","boxShadow","overflow","marginTop","SPACING"],"sourceRoot":"../../../../../src","sources":["features/voiceRecord/components/VoiceRecord.tsx"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["_reactNative","require","_VoiceRecordButton","_react","_interopRequireWildcard","_reactNativeUi","_VoiceRecordDeleteButton","_VoiceRecordDevider","_VoiceRecordTimer","_interopRequireDefault","_reactNativeReanimated","_useVoiceRecorder","_useVoiceRecorderAnimation","_effectorReact","_jsxRuntime","e","__esModule","default","_getRequireWildcardCache","WeakMap","r","t","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","hasOwnProperty","call","i","set","VoiceRecord","style","model","recorderState","useVoiceRecorder","isRecording","currentRecord","useUnit","recorderModel","$voiceRecordState","$currentRecord","isDisabled","$isDisabled","isExpanded","containerAnimatedStyle","useVoiceRecorderAnimation","cleanup","recorder","getStatus","stop","reset","useEffect","jsxs","View","styles","container","children","jsx","VoiceRecordButton","entering","FadeIn","exiting","FadeOut","expendedContainer","timer","recordingFileDurationMs","durationMillis","VoiceRecordDevider","VoiceRecordDeleteButton","onPress","events","deleteRecord","exports","StyleSheet","create","alignItems","padding","paddingBottom","backgroundColor","COLORS","NEUTRAL_3","borderRadius","boxShadow","overflow","marginTop","SPACING"],"sourceRoot":"../../../../../src","sources":["features/voiceRecord/components/VoiceRecord.tsx"],"mappings":"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","ignoreList":[]}
@@ -12,17 +12,8 @@ var _constants = require("../constants.js");
12
12
  var _effectorReact = require("effector-react");
13
13
  const useVoiceRecorder = model => {
14
14
  const player = (0, _expoAudio.useAudioPlayer)();
15
- const audioFilePath = (0, _effectorReact.useUnit)(model.$uri);
16
- const recorder = (0, _expoAudio.useAudioRecorder)(_expoAudio.RecordingPresets.LOW_QUALITY, status => {
17
- if (status.error) {
18
- model.notification.error(`Recorder error: ${status.error}`);
19
- model.recorderModel.clearStopResolver();
20
- return;
21
- }
22
- if (status.isFinished && status.url) {
23
- model.setUri(status.url);
24
- }
25
- });
15
+ const currentRecord = (0, _effectorReact.useUnit)(model.$currentRecord);
16
+ const recorder = (0, _expoAudio.useAudioRecorder)(_expoAudio.RecordingPresets.LOW_QUALITY, model.recordingStatusUpdate);
26
17
  const recorderState = (0, _expoAudio.useAudioRecorderState)(recorder);
27
18
  (0, _react.useEffect)(() => {
28
19
  if (recorderState.durationMillis >= _constants.VOICE_RECORDER_MAX_DURATION_MS && recorderState.isRecording) {
@@ -43,14 +34,14 @@ const useVoiceRecorder = model => {
43
34
  return removeListener;
44
35
  }, []);
45
36
  (0, _react.useEffect)(() => {
46
- if (audioFilePath) {
37
+ if (currentRecord?.uri) {
47
38
  const getDuration = async () => {
48
- const durationMs = await (0, _helpers.getAudioDurationMs)(audioFilePath, player);
39
+ const durationMs = await (0, _helpers.getAudioDurationMs)(currentRecord.uri, player);
49
40
  model.recorderModel.setAudioFileDurationMs(durationMs || 0);
50
41
  };
51
42
  getDuration();
52
43
  }
53
- }, [audioFilePath]);
44
+ }, [currentRecord?.uri]);
54
45
  (0, _react.useEffect)(() => {
55
46
  if (recorderState.isRecording) {
56
47
  model.recorderModel.setVoiceRecordState(_constants.VoiceRecorderState.RECORDING);
@@ -1 +1 @@
1
- {"version":3,"names":["_expoAudio","require","_helpers","_react","_reactNativeUi","_constants","_effectorReact","useVoiceRecorder","model","player","useAudioPlayer","audioFilePath","useUnit","$uri","recorder","useAudioRecorder","RecordingPresets","LOW_QUALITY","status","error","notification","recorderModel","clearStopResolver","isFinished","url","setUri","recorderState","useAudioRecorderState","useEffect","durationMillis","VOICE_RECORDER_MAX_DURATION_MS","isRecording","stop","IS_WEB","getAvailableInputs","then","inputs","setAvailableInputs","removeListener","addAudioInputsListenerWeb","devices","getDuration","durationMs","getAudioDurationMs","setAudioFileDurationMs","setVoiceRecordState","VoiceRecorderState","RECORDING","PAUSED","IDLE","reset","exports"],"sourceRoot":"../../../../../src","sources":["features/voiceRecord/hooks/useVoiceRecorder.ts"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["_expoAudio","require","_helpers","_react","_reactNativeUi","_constants","_effectorReact","useVoiceRecorder","model","player","useAudioPlayer","currentRecord","useUnit","$currentRecord","recorder","useAudioRecorder","RecordingPresets","LOW_QUALITY","recordingStatusUpdate","recorderState","useAudioRecorderState","useEffect","durationMillis","VOICE_RECORDER_MAX_DURATION_MS","isRecording","recorderModel","stop","IS_WEB","getAvailableInputs","then","inputs","setAvailableInputs","removeListener","addAudioInputsListenerWeb","devices","uri","getDuration","durationMs","getAudioDurationMs","setAudioFileDurationMs","setVoiceRecordState","VoiceRecorderState","RECORDING","PAUSED","IDLE","reset","exports"],"sourceRoot":"../../../../../src","sources":["features/voiceRecord/hooks/useVoiceRecorder.ts"],"mappings":";;;;;;AAAA,IAAAA,UAAA,GAAAC,OAAA;AAMA,IAAAC,QAAA,GAAAD,OAAA;AAEA,IAAAE,MAAA,GAAAF,OAAA;AACA,IAAAG,cAAA,GAAAH,OAAA;AACA,IAAAI,UAAA,GAAAJ,OAAA;AACA,IAAAK,cAAA,GAAAL,OAAA;AAEO,MAAMM,gBAAgB,GAAIC,KAAuB,IAAK;EAC3D,MAAMC,MAAM,GAAG,IAAAC,yBAAc,EAAC,CAAC;EAC/B,MAAMC,aAAa,GAAG,IAAAC,sBAAO,EAACJ,KAAK,CAACK,cAAc,CAAC;EAEnD,MAAMC,QAAQ,GAAG,IAAAC,2BAAgB,EAACC,2BAAgB,CAACC,WAAW,EAAET,KAAK,CAACU,qBAAqB,CAAC;EAC5F,MAAMC,aAAa,GAAG,IAAAC,gCAAqB,EAACN,QAAQ,CAAC;EAErD,IAAAO,gBAAS,EAAC,MAAM;IACd,IACEF,aAAa,CAACG,cAAc,IAAIC,yCAA8B,IAC9DJ,aAAa,CAACK,WAAW,EACzB;MACAhB,KAAK,CAACiB,aAAa,CAACC,IAAI,CAAC,CAAC;IAC5B;EACF,CAAC,EAAE,CAACP,aAAa,CAACG,cAAc,CAAC,CAAC;EAElC,IAAAD,gBAAS,EAAC,MAAM;IACd,IAAI,CAACM,qBAAM,EAAE;MACX;MACA,IAAAC,2BAAkB,EAACd,QAAQ,CAAC,CAACe,IAAI,CAAEC,MAAM,IAAK;QAC5CtB,KAAK,CAACiB,aAAa,CAACM,kBAAkB,CAACD,MAAM,CAAC;MAChD,CAAC,CAAC;MACF;IACF;IAEA,MAAME,cAAc,GAAG,IAAAC,kCAAyB,EAAEC,OAAO,IAAK;MAC5D1B,KAAK,CAACiB,aAAa,CAACM,kBAAkB,CAACG,OAAO,CAAC;IACjD,CAAC,CAAC;IAEF,OAAOF,cAAc;EACvB,CAAC,EAAE,EAAE,CAAC;EAEN,IAAAX,gBAAS,EAAC,MAAM;IACd,IAAIV,aAAa,EAAEwB,GAAG,EAAE;MACtB,MAAMC,WAAW,GAAG,MAAAA,CAAA,KAAY;QAC9B,MAAMC,UAAU,GAAG,MAAM,IAAAC,2BAAkB,EAAC3B,aAAa,CAACwB,GAAG,EAAG1B,MAAM,CAAC;QACvED,KAAK,CAACiB,aAAa,CAACc,sBAAsB,CAACF,UAAU,IAAI,CAAC,CAAC;MAC7D,CAAC;MACDD,WAAW,CAAC,CAAC;IACf;EACF,CAAC,EAAE,CAACzB,aAAa,EAAEwB,GAAG,CAAC,CAAC;EAExB,IAAAd,gBAAS,EAAC,MAAM;IACd,IAAIF,aAAa,CAACK,WAAW,EAAE;MAC7BhB,KAAK,CAACiB,aAAa,CAACe,mBAAmB,CAACC,6BAAkB,CAACC,SAAS,CAAC;MACrE;IACF;IACA,IAAIvB,aAAa,CAACG,cAAc,GAAG,CAAC,EAAE;MACpCd,KAAK,CAACiB,aAAa,CAACe,mBAAmB,CAACC,6BAAkB,CAACE,MAAM,CAAC;MAClE;IACF;IACAnC,KAAK,CAACiB,aAAa,CAACe,mBAAmB,CAACC,6BAAkB,CAACG,IAAI,CAAC;IAEhE,OAAO,MAAM;MACXpC,KAAK,CAACiB,aAAa,CAACoB,KAAK,CAAC,CAAC;IAC7B,CAAC;EACH,CAAC,EAAE,CAAC1B,aAAa,CAAC,CAAC;EAEnB,IAAAE,gBAAS,EAAC,MAAM;IACdb,KAAK,CAACiB,aAAa,CAACX,QAAQ,GAAGA,QAAQ;EACzC,CAAC,EAAE,CAACA,QAAQ,CAAC,CAAC;EAEd,OAAO;IAAEK;EAAc,CAAC;AAC1B,CAAC;AAAA2B,OAAA,CAAAvC,gBAAA,GAAAA,gBAAA","ignoreList":[]}
@@ -51,7 +51,7 @@ const VoiceRecordDeleteModal = ({
51
51
  const isRecordingInProgress = (recorderState === _constants.VoiceRecorderState.PAUSED || recorderState === _constants.VoiceRecorderState.RECORDING) && durationMillis > 0;
52
52
  const handleDelete = async () => {
53
53
  if (isRecordingInProgress) {
54
- await model.recorderModel.recorder.stop();
54
+ await model.stopAndDiscard();
55
55
  }
56
56
  model.deleteCurrentRecording();
57
57
  closeModal();
@@ -1 +1 @@
1
- {"version":3,"names":["_react","_interopRequireWildcard","require","_reactNativeUi","_reactNative","_effectorReact","_constants","_index","_jsxRuntime","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","default","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","hasOwnProperty","call","i","set","FooterButtons","onClose","onDelete","useText","jsxs","View","style","styles","footerContainer","children","jsx","Button","variant","ButtonVariant","TERTIARY","size","ButtonSize","LARGE","onPress","colorScheme","ButtonColor","RED","PRIMARY","VoiceRecordDeleteModal","modal","closeModal","params","model","recorderState","useUnit","recorderModel","$voiceRecordState","durationMillis","recorder","getStatus","isRecordingInProgress","VoiceRecorderState","PAUSED","RECORDING","handleDelete","stop","deleteCurrentRecording","useEffect","pause","record","BaseModal","container","modalContainer","header","content","footer","exports","StyleSheet","create","width","height","flexDirection","alignItems","gap","SPACING"],"sourceRoot":"../../../../../src","sources":["features/voiceRecord/modal/VoiceRecordDeleteModal.tsx"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["_react","_interopRequireWildcard","require","_reactNativeUi","_reactNative","_effectorReact","_constants","_index","_jsxRuntime","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","default","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","hasOwnProperty","call","i","set","FooterButtons","onClose","onDelete","useText","jsxs","View","style","styles","footerContainer","children","jsx","Button","variant","ButtonVariant","TERTIARY","size","ButtonSize","LARGE","onPress","colorScheme","ButtonColor","RED","PRIMARY","VoiceRecordDeleteModal","modal","closeModal","params","model","recorderState","useUnit","recorderModel","$voiceRecordState","durationMillis","recorder","getStatus","isRecordingInProgress","VoiceRecorderState","PAUSED","RECORDING","handleDelete","stopAndDiscard","deleteCurrentRecording","useEffect","pause","record","BaseModal","container","modalContainer","header","content","footer","exports","StyleSheet","create","width","height","flexDirection","alignItems","gap","SPACING"],"sourceRoot":"../../../../../src","sources":["features/voiceRecord/modal/VoiceRecordDeleteModal.tsx"],"mappings":"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","ignoreList":[]}
@@ -9,15 +9,16 @@ var _helpers = require("../helpers.js");
9
9
  var _index = require("../../../shared/translation/index.js");
10
10
  var _RecorderModel = require("./Recorder.model.js");
11
11
  var _VoiceRecordCollection = require("./VoiceRecordCollection.js");
12
+ var _constants = require("../constants.js");
12
13
  class VoiceRecordModel {
14
+ shouldDiscardRecording = false;
13
15
  setCurrentKey = (0, _effector.createEvent)();
14
- setUri = (0, _effector.createEvent)();
15
16
  setCurrentRecord = (0, _effector.createEvent)();
16
17
  reset = (0, _effector.createEvent)();
17
18
  setIsDisabled = (0, _effector.createEvent)();
19
+ startAudioUpload = (0, _effector.createEvent)();
18
20
  $currentKey = (0, _effector.restore)(this.setCurrentKey, '');
19
- $currentRecord = (0, _effector.createStore)(null).reset(this.reset);
20
- $uri = (0, _effector.restore)(this.setUri, '').reset(this.reset);
21
+ $currentRecord = (0, _effector.restore)(this.setCurrentRecord, null).reset(this.reset);
21
22
  $isDisabled = (0, _effector.restore)(this.setIsDisabled, false);
22
23
  deleteCurrentRecording = (0, _effector.attach)({
23
24
  source: this.$currentKey,
@@ -55,6 +56,26 @@ class VoiceRecordModel {
55
56
  }
56
57
  return this.recorderModel.start();
57
58
  });
59
+ stopAndDiscard = (0, _effector.createEffect)(async () => {
60
+ this.shouldDiscardRecording = true;
61
+ await this.recorderModel.stop();
62
+ this.recorderModel.clearStopResolver();
63
+ this.recorderModel.reset();
64
+ });
65
+ recordingStatusUpdate = status => {
66
+ if (status.error) {
67
+ this.notification.error(`Recorder error: ${status.error}`);
68
+ this.recorderModel.clearStopResolver();
69
+ this.shouldDiscardRecording = false;
70
+ return;
71
+ }
72
+ if (status.isFinished && status.url) {
73
+ if (!this.shouldDiscardRecording) {
74
+ this.startAudioUpload(status.url);
75
+ }
76
+ this.shouldDiscardRecording = false;
77
+ }
78
+ };
58
79
  constructor({
59
80
  api,
60
81
  notification,
@@ -67,6 +88,8 @@ class VoiceRecordModel {
67
88
  this.collection = new _VoiceRecordCollection.VoiceRecordsCollection();
68
89
  this.setupUploadHandler();
69
90
  this.setupCurrentRecordSync();
91
+ this.setupUriSync();
92
+ this.resetActiveRecordingOnProblemSwitch();
70
93
  }
71
94
  abortUploadIfInProgress(recordingItem) {
72
95
  if (!recordingItem?.id && recordingItem?.controller) {
@@ -110,12 +133,13 @@ class VoiceRecordModel {
110
133
  uri
111
134
  };
112
135
  this.collection.add(currentKey, collectionItem);
136
+ this.setCurrentRecord(collectionItem);
113
137
  this.recorderModel.resolveStopWithCollectionItem(collectionItem);
114
138
  return audioUploadPromise;
115
139
  }
116
140
  setupUploadHandler() {
117
141
  (0, _effector.sample)({
118
- clock: this.setUri,
142
+ clock: this.startAudioUpload,
119
143
  source: this.$currentKey,
120
144
  filter: (currentKey, uri) => !!uri && !!currentKey,
121
145
  fn: (currentKey, uri) => ({
@@ -131,6 +155,13 @@ class VoiceRecordModel {
131
155
  }))
132
156
  });
133
157
  }
158
+ setupUriSync() {
159
+ (0, _effector.sample)({
160
+ source: this.$currentRecord,
161
+ fn: record => record?.uri || '',
162
+ target: (0, _effector.createStore)('').reset(this.reset)
163
+ });
164
+ }
134
165
  setupCurrentRecordSync() {
135
166
  (0, _effector.sample)({
136
167
  source: this.$currentKey,
@@ -144,12 +175,17 @@ class VoiceRecordModel {
144
175
  if (recordingItem.durationMs) {
145
176
  this.recorderModel.setAudioFileDurationMs(recordingItem.durationMs);
146
177
  }
147
- if (recordingItem.uri) {
148
- this.setUri(recordingItem.uri);
149
- }
150
178
  })
151
179
  });
152
180
  }
181
+ resetActiveRecordingOnProblemSwitch() {
182
+ (0, _effector.sample)({
183
+ clock: this.$currentKey,
184
+ source: this.recorderModel.$voiceRecordState,
185
+ filter: state => state === _constants.VoiceRecorderState.RECORDING,
186
+ target: this.stopAndDiscard
187
+ });
188
+ }
153
189
  }
154
190
  exports.VoiceRecordModel = VoiceRecordModel;
155
191
  //# sourceMappingURL=VoiceRecord.model.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["_effector","require","_helpers","_index","_RecorderModel","_VoiceRecordCollection","VoiceRecordModel","setCurrentKey","createEvent","setUri","setCurrentRecord","reset","setIsDisabled","$currentKey","restore","$currentRecord","createStore","$uri","$isDisabled","deleteCurrentRecording","attach","source","mapParams","props","currentKey","notification","effect","createEffect","recordingItem","collection","get","abortUploadIfInProgress","resetRecordingState","info","t","initializeRecording","hasPermissions","ensureRecordingPermissions","error","inputs","getAvailableInputs","recorderModel","recorder","setAvailableInputs","length","start","constructor","api","events","RecorderModel","VoiceRecordsCollection","setupUploadHandler","setupCurrentRecordSync","id","controller","abort","delete","handleAudioUpload","uri","durationMs","getAudioDurationMs","formData","generateAudioFormData","audioFileUri","uploadAudio","uploadAudioFileRequestGenerator","audioUploadPromise","then","data","update","catch","name","collectionItem","add","resolveStopWithCollectionItem","sample","clock","filter","fn","target","setAudioFileDurationMs","exports"],"sourceRoot":"../../../../../src","sources":["features/voiceRecord/model/VoiceRecord.model.ts"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["_effector","require","_helpers","_index","_RecorderModel","_VoiceRecordCollection","_constants","VoiceRecordModel","shouldDiscardRecording","setCurrentKey","createEvent","setCurrentRecord","reset","setIsDisabled","startAudioUpload","$currentKey","restore","$currentRecord","$isDisabled","deleteCurrentRecording","attach","source","mapParams","props","currentKey","notification","effect","createEffect","recordingItem","collection","get","abortUploadIfInProgress","resetRecordingState","info","t","initializeRecording","hasPermissions","ensureRecordingPermissions","error","inputs","getAvailableInputs","recorderModel","recorder","setAvailableInputs","length","start","stopAndDiscard","stop","clearStopResolver","recordingStatusUpdate","status","isFinished","url","constructor","api","events","RecorderModel","VoiceRecordsCollection","setupUploadHandler","setupCurrentRecordSync","setupUriSync","resetActiveRecordingOnProblemSwitch","id","controller","abort","delete","handleAudioUpload","uri","durationMs","getAudioDurationMs","formData","generateAudioFormData","audioFileUri","uploadAudio","uploadAudioFileRequestGenerator","audioUploadPromise","then","data","update","catch","name","collectionItem","add","resolveStopWithCollectionItem","sample","clock","filter","fn","target","record","createStore","setAudioFileDurationMs","$voiceRecordState","state","VoiceRecorderState","RECORDING","exports"],"sourceRoot":"../../../../../src","sources":["features/voiceRecord/model/VoiceRecord.model.ts"],"mappings":"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","ignoreList":[]}
@@ -19,9 +19,9 @@ export const VoiceRecord = ({
19
19
  const {
20
20
  recorderState
21
21
  } = useVoiceRecorder(model);
22
- const [isRecording, audioFilePath] = useUnit([model.recorderModel.$voiceRecordState, model.$uri]);
22
+ const [isRecording, currentRecord] = useUnit([model.recorderModel.$voiceRecordState, model.$currentRecord]);
23
23
  const isDisabled = useUnit(model.$isDisabled);
24
- const isExpanded = !!(isRecording || audioFilePath);
24
+ const isExpanded = !!(isRecording || currentRecord);
25
25
  const {
26
26
  containerAnimatedStyle
27
27
  } = useVoiceRecorderAnimation(isExpanded);
@@ -1 +1 @@
1
- {"version":3,"names":["StyleSheet","VoiceRecordButton","React","useEffect","COLORS","SPACING","VoiceRecordDeleteButton","VoiceRecordDevider","VoiceRecordTimer","Animated","FadeIn","FadeOut","useVoiceRecorder","useVoiceRecorderAnimation","useUnit","jsx","_jsx","jsxs","_jsxs","VoiceRecord","style","model","recorderState","isRecording","audioFilePath","recorderModel","$voiceRecordState","$uri","isDisabled","$isDisabled","isExpanded","containerAnimatedStyle","cleanup","recorder","getStatus","stop","reset","View","styles","container","children","entering","exiting","expendedContainer","timer","recordingFileDurationMs","durationMillis","onPress","events","deleteRecord","create","alignItems","padding","paddingBottom","backgroundColor","NEUTRAL_3","borderRadius","boxShadow","overflow","marginTop"],"sourceRoot":"../../../../../src","sources":["features/voiceRecord/components/VoiceRecord.tsx"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["StyleSheet","VoiceRecordButton","React","useEffect","COLORS","SPACING","VoiceRecordDeleteButton","VoiceRecordDevider","VoiceRecordTimer","Animated","FadeIn","FadeOut","useVoiceRecorder","useVoiceRecorderAnimation","useUnit","jsx","_jsx","jsxs","_jsxs","VoiceRecord","style","model","recorderState","isRecording","currentRecord","recorderModel","$voiceRecordState","$currentRecord","isDisabled","$isDisabled","isExpanded","containerAnimatedStyle","cleanup","recorder","getStatus","stop","reset","View","styles","container","children","entering","exiting","expendedContainer","timer","recordingFileDurationMs","durationMillis","onPress","events","deleteRecord","create","alignItems","padding","paddingBottom","backgroundColor","NEUTRAL_3","borderRadius","boxShadow","overflow","marginTop"],"sourceRoot":"../../../../../src","sources":["features/voiceRecord/components/VoiceRecord.tsx"],"mappings":"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","ignoreList":[]}
@@ -8,17 +8,8 @@ import { VOICE_RECORDER_MAX_DURATION_MS, VoiceRecorderState } from "../constants
8
8
  import { useUnit } from 'effector-react';
9
9
  export const useVoiceRecorder = model => {
10
10
  const player = useAudioPlayer();
11
- const audioFilePath = useUnit(model.$uri);
12
- const recorder = useAudioRecorder(RecordingPresets.LOW_QUALITY, status => {
13
- if (status.error) {
14
- model.notification.error(`Recorder error: ${status.error}`);
15
- model.recorderModel.clearStopResolver();
16
- return;
17
- }
18
- if (status.isFinished && status.url) {
19
- model.setUri(status.url);
20
- }
21
- });
11
+ const currentRecord = useUnit(model.$currentRecord);
12
+ const recorder = useAudioRecorder(RecordingPresets.LOW_QUALITY, model.recordingStatusUpdate);
22
13
  const recorderState = useAudioRecorderState(recorder);
23
14
  useEffect(() => {
24
15
  if (recorderState.durationMillis >= VOICE_RECORDER_MAX_DURATION_MS && recorderState.isRecording) {
@@ -39,14 +30,14 @@ export const useVoiceRecorder = model => {
39
30
  return removeListener;
40
31
  }, []);
41
32
  useEffect(() => {
42
- if (audioFilePath) {
33
+ if (currentRecord?.uri) {
43
34
  const getDuration = async () => {
44
- const durationMs = await getAudioDurationMs(audioFilePath, player);
35
+ const durationMs = await getAudioDurationMs(currentRecord.uri, player);
45
36
  model.recorderModel.setAudioFileDurationMs(durationMs || 0);
46
37
  };
47
38
  getDuration();
48
39
  }
49
- }, [audioFilePath]);
40
+ }, [currentRecord?.uri]);
50
41
  useEffect(() => {
51
42
  if (recorderState.isRecording) {
52
43
  model.recorderModel.setVoiceRecordState(VoiceRecorderState.RECORDING);
@@ -1 +1 @@
1
- {"version":3,"names":["RecordingPresets","useAudioPlayer","useAudioRecorder","useAudioRecorderState","addAudioInputsListenerWeb","getAudioDurationMs","getAvailableInputs","useEffect","IS_WEB","VOICE_RECORDER_MAX_DURATION_MS","VoiceRecorderState","useUnit","useVoiceRecorder","model","player","audioFilePath","$uri","recorder","LOW_QUALITY","status","error","notification","recorderModel","clearStopResolver","isFinished","url","setUri","recorderState","durationMillis","isRecording","stop","then","inputs","setAvailableInputs","removeListener","devices","getDuration","durationMs","setAudioFileDurationMs","setVoiceRecordState","RECORDING","PAUSED","IDLE","reset"],"sourceRoot":"../../../../../src","sources":["features/voiceRecord/hooks/useVoiceRecorder.ts"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["RecordingPresets","useAudioPlayer","useAudioRecorder","useAudioRecorderState","addAudioInputsListenerWeb","getAudioDurationMs","getAvailableInputs","useEffect","IS_WEB","VOICE_RECORDER_MAX_DURATION_MS","VoiceRecorderState","useUnit","useVoiceRecorder","model","player","currentRecord","$currentRecord","recorder","LOW_QUALITY","recordingStatusUpdate","recorderState","durationMillis","isRecording","recorderModel","stop","then","inputs","setAvailableInputs","removeListener","devices","uri","getDuration","durationMs","setAudioFileDurationMs","setVoiceRecordState","RECORDING","PAUSED","IDLE","reset"],"sourceRoot":"../../../../../src","sources":["features/voiceRecord/hooks/useVoiceRecorder.ts"],"mappings":";;AAAA,SACEA,gBAAgB,EAChBC,cAAc,EACdC,gBAAgB,EAChBC,qBAAqB,QAChB,YAAY;AACnB,SAASC,yBAAyB,EAAEC,kBAAkB,EAAEC,kBAAkB,QAAQ,eAAY;AAE9F,SAASC,SAAS,QAAQ,OAAO;AACjC,SAASC,MAAM,QAAQ,4BAA4B;AACnD,SAASC,8BAA8B,EAAEC,kBAAkB,QAAQ,iBAAc;AACjF,SAASC,OAAO,QAAQ,gBAAgB;AAExC,OAAO,MAAMC,gBAAgB,GAAIC,KAAuB,IAAK;EAC3D,MAAMC,MAAM,GAAGb,cAAc,CAAC,CAAC;EAC/B,MAAMc,aAAa,GAAGJ,OAAO,CAACE,KAAK,CAACG,cAAc,CAAC;EAEnD,MAAMC,QAAQ,GAAGf,gBAAgB,CAACF,gBAAgB,CAACkB,WAAW,EAAEL,KAAK,CAACM,qBAAqB,CAAC;EAC5F,MAAMC,aAAa,GAAGjB,qBAAqB,CAACc,QAAQ,CAAC;EAErDV,SAAS,CAAC,MAAM;IACd,IACEa,aAAa,CAACC,cAAc,IAAIZ,8BAA8B,IAC9DW,aAAa,CAACE,WAAW,EACzB;MACAT,KAAK,CAACU,aAAa,CAACC,IAAI,CAAC,CAAC;IAC5B;EACF,CAAC,EAAE,CAACJ,aAAa,CAACC,cAAc,CAAC,CAAC;EAElCd,SAAS,CAAC,MAAM;IACd,IAAI,CAACC,MAAM,EAAE;MACX;MACAF,kBAAkB,CAACW,QAAQ,CAAC,CAACQ,IAAI,CAAEC,MAAM,IAAK;QAC5Cb,KAAK,CAACU,aAAa,CAACI,kBAAkB,CAACD,MAAM,CAAC;MAChD,CAAC,CAAC;MACF;IACF;IAEA,MAAME,cAAc,GAAGxB,yBAAyB,CAAEyB,OAAO,IAAK;MAC5DhB,KAAK,CAACU,aAAa,CAACI,kBAAkB,CAACE,OAAO,CAAC;IACjD,CAAC,CAAC;IAEF,OAAOD,cAAc;EACvB,CAAC,EAAE,EAAE,CAAC;EAENrB,SAAS,CAAC,MAAM;IACd,IAAIQ,aAAa,EAAEe,GAAG,EAAE;MACtB,MAAMC,WAAW,GAAG,MAAAA,CAAA,KAAY;QAC9B,MAAMC,UAAU,GAAG,MAAM3B,kBAAkB,CAACU,aAAa,CAACe,GAAG,EAAGhB,MAAM,CAAC;QACvED,KAAK,CAACU,aAAa,CAACU,sBAAsB,CAACD,UAAU,IAAI,CAAC,CAAC;MAC7D,CAAC;MACDD,WAAW,CAAC,CAAC;IACf;EACF,CAAC,EAAE,CAAChB,aAAa,EAAEe,GAAG,CAAC,CAAC;EAExBvB,SAAS,CAAC,MAAM;IACd,IAAIa,aAAa,CAACE,WAAW,EAAE;MAC7BT,KAAK,CAACU,aAAa,CAACW,mBAAmB,CAACxB,kBAAkB,CAACyB,SAAS,CAAC;MACrE;IACF;IACA,IAAIf,aAAa,CAACC,cAAc,GAAG,CAAC,EAAE;MACpCR,KAAK,CAACU,aAAa,CAACW,mBAAmB,CAACxB,kBAAkB,CAAC0B,MAAM,CAAC;MAClE;IACF;IACAvB,KAAK,CAACU,aAAa,CAACW,mBAAmB,CAACxB,kBAAkB,CAAC2B,IAAI,CAAC;IAEhE,OAAO,MAAM;MACXxB,KAAK,CAACU,aAAa,CAACe,KAAK,CAAC,CAAC;IAC7B,CAAC;EACH,CAAC,EAAE,CAAClB,aAAa,CAAC,CAAC;EAEnBb,SAAS,CAAC,MAAM;IACdM,KAAK,CAACU,aAAa,CAACN,QAAQ,GAAGA,QAAQ;EACzC,CAAC,EAAE,CAACA,QAAQ,CAAC,CAAC;EAEd,OAAO;IAAEG;EAAc,CAAC;AAC1B,CAAC","ignoreList":[]}
@@ -45,7 +45,7 @@ export const VoiceRecordDeleteModal = ({
45
45
  const isRecordingInProgress = (recorderState === VoiceRecorderState.PAUSED || recorderState === VoiceRecorderState.RECORDING) && durationMillis > 0;
46
46
  const handleDelete = async () => {
47
47
  if (isRecordingInProgress) {
48
- await model.recorderModel.recorder.stop();
48
+ await model.stopAndDiscard();
49
49
  }
50
50
  model.deleteCurrentRecording();
51
51
  closeModal();
@@ -1 +1 @@
1
- {"version":3,"names":["React","useEffect","BaseModal","Button","ButtonColor","ButtonSize","ButtonVariant","SPACING","View","StyleSheet","useUnit","VoiceRecorderState","useText","jsx","_jsx","jsxs","_jsxs","FooterButtons","onClose","onDelete","t","style","styles","footerContainer","children","variant","TERTIARY","size","LARGE","onPress","colorScheme","RED","PRIMARY","VoiceRecordDeleteModal","modal","closeModal","params","model","recorderState","recorderModel","$voiceRecordState","durationMillis","recorder","getStatus","isRecordingInProgress","PAUSED","RECORDING","handleDelete","stop","deleteCurrentRecording","pause","record","container","modalContainer","header","content","footer","create","width","height","flexDirection","alignItems","gap"],"sourceRoot":"../../../../../src","sources":["features/voiceRecord/modal/VoiceRecordDeleteModal.tsx"],"mappings":";;AAAA,OAAOA,KAAK,IAAIC,SAAS,QAAQ,OAAO;AACxC,SACEC,SAAS,EACTC,MAAM,EACNC,WAAW,EACXC,UAAU,EACVC,aAAa,EACbC,OAAO,QACF,4BAA4B;AACnC,SAASC,IAAI,EAAEC,UAAU,QAAQ,cAAc;AAC/C,SAASC,OAAO,QAAQ,gBAAgB;AAExC,SAASC,kBAAkB,QAAQ,iBAAc;AACjD,SAASC,OAAO,QAAQ,sCAA6B;AAAA,SAAAC,GAAA,IAAAC,IAAA,EAAAC,IAAA,IAAAC,KAAA;AAgBrD,MAAMC,aAAa,GAAGA,CAAC;EAAEC,OAAO;EAAEC;AAA6B,CAAC,KAAK;EACnE,MAAMC,CAAC,GAAGR,OAAO,CAAC,CAAC;EAEnB,oBACEI,KAAA,CAACR,IAAI;IAACa,KAAK,EAAEC,MAAM,CAACC,eAAgB;IAAAC,QAAA,gBAClCV,IAAA,CAACX,MAAM;MAACsB,OAAO,EAAEnB,aAAa,CAACoB,QAAS;MAACC,IAAI,EAAEtB,UAAU,CAACuB,KAAM;MAACC,OAAO,EAAEX,OAAQ;MAAAM,QAAA,EAC/EJ,CAAC,CAAC,sBAAsB;IAAC,CACpB,CAAC,eACTN,IAAA,CAACX,MAAM;MACL2B,WAAW,EAAE1B,WAAW,CAAC2B,GAAI;MAC7BN,OAAO,EAAEnB,aAAa,CAAC0B,OAAQ;MAC/BL,IAAI,EAAEtB,UAAU,CAACuB,KAAM;MACvBC,OAAO,EAAEV,QAAS;MAAAK,QAAA,EAEjBJ,CAAC,CAAC,sBAAsB;IAAC,CACpB,CAAC;EAAA,CACL,CAAC;AAEX,CAAC;AAED,OAAO,MAAMa,sBAAsB,GAAGA,CAAC;EACrCC,KAAK,EAAE;IAAEC,UAAU;IAAEC;EAAO;AACQ,CAAC,KAAK;EAC1C,MAAMhB,CAAC,GAAGR,OAAO,CAAC,CAAC;EACnB,MAAM;IAAEyB;EAAM,CAAC,GAAGD,MAAM;EAExB,MAAME,aAAa,GAAG5B,OAAO,CAAC2B,KAAK,CAACE,aAAa,CAACC,iBAAiB,CAAC;EACpE,MAAM;IAAEC;EAAe,CAAC,GAAGJ,KAAK,CAACE,aAAa,CAACG,QAAQ,CAACC,SAAS,CAAC,CAAC;EAEnE,MAAMC,qBAAqB,GACzB,CAACN,aAAa,KAAK3B,kBAAkB,CAACkC,MAAM,IAC1CP,aAAa,KAAK3B,kBAAkB,CAACmC,SAAS,KAChDL,cAAc,GAAG,CAAC;EAEpB,MAAMM,YAAY,GAAG,MAAAA,CAAA,KAAY;IAC/B,IAAIH,qBAAqB,EAAE;MACzB,MAAMP,KAAK,CAACE,aAAa,CAACG,QAAQ,CAACM,IAAI,CAAC,CAAC;IAC3C;IACAX,KAAK,CAACY,sBAAsB,CAAC,CAAC;IAC9Bd,UAAU,CAAC,CAAC;EACd,CAAC;EAEDlC,SAAS,CAAC,MAAM;IACd,IAAIqC,aAAa,KAAK3B,kBAAkB,CAACmC,SAAS,EAAE;MAClDT,KAAK,CAACE,aAAa,CAACG,QAAQ,CAACQ,KAAK,CAAC,CAAC;IACtC;IAEA,OAAO,MAAM;MACX,IAAIN,qBAAqB,IAAIP,KAAK,CAACE,aAAa,CAACG,QAAQ,CAACC,SAAS,CAAC,CAAC,CAACF,cAAc,GAAG,CAAC,EAAE;QACxFJ,KAAK,CAACE,aAAa,CAACG,QAAQ,CAACS,MAAM,CAAC,CAAC;MACvC;IACF,CAAC;EACH,CAAC,EAAE,EAAE,CAAC;EAEN,oBACErC,IAAA,CAACZ,SAAS;IACRmB,KAAK,EAAE;MACL+B,SAAS,EAAE9B,MAAM,CAAC+B;IACpB,CAAE;IACFC,MAAM,EAAElC,CAAC,CAAC,+BAA+B,CAAE;IAC3CmC,OAAO,EAAEnC,CAAC,CAAC,sCAAsC,CAAE;IACnDoC,MAAM,eAAE1C,IAAA,CAACG,aAAa;MAACC,OAAO,EAAEiB,UAAW;MAAChB,QAAQ,EAAE4B;IAAa,CAAE;EAAE,CACxE,CAAC;AAEN,CAAC;AAED,MAAMzB,MAAM,GAAGb,UAAU,CAACgD,MAAM,CAAC;EAC/BJ,cAAc,EAAE;IACdK,KAAK,EAAE,GAAG;IACVC,MAAM,EAAE;EACV,CAAC;EACDpC,eAAe,EAAE;IACfqC,aAAa,EAAE,KAAK;IACpBC,UAAU,EAAE,QAAQ;IACpBC,GAAG,EAAEvD,OAAO,CAAC,GAAG;EAClB;AACF,CAAC,CAAC","ignoreList":[]}
1
+ {"version":3,"names":["React","useEffect","BaseModal","Button","ButtonColor","ButtonSize","ButtonVariant","SPACING","View","StyleSheet","useUnit","VoiceRecorderState","useText","jsx","_jsx","jsxs","_jsxs","FooterButtons","onClose","onDelete","t","style","styles","footerContainer","children","variant","TERTIARY","size","LARGE","onPress","colorScheme","RED","PRIMARY","VoiceRecordDeleteModal","modal","closeModal","params","model","recorderState","recorderModel","$voiceRecordState","durationMillis","recorder","getStatus","isRecordingInProgress","PAUSED","RECORDING","handleDelete","stopAndDiscard","deleteCurrentRecording","pause","record","container","modalContainer","header","content","footer","create","width","height","flexDirection","alignItems","gap"],"sourceRoot":"../../../../../src","sources":["features/voiceRecord/modal/VoiceRecordDeleteModal.tsx"],"mappings":"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","ignoreList":[]}
@@ -5,15 +5,16 @@ import { ensureRecordingPermissions, generateAudioFormData, getAudioDurationMs,
5
5
  import { t } from "../../../shared/translation/index.js";
6
6
  import { RecorderModel } from "./Recorder.model.js";
7
7
  import { VoiceRecordsCollection } from "./VoiceRecordCollection.js";
8
+ import { VoiceRecorderState } from "../constants.js";
8
9
  export class VoiceRecordModel {
10
+ shouldDiscardRecording = false;
9
11
  setCurrentKey = createEvent();
10
- setUri = createEvent();
11
12
  setCurrentRecord = createEvent();
12
13
  reset = createEvent();
13
14
  setIsDisabled = createEvent();
15
+ startAudioUpload = createEvent();
14
16
  $currentKey = restore(this.setCurrentKey, '');
15
- $currentRecord = createStore(null).reset(this.reset);
16
- $uri = restore(this.setUri, '').reset(this.reset);
17
+ $currentRecord = restore(this.setCurrentRecord, null).reset(this.reset);
17
18
  $isDisabled = restore(this.setIsDisabled, false);
18
19
  deleteCurrentRecording = attach({
19
20
  source: this.$currentKey,
@@ -51,6 +52,26 @@ export class VoiceRecordModel {
51
52
  }
52
53
  return this.recorderModel.start();
53
54
  });
55
+ stopAndDiscard = createEffect(async () => {
56
+ this.shouldDiscardRecording = true;
57
+ await this.recorderModel.stop();
58
+ this.recorderModel.clearStopResolver();
59
+ this.recorderModel.reset();
60
+ });
61
+ recordingStatusUpdate = status => {
62
+ if (status.error) {
63
+ this.notification.error(`Recorder error: ${status.error}`);
64
+ this.recorderModel.clearStopResolver();
65
+ this.shouldDiscardRecording = false;
66
+ return;
67
+ }
68
+ if (status.isFinished && status.url) {
69
+ if (!this.shouldDiscardRecording) {
70
+ this.startAudioUpload(status.url);
71
+ }
72
+ this.shouldDiscardRecording = false;
73
+ }
74
+ };
54
75
  constructor({
55
76
  api,
56
77
  notification,
@@ -63,6 +84,8 @@ export class VoiceRecordModel {
63
84
  this.collection = new VoiceRecordsCollection();
64
85
  this.setupUploadHandler();
65
86
  this.setupCurrentRecordSync();
87
+ this.setupUriSync();
88
+ this.resetActiveRecordingOnProblemSwitch();
66
89
  }
67
90
  abortUploadIfInProgress(recordingItem) {
68
91
  if (!recordingItem?.id && recordingItem?.controller) {
@@ -106,12 +129,13 @@ export class VoiceRecordModel {
106
129
  uri
107
130
  };
108
131
  this.collection.add(currentKey, collectionItem);
132
+ this.setCurrentRecord(collectionItem);
109
133
  this.recorderModel.resolveStopWithCollectionItem(collectionItem);
110
134
  return audioUploadPromise;
111
135
  }
112
136
  setupUploadHandler() {
113
137
  sample({
114
- clock: this.setUri,
138
+ clock: this.startAudioUpload,
115
139
  source: this.$currentKey,
116
140
  filter: (currentKey, uri) => !!uri && !!currentKey,
117
141
  fn: (currentKey, uri) => ({
@@ -127,6 +151,13 @@ export class VoiceRecordModel {
127
151
  }))
128
152
  });
129
153
  }
154
+ setupUriSync() {
155
+ sample({
156
+ source: this.$currentRecord,
157
+ fn: record => record?.uri || '',
158
+ target: createStore('').reset(this.reset)
159
+ });
160
+ }
130
161
  setupCurrentRecordSync() {
131
162
  sample({
132
163
  source: this.$currentKey,
@@ -140,11 +171,16 @@ export class VoiceRecordModel {
140
171
  if (recordingItem.durationMs) {
141
172
  this.recorderModel.setAudioFileDurationMs(recordingItem.durationMs);
142
173
  }
143
- if (recordingItem.uri) {
144
- this.setUri(recordingItem.uri);
145
- }
146
174
  })
147
175
  });
148
176
  }
177
+ resetActiveRecordingOnProblemSwitch() {
178
+ sample({
179
+ clock: this.$currentKey,
180
+ source: this.recorderModel.$voiceRecordState,
181
+ filter: state => state === VoiceRecorderState.RECORDING,
182
+ target: this.stopAndDiscard
183
+ });
184
+ }
149
185
  }
150
186
  //# sourceMappingURL=VoiceRecord.model.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["attach","createEffect","createEvent","createStore","restore","sample","ensureRecordingPermissions","generateAudioFormData","getAudioDurationMs","getAvailableInputs","uploadAudioFileRequestGenerator","t","RecorderModel","VoiceRecordsCollection","VoiceRecordModel","setCurrentKey","setUri","setCurrentRecord","reset","setIsDisabled","$currentKey","$currentRecord","$uri","$isDisabled","deleteCurrentRecording","source","mapParams","props","currentKey","notification","effect","recordingItem","collection","get","abortUploadIfInProgress","resetRecordingState","info","initializeRecording","hasPermissions","error","inputs","recorderModel","recorder","setAvailableInputs","length","start","constructor","api","events","setupUploadHandler","setupCurrentRecordSync","id","controller","abort","delete","handleAudioUpload","uri","durationMs","formData","audioFileUri","uploadAudio","audioUploadPromise","then","data","update","catch","name","collectionItem","add","resolveStopWithCollectionItem","clock","filter","fn","target","setAudioFileDurationMs"],"sourceRoot":"../../../../../src","sources":["features/voiceRecord/model/VoiceRecord.model.ts"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["attach","createEffect","createEvent","createStore","restore","sample","ensureRecordingPermissions","generateAudioFormData","getAudioDurationMs","getAvailableInputs","uploadAudioFileRequestGenerator","t","RecorderModel","VoiceRecordsCollection","VoiceRecorderState","VoiceRecordModel","shouldDiscardRecording","setCurrentKey","setCurrentRecord","reset","setIsDisabled","startAudioUpload","$currentKey","$currentRecord","$isDisabled","deleteCurrentRecording","source","mapParams","props","currentKey","notification","effect","recordingItem","collection","get","abortUploadIfInProgress","resetRecordingState","info","initializeRecording","hasPermissions","error","inputs","recorderModel","recorder","setAvailableInputs","length","start","stopAndDiscard","stop","clearStopResolver","recordingStatusUpdate","status","isFinished","url","constructor","api","events","setupUploadHandler","setupCurrentRecordSync","setupUriSync","resetActiveRecordingOnProblemSwitch","id","controller","abort","delete","handleAudioUpload","uri","durationMs","formData","audioFileUri","uploadAudio","audioUploadPromise","then","data","update","catch","name","collectionItem","add","resolveStopWithCollectionItem","clock","filter","fn","target","record","setAudioFileDurationMs","$voiceRecordState","state","RECORDING"],"sourceRoot":"../../../../../src","sources":["features/voiceRecord/model/VoiceRecord.model.ts"],"mappings":"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","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"VoiceRecord.d.ts","sourceRoot":"","sources":["../../../../../../src/features/voiceRecord/components/VoiceRecord.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,SAAS,EAAc,MAAM,cAAc,CAAA;AAE/D,OAAO,KAAoB,MAAM,OAAO,CAAA;AAMxC,OAAO,EAAE,gBAAgB,EAAE,MAAM,4BAA4B,CAAA;AAK7D,KAAK,gBAAgB,GAAG;IACtB,KAAK,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,CAAA;IAC5B,KAAK,EAAE,gBAAgB,CAAA;CACxB,CAAA;AAED,eAAO,MAAM,WAAW,qBAAsB,gBAAgB,sBAsC7D,CAAA"}
1
+ {"version":3,"file":"VoiceRecord.d.ts","sourceRoot":"","sources":["../../../../../../src/features/voiceRecord/components/VoiceRecord.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,SAAS,EAAc,MAAM,cAAc,CAAA;AAE/D,OAAO,KAAoB,MAAM,OAAO,CAAA;AAMxC,OAAO,EAAE,gBAAgB,EAAE,MAAM,4BAA4B,CAAA;AAK7D,KAAK,gBAAgB,GAAG;IACtB,KAAK,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,CAAA;IAC5B,KAAK,EAAE,gBAAgB,CAAA;CACxB,CAAA;AAED,eAAO,MAAM,WAAW,qBAAsB,gBAAgB,sBA0C7D,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"useVoiceRecorder.d.ts","sourceRoot":"","sources":["../../../../../../src/features/voiceRecord/hooks/useVoiceRecorder.ts"],"names":[],"mappings":"AAOA,OAAO,EAAE,gBAAgB,EAAE,MAAM,4BAA4B,CAAA;AAM7D,eAAO,MAAM,gBAAgB,UAAW,gBAAgB;;CAwEvD,CAAA"}
1
+ {"version":3,"file":"useVoiceRecorder.d.ts","sourceRoot":"","sources":["../../../../../../src/features/voiceRecord/hooks/useVoiceRecorder.ts"],"names":[],"mappings":"AAOA,OAAO,EAAE,gBAAgB,EAAE,MAAM,4BAA4B,CAAA;AAM7D,eAAO,MAAM,gBAAgB,UAAW,gBAAgB;;CA+DvD,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"VoiceRecordDeleteModal.d.ts","sourceRoot":"","sources":["../../../../../../src/features/voiceRecord/modal/VoiceRecordDeleteModal.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAoB,MAAM,OAAO,CAAA;AAWxC,OAAO,EAAE,gBAAgB,EAAE,MAAM,4BAA4B,CAAA;AAI7D,KAAK,oCAAoC,GAAG;IAC1C,KAAK,EAAE;QACL,UAAU,EAAE,MAAM,IAAI,CAAA;QACtB,MAAM,EAAE;YACN,KAAK,EAAE,gBAAgB,CAAA;SACxB,CAAA;KACF,CAAA;CACF,CAAA;AA2BD,eAAO,MAAM,sBAAsB,uCAEhC,oCAAoC,sBA0CtC,CAAA"}
1
+ {"version":3,"file":"VoiceRecordDeleteModal.d.ts","sourceRoot":"","sources":["../../../../../../src/features/voiceRecord/modal/VoiceRecordDeleteModal.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAoB,MAAM,OAAO,CAAA;AAWxC,OAAO,EAAE,gBAAgB,EAAE,MAAM,4BAA4B,CAAA;AAI7D,KAAK,oCAAoC,GAAG;IAC1C,KAAK,EAAE;QACL,UAAU,EAAE,MAAM,IAAI,CAAA;QACtB,MAAM,EAAE;YACN,KAAK,EAAE,gBAAgB,CAAA;SACxB,CAAA;KACF,CAAA;CACF,CAAA;AA2BD,eAAO,MAAM,sBAAsB,uCAEhC,oCAAoC,sBA2CtC,CAAA"}
@@ -1,4 +1,4 @@
1
- import { AudioApi, VoiceRecordNotificationTypes, VoiceRecordCollectionItem } from '../types';
1
+ import { AudioApi, VoiceRecordNotificationTypes } from '../types';
2
2
  import { RecorderModel } from './Recorder.model';
3
3
  import { VoiceRecordsCollection } from './VoiceRecordCollection';
4
4
  type VoiceRecordModelParams = {
@@ -19,23 +19,27 @@ export declare class VoiceRecordModel {
19
19
  readonly api: AudioApi;
20
20
  readonly notification: VoiceRecordNotificationTypes;
21
21
  readonly events: VoiceRecordEvents;
22
+ private shouldDiscardRecording;
22
23
  readonly setCurrentKey: import("effector").EventCallable<string>;
23
- readonly setUri: import("effector").EventCallable<string>;
24
24
  readonly setCurrentRecord: import("effector").EventCallable<any>;
25
25
  readonly reset: import("effector").EventCallable<void>;
26
26
  readonly setIsDisabled: import("effector").EventCallable<boolean>;
27
+ readonly startAudioUpload: import("effector").EventCallable<string>;
27
28
  readonly $currentKey: import("effector").StoreWritable<string>;
28
- readonly $currentRecord: import("effector").StoreWritable<VoiceRecordCollectionItem | null>;
29
- readonly $uri: import("effector").StoreWritable<string>;
29
+ readonly $currentRecord: import("effector").StoreWritable<any>;
30
30
  readonly $isDisabled: import("effector").StoreWritable<boolean>;
31
31
  readonly deleteCurrentRecording: import("effector").Effect<void | DeleteCurrentRecordingProps, void, Error>;
32
32
  readonly initializeRecording: import("effector").Effect<void, void, Error>;
33
+ readonly stopAndDiscard: import("effector").Effect<void, void, Error>;
34
+ readonly recordingStatusUpdate: (status: any) => void;
33
35
  constructor({ api, notification, events }: VoiceRecordModelParams);
34
36
  private abortUploadIfInProgress;
35
37
  private resetRecordingState;
36
38
  private handleAudioUpload;
37
39
  private setupUploadHandler;
40
+ private setupUriSync;
38
41
  private setupCurrentRecordSync;
42
+ private resetActiveRecordingOnProblemSwitch;
39
43
  }
40
44
  export {};
41
45
  //# sourceMappingURL=VoiceRecord.model.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"VoiceRecord.model.d.ts","sourceRoot":"","sources":["../../../../../../src/features/voiceRecord/model/VoiceRecord.model.ts"],"names":[],"mappings":"AAQA,OAAO,EAAE,QAAQ,EAAE,4BAA4B,EAAE,yBAAyB,EAAE,MAAM,UAAU,CAAA;AAE5F,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAA;AAChD,OAAO,EAAE,sBAAsB,EAAE,MAAM,yBAAyB,CAAA;AAEhE,KAAK,sBAAsB,GAAG;IAC5B,GAAG,EAAE,QAAQ,CAAA;IACb,YAAY,EAAE,4BAA4B,CAAA;IAC1C,MAAM,EAAE,iBAAiB,CAAA;CAC1B,CAAA;AAOD,KAAK,iBAAiB,GAAG;IACvB,YAAY,EAAE,MAAM,IAAI,CAAA;IACxB,UAAU,EAAE,MAAM,IAAI,CAAA;CACvB,CAAA;AAED,KAAK,2BAA2B,GAAG;IACjC,YAAY,CAAC,EAAE,OAAO,CAAA;CACvB,CAAA;AAMD,qBAAa,gBAAgB;IAC3B,SAAgB,aAAa,EAAE,aAAa,CAAA;IAC5C,SAAgB,UAAU,EAAE,sBAAsB,CAAA;IAClD,SAAgB,GAAG,EAAE,QAAQ,CAAA;IAC7B,SAAgB,YAAY,EAAE,4BAA4B,CAAA;IAC1D,SAAgB,MAAM,EAAE,iBAAiB,CAAA;IAEzC,SAAgB,aAAa,2CAAwB;IACrD,SAAgB,MAAM,2CAAwB;IAC9C,SAAgB,gBAAgB,wCAAqB;IACrD,SAAgB,KAAK,yCAAgB;IACrC,SAAgB,aAAa,4CAAyB;IAEtD,SAAgB,WAAW,2CAAkC;IAC7D,SAAgB,cAAc,qEAE7B;IACD,SAAgB,IAAI,2CAA6C;IAEjE,SAAgB,WAAW,4CAAqC;IAEhE,SAAgB,sBAAsB,6EAiBpC;IAEF,SAAgB,mBAAmB,+CAkBjC;gBAEU,EAAE,GAAG,EAAE,YAAY,EAAE,MAAM,EAAE,EAAE,sBAAsB;IAWjE,OAAO,CAAC,uBAAuB;IAM/B,OAAO,CAAC,mBAAmB;YAMb,iBAAiB;IA+B/B,OAAO,CAAC,kBAAkB;IAY1B,OAAO,CAAC,sBAAsB;CAsB/B"}
1
+ {"version":3,"file":"VoiceRecord.model.d.ts","sourceRoot":"","sources":["../../../../../../src/features/voiceRecord/model/VoiceRecord.model.ts"],"names":[],"mappings":"AAQA,OAAO,EAAE,QAAQ,EAAE,4BAA4B,EAA6B,MAAM,UAAU,CAAA;AAE5F,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAA;AAChD,OAAO,EAAE,sBAAsB,EAAE,MAAM,yBAAyB,CAAA;AAGhE,KAAK,sBAAsB,GAAG;IAC5B,GAAG,EAAE,QAAQ,CAAA;IACb,YAAY,EAAE,4BAA4B,CAAA;IAC1C,MAAM,EAAE,iBAAiB,CAAA;CAC1B,CAAA;AAOD,KAAK,iBAAiB,GAAG;IACvB,YAAY,EAAE,MAAM,IAAI,CAAA;IACxB,UAAU,EAAE,MAAM,IAAI,CAAA;CACvB,CAAA;AAED,KAAK,2BAA2B,GAAG;IACjC,YAAY,CAAC,EAAE,OAAO,CAAA;CACvB,CAAA;AAMD,qBAAa,gBAAgB;IAC3B,SAAgB,aAAa,EAAE,aAAa,CAAA;IAC5C,SAAgB,UAAU,EAAE,sBAAsB,CAAA;IAClD,SAAgB,GAAG,EAAE,QAAQ,CAAA;IAC7B,SAAgB,YAAY,EAAE,4BAA4B,CAAA;IAC1D,SAAgB,MAAM,EAAE,iBAAiB,CAAA;IACzC,OAAO,CAAC,sBAAsB,CAAQ;IAEtC,SAAgB,aAAa,2CAAwB;IACrD,SAAgB,gBAAgB,wCAAqB;IACrD,SAAgB,KAAK,yCAAgB;IACrC,SAAgB,aAAa,4CAAyB;IACtD,SAAgB,gBAAgB,2CAAwB;IAExD,SAAgB,WAAW,2CAAkC;IAC7D,SAAgB,cAAc,wCAAyD;IAEvF,SAAgB,WAAW,4CAAqC;IAEhE,SAAgB,sBAAsB,6EAiBpC;IAEF,SAAgB,mBAAmB,+CAkBjC;IAEF,SAAgB,cAAc,+CAK5B;IAEF,SAAgB,qBAAqB,WAAY,GAAG,UAanD;gBAEW,EAAE,GAAG,EAAE,YAAY,EAAE,MAAM,EAAE,EAAE,sBAAsB;IAajE,OAAO,CAAC,uBAAuB;IAM/B,OAAO,CAAC,mBAAmB;YAMb,iBAAiB;IAgC/B,OAAO,CAAC,kBAAkB;IAY1B,OAAO,CAAC,YAAY;IAQpB,OAAO,CAAC,sBAAsB;IAmB9B,OAAO,CAAC,mCAAmC;CAQ5C"}
@@ -1 +1 @@
1
- {"version":3,"file":"VoiceRecord.d.ts","sourceRoot":"","sources":["../../../../../../src/features/voiceRecord/components/VoiceRecord.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,SAAS,EAAc,MAAM,cAAc,CAAA;AAE/D,OAAO,KAAoB,MAAM,OAAO,CAAA;AAMxC,OAAO,EAAE,gBAAgB,EAAE,MAAM,4BAA4B,CAAA;AAK7D,KAAK,gBAAgB,GAAG;IACtB,KAAK,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,CAAA;IAC5B,KAAK,EAAE,gBAAgB,CAAA;CACxB,CAAA;AAED,eAAO,MAAM,WAAW,qBAAsB,gBAAgB,sBAsC7D,CAAA"}
1
+ {"version":3,"file":"VoiceRecord.d.ts","sourceRoot":"","sources":["../../../../../../src/features/voiceRecord/components/VoiceRecord.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,SAAS,EAAc,MAAM,cAAc,CAAA;AAE/D,OAAO,KAAoB,MAAM,OAAO,CAAA;AAMxC,OAAO,EAAE,gBAAgB,EAAE,MAAM,4BAA4B,CAAA;AAK7D,KAAK,gBAAgB,GAAG;IACtB,KAAK,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,CAAA;IAC5B,KAAK,EAAE,gBAAgB,CAAA;CACxB,CAAA;AAED,eAAO,MAAM,WAAW,qBAAsB,gBAAgB,sBA0C7D,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"useVoiceRecorder.d.ts","sourceRoot":"","sources":["../../../../../../src/features/voiceRecord/hooks/useVoiceRecorder.ts"],"names":[],"mappings":"AAOA,OAAO,EAAE,gBAAgB,EAAE,MAAM,4BAA4B,CAAA;AAM7D,eAAO,MAAM,gBAAgB,UAAW,gBAAgB;;CAwEvD,CAAA"}
1
+ {"version":3,"file":"useVoiceRecorder.d.ts","sourceRoot":"","sources":["../../../../../../src/features/voiceRecord/hooks/useVoiceRecorder.ts"],"names":[],"mappings":"AAOA,OAAO,EAAE,gBAAgB,EAAE,MAAM,4BAA4B,CAAA;AAM7D,eAAO,MAAM,gBAAgB,UAAW,gBAAgB;;CA+DvD,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"VoiceRecordDeleteModal.d.ts","sourceRoot":"","sources":["../../../../../../src/features/voiceRecord/modal/VoiceRecordDeleteModal.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAoB,MAAM,OAAO,CAAA;AAWxC,OAAO,EAAE,gBAAgB,EAAE,MAAM,4BAA4B,CAAA;AAI7D,KAAK,oCAAoC,GAAG;IAC1C,KAAK,EAAE;QACL,UAAU,EAAE,MAAM,IAAI,CAAA;QACtB,MAAM,EAAE;YACN,KAAK,EAAE,gBAAgB,CAAA;SACxB,CAAA;KACF,CAAA;CACF,CAAA;AA2BD,eAAO,MAAM,sBAAsB,uCAEhC,oCAAoC,sBA0CtC,CAAA"}
1
+ {"version":3,"file":"VoiceRecordDeleteModal.d.ts","sourceRoot":"","sources":["../../../../../../src/features/voiceRecord/modal/VoiceRecordDeleteModal.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAoB,MAAM,OAAO,CAAA;AAWxC,OAAO,EAAE,gBAAgB,EAAE,MAAM,4BAA4B,CAAA;AAI7D,KAAK,oCAAoC,GAAG;IAC1C,KAAK,EAAE;QACL,UAAU,EAAE,MAAM,IAAI,CAAA;QACtB,MAAM,EAAE;YACN,KAAK,EAAE,gBAAgB,CAAA;SACxB,CAAA;KACF,CAAA;CACF,CAAA;AA2BD,eAAO,MAAM,sBAAsB,uCAEhC,oCAAoC,sBA2CtC,CAAA"}
@@ -1,4 +1,4 @@
1
- import { AudioApi, VoiceRecordNotificationTypes, VoiceRecordCollectionItem } from '../types';
1
+ import { AudioApi, VoiceRecordNotificationTypes } from '../types';
2
2
  import { RecorderModel } from './Recorder.model';
3
3
  import { VoiceRecordsCollection } from './VoiceRecordCollection';
4
4
  type VoiceRecordModelParams = {
@@ -19,23 +19,27 @@ export declare class VoiceRecordModel {
19
19
  readonly api: AudioApi;
20
20
  readonly notification: VoiceRecordNotificationTypes;
21
21
  readonly events: VoiceRecordEvents;
22
+ private shouldDiscardRecording;
22
23
  readonly setCurrentKey: import("effector").EventCallable<string>;
23
- readonly setUri: import("effector").EventCallable<string>;
24
24
  readonly setCurrentRecord: import("effector").EventCallable<any>;
25
25
  readonly reset: import("effector").EventCallable<void>;
26
26
  readonly setIsDisabled: import("effector").EventCallable<boolean>;
27
+ readonly startAudioUpload: import("effector").EventCallable<string>;
27
28
  readonly $currentKey: import("effector").StoreWritable<string>;
28
- readonly $currentRecord: import("effector").StoreWritable<VoiceRecordCollectionItem | null>;
29
- readonly $uri: import("effector").StoreWritable<string>;
29
+ readonly $currentRecord: import("effector").StoreWritable<any>;
30
30
  readonly $isDisabled: import("effector").StoreWritable<boolean>;
31
31
  readonly deleteCurrentRecording: import("effector").Effect<void | DeleteCurrentRecordingProps, void, Error>;
32
32
  readonly initializeRecording: import("effector").Effect<void, void, Error>;
33
+ readonly stopAndDiscard: import("effector").Effect<void, void, Error>;
34
+ readonly recordingStatusUpdate: (status: any) => void;
33
35
  constructor({ api, notification, events }: VoiceRecordModelParams);
34
36
  private abortUploadIfInProgress;
35
37
  private resetRecordingState;
36
38
  private handleAudioUpload;
37
39
  private setupUploadHandler;
40
+ private setupUriSync;
38
41
  private setupCurrentRecordSync;
42
+ private resetActiveRecordingOnProblemSwitch;
39
43
  }
40
44
  export {};
41
45
  //# sourceMappingURL=VoiceRecord.model.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"VoiceRecord.model.d.ts","sourceRoot":"","sources":["../../../../../../src/features/voiceRecord/model/VoiceRecord.model.ts"],"names":[],"mappings":"AAQA,OAAO,EAAE,QAAQ,EAAE,4BAA4B,EAAE,yBAAyB,EAAE,MAAM,UAAU,CAAA;AAE5F,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAA;AAChD,OAAO,EAAE,sBAAsB,EAAE,MAAM,yBAAyB,CAAA;AAEhE,KAAK,sBAAsB,GAAG;IAC5B,GAAG,EAAE,QAAQ,CAAA;IACb,YAAY,EAAE,4BAA4B,CAAA;IAC1C,MAAM,EAAE,iBAAiB,CAAA;CAC1B,CAAA;AAOD,KAAK,iBAAiB,GAAG;IACvB,YAAY,EAAE,MAAM,IAAI,CAAA;IACxB,UAAU,EAAE,MAAM,IAAI,CAAA;CACvB,CAAA;AAED,KAAK,2BAA2B,GAAG;IACjC,YAAY,CAAC,EAAE,OAAO,CAAA;CACvB,CAAA;AAMD,qBAAa,gBAAgB;IAC3B,SAAgB,aAAa,EAAE,aAAa,CAAA;IAC5C,SAAgB,UAAU,EAAE,sBAAsB,CAAA;IAClD,SAAgB,GAAG,EAAE,QAAQ,CAAA;IAC7B,SAAgB,YAAY,EAAE,4BAA4B,CAAA;IAC1D,SAAgB,MAAM,EAAE,iBAAiB,CAAA;IAEzC,SAAgB,aAAa,2CAAwB;IACrD,SAAgB,MAAM,2CAAwB;IAC9C,SAAgB,gBAAgB,wCAAqB;IACrD,SAAgB,KAAK,yCAAgB;IACrC,SAAgB,aAAa,4CAAyB;IAEtD,SAAgB,WAAW,2CAAkC;IAC7D,SAAgB,cAAc,qEAE7B;IACD,SAAgB,IAAI,2CAA6C;IAEjE,SAAgB,WAAW,4CAAqC;IAEhE,SAAgB,sBAAsB,6EAiBpC;IAEF,SAAgB,mBAAmB,+CAkBjC;gBAEU,EAAE,GAAG,EAAE,YAAY,EAAE,MAAM,EAAE,EAAE,sBAAsB;IAWjE,OAAO,CAAC,uBAAuB;IAM/B,OAAO,CAAC,mBAAmB;YAMb,iBAAiB;IA+B/B,OAAO,CAAC,kBAAkB;IAY1B,OAAO,CAAC,sBAAsB;CAsB/B"}
1
+ {"version":3,"file":"VoiceRecord.model.d.ts","sourceRoot":"","sources":["../../../../../../src/features/voiceRecord/model/VoiceRecord.model.ts"],"names":[],"mappings":"AAQA,OAAO,EAAE,QAAQ,EAAE,4BAA4B,EAA6B,MAAM,UAAU,CAAA;AAE5F,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAA;AAChD,OAAO,EAAE,sBAAsB,EAAE,MAAM,yBAAyB,CAAA;AAGhE,KAAK,sBAAsB,GAAG;IAC5B,GAAG,EAAE,QAAQ,CAAA;IACb,YAAY,EAAE,4BAA4B,CAAA;IAC1C,MAAM,EAAE,iBAAiB,CAAA;CAC1B,CAAA;AAOD,KAAK,iBAAiB,GAAG;IACvB,YAAY,EAAE,MAAM,IAAI,CAAA;IACxB,UAAU,EAAE,MAAM,IAAI,CAAA;CACvB,CAAA;AAED,KAAK,2BAA2B,GAAG;IACjC,YAAY,CAAC,EAAE,OAAO,CAAA;CACvB,CAAA;AAMD,qBAAa,gBAAgB;IAC3B,SAAgB,aAAa,EAAE,aAAa,CAAA;IAC5C,SAAgB,UAAU,EAAE,sBAAsB,CAAA;IAClD,SAAgB,GAAG,EAAE,QAAQ,CAAA;IAC7B,SAAgB,YAAY,EAAE,4BAA4B,CAAA;IAC1D,SAAgB,MAAM,EAAE,iBAAiB,CAAA;IACzC,OAAO,CAAC,sBAAsB,CAAQ;IAEtC,SAAgB,aAAa,2CAAwB;IACrD,SAAgB,gBAAgB,wCAAqB;IACrD,SAAgB,KAAK,yCAAgB;IACrC,SAAgB,aAAa,4CAAyB;IACtD,SAAgB,gBAAgB,2CAAwB;IAExD,SAAgB,WAAW,2CAAkC;IAC7D,SAAgB,cAAc,wCAAyD;IAEvF,SAAgB,WAAW,4CAAqC;IAEhE,SAAgB,sBAAsB,6EAiBpC;IAEF,SAAgB,mBAAmB,+CAkBjC;IAEF,SAAgB,cAAc,+CAK5B;IAEF,SAAgB,qBAAqB,WAAY,GAAG,UAanD;gBAEW,EAAE,GAAG,EAAE,YAAY,EAAE,MAAM,EAAE,EAAE,sBAAsB;IAajE,OAAO,CAAC,uBAAuB;IAM/B,OAAO,CAAC,mBAAmB;YAMb,iBAAiB;IAgC/B,OAAO,CAAC,kBAAkB;IAY1B,OAAO,CAAC,YAAY;IAQpB,OAAO,CAAC,sBAAsB;IAmB9B,OAAO,CAAC,mCAAmC;CAQ5C"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@magmamath/students-features",
3
- "version": "0.9.107-rc.14",
3
+ "version": "0.9.107-rc.15",
4
4
  "description": "Magmamath features library",
5
5
  "source": "src/index.ts",
6
6
  "main": "src/index.ts",
@@ -18,10 +18,14 @@ type VoiceRecordProps = {
18
18
 
19
19
  export const VoiceRecord = ({ style, model }: VoiceRecordProps) => {
20
20
  const { recorderState } = useVoiceRecorder(model)
21
- const [isRecording, audioFilePath] = useUnit([model.recorderModel.$voiceRecordState, model.$uri])
21
+ const [isRecording, currentRecord] = useUnit([
22
+ model.recorderModel.$voiceRecordState,
23
+ model.$currentRecord,
24
+ ])
25
+
22
26
  const isDisabled = useUnit(model.$isDisabled)
23
27
 
24
- const isExpanded = !!(isRecording || audioFilePath)
28
+ const isExpanded = !!(isRecording || currentRecord)
25
29
 
26
30
  const { containerAnimatedStyle } = useVoiceRecorderAnimation(isExpanded)
27
31
 
@@ -13,18 +13,9 @@ import { useUnit } from 'effector-react'
13
13
 
14
14
  export const useVoiceRecorder = (model: VoiceRecordModel) => {
15
15
  const player = useAudioPlayer()
16
- const audioFilePath = useUnit(model.$uri)
16
+ const currentRecord = useUnit(model.$currentRecord)
17
17
 
18
- const recorder = useAudioRecorder(RecordingPresets.LOW_QUALITY, (status) => {
19
- if (status.error) {
20
- model.notification.error(`Recorder error: ${status.error}`)
21
- model.recorderModel.clearStopResolver()
22
- return
23
- }
24
- if (status.isFinished && status.url) {
25
- model.setUri(status.url)
26
- }
27
- })
18
+ const recorder = useAudioRecorder(RecordingPresets.LOW_QUALITY, model.recordingStatusUpdate)
28
19
  const recorderState = useAudioRecorderState(recorder)
29
20
 
30
21
  useEffect(() => {
@@ -53,14 +44,14 @@ export const useVoiceRecorder = (model: VoiceRecordModel) => {
53
44
  }, [])
54
45
 
55
46
  useEffect(() => {
56
- if (audioFilePath) {
47
+ if (currentRecord?.uri) {
57
48
  const getDuration = async () => {
58
- const durationMs = await getAudioDurationMs(audioFilePath, player)
49
+ const durationMs = await getAudioDurationMs(currentRecord.uri!, player)
59
50
  model.recorderModel.setAudioFileDurationMs(durationMs || 0)
60
51
  }
61
52
  getDuration()
62
53
  }
63
- }, [audioFilePath])
54
+ }, [currentRecord?.uri])
64
55
 
65
56
  useEffect(() => {
66
57
  if (recorderState.isRecording) {
@@ -63,8 +63,9 @@ export const VoiceRecordDeleteModal = ({
63
63
 
64
64
  const handleDelete = async () => {
65
65
  if (isRecordingInProgress) {
66
- await model.recorderModel.recorder.stop()
66
+ await model.stopAndDiscard()
67
67
  }
68
+
68
69
  model.deleteCurrentRecording()
69
70
  closeModal()
70
71
  }
@@ -10,6 +10,7 @@ import { AudioApi, VoiceRecordNotificationTypes, VoiceRecordCollectionItem } fro
10
10
  import { t } from '../../../shared/translation'
11
11
  import { RecorderModel } from './Recorder.model'
12
12
  import { VoiceRecordsCollection } from './VoiceRecordCollection'
13
+ import { VoiceRecorderState } from '../constants'
13
14
 
14
15
  type VoiceRecordModelParams = {
15
16
  api: AudioApi
@@ -41,18 +42,16 @@ export class VoiceRecordModel {
41
42
  public readonly api: AudioApi
42
43
  public readonly notification: VoiceRecordNotificationTypes
43
44
  public readonly events: VoiceRecordEvents
45
+ private shouldDiscardRecording = false
44
46
 
45
47
  public readonly setCurrentKey = createEvent<string>()
46
- public readonly setUri = createEvent<string>()
47
48
  public readonly setCurrentRecord = createEvent<any>()
48
49
  public readonly reset = createEvent()
49
50
  public readonly setIsDisabled = createEvent<boolean>()
51
+ public readonly startAudioUpload = createEvent<string>()
50
52
 
51
53
  public readonly $currentKey = restore(this.setCurrentKey, '')
52
- public readonly $currentRecord = createStore<VoiceRecordCollectionItem | null>(null).reset(
53
- this.reset,
54
- )
55
- public readonly $uri = restore(this.setUri, '').reset(this.reset)
54
+ public readonly $currentRecord = restore(this.setCurrentRecord, null).reset(this.reset)
56
55
 
57
56
  public readonly $isDisabled = restore(this.setIsDisabled, false)
58
57
 
@@ -95,6 +94,28 @@ export class VoiceRecordModel {
95
94
  return this.recorderModel.start()
96
95
  })
97
96
 
97
+ public readonly stopAndDiscard = createEffect(async () => {
98
+ this.shouldDiscardRecording = true
99
+ await this.recorderModel.stop()
100
+ this.recorderModel.clearStopResolver()
101
+ this.recorderModel.reset()
102
+ })
103
+
104
+ public readonly recordingStatusUpdate = (status: any) => {
105
+ if (status.error) {
106
+ this.notification.error(`Recorder error: ${status.error}`)
107
+ this.recorderModel.clearStopResolver()
108
+ this.shouldDiscardRecording = false
109
+ return
110
+ }
111
+ if (status.isFinished && status.url) {
112
+ if (!this.shouldDiscardRecording) {
113
+ this.startAudioUpload(status.url)
114
+ }
115
+ this.shouldDiscardRecording = false
116
+ }
117
+ }
118
+
98
119
  constructor({ api, notification, events }: VoiceRecordModelParams) {
99
120
  this.api = api
100
121
  this.notification = notification
@@ -104,6 +125,8 @@ export class VoiceRecordModel {
104
125
 
105
126
  this.setupUploadHandler()
106
127
  this.setupCurrentRecordSync()
128
+ this.setupUriSync()
129
+ this.resetActiveRecordingOnProblemSwitch()
107
130
  }
108
131
 
109
132
  private abortUploadIfInProgress(recordingItem: ReturnType<VoiceRecordsCollection['get']>) {
@@ -144,6 +167,7 @@ export class VoiceRecordModel {
144
167
  }
145
168
 
146
169
  this.collection.add(currentKey, collectionItem)
170
+ this.setCurrentRecord(collectionItem)
147
171
  this.recorderModel.resolveStopWithCollectionItem(collectionItem)
148
172
 
149
173
  return audioUploadPromise
@@ -151,7 +175,7 @@ export class VoiceRecordModel {
151
175
 
152
176
  private setupUploadHandler() {
153
177
  sample({
154
- clock: this.setUri,
178
+ clock: this.startAudioUpload,
155
179
  source: this.$currentKey,
156
180
  filter: (currentKey, uri) => !!uri && !!currentKey,
157
181
  fn: (currentKey, uri) => ({ currentKey, uri }),
@@ -161,6 +185,14 @@ export class VoiceRecordModel {
161
185
  })
162
186
  }
163
187
 
188
+ private setupUriSync() {
189
+ sample({
190
+ source: this.$currentRecord,
191
+ fn: (record) => record?.uri || '',
192
+ target: createStore<string>('').reset(this.reset),
193
+ })
194
+ }
195
+
164
196
  private setupCurrentRecordSync() {
165
197
  sample({
166
198
  source: this.$currentKey,
@@ -176,11 +208,16 @@ export class VoiceRecordModel {
176
208
  if (recordingItem.durationMs) {
177
209
  this.recorderModel.setAudioFileDurationMs(recordingItem.durationMs)
178
210
  }
179
-
180
- if (recordingItem.uri) {
181
- this.setUri(recordingItem.uri)
182
- }
183
211
  }),
184
212
  })
185
213
  }
214
+
215
+ private resetActiveRecordingOnProblemSwitch() {
216
+ sample({
217
+ clock: this.$currentKey,
218
+ source: this.recorderModel.$voiceRecordState,
219
+ filter: (state) => state === VoiceRecorderState.RECORDING,
220
+ target: this.stopAndDiscard,
221
+ })
222
+ }
186
223
  }