2
2
import { useEffect , useRef , useState } from "react" ;
3
3
import { Message } from "../../../utils/recorderUtils" ;
4
4
import { SpeakerType } from "../../../utils/speakerType" ;
5
- import { addAndGetMeetingInfo } from "../../../utils/supabase" ;
5
+ import {
6
+ addAndGetMeetingInfo ,
7
+ addTranscription ,
8
+ } from "../../../utils/supabase" ;
6
9
import axios from "axios" ;
7
10
import { Toaster , toast } from "sonner" ;
8
11
@@ -22,28 +25,24 @@ const JarvisScreen = () => {
22
25
chrome . runtime . onMessage . addListener ( ( request ) => {
23
26
console . log ( "request------------------------------------->" , request ) ;
24
27
console . log ( "12c2 request.message.data: " , request . message ) ;
25
-
26
28
switch ( request . message . type ) {
27
29
case "REP_TRANSCRIPT" :
28
30
{
29
- if ( ! apiCallingStart ) {
30
- const { message_text } = request . message . data ;
31
- setRepText ( ( m ) => m + message_text ) ;
32
- const message : Message = {
33
- speaker_type : SpeakerType . REP ,
34
- message_text,
35
- meeting_id : meetingIdRef . current ,
36
- } ;
37
- // addTranscription(message);
38
- }
31
+ const { message_text } = request . message . data ;
32
+ setRepText ( ( m ) => m + message_text ) ;
33
+ const message : Message = {
34
+ speaker_type : SpeakerType . REP ,
35
+ message_text,
36
+ meeting_id : meetingIdRef . current ,
37
+ } ;
38
+ addTranscription ( message ) ;
39
39
}
40
40
break ;
41
41
}
42
42
} ) ;
43
43
} , [ ] ) ;
44
44
45
45
useEffect ( ( ) => {
46
- console . log ( "rep Text changing-------------------------------->" , repText ) ;
47
46
// Start or reset the timer when repText changes
48
47
if ( repText . length ) {
49
48
if ( timerRef . current ) clearTimeout ( timerRef . current ) ; // Reset the timer if already set
@@ -56,12 +55,19 @@ const JarvisScreen = () => {
56
55
} , [ repText ] ) ;
57
56
58
57
useEffect ( ( ) => {
59
- if ( apiCallingStart ) {
58
+ if ( apiCallingStart && ! endMeetingResponseType ) {
60
59
handleRecordingStart ( ) . then ( ( ) => {
61
60
sendTranscriptToBackend ( meetingIdRef . current ) ;
62
61
} ) ;
62
+ } else if (
63
+ apiCallingStart &&
64
+ endMeetingResponseType === "create_asana_tasks"
65
+ ) {
66
+ handleCreateAsanaTask ( ) . then ( ( ) => {
67
+ console . log ( "asana task created successfully" ) ;
68
+ } ) ;
63
69
}
64
- } , [ apiCallingStart ] ) ;
70
+ } , [ apiCallingStart , endMeetingResponseType ] ) ;
65
71
66
72
async function handleRecordingStart ( ) {
67
73
const { id } = await addAndGetMeetingInfo ( ) ;
@@ -99,10 +105,11 @@ const JarvisScreen = () => {
99
105
setEndMeetingResponseType ( type ) ;
100
106
setSummarySlack ( data ) ;
101
107
}
102
-
103
108
} catch ( error ) {
104
109
toast . error ( error . message ) ;
105
110
console . error ( "Error Failed Sending Transcript:" , error ) ;
111
+ } finally {
112
+ setRepText ( "" ) ;
106
113
}
107
114
}
108
115
@@ -116,16 +123,15 @@ const JarvisScreen = () => {
116
123
117
124
const handleCreateAsanaTask = async ( ) => {
118
125
try {
119
- setLoading ( true ) ;
120
126
if ( ! meetingIdRef . current ) throw new Error ( "meetingId required" ) ;
121
- if ( ! selectedTasks || selectedTasks . length === 0 ) {
122
- toast . error ( "Task and MeetingId are required" ) ;
123
- throw new Error ( "task required" ) ;
127
+ if ( ! asanaTask || asanaTask . length === 0 ) {
128
+ toast . error ( "Tasks and MeetingId are required" ) ;
129
+ throw new Error ( "task required and meetingId required " ) ;
124
130
}
125
131
126
132
const postData = {
127
133
meetingId : meetingIdRef . current ,
128
- tasks : selectedTasks ,
134
+ tasks : asanaTask ,
129
135
} ;
130
136
131
137
// Make the POST request using Axios
@@ -139,24 +145,23 @@ const JarvisScreen = () => {
139
145
} ,
140
146
}
141
147
) ;
148
+
142
149
if ( response . data . error ) {
143
150
throw new Error ( response . data . error ) ;
144
151
}
145
152
toast . success ( "Successfully Created Task" ) ;
146
153
} catch ( error ) {
147
154
toast . error ( "Failed" ) ;
148
155
console . error ( "Error Failed Create Asana API" , error ) ;
149
- } finally {
150
- setLoading ( false ) ;
151
- }
156
+ }
152
157
} ;
153
158
154
159
const handleSendSlackSummary = async ( ) => {
155
160
try {
156
161
setLoading ( true ) ;
157
- if ( ! meetingIdRef . current ) {
162
+ if ( ! meetingIdRef . current ) {
158
163
throw new Error ( "meetingId required" ) ;
159
- }
164
+ }
160
165
if ( ! slackSummary ) {
161
166
throw new Error ( "slack summary required" ) ;
162
167
}
@@ -199,32 +204,33 @@ const JarvisScreen = () => {
199
204
What would you like < br />
200
205
me to do?
201
206
</ h2 >
202
- { ! ! repText . length && ! endMeetingResponseType && < span > { repText } </ span > }
207
+ { ! ! repText . length && < span > { repText } </ span > }
203
208
< div className = "flex flex-col gap-1 ml-2 mt-2" >
204
209
{ endMeetingResponseType === "create_asana_tasks" &&
205
210
asanaTask &&
206
211
asanaTask . map ( ( task , index ) => (
207
212
< div className = "flex gap-2 p-1" key = { index } >
208
- < input
213
+ { /* <input
209
214
type="checkbox"
210
215
value={task}
211
216
checked={selectedTasks.includes(task)}
212
217
onChange={() => handleCheckboxChange(task)}
213
218
className="text-black rounded"
214
- />
219
+ /> */ }
220
+ < span > { index + 1 } </ span >
215
221
< p className = "text-sm text-start font-medium text-gray-900" >
216
222
{ task }
217
223
</ p >
218
224
</ div >
219
225
) ) }
220
- { endMeetingResponseType === "create_asana_tasks" && (
226
+ { /* { endMeetingResponseType === "create_asana_tasks" && (
221
227
<button
222
228
onClick={handleCreateAsanaTask}
223
229
className="m-2 px-2 py-2 flex justify-center bg-blue-600 text-white rounded hover:bg-blue-700 focus:outline-none focus:ring-2 focus:ring-blue-500 focus:ring-offset-2"
224
230
>
225
231
{loading ? <Loader /> : "Create Asana Task"}
226
232
</button>
227
- ) }
233
+ )} */ }
228
234
</ div >
229
235
< div className = "flex flex-col gap-1 ml-2 mt-2" >
230
236
{ endMeetingResponseType === "send_summary_to_slack" &&
0 commit comments