l-min-components 1.7.1512 → 1.7.1514

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 (33) hide show
  1. package/package.json +1 -1
  2. package/src/components/messageAddon/messages/messages.jsx +2 -0
  3. package/src/components/reportsComponents/fullAnalysis/api/sampleApi.jsx +57 -0
  4. package/src/components/reportsComponents/fullAnalysis/icons/info.jsx +22 -0
  5. package/src/components/reportsComponents/fullAnalysis/icons/navArrow.jsx +60 -0
  6. package/src/components/reportsComponents/hooks/useRreportUtils.jsx +2 -0
  7. package/src/components/reportsComponents/reportQuestions/components/comment.jsx +207 -108
  8. package/src/components/reportsComponents/reportQuestions/components/questionDropdown.jsx +64 -0
  9. package/src/components/reportsComponents/reportQuestions/components/response.jsx +29 -2
  10. package/src/components/reportsComponents/reportQuestions/components/responseAudio.v2.jsx +114 -0
  11. package/src/components/reportsComponents/reportQuestions/components/style/comment.style.jsx +41 -15
  12. package/src/components/reportsComponents/reportQuestions/components/style/questionDropdown.style.jsx +62 -0
  13. package/src/components/reportsComponents/reportQuestions/components/style/quizQuestion.style.jsx +0 -4
  14. package/src/components/reportsComponents/reportQuestions/components/style/response.style.jsx +0 -4
  15. package/src/components/reportsComponents/reportQuestions/components/style/responseAutio.style.jsx +34 -0
  16. package/src/components/reportsComponents/reportQuestions/components/style/tabs.style.jsx +6 -6
  17. package/src/components/reportsComponents/reportQuestions/contants.jsx +78 -11
  18. package/src/components/reportsComponents/reportQuestions/index.jsx +160 -104
  19. package/src/components/reportsComponents/reportQuestions/questions/dialogueScripted.jsx +52 -33
  20. package/src/components/reportsComponents/reportQuestions/questions/dialogueUnscripted.jsx +43 -28
  21. package/src/components/reportsComponents/reportQuestions/questions/essayScripted.jsx +42 -30
  22. package/src/components/reportsComponents/reportQuestions/questions/essayUnscripted.jsx +29 -21
  23. package/src/components/reportsComponents/reportQuestions/questions/essayWritten.jsx +20 -12
  24. package/src/components/reportsComponents/reportQuestions/questions/matchPair.jsx +18 -5
  25. package/src/components/reportsComponents/reportQuestions/questions/quizMultipleChoice.jsx +37 -13
  26. package/src/components/reportsComponents/reportQuestions/questions/quizScripted.jsx +43 -23
  27. package/src/components/reportsComponents/reportQuestions/questions/quizUnsripted.jsx +32 -14
  28. package/src/components/reportsComponents/reportQuestions/questions/reading.jsx +30 -19
  29. package/src/components/reportsComponents/reportQuestions/questions/soundPlay.jsx +30 -21
  30. package/src/components/reportsComponents/reportQuestions/questions/wordPlayMultipleChoice.jsx +40 -15
  31. package/src/components/reportsComponents/reportQuestions/questions/wordPlayText.jsx +22 -9
  32. package/src/components/reportsComponents/reportQuestions/style.jsx +66 -22
  33. package/src/utils/formatDuration..js +10 -0
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "l-min-components",
3
- "version": "1.7.1512",
3
+ "version": "1.7.1514",
4
4
  "type": "module",
5
5
  "files": [
6
6
  "src/assets",
@@ -272,6 +272,8 @@ const Messages = ({
272
272
  }
273
273
  console.log("websocket data", data);
274
274
  };
275
+
276
+
275
277
  return () => {
276
278
  socket.current.close();
277
279
 
@@ -0,0 +1,57 @@
1
+ import useAxios from "axios-hooks";
2
+
3
+ const useSampleApi = () => {
4
+ const [{ ...getStudentsTestResultData }, getStudentsTestResult] = useAxios(
5
+ {
6
+ method: "GET",
7
+ },
8
+ {
9
+ manual: true,
10
+ }
11
+ );
12
+
13
+ const handleGetStudentsTestResult = async (activity_id, enterprise_id) => {
14
+ try {
15
+ const url = enterprise_id
16
+ ? `/learn/v1/instructor/${enterprise_id}/tests/${activity_id}/submission_test_questions/`
17
+ : `/learn/v1/instructor/tests/${activity_id}/submission_test_questions/`;
18
+ await getStudentsTestResult({
19
+ url,
20
+ });
21
+ } catch (err) {
22
+ console.log(err);
23
+ }
24
+ };
25
+
26
+ const [{ ...getStudentsTestAnswerData }, getStudentsAnser] = useAxios(
27
+ {
28
+ method: "GET",
29
+ },
30
+ {
31
+ manual: true,
32
+ }
33
+ );
34
+
35
+ const handleGetStudentsAnswer = async (
36
+ question_activity_id,
37
+ enterprise_id
38
+ ) => {
39
+ try {
40
+ const url = `/learn/v2/instructor/${enterprise_id}/tests/question_activity/${question_activity_id}/`;
41
+ await getStudentsAnser({
42
+ url,
43
+ });
44
+ } catch (err) {
45
+ console.log(err);
46
+ }
47
+ };
48
+
49
+ return {
50
+ handleGetStudentsTestResult,
51
+ getStudentsTestResultData,
52
+ handleGetStudentsAnswer,
53
+ getStudentsTestAnswerData,
54
+ };
55
+ };
56
+
57
+ export default useSampleApi;
@@ -0,0 +1,22 @@
1
+ import React from "react";
2
+
3
+ const InfoIcon2 = () => {
4
+ return (
5
+ <svg
6
+ xmlns="http://www.w3.org/2000/svg"
7
+ width="21"
8
+ height="20"
9
+ viewBox="0 0 21 20"
10
+ fill="none"
11
+ >
12
+ <path
13
+ fill-rule="evenodd"
14
+ clip-rule="evenodd"
15
+ d="M18.8281 10C18.8281 14.4183 15.2464 18 10.8281 18C6.40985 18 2.82812 14.4183 2.82812 10C2.82812 5.58172 6.40985 2 10.8281 2C15.2464 2 18.8281 5.58172 18.8281 10ZM10.8281 7C10.4593 7 10.1357 7.19922 9.96131 7.50073C9.68477 7.97879 9.07304 8.14215 8.59498 7.86561C8.11692 7.58906 7.95355 6.97733 8.2301 6.49927C8.7473 5.60518 9.71646 5 10.8281 5C12.485 5 13.8281 6.34315 13.8281 8C13.8281 9.30622 12.9933 10.4175 11.8281 10.8293V11C11.8281 11.5523 11.3804 12 10.8281 12C10.2759 12 9.82814 11.5523 9.82814 11V10C9.82814 9.44772 10.2759 9 10.8281 9C11.3804 9 11.8281 8.55228 11.8281 8C11.8281 7.44772 11.3804 7 10.8281 7ZM10.8281 15C11.3804 15 11.8281 14.5523 11.8281 14C11.8281 13.4477 11.3804 13 10.8281 13C10.2758 13 9.82812 13.4477 9.82812 14C9.82812 14.5523 10.2758 15 10.8281 15Z"
16
+ fill="#949999"
17
+ />
18
+ </svg>
19
+ );
20
+ };
21
+
22
+ export default InfoIcon2;
@@ -0,0 +1,60 @@
1
+ import React from "react";
2
+
3
+ const NavBack = ({ disabled }) => {
4
+ return (
5
+ <svg
6
+ width="25"
7
+ height="24"
8
+ viewBox="0 0 25 24"
9
+ fill="none"
10
+ xmlns="http://www.w3.org/2000/svg"
11
+ >
12
+ <g clip-path="url(#clip0_55110_349655)">
13
+ <path
14
+ d="M20.5 11H8.33L13.92 5.41L12.5 4L4.5 12L12.5 20L13.91 18.59L8.33 13H20.5V11Z"
15
+ fill={disabled ? "#C6CCCC" : "#00C2C2"}
16
+ />
17
+ </g>
18
+ <defs>
19
+ <clipPath id="clip0_55110_349655">
20
+ <rect
21
+ width="24"
22
+ height="24"
23
+ fill="white"
24
+ transform="translate(0.5)"
25
+ />
26
+ </clipPath>
27
+ </defs>
28
+ </svg>
29
+ );
30
+ };
31
+ const NavForword = ({ disabled }) => {
32
+ return (
33
+ <svg
34
+ xmlns="http://www.w3.org/2000/svg"
35
+ width="25"
36
+ height="24"
37
+ viewBox="0 0 25 24"
38
+ fill="none"
39
+ >
40
+ <g clip-path="url(#clip0_55110_349659)">
41
+ <path
42
+ d="M12.5 4L11.09 5.41L16.67 11H4.5V13H16.67L11.09 18.59L12.5 20L20.5 12L12.5 4Z"
43
+ fill={disabled ? "#C6CCCC" : "#00C2C2"}
44
+ />
45
+ </g>
46
+ <defs>
47
+ <clipPath id="clip0_55110_349659">
48
+ <rect
49
+ width="24"
50
+ height="24"
51
+ fill="white"
52
+ transform="translate(0.5)"
53
+ />
54
+ </clipPath>
55
+ </defs>
56
+ </svg>
57
+ );
58
+ };
59
+
60
+ export { NavBack, NavForword };
@@ -26,6 +26,8 @@ const choiceListAndAnswer = ({
26
26
  options,
27
27
  answer,
28
28
  isCorrect: !!(answer && correct && answer.id === correct.id),
29
+ correctIndex: options?.findIndex((option) => option?.id === correct.id),
30
+ correctText: correct?.text,
29
31
  };
30
32
  };
31
33
 
@@ -25,10 +25,11 @@ import {
25
25
  import { CloseIcon } from "../../../header/assets/svg/close";
26
26
  import classNames from "classnames";
27
27
  import { useRecorder } from "react-microphone-recorder";
28
- import PlayIcon from "../../../../assets/svg/playIcon";
29
28
  import styled from "styled-components";
30
29
  import { FaPause } from "react-icons/fa";
31
30
  import useApi from "../api";
31
+ import formatDuration from "../../../../utils/formatDuration.";
32
+ import ResponseAudioV2 from "./responseAudio.v2";
32
33
  /**
33
34
  * @param {Object} props
34
35
  * @param {boolean} props.editMode
@@ -38,9 +39,9 @@ const Comment = ({
38
39
  editMode = false,
39
40
  data,
40
41
  testId,
41
- questionData,
42
42
  setData,
43
43
  disabledAdd,
44
+ questionActivityID,
44
45
  }) => {
45
46
  const { affiliateAccount } = useContext(OutletContext);
46
47
  const [toggleDelete, setToggleDelete] = useState(false);
@@ -63,6 +64,7 @@ const Comment = ({
63
64
  audioURL,
64
65
  resetRecording,
65
66
  recordingState,
67
+ timeElapsed,
66
68
  } = useRecorder();
67
69
 
68
70
  if (!editMode && !data) return;
@@ -73,12 +75,12 @@ const Comment = ({
73
75
  ];
74
76
 
75
77
  const handleComment = async () => {
76
- if (!enterpriseId || !testId || !questionData?.question_activity_id) return;
78
+ if (!enterpriseId || !testId || !questionActivityID) return;
77
79
 
78
80
  if (showForm === "Text") {
79
81
  const data = { data: { data: { type: "text", text: value } } };
80
82
  const res = await handleAddComment(
81
- questionData?.question_activity_id,
83
+ questionActivityID,
82
84
  testId,
83
85
  data,
84
86
  enterpriseId
@@ -97,7 +99,7 @@ const Comment = ({
97
99
  if (media) {
98
100
  const data = { data: { data: { type: "audio", audio: media } } };
99
101
  const res = await handleAddComment(
100
- questionData?.question_activity_id,
102
+ questionActivityID,
101
103
  testId,
102
104
  data,
103
105
  enterpriseId
@@ -115,10 +117,10 @@ const Comment = ({
115
117
  const disabled = showForm === "Text" ? !value : !audioFile;
116
118
 
117
119
  const handleDelete = async () => {
118
- if (!enterpriseId || !testId || !questionData?.question_activity_id) return;
120
+ if (!enterpriseId || !testId || !questionActivityID) return;
119
121
 
120
122
  const res = await handleDeleteComment(
121
- questionData?.question_activity_id,
123
+ questionActivityID,
122
124
  testId,
123
125
  0,
124
126
  enterpriseId
@@ -159,44 +161,54 @@ const Comment = ({
159
161
  )}
160
162
  </CommentHeader>
161
163
  {data && (
162
- <CommentContent>
163
- <div className="image">
164
- {data?.profile_picture && (
165
- <img src={data?.profile_picture?.url} alt="profile picture" />
166
- )}
167
- </div>
168
- <CommenttBody>
169
- <CommentContentHeader>
170
- <p className="name">{data?.author_name}</p>
171
- <p className="date">
172
- {moment(data?.created_at).format("MMM DD, YYYY, HH:MM A")}
173
- </p>
174
- </CommentContentHeader>
175
-
176
- <CommentContentBody>
177
- {data?.type === "audio" && data?.audio && (
178
- <ResponseAudio
179
- url={data?.audio?.uploaded_media_url}
180
- streamUrl={data?.audio?.url}
181
- />
164
+ <>
165
+ <CommentContent>
166
+ <div className="image">
167
+ {data?.profile_picture && (
168
+ <img src={data?.profile_picture?.url} alt="profile picture" />
182
169
  )}
183
- {data?.type === "text" && data?.text && (
184
- <p className="text">{data?.text}</p>
170
+ </div>
171
+ <CommenttBody>
172
+ <CommentContentHeader>
173
+ <p className="name">{data?.author_name}</p>
174
+ <p className="date">
175
+ {moment(data?.created_at).format("MMM DD, YYYY, HH:MM A")}
176
+ </p>
177
+ </CommentContentHeader>
178
+ <CommentContentBody>
179
+ {data?.type === "audio" && data?.audio && (
180
+ <div className="comment_audio">
181
+ <ResponseAudioV2
182
+ url={data?.audio?.uploaded_media_url}
183
+ streamUrl={data?.audio?.url}
184
+ onDelete={
185
+ !editMode
186
+ ? null
187
+ : () => {
188
+ setToggleDelete(true);
189
+ }
190
+ }
191
+ />
192
+ </div>
193
+ )}
194
+ {data?.type === "text" && data?.text && (
195
+ <p className="text">{data?.text}</p>
196
+ )}
197
+ </CommentContentBody>
198
+ {editMode && data?.type !== "audio" && (
199
+ <CommentContentBodyFooter>
200
+ <button
201
+ onClick={() => {
202
+ setToggleDelete(true);
203
+ }}
204
+ >
205
+ <TrashIcon />
206
+ </button>
207
+ </CommentContentBodyFooter>
185
208
  )}
186
- </CommentContentBody>
187
- {editMode && (
188
- <CommentContentBodyFooter>
189
- <button
190
- onClick={() => {
191
- setToggleDelete(true);
192
- }}
193
- >
194
- <DeleteIcon />
195
- </button>
196
- </CommentContentBodyFooter>
197
- )}
198
- </CommenttBody>
199
- </CommentContent>
209
+ </CommenttBody>
210
+ </CommentContent>
211
+ </>
200
212
  )}
201
213
  {!data && (
202
214
  <>
@@ -232,6 +244,7 @@ const Comment = ({
232
244
  start={startRecording}
233
245
  stopRecord={stopRecording}
234
246
  reset={resetRecording}
247
+ seconds={timeElapsed}
235
248
  />
236
249
  )}
237
250
  </CommentContentForm>
@@ -277,7 +290,14 @@ const Comment = ({
277
290
 
278
291
  export default Comment;
279
292
 
280
- const AudioRecordPlayer = ({ start, url, isRecording, reset, stopRecord }) => {
293
+ const AudioRecordPlayer = ({
294
+ start,
295
+ url,
296
+ isRecording,
297
+ reset,
298
+ stopRecord,
299
+ seconds,
300
+ }) => {
281
301
  const { isPlaying, stop, isReady, play } = useAudioPlayer({
282
302
  src: url,
283
303
  });
@@ -290,56 +310,88 @@ const AudioRecordPlayer = ({ start, url, isRecording, reset, stopRecord }) => {
290
310
  return (
291
311
  <CommentRecorder>
292
312
  <div className="audioWrapper">
293
- {(playWave || url) && (
313
+ {playWave || url ? (
294
314
  <div className="audioContent">
295
- <button
296
- className="icon-btn"
315
+ <TrashIcon
316
+ className={classNames("trash-icon", {
317
+ disabled: isRecording || !isReady,
318
+ })}
297
319
  onClick={resetHandler}
298
320
  disabled={playWave}
299
- >
300
- <AudioDelete />
301
- </button>
321
+ />
302
322
 
303
323
  <AudioWaveComponent
304
324
  type="extra-small"
305
325
  color="#FDBA00"
306
- count={30}
326
+ count={16}
307
327
  playState={playWave ? "play" : "stop"}
308
328
  />
309
329
 
310
- {isPlaying ? (
311
- <button
312
- className="icon-btn"
330
+ {isRecording ? (
331
+ <StopIcon onClick={stopRecord} />
332
+ ) : isPlaying ? (
333
+ <PauseIcon
313
334
  onClick={stop}
335
+ className={classNames({ disabled: isRecording || !isReady })}
314
336
  disabled={isRecording || !isReady}
315
- >
316
- <FaPause color="#febf10" size={16} />
317
- </button>
337
+ />
318
338
  ) : (
319
- <button
320
- className="icon-btn play"
339
+ <PlayIcon
321
340
  onClick={play}
341
+ className={classNames({ disabled: isRecording || !isReady })}
322
342
  disabled={isRecording || !isReady}
323
- >
324
- <PlayIcon />
325
- </button>
343
+ />
326
344
  )}
327
345
  </div>
346
+ ) : (
347
+ <p>Click to begin recording</p>
328
348
  )}
329
349
  </div>
330
- {!isRecording ? (
331
- <button className="icon-btn" onClick={start}>
350
+
351
+ {!isRecording && !url && (
352
+ <button className="icon-btn action-btn" onClick={start}>
332
353
  <RecordIcon />
333
354
  </button>
334
- ) : (
335
- <button className="icon-btn" onClick={stopRecord}>
336
- <StopIcon />
337
- </button>
338
355
  )}
356
+ {(playWave || url) && <p>{formatDuration(seconds || 0)}</p>}
339
357
  </CommentRecorder>
340
358
  );
341
359
  };
342
360
 
361
+ export const PauseIcon = ({ onClick, className, disabled }) => (
362
+ <svg
363
+ width="20"
364
+ height="20"
365
+ viewBox="0 0 20 20"
366
+ fill="none"
367
+ xmlns="http://www.w3.org/2000/svg"
368
+ onClick={onClick}
369
+ className={className}
370
+ >
371
+ <path
372
+ d="M13.3333 15.8337C12.875 15.8337 12.4828 15.6706 12.1567 15.3445C11.8306 15.0184 11.6672 14.6259 11.6667 14.167V5.83366C11.6667 5.37533 11.83 4.9831 12.1567 4.65699C12.4833 4.33088 12.8756 4.16755 13.3333 4.16699C13.7911 4.16644 14.1836 4.32977 14.5108 4.65699C14.8381 4.98422 15.0011 5.37644 15 5.83366V14.167C15 14.6253 14.8369 15.0178 14.5108 15.3445C14.1847 15.6712 13.7922 15.8342 13.3333 15.8337ZM6.66667 15.8337C6.20833 15.8337 5.81611 15.6706 5.49 15.3445C5.16389 15.0184 5.00056 14.6259 5 14.167V5.83366C5 5.37533 5.16333 4.9831 5.49 4.65699C5.81667 4.33088 6.20889 4.16755 6.66667 4.16699C7.12444 4.16644 7.51694 4.32977 7.84417 4.65699C8.17139 4.98422 8.33444 5.37644 8.33333 5.83366V14.167C8.33333 14.6253 8.17028 15.0178 7.84417 15.3445C7.51806 15.6712 7.12556 15.8342 6.66667 15.8337Z"
373
+ fill={disabled ? "#C6CCCC" : "#FEBF10"}
374
+ />
375
+ </svg>
376
+ );
377
+
378
+ export const PlayIcon = ({ onClick, className, disabled }) => (
379
+ <svg
380
+ onClick={onClick}
381
+ width="17"
382
+ height="18"
383
+ viewBox="0 0 17 18"
384
+ fill="none"
385
+ xmlns="http://www.w3.org/2000/svg"
386
+ className={className}
387
+ >
388
+ <path
389
+ d="M3 9V6.49379C3 3.38216 5.1502 2.10793 7.78127 3.66375L9.90398 4.91686L12.0267 6.16996C14.6578 7.72578 14.6578 10.2742 12.0267 11.83L9.90398 13.0831L7.78127 14.3362C5.1502 15.8921 3 14.6178 3 11.5062V9Z"
390
+ fill={disabled ? "#C6CCCC" : "#FEBF10"}
391
+ />
392
+ </svg>
393
+ );
394
+
343
395
  const TextIcon = ({ color }) => (
344
396
  <svg
345
397
  xmlns="http://www.w3.org/2000/svg"
@@ -355,6 +407,54 @@ const TextIcon = ({ color }) => (
355
407
  </svg>
356
408
  );
357
409
 
410
+ export const TrashIcon = ({ className, disabled, onClick }) => (
411
+ <svg
412
+ xmlns="http://www.w3.org/2000/svg"
413
+ width="20"
414
+ height="20"
415
+ viewBox="0 0 20 20"
416
+ fill="none"
417
+ className={className}
418
+ onClick={onClick}
419
+ >
420
+ <path
421
+ d="M17.5 4.98307C14.725 4.70807 11.9333 4.56641 9.15 4.56641C7.5 4.56641 5.85 4.64974 4.2 4.81641L2.5 4.98307"
422
+ stroke={disabled ? "#C6CCCC" : "#F95454"}
423
+ stroke-width="1.5"
424
+ stroke-linecap="round"
425
+ stroke-linejoin="round"
426
+ />
427
+ <path
428
+ d="M7.08594 4.14297L7.26927 3.0513C7.4026 2.25964 7.5026 1.66797 8.91094 1.66797H11.0943C12.5026 1.66797 12.6109 2.29297 12.7359 3.05964L12.9193 4.14297"
429
+ stroke={disabled ? "#C6CCCC" : "#F95454"}
430
+ stroke-width="1.5"
431
+ stroke-linecap="round"
432
+ stroke-linejoin="round"
433
+ />
434
+ <path
435
+ d="M15.7057 7.61719L15.1641 16.0089C15.0724 17.3172 14.9974 18.3339 12.6724 18.3339H7.3224C4.9974 18.3339 4.9224 17.3172 4.83073 16.0089L4.28906 7.61719"
436
+ stroke={disabled ? "#C6CCCC" : "#F95454"}
437
+ stroke-width="1.5"
438
+ stroke-linecap="round"
439
+ stroke-linejoin="round"
440
+ />
441
+ <path
442
+ d="M8.60938 13.749H11.3844"
443
+ stroke={disabled ? "#C6CCCC" : "#F95454"}
444
+ stroke-width="1.5"
445
+ stroke-linecap="round"
446
+ stroke-linejoin="round"
447
+ />
448
+ <path
449
+ d="M7.91406 10.416H12.0807"
450
+ stroke={disabled ? "#C6CCCC" : "#F95454"}
451
+ stroke-width="1.5"
452
+ stroke-linecap="round"
453
+ stroke-linejoin="round"
454
+ />
455
+ </svg>
456
+ );
457
+
358
458
  const AudioIcon = ({ color }) => {
359
459
  return (
360
460
  <svg
@@ -374,68 +474,67 @@ const AudioIcon = ({ color }) => {
374
474
 
375
475
  const RecordIcon = () => (
376
476
  <svg
377
- xmlns="http://www.w3.org/2000/svg"
378
- width="38"
379
- height="36"
380
- viewBox="0 0 38 36"
477
+ width="30"
478
+ height="30"
479
+ viewBox="0 0 30 30"
381
480
  fill="none"
481
+ xmlns="http://www.w3.org/2000/svg"
382
482
  >
483
+ <circle cx="15" cy="15" r="15" fill="url(#paint0_linear_56564_131877)" />
383
484
  <path
384
- d="M30.0153 14.1552C29.4192 14.1552 28.9453 14.6073 28.9453 15.176V17.4802C28.9453 22.6427 24.5433 26.8427 19.1325 26.8427C13.7216 26.8427 9.31957 22.6427 9.31957 17.4802V15.1615C9.31957 14.5927 8.84574 14.1406 8.24963 14.1406C7.65352 14.1406 7.17969 14.5927 7.17969 15.1615V17.4656C7.17969 23.401 11.9639 28.2865 18.0625 28.8115V31.9177C18.0625 32.4865 18.5363 32.9385 19.1325 32.9385C19.7286 32.9385 20.2024 32.4865 20.2024 31.9177V28.8115C26.2858 28.301 31.0852 23.401 31.0852 17.4656V15.1615C31.0699 14.6073 30.5961 14.1552 30.0153 14.1552Z"
385
- fill="#00C2C2"
485
+ d="M20.1659 13.2367C19.883 13.2367 19.6581 13.4616 19.6581 13.7445V14.8907C19.6581 17.4587 17.5689 19.5479 15.0009 19.5479C12.4329 19.5479 10.3437 17.4587 10.3437 14.8907V13.7373C10.3437 13.4544 10.1188 13.2295 9.83592 13.2295C9.553 13.2295 9.32812 13.4544 9.32812 13.7373V14.8834C9.32812 17.8359 11.5987 20.2661 14.4931 20.5272V22.0723C14.4931 22.3553 14.718 22.5801 15.0009 22.5801C15.2838 22.5801 15.5087 22.3553 15.5087 22.0723V20.5272C18.3959 20.2733 20.6737 17.8359 20.6737 14.8834V13.7373C20.6664 13.4616 20.4415 13.2367 20.1659 13.2367Z"
486
+ fill="white"
386
487
  />
387
488
  <path
388
- d="M19.1309 3.77148C15.4014 3.77148 12.375 6.65898 12.375 10.2173V17.684C12.375 21.2423 15.4014 24.1298 19.1309 24.1298C22.8604 24.1298 25.8868 21.2423 25.8868 17.684V10.2173C25.8868 6.65898 22.8604 3.77148 19.1309 3.77148ZM21.1332 13.9069C21.0262 14.2861 20.6747 14.534 20.2773 14.534C20.2009 14.534 20.1244 14.5194 20.048 14.5048C19.4519 14.3444 18.8252 14.3444 18.2291 14.5048C17.74 14.6361 17.2662 14.359 17.1439 13.9069C17.0063 13.4548 17.2967 12.9882 17.7706 12.8715C18.6724 12.6382 19.62 12.6382 20.5218 12.8715C20.9804 12.9882 21.2555 13.4548 21.1332 13.9069ZM21.9433 11.0777C21.8058 11.4277 21.4695 11.6319 21.1027 11.6319C20.9957 11.6319 20.904 11.6173 20.797 11.5882C19.727 11.209 18.5348 11.209 17.4649 11.5882C17.0063 11.7486 16.4866 11.5152 16.3185 11.0777C16.1504 10.6402 16.3949 10.1444 16.8535 9.99857C18.3208 9.48815 19.941 9.48815 21.4084 9.99857C21.8669 10.159 22.1115 10.6402 21.9433 11.0777Z"
389
- fill="#00C2C2"
489
+ d="M15.0032 8.07227C13.2332 8.07227 11.7969 9.50859 11.7969 11.2786V14.9928C11.7969 16.7628 13.2332 18.1991 15.0032 18.1991C16.7732 18.1991 18.2096 16.7628 18.2096 14.9928V11.2786C18.2096 9.50859 16.7732 8.07227 15.0032 8.07227ZM15.9535 13.1139C15.9027 13.3025 15.7359 13.4259 15.5473 13.4259C15.511 13.4259 15.4747 13.4186 15.4385 13.4113C15.1556 13.3315 14.8581 13.3315 14.5752 13.4113C14.3431 13.4766 14.1182 13.3388 14.0602 13.1139C13.9949 12.889 14.1327 12.6569 14.3576 12.5989C14.7856 12.4828 15.2354 12.4828 15.6634 12.5989C15.881 12.6569 16.0116 12.889 15.9535 13.1139ZM16.338 11.7066C16.2727 11.8807 16.1131 11.9823 15.939 11.9823C15.8882 11.9823 15.8447 11.975 15.7939 11.9605C15.2861 11.7719 14.7203 11.7719 14.2125 11.9605C13.9949 12.0403 13.7483 11.9242 13.6685 11.7066C13.5887 11.489 13.7047 11.2423 13.9224 11.1698C14.6188 10.9159 15.3877 10.9159 16.0841 11.1698C16.3017 11.2496 16.4178 11.489 16.338 11.7066Z"
490
+ fill="white"
390
491
  />
492
+ <defs>
493
+ <linearGradient
494
+ id="paint0_linear_56564_131877"
495
+ x1="15"
496
+ y1="0"
497
+ x2="15"
498
+ y2="30"
499
+ gradientUnits="userSpaceOnUse"
500
+ >
501
+ <stop stop-color="#FEBF10" />
502
+ <stop offset="1" stop-color="#FFA113" />
503
+ </linearGradient>
504
+ </defs>
391
505
  </svg>
392
506
  );
393
507
 
394
- const AudioDelete = () => (
508
+ const StopIcon = ({ onClick }) => (
395
509
  <svg
396
510
  xmlns="http://www.w3.org/2000/svg"
397
- width="12"
398
- height="16"
399
- viewBox="0 0 12 16"
511
+ width="25"
512
+ height="26"
513
+ viewBox="0 0 25 26"
400
514
  fill="none"
401
- >
402
- <path
403
- d="M11.6667 1.1888H8.75L7.91667 0.355469H3.75L2.91667 1.1888H0V2.85547H11.6667V1.1888ZM0.833333 13.6888C0.833333 14.1308 1.00893 14.5548 1.32149 14.8673C1.63405 15.1799 2.05797 15.3555 2.5 15.3555H9.16667C9.6087 15.3555 10.0326 15.1799 10.3452 14.8673C10.6577 14.5548 10.8333 14.1308 10.8333 13.6888V3.6888H0.833333V13.6888Z"
404
- fill="#FEBF10"
405
- />
406
- </svg>
407
- );
408
-
409
- const StopIcon = () => (
410
- <svg
411
- width="43"
412
- height="42"
413
- viewBox="0 0 43 42"
414
- fill="none"
415
- xmlns="http://www.w3.org/2000/svg"
416
- style={{ width: "38px", height: "36px" }}
515
+ onClick={onClick}
417
516
  >
418
517
  <circle
419
- cx="21.9713"
420
- cy="20.9987"
421
- r="21.0026"
422
- fill="url(#paint0_linear_42380_459524)"
518
+ cx="12.5"
519
+ cy="13"
520
+ r="12.5"
521
+ fill="url(#paint0_linear_56564_131925)"
423
522
  />
424
523
  <path
425
- d="M29.9422 25.3481C29.9422 27.3482 28.3209 28.9696 26.3208 28.9696H17.6293C15.6292 28.9696 14.0078 27.3482 14.0078 25.3481V16.6566C14.0078 14.6565 15.6292 13.0352 17.6293 13.0352H26.3208C28.3209 13.0352 29.9422 14.6565 29.9422 16.6566V25.3481Z"
524
+ d="M17.2414 14.1229C17.2414 16.123 15.62 17.7443 13.62 17.7443H11.3793C9.37919 17.7443 7.75781 16.123 7.75781 14.1229V11.8822C7.75781 9.88212 9.3792 8.26074 11.3793 8.26074H13.62C15.62 8.26074 17.2414 9.88213 17.2414 11.8822V14.1229Z"
426
525
  fill="white"
427
526
  />
428
527
  <defs>
429
528
  <linearGradient
430
- id="paint0_linear_42380_459524"
431
- x1="21.9713"
432
- y1="-0.00390625"
433
- x2="21.9713"
434
- y2="42.0013"
529
+ id="paint0_linear_56564_131925"
530
+ x1="12.5"
531
+ y1="0.5"
532
+ x2="12.5"
533
+ y2="25.5"
435
534
  gradientUnits="userSpaceOnUse"
436
535
  >
437
- <stop stopColor="#FE6610" />
438
- <stop offset="1" stopColor="#FF2113" />
536
+ <stop stop-color="#FE6610" />
537
+ <stop offset="1" stop-color="#FF2113" />
439
538
  </linearGradient>
440
539
  </defs>
441
540
  </svg>