@magmamath/students-features 0.9.107-rc.31 → 0.9.107-rc.32
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.
- package/dist/commonjs/features/voiceRecord/model/VoiceRecord.model.js +5 -7
- package/dist/commonjs/features/voiceRecord/model/VoiceRecord.model.js.map +1 -1
- package/dist/module/features/voiceRecord/model/VoiceRecord.model.js +6 -8
- package/dist/module/features/voiceRecord/model/VoiceRecord.model.js.map +1 -1
- package/dist/typescript/commonjs/features/voiceRecord/model/VoiceRecord.model.d.ts.map +1 -1
- package/dist/typescript/module/features/voiceRecord/model/VoiceRecord.model.d.ts.map +1 -1
- package/package.json +1 -1
- package/src/features/voiceRecord/model/VoiceRecord.model.ts +4 -6
|
@@ -30,7 +30,6 @@ class VoiceRecordModel {
|
|
|
30
30
|
currentKey,
|
|
31
31
|
notification
|
|
32
32
|
}) => {
|
|
33
|
-
console.log('Deleting recording with key:', currentKey);
|
|
34
33
|
const recordingItem = this.collection.get(currentKey);
|
|
35
34
|
this.abortUploadIfInProgress(recordingItem);
|
|
36
35
|
this.resetRecordingState(currentKey);
|
|
@@ -106,12 +105,11 @@ class VoiceRecordModel {
|
|
|
106
105
|
}
|
|
107
106
|
async handleAudioUpload({
|
|
108
107
|
uri,
|
|
109
|
-
currentKey
|
|
108
|
+
currentKey,
|
|
109
|
+
durationMs
|
|
110
110
|
}) {
|
|
111
111
|
// Use the last known duration from recorder state (more reliable for old browsers like Chrome 93
|
|
112
112
|
// where getAudioDurationMs can return Infinity)
|
|
113
|
-
const lastKnownDuration = this.recorderModel.$lastKnownDurationMs.getState();
|
|
114
|
-
const durationMs = lastKnownDuration > 0 ? lastKnownDuration : await (0, _helpers.getAudioDurationMs)(uri);
|
|
115
113
|
const formData = await (0, _helpers.generateAudioFormData)({
|
|
116
114
|
audioFileUri: uri,
|
|
117
115
|
durationMs,
|
|
@@ -151,17 +149,17 @@ class VoiceRecordModel {
|
|
|
151
149
|
clock: this.startAudioUpload,
|
|
152
150
|
source: {
|
|
153
151
|
currentKey: this.$currentKey,
|
|
154
|
-
|
|
152
|
+
durationMs: this.recorderModel.$lastKnownDurationMs
|
|
155
153
|
},
|
|
156
154
|
filter: ({
|
|
157
155
|
currentKey
|
|
158
156
|
}, uri) => !!uri && !!currentKey,
|
|
159
157
|
fn: ({
|
|
160
158
|
currentKey,
|
|
161
|
-
|
|
159
|
+
durationMs
|
|
162
160
|
}, uri) => ({
|
|
163
161
|
currentKey,
|
|
164
|
-
|
|
162
|
+
durationMs,
|
|
165
163
|
uri
|
|
166
164
|
}),
|
|
167
165
|
target: (0, _effector.createEffect)(params => this.handleAudioUpload(params))
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_effector","require","_helpers","_index","_RecorderModel","_VoiceRecordCollection","VoiceRecordModel","shouldDiscardRecording","setCurrentKey","createEvent","setCurrentRecord","reset","setIsDisabled","startAudioUpload","$currentKey","restore","$currentRecord","$isDisabled","deleteCurrentRecording","attach","source","mapParams","props","currentKey","notification","effect","createEffect","
|
|
1
|
+
{"version":3,"names":["_effector","require","_helpers","_index","_RecorderModel","_VoiceRecordCollection","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","catch","name","stopAndDiscard","stop","clearStopResolver","recordingStatusUpdate","status","console","log","isFinished","url","constructor","api","events","RecorderModel","VoiceRecordsCollection","setupUploadHandler","setupCurrentRecordSync","id","controller","abort","delete","handleAudioUpload","uri","durationMs","formData","generateAudioFormData","audioFileUri","fileName","uploadAudio","uploadAudioFileRequestGenerator","audioUploadPromise","then","data","update","collectionItem","add","resolveStopWithCollectionItem","sample","clock","$lastKnownDurationMs","filter","fn","target","params","exports"],"sourceRoot":"../../../../../src","sources":["features/voiceRecord/model/VoiceRecord.model.ts"],"mappings":"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","ignoreList":[]}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
3
|
import { attach, createEffect, createEvent, restore, sample } from 'effector';
|
|
4
|
-
import { ensureRecordingPermissions, generateAudioFormData,
|
|
4
|
+
import { ensureRecordingPermissions, generateAudioFormData, getAvailableInputs, uploadAudioFileRequestGenerator } from "../helpers.js";
|
|
5
5
|
import { t } from "../../../shared/translation/index.js";
|
|
6
6
|
import { RecorderModel } from "./Recorder.model.js";
|
|
7
7
|
import { VoiceRecordsCollection } from "./VoiceRecordCollection.js";
|
|
@@ -26,7 +26,6 @@ export class VoiceRecordModel {
|
|
|
26
26
|
currentKey,
|
|
27
27
|
notification
|
|
28
28
|
}) => {
|
|
29
|
-
console.log('Deleting recording with key:', currentKey);
|
|
30
29
|
const recordingItem = this.collection.get(currentKey);
|
|
31
30
|
this.abortUploadIfInProgress(recordingItem);
|
|
32
31
|
this.resetRecordingState(currentKey);
|
|
@@ -102,12 +101,11 @@ export class VoiceRecordModel {
|
|
|
102
101
|
}
|
|
103
102
|
async handleAudioUpload({
|
|
104
103
|
uri,
|
|
105
|
-
currentKey
|
|
104
|
+
currentKey,
|
|
105
|
+
durationMs
|
|
106
106
|
}) {
|
|
107
107
|
// Use the last known duration from recorder state (more reliable for old browsers like Chrome 93
|
|
108
108
|
// where getAudioDurationMs can return Infinity)
|
|
109
|
-
const lastKnownDuration = this.recorderModel.$lastKnownDurationMs.getState();
|
|
110
|
-
const durationMs = lastKnownDuration > 0 ? lastKnownDuration : await getAudioDurationMs(uri);
|
|
111
109
|
const formData = await generateAudioFormData({
|
|
112
110
|
audioFileUri: uri,
|
|
113
111
|
durationMs,
|
|
@@ -147,17 +145,17 @@ export class VoiceRecordModel {
|
|
|
147
145
|
clock: this.startAudioUpload,
|
|
148
146
|
source: {
|
|
149
147
|
currentKey: this.$currentKey,
|
|
150
|
-
|
|
148
|
+
durationMs: this.recorderModel.$lastKnownDurationMs
|
|
151
149
|
},
|
|
152
150
|
filter: ({
|
|
153
151
|
currentKey
|
|
154
152
|
}, uri) => !!uri && !!currentKey,
|
|
155
153
|
fn: ({
|
|
156
154
|
currentKey,
|
|
157
|
-
|
|
155
|
+
durationMs
|
|
158
156
|
}, uri) => ({
|
|
159
157
|
currentKey,
|
|
160
|
-
|
|
158
|
+
durationMs,
|
|
161
159
|
uri
|
|
162
160
|
}),
|
|
163
161
|
target: createEffect(params => this.handleAudioUpload(params))
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["attach","createEffect","createEvent","restore","sample","ensureRecordingPermissions","generateAudioFormData","
|
|
1
|
+
{"version":3,"names":["attach","createEffect","createEvent","restore","sample","ensureRecordingPermissions","generateAudioFormData","getAvailableInputs","uploadAudioFileRequestGenerator","t","RecorderModel","VoiceRecordsCollection","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","catch","name","stopAndDiscard","stop","clearStopResolver","recordingStatusUpdate","status","console","log","isFinished","url","constructor","api","events","setupUploadHandler","setupCurrentRecordSync","id","controller","abort","delete","handleAudioUpload","uri","durationMs","formData","audioFileUri","fileName","uploadAudio","audioUploadPromise","then","data","update","collectionItem","add","resolveStopWithCollectionItem","clock","$lastKnownDurationMs","filter","fn","target","params"],"sourceRoot":"../../../../../src","sources":["features/voiceRecord/model/VoiceRecord.model.ts"],"mappings":"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","ignoreList":[]}
|
|
@@ -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,EAA6B,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;
|
|
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;AAEhE,KAAK,sBAAsB,GAAG;IAC5B,GAAG,EAAE,QAAQ,CAAA;IACb,YAAY,EAAE,4BAA4B,CAAA;IAC1C,MAAM,EAAE,iBAAiB,CAAA;CAC1B,CAAA;AAQD,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,+CAsBjC;IAEF,SAAgB,cAAc,+CAK5B;IAEF,SAAgB,qBAAqB,WAAY,GAAG,UAcnD;gBAEW,EAAE,GAAG,EAAE,YAAY,EAAE,MAAM,EAAE,EAAE,sBAAsB;IAWjE,OAAO,CAAC,uBAAuB;IAM/B,OAAO,CAAC,mBAAmB;YAMb,iBAAiB;IAuC/B,OAAO,CAAC,kBAAkB;IAa1B,OAAO,CAAC,sBAAsB;CAc/B"}
|
|
@@ -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,EAA6B,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;
|
|
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;AAEhE,KAAK,sBAAsB,GAAG;IAC5B,GAAG,EAAE,QAAQ,CAAA;IACb,YAAY,EAAE,4BAA4B,CAAA;IAC1C,MAAM,EAAE,iBAAiB,CAAA;CAC1B,CAAA;AAQD,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,+CAsBjC;IAEF,SAAgB,cAAc,+CAK5B;IAEF,SAAgB,qBAAqB,WAAY,GAAG,UAcnD;gBAEW,EAAE,GAAG,EAAE,YAAY,EAAE,MAAM,EAAE,EAAE,sBAAsB;IAWjE,OAAO,CAAC,uBAAuB;IAM/B,OAAO,CAAC,mBAAmB;YAMb,iBAAiB;IAuC/B,OAAO,CAAC,kBAAkB;IAa1B,OAAO,CAAC,sBAAsB;CAc/B"}
|
package/package.json
CHANGED
|
@@ -20,6 +20,7 @@ type VoiceRecordModelParams = {
|
|
|
20
20
|
type UploadParams = {
|
|
21
21
|
uri: string
|
|
22
22
|
currentKey: string
|
|
23
|
+
durationMs: number
|
|
23
24
|
}
|
|
24
25
|
|
|
25
26
|
type VoiceRecordEvents = {
|
|
@@ -62,7 +63,6 @@ export class VoiceRecordModel {
|
|
|
62
63
|
currentKey,
|
|
63
64
|
}),
|
|
64
65
|
effect: createEffect(({ currentKey, notification }: DeleteCurrentRecordingValues) => {
|
|
65
|
-
console.log('Deleting recording with key:', currentKey)
|
|
66
66
|
const recordingItem = this.collection.get(currentKey)
|
|
67
67
|
|
|
68
68
|
this.abortUploadIfInProgress(recordingItem)
|
|
@@ -144,11 +144,9 @@ export class VoiceRecordModel {
|
|
|
144
144
|
this.collection.delete(currentKey)
|
|
145
145
|
}
|
|
146
146
|
|
|
147
|
-
private async handleAudioUpload({ uri, currentKey }: UploadParams) {
|
|
147
|
+
private async handleAudioUpload({ uri, currentKey, durationMs }: UploadParams) {
|
|
148
148
|
// Use the last known duration from recorder state (more reliable for old browsers like Chrome 93
|
|
149
149
|
// where getAudioDurationMs can return Infinity)
|
|
150
|
-
const lastKnownDuration = this.recorderModel.$lastKnownDurationMs.getState()
|
|
151
|
-
const durationMs = lastKnownDuration > 0 ? lastKnownDuration : await getAudioDurationMs(uri)
|
|
152
150
|
const formData = await generateAudioFormData({
|
|
153
151
|
audioFileUri: uri,
|
|
154
152
|
durationMs,
|
|
@@ -190,10 +188,10 @@ export class VoiceRecordModel {
|
|
|
190
188
|
clock: this.startAudioUpload,
|
|
191
189
|
source: {
|
|
192
190
|
currentKey: this.$currentKey,
|
|
193
|
-
|
|
191
|
+
durationMs: this.recorderModel.$lastKnownDurationMs,
|
|
194
192
|
},
|
|
195
193
|
filter: ({ currentKey }, uri) => !!uri && !!currentKey,
|
|
196
|
-
fn: ({ currentKey,
|
|
194
|
+
fn: ({ currentKey, durationMs }, uri) => ({ currentKey, durationMs, uri }),
|
|
197
195
|
target: createEffect((params: UploadParams) => this.handleAudioUpload(params)),
|
|
198
196
|
})
|
|
199
197
|
}
|