l-min-components 1.7.1512 → 1.7.1513
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/package.json +1 -1
- package/src/components/messageAddon/messages/messages.jsx +2 -0
- package/src/components/reportsComponents/fullAnalysis/api/sampleApi.jsx +57 -0
- package/src/components/reportsComponents/fullAnalysis/icons/info.jsx +22 -0
- package/src/components/reportsComponents/fullAnalysis/icons/navArrow.jsx +60 -0
- package/src/components/reportsComponents/hooks/useRreportUtils.jsx +2 -0
- package/src/components/reportsComponents/reportQuestions/components/comment.jsx +207 -108
- package/src/components/reportsComponents/reportQuestions/components/questionDropdown.jsx +64 -0
- package/src/components/reportsComponents/reportQuestions/components/response.jsx +29 -2
- package/src/components/reportsComponents/reportQuestions/components/responseAudio.v2.jsx +114 -0
- package/src/components/reportsComponents/reportQuestions/components/style/comment.style.jsx +41 -15
- package/src/components/reportsComponents/reportQuestions/components/style/questionDropdown.style.jsx +62 -0
- package/src/components/reportsComponents/reportQuestions/components/style/quizQuestion.style.jsx +0 -4
- package/src/components/reportsComponents/reportQuestions/components/style/response.style.jsx +0 -4
- package/src/components/reportsComponents/reportQuestions/components/style/responseAutio.style.jsx +34 -0
- package/src/components/reportsComponents/reportQuestions/components/style/tabs.style.jsx +6 -6
- package/src/components/reportsComponents/reportQuestions/contants.jsx +78 -11
- package/src/components/reportsComponents/reportQuestions/index.jsx +172 -104
- package/src/components/reportsComponents/reportQuestions/questions/dialogueScripted.jsx +52 -33
- package/src/components/reportsComponents/reportQuestions/questions/dialogueUnscripted.jsx +43 -28
- package/src/components/reportsComponents/reportQuestions/questions/essayScripted.jsx +42 -30
- package/src/components/reportsComponents/reportQuestions/questions/essayUnscripted.jsx +29 -21
- package/src/components/reportsComponents/reportQuestions/questions/essayWritten.jsx +20 -12
- package/src/components/reportsComponents/reportQuestions/questions/matchPair.jsx +18 -5
- package/src/components/reportsComponents/reportQuestions/questions/quizMultipleChoice.jsx +37 -13
- package/src/components/reportsComponents/reportQuestions/questions/quizScripted.jsx +43 -23
- package/src/components/reportsComponents/reportQuestions/questions/quizUnsripted.jsx +32 -14
- package/src/components/reportsComponents/reportQuestions/questions/reading.jsx +30 -19
- package/src/components/reportsComponents/reportQuestions/questions/soundPlay.jsx +30 -21
- package/src/components/reportsComponents/reportQuestions/questions/wordPlayMultipleChoice.jsx +40 -15
- package/src/components/reportsComponents/reportQuestions/questions/wordPlayText.jsx +22 -9
- package/src/components/reportsComponents/reportQuestions/style.jsx +66 -22
- package/src/utils/formatDuration..js +10 -0
package/package.json
CHANGED
|
@@ -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 };
|
|
@@ -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 || !
|
|
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
|
-
|
|
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
|
-
|
|
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 || !
|
|
120
|
+
if (!enterpriseId || !testId || !questionActivityID) return;
|
|
119
121
|
|
|
120
122
|
const res = await handleDeleteComment(
|
|
121
|
-
|
|
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
|
-
|
|
163
|
-
<
|
|
164
|
-
|
|
165
|
-
|
|
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
|
-
|
|
184
|
-
|
|
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
|
-
</
|
|
187
|
-
|
|
188
|
-
|
|
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 = ({
|
|
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
|
-
{
|
|
313
|
+
{playWave || url ? (
|
|
294
314
|
<div className="audioContent">
|
|
295
|
-
<
|
|
296
|
-
className="icon
|
|
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={
|
|
326
|
+
count={16}
|
|
307
327
|
playState={playWave ? "play" : "stop"}
|
|
308
328
|
/>
|
|
309
329
|
|
|
310
|
-
{
|
|
311
|
-
<
|
|
312
|
-
|
|
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
|
-
<
|
|
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
|
-
|
|
331
|
-
|
|
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
|
-
|
|
378
|
-
|
|
379
|
-
|
|
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="
|
|
385
|
-
fill="
|
|
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="
|
|
389
|
-
fill="
|
|
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
|
|
508
|
+
const StopIcon = ({ onClick }) => (
|
|
395
509
|
<svg
|
|
396
510
|
xmlns="http://www.w3.org/2000/svg"
|
|
397
|
-
width="
|
|
398
|
-
height="
|
|
399
|
-
viewBox="0 0
|
|
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="
|
|
420
|
-
cy="
|
|
421
|
-
r="
|
|
422
|
-
fill="url(#
|
|
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="
|
|
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="
|
|
431
|
-
x1="
|
|
432
|
-
y1="
|
|
433
|
-
x2="
|
|
434
|
-
y2="
|
|
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
|
|
438
|
-
<stop offset="1"
|
|
536
|
+
<stop stop-color="#FE6610" />
|
|
537
|
+
<stop offset="1" stop-color="#FF2113" />
|
|
439
538
|
</linearGradient>
|
|
440
539
|
</defs>
|
|
441
540
|
</svg>
|